![psfrag 有什么作用?它可以与 pdflatex 一起工作吗?](https://linux22.com/image/300657/psfrag%20%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F%E5%AE%83%E5%8F%AF%E4%BB%A5%E4%B8%8E%20pdflatex%20%E4%B8%80%E8%B5%B7%E5%B7%A5%E4%BD%9C%E5%90%97%EF%BC%9F.png)
我正在获取一份迄今为止由其他人创建的文件,但该人无法接受询问。
我模糊地知道这样做的目的是什么:
\clearpage
\begin{figure}[h!]
\psfrag{F}{$F_c$}
\psfrag{M}{$M_0$}
\psfrag{V}{$V$}
\psfrag{Y}{$Y$}
\psfrag{X}{$X$}
\psfrag{T}{Thin film}
\psfrag{A}{Adhesive layer}
\psfrag{R}{Rigid surface}
\includegraphics{figure1a}
\end{figure}
(还有 2 个图形,分别是 b 和 c)
“图 1 示意图.....”为页面底部的标题。
我可以latex
毫无错误地完成它,但是当我尝试pdfltex
...它时,我收到一条错误消息,指出:
I could not locate the file with any of the extensions: .png, .pdf, .jpg, .mps, .jpg, .jbig2, .jb, .PNG, .PDF, .JPG, .JPEG, .JBIG2, .JB2 Try typing <return> to proceed.
之后latex
,xdvi
文件显示所需的图形,但页面左侧的文本被挤压,图形左侧部分显示“F_c”(正确格式)到连续行上的 X,然后是“薄膜,粘合层”,然后是“刚性表面”。图形右侧是图形的指示字母 (a)。
就在图的左边距上方,“F_c”是一个截断词,以“g”结尾,我认为是“g 替换”。
当我pdflatex
尝试创建 PDF 文件时,出现上述错误消息,我只能浏览它。生成的 PDF 是空白页,除了页面中心下方一列中的图形字母标识 (a)、(b) 和 (c),页面底部有“图 1...”标题。
Figure1a 与 figure1a.fig 以及 figure1a.eps 文档文件位于同一目录中。
我从 Leslie Lamport 的书中获得了一些帮助。
你能告诉我这项psfrag
业务的具体内容吗?
我曾经将图形导入自己的文档中,但不是这种方式。如果我能创建更好的东西并在过程中学习新技术,我讨厌重新设计这个。
答案1
这psfrag 包用于从.eps
图形中删除标签和其他文本,并用标签替换它们LaTeX
。这可用于确保图形中的字体与文档正文中的字体一致,无论您的图形软件是否可以访问它们。它对于插入公式和符号特别有用,因为文件中的标签eps
可以用(或多或少)任意LaTeX
代码替换。在此示例中,单词“typography”被当前字体中的斜体版本替换。
\documentclass{article}
\usepackage{graphicx}
\usepackage{psfrag}
\begin{document}
\begin{center}
\includegraphics[width=70pt]{small}
\end{center}
\begin{center}
\psfrag{typography}{\textit{typography}}
\includegraphics[width=70pt]{small}
\end{center}
\end{document}
文件“small.eps”如下:
%!PS-Adobe-2.0 EPSF-2.0
%%Title: test.eps
%%BoundingBox: 0 0 100 50
/Times-Roman findfont
15 scalefont
setfont
20 20 moveto
(typography) show
showpage
%EOF
但是,正如您所发现的,psfrag
只有通过 编译时才有效latex -> dvips -> ps2pdf
;它无法与 一起使用pdflatex
。有一个名为工具可以解决这个问题。如果启用了 shell escape,此版本的示例将与 一起使用pdflatex
。
\documentclass{article}
\usepackage{pstool}
\begin{document}
\begin{center}
\includegraphics[width=70pt]{small.eps}
\end{center}
\begin{center}
\psfragfig*[width=70pt]{small}{\psfrag{typography}{\textit{typography}}}
\end{center}
\end{document}
答案2
要将 psfrag 与 pdflatex 一起使用,首先要
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
在 pdflatex 编译中您应该像之前的文本一样添加“--shell-escape %.tex”。
之后你应该加载 auto-pst-pdf 和 psfrag
\documentclass[border={0pt 5pt 0pt 0pt}]{standalone}
\usepackage{graphicx}
\usepackage{auto-pst-pdf}
\usepackage{psfrag}
\begin{document}
\begin{psfrags}
\psfrag{G}{0.2}
\psfrag{H}{0.15}
\includegraphics[width=15cm,height=12cm]{aeee.eps}
\end{psfrags}
\end{document}