TikZ 路径语句,例如
\path[draw] (0,0) -- (1,0);
通常不是线性渲染的。TikZ“引擎”将其分解,移动其各个部分,最后以某种顺序渲染它们,这种顺序可能与 TeX 手稿中的文本组织不太相似。
如何查看 TikZ 引擎发出的最终、确定、固定顺序的基本层和/或系统层命令序列?如果无法按路径查看此序列,那么是否可以查看整个 TikZ 图片生成的序列?
\specials
我还愿意在图片翻译的列表上做出“妥协” ,而不是在基本层/系统层命令的列表上。
或者,是否可以将 应用于\showbox
TikZ 图片?或者,如果我明确将 TikZ 图片包装在 TeX 框中,然后将\showbox
其包装,它会列出 TikZ 图片的内部执行顺序吗?
\specials
作为最后的手段,我如何查看整个 TeX 手稿翻译的列表?
答案1
这里使用 TeX 代码的常用方法似乎适用:使用\tracingall
、\show
和。例如,如果我们采用建议的输入片段并将其制作成文档\showbox
,\showoutput
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path[draw] (0,0) -- (1,0);
\end{tikzpicture}
\end{document}
我们可以插入\showoutput
然后检查.log
(使用 pdfTeX)以找到图像归结为
.......\pdfliteral{q }
.......\glue 0.0
.......\pdfliteral{0.0 0.0 m }
.......\pdfliteral{28.3468 0.0 l }
.......\pdfliteral{S }
.......\pdfliteral{Q }
.......\glue 0.0 plus 1.0fil minus 1.0fil
......\pdfliteral{n }
......\pdfliteral{Q }
......\glue 0.0 plus 1.0fil minus 1.0fil
IE一些保存/恢复材料,真正的“实质”是设置线宽、移动到某个点并绘制一条线。这由以下支持:在结果中\tracingall
搜索例如\pgf@sys
\pgfsyssoftpath@movetotoken #1#2->\pgfsys@moveto {#1}{#2}
#1<-0.0pt
#2<-0.0pt
\pgfsys@moveto #1#2->\pgf@sys@bp {#1}\pgf@sys@bp {#2}\pgfsysprotocol@literal {m
}
#1<-0.0pt
#2<-0.0pt
和
\pgfsyssoftpath@linetotoken #1#2->\pgfsys@lineto {#1}{#2}
#1<-28.45274pt
#2<-0.0pt
\pgfsys@lineto #1#2->\pgf@sys@bp {#1}\pgf@sys@bp {#2}\pgfsysprotocol@literal {l
}
#1<-28.45274pt
#2<-0.0pt
我认为这一切都是相对可以预测的:阅读系统层很pgf
明显它会抽象出这样的基本概念。
对于这种类型的描摹,我建议\tracingall
在图片内部使用(减少行数),可能就在感兴趣的行之前。该\showoutput
命令以每页为基础工作,因此\end{document}
在单个单页文件之前的任何位置都可以。