On 3/24/2018 6:13 AM, Philip Taylor (RHUoL) wrote:
maxwell wrote:
I'm just finishing up a project that involved typesetting text in
several languages, while outputting an XML file that defined in X/Y
coordinates the position and size of the bounding box surrounding each
line of text in the PDF. [...] [I]s there any way I could have done
something similar using xetex? That is, called another programming
language to output box positions and sizes. I suppose it's possible
to write to an XML file in xetex natively, but I'm not sure how I
could get the positions and sizes of boxes.
Is it possible that these three PdfTeX/XeTeX primitives might help :
*
\pdfsavepos
Saves the current location of the page in the typesetting stream.
*
\pdflastxpos
Retrieves the horizontal position saved by \pdfsavepos.
*
\pdflastypos
Retrieves the vertical position saved by \pdfsavepos.
Thanks--playing around last night, I found a way (I think) to do what I
wanted to do using the \zsavepos macro in the zref package. In case
anyone is interested, there's an example here:
https://tex.stackexchange.com/questions/10343/
What I still can't do is determine in xetex what the text contents of a
box is. I can do that in luatex; the Lua function nodeText() here--
https://tex.stackexchange.com/questions/228312/
does that. I don't think there's an equivalent in xetex.
Combining luatex and xetex, I think I have an (untested) solution to my
problem: first running my document through luatex to get the line boxes
and their contents, and then running it through xetex to get the proper
shaping, telling it where to put each line box and what to put in the
box. Very much a kludge, and I suppose the output won't be perfectly
justified, but for our purposes that won't matter.
--
Mike Maxwell
"My definition of an interesting universe is
one that has the capacity to study itself."
--Stephen Eastmond
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex