我在 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}
没有替代品。不过,这并不是一个未知的问题:
- psfrag 在 eps 文件中未找到标签,2010 年 www.latex-community.org 上的一个问题,至今无解
- 起源 Graphen 和 psfrag,2003 年关于 de.comp.text.tex 的一个问题,至今无解
- 起源 Graphen 和 psfrag,2009 年关于 de.comp.text.tex 的一个问题,其中有一些 hacky 解决方案
看来 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 调用自动操作。
然后上面的例子给出