Skip to content

Commit

Permalink
Reset graphics state at start of a drawing
Browse files Browse the repository at this point in the history
This is (likely) the most predictable approach for drawing-in-drawing
cases, such as when a drawing appears in a box which is itself in a
drawing.

An alternative approach would be to do the reset when a box is included.
Likely this needs some discussion.

See https://tex.stackexchange.com/questions/420645/ for background here.
  • Loading branch information
josephwright committed Mar 17, 2018
1 parent 585fc66 commit 5701167
Show file tree
Hide file tree
Showing 14 changed files with 829 additions and 0 deletions.
5 changes: 5 additions & 0 deletions l3experimental/l3draw/l3draw-scopes.dtx
Expand Up @@ -129,6 +129,11 @@
\@@_softpath_clear:
\draw_linewidth:n { \l_draw_default_linewidth_dim }
\draw_color:n { . }
\draw_nonzero_rule:
\draw_cap_butt:
\draw_join_miter:
\draw_miterlimit:n { 10 }
\draw_dash_pattern:nn { } { 0cm }
}
\cs_new_protected:Npn \draw_end:
{
Expand Down
8 changes: 8 additions & 0 deletions l3experimental/l3draw/l3draw.dtx
Expand Up @@ -165,6 +165,14 @@
% drawing using |\int_step_function:nnnn| or similar. On the other hand,
% text should not be included directly in drawings, but should rather be
% inserted using the appropriate \pkg{l3draw} command.
%
% The drawing environment sets the following standard behaviors
% \begin{itemize}
% \item Non-zero rule for fill overlaps
% \item Butt caps for lines
% \item Mitering for line joins with a miter factor of $10$
% \item Solid line strokes
% \end{itemize}
% \end{function}
%
% Within a drawing, there are different ways of referring to a position.
Expand Down
116 changes: 116 additions & 0 deletions l3experimental/l3draw/testfiles/m3draw003.ptex.tlg
Expand Up @@ -11,6 +11,10 @@ TEST 1: \draw_path_moveto:n
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 9.96265 9.96265 m}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -30,6 +34,10 @@ TEST 2: \draw_path_lineto:n
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 9.96265 9.96265 l}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -49,6 +57,10 @@ TEST 3: \draw_path_curveto:nnn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 28.34647 28.34647 28.34647 28.34647 56.69292 c}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -68,6 +80,10 @@ TEST 4: \draw_path_close:
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0.99626 0 l}
...\special{pdf:literal 0.99626 0.99626 l}
Expand All @@ -91,6 +107,10 @@ TEST 5: \draw_path_curveto:nnn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 18.89764 19.22972 28.34647 37.79527 28.34647 56.69292 c}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -110,6 +130,10 @@ TEST 6: \draw_path_arc:nnn (n)
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 31.31062 -25.38228 56.69292 -56.69292 56.69292 c}
...\special{pdf:literal S}
Expand All @@ -126,6 +150,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 31.31062 -25.38228 56.69292 -56.69292 56.69292 c}
...\special{pdf:literal -88.00354 56.69292 -113.38583 31.31064 -113.38583 0 c}
Expand All @@ -143,6 +171,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 31.31062 -25.38228 56.69292 -56.69292 56.69292 c}
...\special{pdf:literal -88.00354 56.69292 -113.38583 31.31064 -113.38583 0 c}
Expand All @@ -161,6 +193,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 31.31062 -25.38228 56.69292 -56.69292 56.69292 c}
...\special{pdf:literal -88.00354 56.69292 -113.38583 31.31064 -113.38583 0 c}
Expand All @@ -180,6 +216,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 -31.31062 -25.38228 -56.69292 -56.69292 -56.69292 c}
...\special{pdf:literal S}
Expand All @@ -196,6 +236,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 -31.31062 -25.38228 -56.69292 -56.69292 -56.69292 c}
...\special{pdf:literal -88.00354 -56.69292 -113.38583 -31.31064 -113.38583 0 c}
Expand All @@ -213,6 +257,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 -31.31062 -25.38228 -56.69292 -56.69292 -56.69292 c}
...\special{pdf:literal -88.00354 -56.69292 -113.38583 -31.31064 -113.38583 0 c}
Expand All @@ -231,6 +279,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 -31.31062 -25.38228 -56.69292 -56.69292 -56.69292 c}
...\special{pdf:literal -88.00354 -56.69292 -113.38583 -31.31064 -113.38583 0 c}
Expand All @@ -250,6 +302,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 31.31062 -12.69115 56.69292 -28.34647 56.69292 c}
...\special{pdf:literal S}
Expand All @@ -270,6 +326,10 @@ TEST 7: \draw_path_arc_axes:nnnn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal -28.34647 88.00356 -53.72874 113.38583 -85.03938 113.3858\ETC.}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -289,6 +349,10 @@ TEST 8: \draw_path_ellipse:nnn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 1.99252 1.99252 m}
...\special{pdf:literal 0.89209 3.09297 -0.44603 3.53902 -0.99626 2.98878 c}
...\special{pdf:literal -1.5465 2.43857 -1.10045 1.10045 0 0 c}
Expand All @@ -310,6 +374,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 70.86615 0 m}
...\special{pdf:literal 70.86615 15.65532 51.82942 28.34647 28.34647 28.34647 c}
...\special{pdf:literal 4.86348 28.34647 -14.17323 15.65532 -14.17323 0 c}
Expand All @@ -335,6 +403,10 @@ TEST 9: \draw_path_circle:nn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 86.03563 0.99626 m}
...\special{pdf:literal 86.03563 47.96222 47.96222 86.03563 0.99626 86.03563 c}
...\special{pdf:literal -45.96968 86.03563 -84.0431 47.96222 -84.0431 0.99626 c}
Expand All @@ -360,6 +432,10 @@ TEST 10: \draw_path_rectangle:nn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 56.69292 56.69292 28.34647 28.34647 re}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -375,6 +451,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 226.77168 85.03938 m}
...\special{pdf:literal 198.42522 85.03938 l}
...\special{pdf:literal 170.07875 56.69292 l}
Expand All @@ -395,6 +475,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 83.04684 85.03938 m}
...\special{pdf:literal 58.68544 85.03938 l}
...\special{pdf:literal 57.585 85.03938 56.69292 84.1473 56.69292 83.04684 c}
Expand All @@ -420,6 +504,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 56.69292 56.69292 28.34647 28.34647 re}
...\special{pdf:literal S}
...\special{x:grestore}
Expand All @@ -439,6 +527,10 @@ TEST 11: \draw_path_grid:nn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 141.73228 l}
...\special{pdf:literal 28.34645 0 m}
Expand Down Expand Up @@ -477,6 +569,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 141.73228 l}
...\special{pdf:literal 28.34645 0 m}
Expand Down Expand Up @@ -515,6 +611,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 141.73228 l}
...\special{pdf:literal 28.34645 0 m}
Expand Down Expand Up @@ -553,6 +653,10 @@ l. ... }
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 0 m}
...\special{pdf:literal 0 141.73228 l}
...\special{pdf:literal 28.34645 0 m}
Expand Down Expand Up @@ -589,6 +693,10 @@ TEST 12: \draw_path_canvas_moveto:n
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 9.96265 9.96265 m}
...\special{pdf:literal 9.96265 9.96265 m}
...\special{pdf:literal S}
Expand All @@ -609,6 +717,10 @@ TEST 13: \draw_path_canvas_lineto:n
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 9.96265 9.96265 l}
...\special{pdf:literal 9.96265 9.96265 l}
...\special{pdf:literal S}
Expand All @@ -629,6 +741,10 @@ TEST 14: \draw_path_canvas_curveto:nnn
...\special{x:gsave}
...\special{pdf:literal 0.3985 w}
...\special{color push gray 0}
...\special{pdf:literal 0 J}
...\special{pdf:literal 0 j}
...\special{pdf:literal 10 M}
...\special{pdf:literal [] 0 d}
...\special{pdf:literal 0 28.34647 28.34647 28.34647 28.34647 56.69292 c}
...\special{pdf:literal 0 28.34647 28.34647 28.34647 28.34647 56.69292 c}
...\special{pdf:literal S}
Expand Down

0 comments on commit 5701167

Please sign in to comment.