![在包含 \includegraphics 的 PDF 图像中使用 \ref](https://linux22.com/image/238362/%E5%9C%A8%E5%8C%85%E5%90%AB%20%5Cincludegraphics%20%E7%9A%84%20PDF%20%E5%9B%BE%E5%83%8F%E4%B8%AD%E4%BD%BF%E7%94%A8%20%5Cref.png)
我使用绘图工具(OmniGraffle)准备图形,将其导出为 PDF,然后将\includegraphics
其包含在我的 tex 文件中(使用 pdflatex 编译)。
\ref{thm:foobar}
其中一些图引用了文本中的定理。如果我可以在绘图工具中直接写“定理”,然后\ref{thm:foobar}
在编译过程中包含 PDF 文件时用实际数字替换,那就太好了。
这可能不太可能,但我想我还是尝试一下。
答案1
最简单的解决方案似乎就是overpic
包裹。
我也查看了该pstool
软件包。它允许您替换 EPS 文件中的文本,然后自动将其转换为 PDF 以供使用pdflatex
。但是,这仍然很麻烦,我无法pstool
使用我的 MacTeX 发行版。
答案2
如果你愿意走latex
-> dvips
->ps2pdf
路线,图形与 [ 软件包] 结合使用,提供了一个简单的解决方案psfrag
。下面的讨论不必在 Xfig 中完成。但是,使用 Xfig 最容易复制所示的概念。
假设它image.eps
是在 Xfig 中生成的,如下所示:
使用\psfrag{<tag>}{<LaTeX text>}
,您可以修改mylabel1
为image.eps
任何 LaTeX 命令,包括引用定理(比如说):
\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{psfrag}% http;//ctan.org/pkg/psfrag
\usepackage{hyperref}% http://ctan.org/pkg/hyperref
\newtheorem{theorem}{Theorem}% \begin{theorem}...\end{theorem}
\begin{document}
\begin{figure}[t]
\centering
\psfrag{mylabel1}{Theorem~\ref{thm:first}}%
\includegraphics{image}
\caption{This is a figure}
\end{figure}
\begin{theorem}
This is the first theorem. \label{thm:first}
\end{theorem}
\end{document}
这hyperref
包裹被添加来突出显示引用。
正如评论中提到的那样。没有正式的pdffrag
对应物psfrag
。但是,Xfig 提供了一种解决方法,通过xfigfrag
。然而,此开发已于 2009-11-28 停止。请参阅xfigfrag
自述关于如何使用此工具。
目前,pdffrag
存在一个实验形式pdfrack
包裹。虽然我还没有在需要引用的设置(或任何设置)中使用过它。
答案3
这个问题现在可以完美地解决了Inkscape使用--export-latex
选项。
图形中的文本将很好地保存在 latex 文件中,因此您可以对这些文本进行任何操作,例如添加引用。
您可能需要先在 Inkscape 中编辑图形,因为如果图形不是由 Inkscape 创建的,文本的位置可能不完美。
但是,推荐的包含导出图形的方法似乎有问题。\svgwidth
我不想定义自由变量,而是想用 resizebox 包装 pdf_tex 文件,如下所示:
\begin{figure}
\resizebox{\columnwidth}{!}{\input{testgraphic.pdf_tex}}
\end{figure}