ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Grid-keeping list (again)
@ 2007-04-12  9:21 Johannes Kuester
  2007-04-12 10:10 ` luigi scarso
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Johannes Kuester @ 2007-04-12  9:21 UTC (permalink / raw)
  To: mailing list for ConTeXt users

[-- Attachment #1: Type: text/plain, Size: 1479 bytes --]

Hello,

I'm still trying to typeset a "grid-keeping" list (or table).
Wolfgang Schuster supplied me off-list with the attached module.
This works fine except for one problem:

Only the first few lines are placed on the grid, then the grid is lost.

After the next pass (i.e. after the next "texmfstart texexec testfile"),
some more lines are placed on the grid.
(So I need many passes to typeset the complete list correctly).

Why? Any idea?

(I fiddled around with \synchronizegrid, \placeongrid, \moveongrid, and
\startlinecorrection \stoplinecorrection, but none of these seems to work.)

You could try the effect with the following example:

%%%%%%%%%%

\setuplayout[grid=yes, columns=2]
\showgrid
%\showstruts

\usemodule[gridlist]

\starttext

\startcolumns[n=2, balance=no]
%% (columns are not necessary to show the effect)

\dorecurse{20}{
  \zeichen{0001}{a}{first letter}{}%
  \zeichen{0002}{b}{second letter}{}%
  \zeichen{0002}{c}{third letter, this one has a longer entry
                    which needs more than one line}{}%
}

\stopcolumns

\stoptext

%%%%%%%%%%


(This should result in an annotated list of mathematical symbols,
showing the Unicode number, the math symbol, and some explanation (and
where the explanation could need more than one line); quite similar to
the list I published in "Detailtypografie" (2nd ed. 2004), but for
another -- quite pressing -- project.)


Johannes

-- 
Johannes Kuester
typoma

mailto:jk@typoma.com
http://www.typoma.com

[-- Attachment #2: t-gridlist.tex --]
[-- Type: text/x-tex, Size: 2271 bytes --]

\startmodule[gridlist]

\unprotect

\def\????ze{@@@@ze} % ZEichen

\newcount\zeichencolumn

\def\setupzeichen
  {\dodoubleempty\dosetupzeichen}

\def\dosetupzeichen[#1][#2]%
  {\ifsecondargument
     \dodosetupzeichen[#1][#2]
   \else
     \dodosetupzeichen[\v!line][#1]
   \fi}

\def\dodosetupzeichen[#1][#2]%
  {\def\docommand##1%
    {\getparameters[\????ze##1][#2]}
   \processcommalist[#1]\docommand}

\def\zeichenparameter#1%
  {\csname
     \ifcsname\????ze\number\zeichencolumn#1\endcsname
       \????ze\number\zeichencolumn
     \else
       \????ze\v!line
     \fi
   #1\endcsname}

\definehspace[myindent][10pt]

\def\startunisym%
  {\bgroup%
   \setbox\scratchbox\hbox\bgroup}

\def\stopunisym%
  {\egroup%
   \raise.3ex\hbox{\box\scratchbox}
   \egroup}

\def\zeichen%
  {\ignorespaces\permitspacesbetweengroups
   \doquadruplegroupempty\dozeichen}

\def\dozeichen#1#2#3#4%
  {\begingroup
   \zeichenparameter\c!before
   \zeichencolumn\zerocount
   \hbox\!!to\zeichenparameter\c!textwidth
     {\zeichenzelle{#1}%
      \zeichenzelle{#2}%
      \hfill
      \zeichenzelle{#3}}%
   \zeichenparameter\c!after
   \endgroup}


\def\zeichenzelle#1%
  {\advance\zeichencolumn\plusone
   \hbox
     {\vtop
        {\hsize\zeichenparameter\c!width
         \zeichenparameter\c!before
         \begstrut
           \dostartattributes{\????ze\number\zeichencolumn}\c!style\c!color
           \zeichenparameter\c!left
             #1
           \zeichenparameter\c!right
           \dostopattributes
         \endstrut
         \zeichenparameter\c!after}}}

\setupzeichen
  [\c!textwidth=63.8833mm,%
   \c!before=\noindenting\synchronizegrid,%
   \c!after=\synchronizegrid,%
  ]

\setupzeichen
  [1,2,3,4]
  [\c!before=,
   \c!after=,
   \c!left=,
   \c!right=]

\setupzeichen
  [1]
  [\c!width=6.5mm,
   \c!left=\startunisym,
   \c!right=\stopunisym,
   \c!align=right,
   \c!before=\raggedright,
   \c!after=,   
   \c!style={\switchtobodyfont[6.8pt]\tt\bf}]

\setupzeichen
  [2]
  [\c!width=7.5mm,
   \c!left=$,
   \c!right=$,
   \c!before=\raggedcenter,
   \c!style={\switchtobodyfont[9.6pt]}]

\setupzeichen
  [3]
  [\c!width=49.883mm,
   \c!style={\switchtobodyfont[8.4pt]},
   \c!before=\hangindent10pt\hangafter1\raggedright]

\protect 
\stopmodule
\endinput

[-- Attachment #3: Type: text/plain, Size: 139 bytes --]

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2007-04-13 14:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-12  9:21 Grid-keeping list (again) Johannes Kuester
2007-04-12 10:10 ` luigi scarso
2007-04-12 11:53   ` Johannes Kuester
2007-04-12 12:25     ` Hans Hagen
2007-04-12 12:50       ` luigi scarso
2007-04-12 11:46 ` Wolfgang Schuster
2007-04-12 12:44   ` Johannes Kuester
2007-04-12 22:06 ` luigi scarso
2007-04-13  9:13   ` Johannes Kuester
2007-04-13  9:33     ` luigi scarso
2007-04-13 10:04       ` luigi scarso
2007-04-13 14:12       ` Johannes Kuester
2007-04-13 11:25     ` Hans Hagen
2007-04-13 14:04       ` Johannes Kuester

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).