## 编译环境 操作系统 * [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

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 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。