tikz pgf 重复标签或节点内容导致在 pdf 中搜索时出现问题

tikz pgf 重复标签或节点内容导致在 pdf 中搜索时出现问题

我有一个脚本,可以创建 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 功能,所以我想避免切换文档格式。

相关内容