使用 TikZ 和 psfrag

使用 TikZ 和 psfrag

我使用 psfrag 将图形中的标签替换为 LaTeX 文本和公式。最近我想更进一步,假设我有一个图形,其中有两个标签“a”和“b”,我想有一个从“a”到“b”的漂亮箭头,所以我的想法是使用 psfrag 创建节点

\psfrag{a}{\tikz[remember picture]\node (A){a};}
\psfrag{b}{\tikz[remember picture]\node (B){b};}

然后导入图形并添加箭头

\tikz \draw[->, remember picture] (A) -- (B) ;

不用说(?)它不起作用.....psfrag 在后台做了一些聪明的事情,但是创建的节点以后对我来说不可用......

关于如何使 psfrag 工作或获得类似的功能(或多或少在我的框架内)有什么想法吗?

答案1

另一种方法是打开 EPS 文件inkscape然后使用“EPS+LaTeX”选项将其保存为 EPS,这将创建一个包含所有文本和对裸图的引用的 tex 文件。然后在主文档中使用以下命令调用该 tex 文件\input

下面是使用我刚刚在 inkscape 中打开并保存的文件的示例:

\documentclass{minimal}

\usepackage{graphicx}
\usepackage{tikz}
\begin{document}

% Inkscape encloses all text in \smash{}, so we'll use that to automate creating nodes
% Not sure if that's safe (do other things routinely call \smash{}?)
\let\oldsmash\smash
\renewcommand{\smash}[1]{\oldsmash{\tikz[remember picture] \node (#1) {#1};}}

\tikzstyle{every picture} = [remember picture]

\input{figure.eps_tex}

\tikz[overlay,->] \draw (a) -- (b);

\end{document}

答案2

PSTricks可以完全按照您的意愿行事。Tobias Nähring 在一个演讲。我知道您特意要求TikZ,但我想也许有PSTricks解决方案总比没有好。

\documentclass{minimal}

\usepackage{graphicx}
\usepackage{psfrag}
\usepackage{pstricks}
\usepackage{pst-node}
\begin{document}

\psfrag{a}{\rnode{A}{A}}
\psfrag{b}{\rnode{B}{B}}

\begin{pspicture}
\rput(0,10)\includegraphics[width=8cm]{figure.eps}
\ncline[nodesep=3pt]{<->}{A}{B}
\end{pspicture}

\end{document}

使用 PSTricks 连接 EPS 文件中的两个点

相关内容