11

最近、Mathematica 7.0 から 8.0 に更新しましたが、psfrag パッケージを使用してプロット ラベルを LaTeX コードに置き換える際に問題が発生しました。以前のバージョンとまったく同じプロットですべてが完全に機能しましたが、現在、psfrag はすべてのラベルを変更せずに残しています。LaTeX編集にUbuntu 11.04でKileを使用しています。

たとえば、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ファイルのテキストをエンコードする方法に違いがあるかどうか誰か知っていますか?

4

3 に答える 3

8

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 エクスポート オプションでこれを修正する方法が見つかりません。

現時点では、私が考えることができる唯一の回避策 (および動作をテストしました) は、軸ラベルに 1 文字のタグを使用することです。

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}

ノート:

おそらく使用したい理由は、 http://www.reimeika.ca/marco/prettyplots/psfragに詳しく記載されています。

現在、これらのタグは見栄えがよくありません (起動する意味がほとんどありません)。ただし、アイデアは、最終的に LaTeX で作成された論文またはレポートにプロットを含めることであるため、タグの本当のポイントは、EPS グラフ内のテキストを置き換えることができる psfrag パッケージのマーカーとして使用することです。このラベル付け方法には、タグを Figure にハードコーディングするよりも 3 つの大きな利点があります。フォントは記事のものと同じになるため、最初は一貫性です。2 つ目は、プロット内で LaTeX の数学エンジンを最大限に使用できるという事実です。最後になりましたが、ゼロからプロットを再作成する必要はなく、.tex ファイル内で表記法を簡単に変更できます。


補遺:

このパッケージはグラフィックpsfragのみで動作するため、 . とを使用する場合は、tex.SE の質問 Using psfrag with pdflatex を参照してください。EPSlatexpsfragpdflatex

于 2011-06-17T13:31:56.010 に答える
4

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は数式にComputerModernFontを使用することに注意してください。これは、テキストの一般的な選択肢であるTimesNewRomanなどと同じではありません。これは、mathptmxパッケージで変更できます。

于 2011-06-17T14:05:56.423 に答える
1

Mathematicaで「タイプセット」フォームを直接書くことができ、それはすでに.epsファイルにあり、そのまま.epsを含めることができます。

plot = Plot [x、{x、-0.1、0.1}、AxesLabel-> {"[\ eps]、[\ Sigma]}、BaseStyle-> {FontSize-> 10}]

[esc] + "eps" + [esc]を実行するだけで、イプシロンを取得するか、ツールボックスから挿入します。シグマについても同じです。

于 2011-06-17T12:13:54.177 に答える