可以指示 tikz 忽略所有文本和数学吗?

可以指示 tikz 忽略所有文本和数学吗?

假设您有一个现有的大型文档,其中包含许多tikzpicture数字。是否可以在序言中放入一些代码,以有效地关闭这些数字中的所有文本和数学运算?

(编辑:如果可以关闭数学模式内容就更好了,但我认为这太奢侈了。)

作为背景,我正在考虑tikzpicture以某种方式处理 s,将图形部分与文本/数学部分分开,以便最终在网页中使用。我会将每幅图像的图形部分处理成一个独立的 pdf,并用来pdf2svg创建一个 svg。然后我会使用 MathJax 将 svg 与文本/数学叠加(尽可能地,因为并非所有东西都能在 MathJax 中工作)。

答案1

如果你不使用pic、、和任何align其他花哨的功能,以下内容将删除节点中的所有文本,并将 TeX 代码打印到日志文件nodepartmatrix

如果您想使用这些功能,您需要输入\phantom更深的宏,但想法是一样的:\phantom这是最简单(有时是唯一)的方法来保持文本占用的空间,但不将任何文本输出到 PDF 文件。

你可能想读一下tikz.code.tex3636-4113 行,看看 TiZ 处理节点/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)

相关内容