提问于:
浏览数:
1966
## 编译环境
操作系统
* [x] Windows 7/8/10
* [ ] macOS
* [ ] Linux
Tex发行版
* [x] TexLive 2020
* [ ] MikTeX `版本号`
* [ ] CTeX
## 我的问题
用 `psfrag` 宏包替换 EPS 中的文字,不生效
结果:
![](https://wenda.latexstudio.net/data/attach/200830/RMpFng79.png)
MWE:
```latex
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{psfrag}
\begin{document}
第一段。
\begin{center}
\psfrag{abcdefg}{$\sin{a}$}
\includegraphics[width=5cm]{test1.eps}
\end{center}
第二段。
\begin{center}
\psfrag{abc}{$\sin{a}$}
\includegraphics[width=5cm]{example.eps}
\end{center}
\end{document}
```
[test1.eps](http://pic.frank.xin/test1.eps)
[example.eps](http://pic.frank.xin/example.eps)
其中 `test1.eps` 是用 GIMP 生成的,其中的文字都是“画”出来的,不能替换是正常现象,但是 `example.eps` 是用 MATLAB 导出的,用文本方式打开之后可以搜索到 `(abc) t`,但是也不能替换,请问大家为什么?没有在 TeXLive 2019 测试过,不知道 2019 能不能行
1 回答
1
Psfrag包很老了,只支持 latex+dvips+pspdf 这种编译方式,其他都不行,所以用ctexart配置中文字体很麻烦。别的一些改进方案,比如 `pstool`,`psfragx`,也挺有局限性的。
一种方案是专门就这张图做文本替换
```
\documentclass{standalone}
\usepackage{graphicx}
\usepackage{psfrag}
\begin{document}
\psfrag{abc}{$\sin{a}$}%
\includegraphics[width=5cm]{example.eps}
\end{document}
```
用 latex+dvips+pspdf编译上面的代码生成pdf图片代替 `example.eps` 。
另一种思路是放弃`psfrag`,比如可以用 `overpic` 定点覆盖,或者是更高级的 `tikz` 操作。
-
可以了,非常感谢! – nygNsEsvQdp7 2020-09-01 09:36 回复
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。