PdfLatex - 使用“matlabfrag”和“psfragfig”进行对数刻度的图形处理错误

PdfLatex - 使用“matlabfrag”和“psfragfig”进行对数刻度的图形处理错误

我在 Ubuntu 16.04 LTS 上使用 TeX 3.14159265(TeX Live 2015/Debian),前端是 Texmaker 4.4.1。

我使用matlabfrag脚本生成一个 eps 文件,用于psfragfigpdflatex。EPS 文件基本上是两个光谱的 Matlab 半对数图。我已成功使用此技术在我的文档中使用了其他图matlabfrag,唯一的区别是它们是线性比例图而不是对数图

但是,对于对数图,我收到以下图形处理错误并显示警告:

软件包 pstool 警告:执行过程中失败:latex -shell-escape -output-format=dvi -output-directory="./" -interaction=ba tchmode "f068a10019aalldatap5_spec-pstool.tex"

.eps 的配套 tex 文件内容如下:

% Generated using matlabfrag
% Version: v0.7.0devb04
% Version Date: 30-May-2013
% Author: Zebb Prime
%
\providecommand\matlabfragNegTickNoWidth{\makebox[0pt][r]{\ensuremath{-}}}%
%
%% <text>
%
\providecommand\matlabtextA{\color[rgb]{0.150,0.150,0.150}\fontsize{8}{8}\selectfont\strut}%
\psfrag{014}[tc][tc]{\matlabtextA Frequency, f(Hz)}%
\psfrag{015}[bc][bc]{\matlabtextA S(f) (m^2)}%
%
%% </text>
%
%% <xtick>
%
\psfrag{000}[ct][ct]{\matlabtextA $0$}%
\psfrag{001}[ct][ct]{\matlabtextA $0.5$}%
\psfrag{002}[ct][ct]{\matlabtextA $1$}%
\psfrag{003}[ct][ct]{\matlabtextA $1.5$}%
\psfrag{004}[ct][ct]{\matlabtextA $2$}%
\psfrag{005}[ct][ct]{\matlabtextA $2.5$}%
%
%% </xtick>
%
%% <ytick>
%
\psfrag{006}[rc][rc]{\matlabtextA 10^{-11}}%
\psfrag{007}[rc][rc]{\matlabtextA 10^{-10}}%
\psfrag{008}[rc][rc]{\matlabtextA 10^{-9}}%
\psfrag{009}[rc][rc]{\matlabtextA 10^{-8}}%
\psfrag{010}[rc][rc]{\matlabtextA 10^{-7}}%
\psfrag{011}[rc][rc]{\matlabtextA 10^{-6}}%
\psfrag{012}[rc][rc]{\matlabtextA 10^{-5}}%
\psfrag{013}[rc][rc]{\matlabtextA 10^{-4}}%
%
%% </ytick>

我尝试将日志标签更改为,例如,\matlabtextA $10^{-5}$上面所示的标签。示例 eps 文件可以在这里找到这里

pstool(f068a10019aalldatap5_spec-pstool.tex)文件内容如下

\pdfoutput =0\relax 
\documentclass[a4paper,12pt,3p,oneside,final,number,times,sort&compress]{article}

\usepackage[crop=pdfcrop]{pstool}
\usepackage{graphicx}

\pagestyle {empty}

\makeatletter 
\def \thepage {\csname @arabic\endcsname \c@page }
\setcounter {page}{1}
\@input {samplepsfrag.oldaux}
\makeatother 

\begin {document}
\makeatletter 
\immediate \write \@mainaux {\@percentchar <*PSTOOLLABELS>}
\makeatother 

\centering \null \vfill 

\csname @input\endcsname {f068a10019aalldatap5_spec.tex}
 \includegraphics [width=0.45\textwidth ] {f068a10019aalldatap5_spec}

\vfill 

\makeatletter 
\immediate \write \@mainaux {\@percentchar </PSTOOLLABELS>}
\makeatother 
\end {document}

以下是 SWE 的代码

\documentclass[a4paper,12pt,3p,oneside,final,number,times,sort&compress]{article}

\usepackage[crop=pdfcrop]{pstool}
\usepackage{graphicx}

\begin{document}

Blah\\

\begin{figure*}
    \begin{minipage}[t][0.3\textheight]{0.45\textwidth}
           \psfragfig*[width=0.45\textwidth,height=0.3\textheight,keepaspectratio]{f068a10019aalldatap5_spec}
            \\ \footnotesize{(a)}
    \end{minipage}
\end{figure*}
\end{document

答案1

问题可以定位在\psfrag{015}[bc][bc]{\matlabtextA S(f) (m^2)}% 每一行使用 circumflex('^')

抑扬符的使用应在数学模式下进行,如\psfrag{015}[bc][bc]{\matlabtextA S(f) ($m^2$)}%。同样,对数图的标签应读作\psfrag{006}[rc][rc]{\matlabtextA $10^{-11}$}%和 类似

相关内容