Oh, I forgot one important detail: I have protrusion enabled, so I need protrusion for the main text (argument #2). This works with the low-level approach, but not with the other ones, I think. On Nov 9, 2010, at 10:12 AM, Thomas A. Schmitz wrote:
Hi all,
I need a somewhat unusual vertical setup for typesetting a play. Here is some ASCII art that may show what I want:
SP XXXXXXXXXXX XXXXXX 15
So: beginning of the line has a fixed space for the abbreviation of the speaker (if there is a speaker designation attached to the line). Then comes the line itself, which fills ca. 80 % amount of the linewidth and needs to be broken as a normal paragraph if it is longer than this space. At the end of the line, another fixed space with the line number, flushright; this number needs to be at the bottom of the paragraph. I have tried three different approaches, but all of them have some problem. One thing to keep in mind: there will be around 3000 such lines, so this might affect processing time. So here are the three approaches:
1. low-level, with boxes. Problem: messes up vertical spacing. (I have set the interlinespace to an absurd dimension because this shows the problem in a clearer way). I tried using \strut s at a few places, but couldn't get this to work:
2. tabulate: nice, but I can't get the number to be aligned to the bottom. Is there any parameter or trick for that?
3. baseline between columns is not aligned (maybe I'm missing the right parameter?), extra vertical space is added.
Eagerly awaiting your suggestions!
All best
Thomas
\setupbodyfont[termes,12pt]
\setupinterlinespace[line=4.5ex]
\startbuffer \MyLine{5}{Fa.}{This line is short.}
\MyLine{10}{Me.}{This line is slightly longer, so it will be broken into two lines in the output.}
\MyLine{15}{Fa.}{This line is short again.}
\MyLine{20}{Me.}{Another longer line that will be broken into two lines in the output.}
\MyLine{25}{Fa.}{And the last line.} \stopbuffer \starttext
\def\MyLine#1#2#3% {\setbox\scratchbox\vbox{\hsize=6cm #3}\hbox{\vbox to \ht\scratchbox{\hbox to 1cm{\bf #2}\vfill}\vbox{\hsize=6cm #3\par}\vbox to \ht\scratchbox{\vfill\hbox to 1cm{\hfill #1}}}}
\getbuffer
\definetabulate[ELine][|Blw(0.65cm)|p(5.8cm)|rw(0.8cm)|]
\def\MyLine#1#2#3% {\startELine \NC #2 \NC #3 \NC #1 \NR \stopELine}
\getbuffer
\setupTABLE[column][1][width=1cm,frame=off,offset=0pt,,align={right}] \setupTABLE[column][2][width=6cm,frame=off,align={normal}] \setupTABLE[column][3][width=1cm,frame=off,align={left,low}]
\def\MyLine#1#2#3% {\bTABLE \bTR\bTD \bf #2 \eTD\bTD #3 \eTD\bTD #1 \eTD \eTR \eTABLE}
\getbuffer
\stoptext
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________