我有一个脚本,可以创建 tikzpicture,其中一些节点具有相同的标签,并创建一个 pdf。如果我的脚本连续创建两个具有相同标签的节点,即使它们位于图形的不同部分,我在搜索 pdf 时也只能找到两个标签中的一个。我尝试了几种不同的 pdf 查看器,但都存在同样的问题。但是,如果我在两个节点之间插入具有唯一标签或内容的第三个节点,搜索就会按预期进行。
如果我有重复的节点内容,也会发生同样的事情,大概是因为标签实际上就是这样工作的。另外,请注意,以不同的方式命名节点并不重要。
例如,在这种情况下,搜索只会找到两个节点中的一个:
\documentclass{letter}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\node (a) at (0, 0) {A};
\node (b) at (3, -8) {A};
\end{tikzpicture}
\end{document}
这里也会发生同样的事情,因为中间的节点没有内容:
\documentclass{letter}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\node (a) at (0, 0) {A};
\node (c) at (0, 1) {};
\node (b) at (3, -8) {A};
\end{tikzpicture}
\end{document}
更糟糕的是,由于第一个节点以 A 开头,因此搜索将找不到第二个节点,尽管它们的名称并不相同。
\documentclass{letter}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\node (a) at (0, 0) {AC};
\node (b) at (3, -8) {A};
\end{tikzpicture}
\end{document}
而在这种情况下,搜索将单独找到每个 A。
\documentclass{letter}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\node (a) at (0, 0) {A};
\node (c) at (0, 1) {B};
\node (b) at (3, -8) {A};
\end{tikzpicture}
\end{document}
以下是 \listpackages 的结果
*File List*
letter.cls 2014/09/29 v1.2z Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
pgfplots.sty 2017/06/05 v1.15 Data Visualization (1.15)
graphicx.sty 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
graphics.sty 2017/04/14 v1.1b Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
infwarerr.sty 2016/05/16 v1.4 Providing info/warning/error messages (HO)
ltxcmds.sty 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
tikz.sty 2015/08/07 v3.0.1 (rcs-revision 1.151)
pgf.sty 2015/08/07 v3.0.1 (rcs-revision 1.15)
pgfrcs.sty 2015/08/07 v3.0.1 (rcs-revision 1.31)
everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS)
pgfrcs.code.tex
pgfcore.sty 2010/04/11 v3.0.1 (rcs-revision 1.7)
pgfsys.sty 2014/07/09 v3.0.1 (rcs-revision 1.48)
pgfsys.code.tex
pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
xcolor.sty 2016/05/11 v2.12 LaTeX color extensions (UK)
color.cfg 2016/01/02 v1.6 sample color configuration
pgfcore.code.tex
pgfcomp-version-0-65.sty 2007/07/03 v3.0.1 (rcs-revision 1.7)
pgfcomp-version-1-18.sty 2007/07/23 v3.0.1 (rcs-revision 1.1)
pgffor.sty 2013/12/13 v3.0.1 (rcs-revision 1.25)
pgfkeys.sty
pgfkeys.code.tex
pgfmath.sty
pgfmath.code.tex
pgffor.code.tex
tikz.code.tex
supp-pdf.mkii
pdftexcmds.sty 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO)
ifluatex.sty 2016/05/16 v1.4 Provides the ifluatex switch (HO)
ifpdf.sty 2017/03/15 v3.2 Provides the ifpdf switch
epstopdf-base.sty 2016/05/15 v2.6 Base part for package epstopdf
grfext.sty 2016/05/16 v1.2 Manage graphics extensions (HO)
kvdefinekeys.sty 2016/05/16 v1.4 Define keys (HO)
kvoptions.sty 2016/05/16 v3.12 Key value format for package options (HO)
kvsetkeys.sty 2016/05/16 v1.17 Key value parser (HO)
etexcmds.sty 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
现在,我的脚本可以捕获具有相同标签的连续节点,并在它们之间插入不可见的垃圾节点。为了简单起见,我希望按字母顺序排列,并在出现问题时帮助我调试生成的 tex 文件。但是,不可见的垃圾节点仍然需要具有可打印字符,这意味着搜索可能会找到它们,我宁愿不发生这种情况。此外,不可见的垃圾节点显然需要唯一的内容才能可靠地工作。
除了让脚本随机排列节点以确保它们不按字母顺序排列,或者插入实际上不需要的额外节点之外,还有其他选择吗?我甚至不知道这是 tikz 问题还是 pdf 问题,但由于我正在使用其他一些 pdf 功能,所以我想避免切换文档格式。