
Hi Pavneet, I recommend avoiding the mod function. Just draw the two grids (major and minor) each with their own spacing and pen. I whole heatedly support converting TikZ to MetaPost! - Gavin \startreusableMPgraphic{graph} minor=2mm; % Minor lines, each every 2mm major=8mm; % Major lines, each every 4mm z1 = (0,0); % lower left corner % z2 = (2.75in,4.25in)-z1; % upper right corner z2 = (2.75in,4.25in)-z1;% upper right corner path v, h; v := z1--(x1,y2); % vertical line h := z1--(x2,y1); % horizontal line % Use light gray drawoptions(withcolor .4white); % Draw the minor grid with the very thin pen pickup pencircle scaled 0.1; for i=minor step minor until (x2-x1): draw v xshifted i; endfor; for i=minor step minor until (y2-y1): draw h yshifted i; endfor; % Draw the major grid with the thicker pen pickup pencircle scaled 0.3; for i=major step major until (x2-x1): draw v xshifted i; endfor; for i=major step major until (y2-y1): draw h yshifted i; endfor; \stopreusableMPgraphic
On Feb 18, 2025, at 3:28 PM, Pavneet Arora via ntg-context
wrote: I am in the process of converting a bunch of old TikZ notepaper templates to native ConTeXt and MetaPost. This is a part of a project to generate notebooks with documentation data and then blank pages appended to fill out full sheets, and then collated in a particular order for trimming and binding.
As such I rely on Imposition. I am having issues with the various techniques of trying to duplicate a MP graphic across the pages using \[start|stop]MPcode \[start|stop]useMPgraphic, etc. But that is a discussion for another time.
The method that I found to work was to use \[start|stop]reusableMPgraphic along with overlays
I am still struggling with some MetaPost code that works fine in standalone but not when included in a ConTeXt document.
With standalone MP, we get thicker lines on major increments as expected. When the same code is included in a ConTeXt document the thicker lines are only drawn up a certain number and then stop --- presumably the mod function returning a non-zero result when it really shouldn't?
Here are the MWEs:
ConTeXt % Paper size and layout {{{2 \definepapersize | [PocketPage] | [width=2.75in,height=4.25in]
\setuppapersize[PocketPage][letter,landscape] % }}}2
% MetaPost template for graph paper for pocket sized notebook (2.75" W x % 4.25in H). {{{2
\startreusableMPgraphic{graph} minor=2mm;| | % Minor lines, each every 2mm major=8mm;| | % Major lines, each every 4mm ┆ ┆ ┆ ┆ % major must be a multiple of minor
z1 = (0,0);| % lower left corner % z2 = (2.75in,4.25in)-z1;| % upper right corner z2 = (2.75in,4.25in)-z1;|% upper right corner
% Use the very thin pen pickup pencircle scaled 0.1;
% Draw the vertical lines for i=minor step minor until (y2-y1): ┆ if (i mod major)=0: ┆ ┆ pickup pencircle scaled 0.3; ┆ fi; ┆ draw (z1 shifted (0,i))--((x2,y1) shifted (0,i)) withcolor .4white; ┆ if (i mod major)=0: ┆ ┆ pickup pencircle scaled 0.1; ┆ fi; endfor;
% Draw the horizonal lines for i=minor step minor until (x2-x1): ┆ if (i mod major)=0: ┆ ┆ pickup pencircle scaled 0.3; ┆ fi; ┆ draw ( z1--(x1,y2) ) shifted (i,0) withcolor .4white; ┆ if (i mod major)=0: ┆ ┆ pickup pencircle scaled 0.1; ┆ fi; endfor;
\stopreusableMPgraphic
\defineoverlay[OLgraph][\useMPgraphic{graph}]
\setupbackgrounds[page][background=OLgraph] % }}}2
\starttext
hello.
\stoptext
<<<
Standalone MP beginfig(1)
margin=0mm; % Margin of the graph paper minor=2mm; % Minor lines, each every 1mm major=8mm; % Major lines, each every 10mm % major must be a multiple of minor
z1 = (margin,margin); % lower left corner z2 = (2.75in,4.25in)-z1; % upper right corner
% % Use the thick pen first % pickup pencircle scaled 0.5;
% % Draw the frame % draw z1--(x1,y2)--z2--(x2,y1)--cycle withcolor .5white;
% Use the very thin pen pickup pencircle scaled 0.1;
% Draw the vertical lines for i=minor step minor until (y2-y1-minor): if (i mod major)=0: pickup pencircle scaled 0.3; fi; draw (z1 shifted (0,i))--((x2,y1) shifted (0,i)) withcolor .4white; if (i mod major)=0: pickup pencircle scaled 0.1; fi; endfor;
% Draw the horizonal lines for i=minor step minor until (x2-x1-minor): if (i mod major)=0: pickup pencircle scaled 0.3; fi; draw ( z1--(x1,y2) ) shifted (i,0) withcolor .4white; if (i mod major)=0: pickup pencircle scaled 0.1; fi; endfor;
endfig; end;
<<<
advTHANKance
-- Pavneet Arora m: +1 647-406-6843 Waroc Informatik e: pavneet_arora@waroc.com ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___________________________________________________________________________________