2007/10/10, Peter Rolf
Hi Peter,
MASON Peter J schrieb:
I'm trying to layout a grid of bullets. The results isn't the expected one. Perhaps someone could offer help here? Thanks.
Here's the sort of thing I'm doing ....
\setuplayout[leftmargin=0pt, leftmargindistance=0pt, backspace=0pt, rightmargin=0pt, rightmargindistance=0pt, cutspace=0pt, width=middle, topspace=0pt, header=0pt, headerdistance=0pt, footer=0pt, footerdistance=0pt, bottomspace=0pt, height=middle]
%\showlayout
\starttext \setuppositioning[unit=cm] \startpositioning \newcount\Row
\Row = 0 \loop { ^^ \newcount\Col
^^
\Col = 0 \loop \position(\Col, \Row) {$\bullet$} \ifnum\Col < 14 \advance\Col by 1 \repeat }
^^
\ifnum\Row < 36 \advance\Row by 1 \repeat \stoppositioning \stoptext
You introduce "spurious spaces" (line break sometimes adds a space) in you loops. See
http://tug.ctan.org/tex-archive/info/texbytopic/
if you want to learn more about it.
\starttext \setuppositioning[unit=cm] \startpositioning \newcount\Row \newcount\Col
\Row=0 \dorecurse{36} {\Col=0 \dorecurse{14} {\position(\Col,\Row){$\bullet$} \advance\Col by 1 }% \advance\Row by 1 } \stoppositioning \stoptext
Remove the comment sign behind the inner loop and see what happens.
Also see
http://wiki.contextgarden.net/System_Macros/Loops_and_Recursion
for the nicer ConTeXt loop macros.
Best wishes, Peter
Hi, there is smarter and better solution than loop for doing this work, you can use leaders. I prefer myself xledaers in this example (alternative b). \defineoverlay[PageGrid][\PageGrid] \setupbackgrounds[page][background=PageGrid,offset=5mm] \starttext % alternative a: \def\PageGrid {\setbox\scratchbox\hbox to\dimexpr\paperwidth-1cm\relax {\leaders\hbox to 1cm{\hss$\bullet$\hss}\hfill}% \vbox to\dimexpr\paperheight-1cm\relax {\leaders\vbox to 1cm{\vss\box\scratchbox\vss}\vfill}} \page[empty] % alternative b: \def\PageGrid {\setbox\scratchbox\hbox to\dimexpr\paperwidth-1cm\relax {\xleaders\hbox to 1cm{\hss$\bullet$\hss}\hfill}% \vbox to\dimexpr\paperheight-1cm\relax {\xleaders\vbox to 1cm{\vss\box\scratchbox\vss}\vfill}} \page[empty] % alternative c: \def\PageGrid {\setbox\scratchbox\hbox to\dimexpr\paperwidth-1cm\relax {\cleaders\hbox to 1cm{\hss$\bullet$\hss}\hfill}% \vbox to\dimexpr\paperheight-1cm\relax {\cleaders\vbox to 1cm{\vss\box\scratchbox\vss}\vfill}} \page[empty] \stoptext Wolfgang