假设您有一个现有的大型文档,其中包含许多tikzpicture
数字。是否可以在序言中放入一些代码,以有效地关闭这些数字中的所有文本和数学运算?
(编辑:如果可以关闭数学模式内容就更好了,但我认为这太奢侈了。)
作为背景,我正在考虑tikzpicture
以某种方式处理 s,将图形部分与文本/数学部分分开,以便最终在网页中使用。我会将每幅图像的图形部分处理成一个独立的 pdf,并用来pdf2svg
创建一个 svg。然后我会使用 MathJax 将 svg 与文本/数学叠加(尽可能地,因为并非所有东西都能在 MathJax 中工作)。
答案1
如果你不使用pic
、、和任何align
其他花哨的功能,以下内容将删除节点中的所有文本,并将 TeX 代码打印到日志文件nodepart
matrix
如果您想使用这些功能,您需要输入\phantom
更深的宏,但想法是一样的:\phantom
这是最简单(有时是唯一)的方法来保持文本占用的空间,但不将任何文本输出到 PDF 文件。
你可能想读一下tikz.code.tex
3636-4113 行,看看 Ti钾Z 处理节点/pic/align/nodepart/matrix。
\documentclass[border=9,tikz]{standalone}
\begin{document}
\makeatletter
\def\tikz@fig@main#1{%
\message{^^J^^Jnode content:\detokenize{#1}^^J^^J}%
\tikz@@fig@main\phantom{#1}\egroup%
}
\tikz\node[draw]{normal text};
\tikz\node[draw]{math formula $1+2+4+\cdots+2^n=2^{n+1}-1$};
\end{document}
PDF 是
.log 是
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex 2017.4.5) 22 APR 2017 16:32 ... (omitted) node content:normal text [1 {/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] node content:math formula $1+2+4+\cdots +2^n=2^{n+1}-1$ ... (omitted) PDF statistics: 14 PDF objects out of 1000 (max. 8388607) 9 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 500000) 13 words of extra memory for PDF output out of 10000 (max. 10000000)