Hi everyone,
I am attempting to map some XML into
ConTeXt as described in the manual "XML in ConTeXt". Essentially
we have a bunch of tagged text (the XML "loosely" based on some
of the XHTML tags) from which we want to produce PDF letters for
dispatch (via email, post etc).
I am having particular problems implementing
the following commands: -
\underbar,
\underbars, \overstrike, \overstrikes, \low, \high and \lohi
I was expecting that they would all
easily be defined using the \defineXMLgrouped [name] {command} element
mapping. There is probably something very simple that I have not setup
correctly since I am sure that this has been attempted before and would
appreciate pointers as to where I am going wrong.
The following attempts at mapping element
<u> to \underbar illustrates my problem which also seems largely
applicable to the <strike>, <sub> and <sup> mapping:
-
1. This def of <u> does
nothing ...
\defineXMLgrouped [u] \underbar
2. This def of <u> also
does nothing ...
\defineXMLgrouped [u] {\groupedcommand{\underbar}{}}
3. This def of <u> underlines
the 1st character only ...
\defineXMLenvironment [u] {\bgroup\underbar}
{\egroup}
4. In the mailing list, there is a suggestion
that \underbar does not allow line-breaking, so I also tried the
following. This def of <u> "works" partially, in
that it does underline, however it causes havoc with alignment - everything
seems to shift over to the right about 4cm ...
\defineXMLenvironment [u] \startul \stopul
\definetextbackground[ul]
[location=text,alternative=1,background=,frame=off]
\definestartstop[ul]
[before={\starttextbackground[ul]
},
after={\stoptextbackground\
}]
Below is a sample .tex file that
I have been playing with: -
\usemodule [contml]
\autoXMLnamespace [context]
% Attempts at defining a mapping for
<u>: -
% This def of <u> does nothing
...
%\defineXMLgrouped [u] \underbar
% This def of <u> does nothing
...
%\defineXMLgrouped [u] {\groupedcommand{\underbar}{}}
% This def of <u> underlines the
1st character only ...
%\defineXMLenvironment [u] {\bgroup\underbar}
{\egroup}
%
% This def of <u> "works"
partially, in that it does underline, however it
% causes havoc with alignment - everything
seems to shift over to the right
% about 4cm ...
\defineXMLenvironment [u] \startul \stopul
\definetextbackground[ul]
[location=text,alternative=1,background=,frame=off]
\definestartstop[ul]
[before={\starttextbackground[ul]
},
% after={\stoptextbackground\fixedspaces}]
after={\stoptextbackground\
}]
% Other mappings
\defineXMLgrouped [right] \rightaligned
\defineXMLgrouped [centre] \midaligned
\defineXMLgrouped [em] \em
\defineXMLsingular [br] [nr=1]
{\blank[\XMLop{nr}*medium]}
\showstruts \showframe
\starttext
start of 'normal' \CONTEXT\ text
\underbar{This} is {\em left} aligned
\blank[medium]
\rightaligned{\underbar{This} is {\em
right} aligned}
\blank[medium]
\midaligned{\underbar{This} is {\em
centre} aligned}
end of 'normal' \CONTEXT\ text - starting
xml ...
\startXMLdata
<p>This is <em>left</em>
aligned</p>
<p><centre><u>This</u>
is <em>centre</em> aligned</centre></p>
<p><centre>This is <em>centre</em>
aligned</centre></p>
<p><right>This is <em>right</em>
aligned</right></p>
\stopXMLdata
\blank[medium]
finished xml - back in 'normal' \CONTEXT\
text
\stoptext
NOTICE
This e-mail and any attachments are intended for the addressee(s) only and may be confidential. They may contain legally privileged or copyright material. You should not read, copy, use or disclose them without authorisation. If you are not the intended recipient please contact the sender as soon as possible by return e-mail and then please delete both messages. This notice should not be removed.