我最近从mathematica 7.0更新到8.0,现在遇到使用psfrag包用LaTeX代码替换我的绘图标签的问题。一切都与早期版本和完全相同的图表完美配合,但现在psfrag保持所有标签不变。我在Ubuntu 11.04上使用Kile进行LaTeX编辑。
例如,在Mathematica中:
plot = Plot[x, {x, -0.1, 0.1},
AxesLabel -> {eps, SUM}, BaseStyle -> {FontSize -> 10}]
Export["plot.eps", plot]
然后在LaTeX:
\begin{figure}
\psfrag{eps}{$\epsilon$}
\psfrag{SUM}{$\Sigma$}
\includegraphics{plot.eps}
\end{figure}
现在应该用LaTeX排版替换标签,但没有任何反应。有什么建议怎么解决这个?有谁知道Mathematica 8如何编码eps文件中的文本与早期版本相比有何不同?
EPS的编码方式没有区别。问题是在v7输出中生成文本的PS代码(注意Mma使用 bind def
要为许多PS代码创建快捷方式,请参阅生成的EPS文件的顶部以获取详细信息):
%%IncludeResource: font Times-Roman-MISO
%%IncludeFont: Times-Roman-MISO
10 /Times-Roman-MISO Msf
0 8 m
(SUM) N
已在v8中替换为
%%IncludeResource: font Times-Roman-MISO
%%IncludeFont: Times-Roman-MISO
10 /Times-Roman-MISO Msf
p
0.75 9 m
(S) N
P
p
6 9 m
(U) N
P
p
14.25 9 m
(M) N
这意味着 psfrag
无法抓住标签。
我找不到如何在Mma导出选项中修复此问题。
目前,我能想到的唯一解决方法(我已经测试过它的工作原理)是对轴标签使用单字母标签,例如:
plot = Plot[x, {x, -0.1, 0.1}, AxesLabel -> {"e", "s"},
BaseStyle -> {FontSize -> 10}]
Export["plot8.eps", plot]
\begin{figure}[h]
\psfrag{e}{$\epsilon$}
\psfrag{s}{$\Sigma$}
\includegraphics{plot8.eps}
\end{figure}
注意:
可能想要使用的原因 psfrag
很好地说明了 http://www.reimeika.ca/marco/prettyplots/
现在,这些标签看起来不太好
(启动没什么意义)。
然而,这个想法最终是
将图表包含在论文或报告中
用LaTeX制作,真正的重点
标签是用它们作为标记
对于允许的psfrag包
替换EPS图表中的文本。这个
标签的方式有三大
比标签硬编码更有优势
进入图中。首先是一致性,
因为字体将与那些字体相同
在文章中。其次是事实
LaTeX的数学引擎可以
最充分地使用
剧情。最后但同样重要的是,它
允许在内容中轻松更改符号
.tex文件,而不是必须
从头开始重新创建情节。
附录:
包裹 psfrag
只适用于 EPS
图形,因此只有 latex
。
如果你想使用 psfrag
和 pdflatex
,然后看tex.SE问题
将psfrag与pdflatex一起使用
EPS的编码方式没有区别。问题是在v7输出中生成文本的PS代码(注意Mma使用 bind def
要为许多PS代码创建快捷方式,请参阅生成的EPS文件的顶部以获取详细信息):
%%IncludeResource: font Times-Roman-MISO
%%IncludeFont: Times-Roman-MISO
10 /Times-Roman-MISO Msf
0 8 m
(SUM) N
已在v8中替换为
%%IncludeResource: font Times-Roman-MISO
%%IncludeFont: Times-Roman-MISO
10 /Times-Roman-MISO Msf
p
0.75 9 m
(S) N
P
p
6 9 m
(U) N
P
p
14.25 9 m
(M) N
这意味着 psfrag
无法抓住标签。
我找不到如何在Mma导出选项中修复此问题。
目前,我能想到的唯一解决方法(我已经测试过它的工作原理)是对轴标签使用单字母标签,例如:
plot = Plot[x, {x, -0.1, 0.1}, AxesLabel -> {"e", "s"},
BaseStyle -> {FontSize -> 10}]
Export["plot8.eps", plot]
\begin{figure}[h]
\psfrag{e}{$\epsilon$}
\psfrag{s}{$\Sigma$}
\includegraphics{plot8.eps}
\end{figure}
注意:
可能想要使用的原因 psfrag
很好地说明了 http://www.reimeika.ca/marco/prettyplots/
现在,这些标签看起来不太好
(启动没什么意义)。
然而,这个想法最终是
将图表包含在论文或报告中
用LaTeX制作,真正的重点
标签是用它们作为标记
对于允许的psfrag包
替换EPS图表中的文本。这个
标签的方式有三大
比标签硬编码更有优势
进入图中。首先是一致性,
因为字体将与那些字体相同
在文章中。其次是事实
LaTeX的数学引擎可以
最充分地使用
剧情。最后但同样重要的是,它
允许在内容中轻松更改符号
.tex文件,而不是必须
从头开始重新创建情节。
附录:
包裹 psfrag
只适用于 EPS
图形,因此只有 latex
。
如果你想使用 psfrag
和 pdflatex
,然后看tex.SE问题
将psfrag与pdflatex一起使用
试过7.0.1和8.0.1,对我来说效果很好。因此,我无法重现您的错误。 (也许只是一个错字,区分大小写等)。无论如何,我同意LateX修改对于出版物几乎是强制性的。首先我也使用了PSFrag,但我经常也不喜欢标签的位置,特别是如果你放置更复杂的表达式。因此,我建议通过PSTricks进行中间步骤。这看起来像这样:
\documentclass[floatfig,isolatin,amsthm,amsmath,amsfont,amstext,12pt,fullpage,pslatex,amsref]{scrartcl}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{float}
\usepackage{epic}
\usepackage{eepic}
\usepackage{color}
\pagestyle{empty}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(0,0)(13.0,7.8)
%\psgrid(0,0)(0,0)(13,7.8)
% need the grid only in the beginning for positioning
\rput[c](10.7,3.8){\includegraphics{plot.eps}}
% put labels.
\rput[c]{90}(9.5,4){\Large{$\frac{E^2_\text{tot}}{V M_\mathrm{S}}$}}
\rput[c]{0}(6,6.0){$x/h$}
% also to put extra lines, arrows, comments, etc. in LaTeX style, e.g.:
% \psline[linecolor=green,linewidth=2pt,linestyle=dashed]{->}(3.5,3.05)(9.1,3.05)
\end{pspicture}
\end{document}
因此,你需要手工完成一些工作,但通常值得花时间,因为结果看起来更好,特别是如果是出版。但是,请记住,在标准设置中,LaTeX使用计算机现代字体作为公式。这与例如不同。 Times New Roman,文本的典型选择。您可以使用mathptmx包更改此设置。
您可以直接在Mathematica中编写“排版”表单,然后它将已经存在于.eps文件中,您可以按原样包含.eps。
plot = Plot [x,{x,-0.1,0.1},AxesLabel - > {“[\ eps],[\ Sigma]},BaseStyle - > {FontSize - > 10}]
只需做[esc] +“eps”+ [esc],你就会得到一个epsilon,或者从工具箱中插入它。同样的西格玛。