chemnum 能否替换任何 eps 文件中的 TMP-Tags(例如 Origin)?如果可以,如何操作?

chemnum 能否替换任何 eps 文件中的 TMP-Tags(例如 Origin)?如果可以,如何操作?

我在 Windows 10 上使用 Origin 和 TeXStudio 为实验报告绘制多张图表。如果 chemnum 能够像在 ChemDraw 的 eps 方案中那样替换 Origin 导出的 eps 文件中的化合物 TMP 标签(此处在图表旁边的图例内,参见附件),那将非常有帮助。显然,仅使用 TMP 标签的 Origin eps 文件是不可能实现的,即使它在编辑器中打开时显示为明文。我该如何实现呢?提前谢谢您!

我正在运行 MiKTeX-pdfTeX 2.9.4535 (1.40.13) 和 txs:///latex | txs:///dvips | txs:///ps2pdf | txs:///view-pdf 作为 TeXStudio 中的编译器命令。

eps 文件:https://www.dropbox.com/s/nscrtatpd4z6i95/origintest.eps?dl=0

最小工作示例:

\documentclass[12pt]{scrreprt}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{scrhack} % fixes koma float warning

\usepackage{graphicx}
\usepackage{epstopdf} 
\usepackage{chemnum}  
\usepackage{chemscheme}         

\begin{document}
Compounds \cmpd{aichtsc}, \cmpd{znclaichtsc}, \cmpd{znbraichtsc}
\begin{figure}
\replacecmpd{aichtsc}\replacecmpd{znclaichtsc}\replacecmpd{znbraichtscs}
\includegraphics{origintest}
\end{figure}
\end{document}

答案1

真正的问题是:可以psfrag替换 Origin 创建的 EPS 文件中的文本吗?chemnum它不会对 EPS 文件执行任何操作。相反,它会加载psfrag并将任务传递给其\psfrag{eps text}{LaTeX code}命令。

遗憾的是,使用 EPS 文件的最小示例似乎表明答案是否定的:

documentclass{article}
\usepackage{graphicx}
\usepackage{psfrag}

\begin{document}

\psfrag{TMP1}{xxx}
\includegraphics{origintest.eps}

\end{document}

在此处输入图片描述

没有替代品。不过,这并不是一个未知的问题:

看来 Origin 重新定义了一些 EPS 函数/过程(无论正确的名称是什么),以一种无法再找到文本的xs方式调用。psfrag

解决方案”发布在 dctt这是:

sed -r -e "s/\)\[(([0-9])+ )+\] xs/\) show/g" in.eps > out.eps

也就是说,在 EPS 中更改行

(TMP1)[44 60 49 41 ] xs

进入

(TMP1) show

对于其他文本标签(或者至少是您想要替换的标签)也类似,可以手动操作,也可以使用上面的 sed 调用自动操作。

然后上面的例子给出

在此处输入图片描述

相关内容