
私は、latex+dvips+ps2pdf チェーンを介して pgfplots/tikz 図をコンパイルするときに多くの問題を抱えています。私は、pdflatex を介して同じ pgfplots/tikz 図のセットを正常にコンパイルできます。latex+dvips+ps2pdf チェーンを介してコンパイルする必要がある理由は、pdflatex によって生成された pdf ファイルにいくつかの数学記号が埋め込まれていないためです。
私の質問は次のとおりです。
- \includegraphics を使用して pdf 図を組み込み、latex+dvips+ps2pdf チェーンを通じてコンパイルするにはどうすればよいですか?
このオプションに解決策が存在する場合、まず pgfplots/tikz の図を pdf 出力図にコンパイルできます。次に、\includegraphics を使用して pdf 図を含め、latex+dvips+ps2pdf チェーンを通じてコンパイルできます。
- latex+dvips+ps2pdf チェーンを通じて pgfplots/tikz 図をコンパイルするときに発生する境界ボックスの問題。
MWE はexample.tex
次のように呼び出されます:
\documentclass{article}
\usepackage{filecontents}
\usepackage[dvips]{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepgfplotslibrary{external}
\tikzexternalize
\tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"; dvips -o "\image".ps "\image".dvi}}
\tikzset{external/force remake}
\begin{filecontents}{data.dat}
CLFREQT 0.000000 0.500000 20 1.200000 5.883213
CLFREQT 5.883213 7.559856 20 1.000000 6.823011
CLFREQT 12.706224 14.382867 20 0.800000 7.633751
CLFREQT 20.339976 20.489868 20 1.000000 6.165892
CLFREQT 26.505868 26.655760 20 0.800000 7.780472
CLFREQT 34.286340 32.880138 20 0.600000 8.835256
CLFREQT 43.121595 38.181291 20 0.800000 9.379904
CLFREQT 52.501500 45.685215 20 1.000000 9.601305
CLFREQT 62.102805 55.286519 20 1.200000 9.431572
CLFREQT 71.534377 66.604406 20 1.000000 9.924455
CLFREQT 81.458832 76.528861 20 1.200000 9.469530
CLFREQT 90.928361 87.892297 20 1.000000 5.099208
CLFREQT 96.027570 92.991505 20 0.800000 8.763533
\end{filecontents}
\begin{filecontents}{Fig.tikz}
\tikzsetnextfilename{Fig}
\begin{tikzpicture}
\begin{axis}[
legend pos=north west,
legend style={font=\small},
xmode=linear,
ymode=linear,
axis x line*=bottom,
axis y line*=left,
tick label style={font=\small},
grid=both,
tick align=outside,
tickpos=left,
xlabel=xlabel,
ylabel=ylabel,
xmin=0,xmax=100,
ymin=0,ymax=100,
width=0.45\textwidth,
height=0.4\textwidth,
]
\addplot+[mark=*,raw gnuplot,color=red] gnuplot {
plot 'data.dat' using 2:3 w lp lw 3;
};
\addlegendentry{Legend};
\end{axis}
\end{tikzpicture}
\end{filecontents}
\begin{document}
\begin{figure}[bth]
\begin{tabular}{p{2.25in}}
\scalebox{0.5}[0.5]{\includegraphics[]{Fig.tikz}}
\end{tabular}
\caption{\small This is the caption.}
\end{figure}
\end{document}
example.texファイルをコンパイルすると
latex -interaction=nonstopmode -shell-escape example.tex; dvips -o example.ps example.dvi; ps2pdf example.ps
出力エラーは次のとおりです。
! LaTeX Error: Cannot determine size of graphic in Fig.tikz (no BoundingBox).
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.61 ...ox{0.5}[0.5]{\includegraphics[]{Fig.tikz}}
<Fig.tikz> [1] (./example.aux) )
(see the transcript file for additional information)
Output written on example.dvi (1 page, 5416 bytes).
Transcript written on example.log.
This is dvips(k) 5.994 Copyright 2014 Radical Eye Software (www.radicaleye.com)
' TeX output 2014.10.02:1933' -> example.ps
</usr/local/texlive/2014/texmf-dist/dvips/base/tex.pro>
</usr/local/texlive/2014/texmf-dist/dvips/base/texps.pro>
</usr/local/texlive/2014/texmf-dist/dvips/base/special.pro>
</usr/local/texlive/2014/texmf-dist/dvips/base/color.pro>.
</usr/local/texlive/2014/texmf-dist/fonts/type1/public/amsfonts/cm/cmr9.pfb>
</usr/local/texlive/2014/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
[1<./Fig.tikz>]
Error: /undefined in \tikzsetnextfilename
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1900 1 3 %oparray_pop 1899 1 3 %oparray_pop 1883 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1168/1684(ro)(G)-- --dict:0/20(G)-- --dict:86/200(L)-- --dict:181/300(L)-- --dict:66/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 57618
GPL Ghostscript 9.10: Unrecoverable error, exit code 1
「LaTeX エラー: グラフィックのサイズを判別できません」というエラーの原因は何ですか?
私は、latex+dvips+ps2pdf を介して、以下に示すように別の MWE を使用してコンパイルを取得しようとしました。
\documentclass{sig-alternate-10pt} \usepackage{lua-visual-debug} \usepackage{tikzscale} \usepackage{tikz} \usetikzlibrary{arrows,backgrounds,calc,shapes,patterns} \usetikzlibrary{er} \usepackage{tikz-3dplot} \usepackage{pgfplots} \usetikzlibrary{pgfplots.groupplots} \usepackage{pgfplotstable} \usepackage{currfile} \usepackage{lmodern} \usepackage{filecontents} \usetikzlibrary{spy} %\usepgflibrary{shapes.geometric} \usetikzlibrary{external} \tikzexternalize[prefix=figure-build/] %\tikzset{external/mode=list and make} %\tikzset{external/check=diff} %\tikzset{external/force remake} \pgfplotsset{compat=1.11} \tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\string\def\string\myopts{\myopts}\texsource" && dvips -o "\image".ps "\image".dvi}} \usepackage{import} \usepackage[open-square,define-standard-theorems]{QED} \usepackage{listings} % available fonts (9/94) seem to be: % avantgarde bookman chancery lucida ncs palatino times \hyphenation{hy-phen-ation} % poor man's doublespacing (useful for less-than-exactly double spacing) % \renewcommand{\baselinestretch}{1.5} %\include{prooftree} \includeonly{} \begin{filecontents}{data.dat} CLFREQT 0.000000 0.500000 20 1.200000 5.883213 CLFREQT 5.883213 7.559856 20 1.000000 6.823011 CLFREQT 12.706224 14.382867 20 0.800000 7.633751 CLFREQT 20.339976 20.489868 20 1.000000 6.165892 CLFREQT 26.505868 26.655760 20 0.800000 7.780472 CLFREQT 34.286340 32.880138 20 0.600000 8.835256 CLFREQT 43.121595 38.181291 20 0.800000 9.379904 CLFREQT 52.501500 45.685215 20 1.000000 9.601305 CLFREQT 62.102805 55.286519 20 1.200000 9.431572 CLFREQT 71.534377 66.604406 20 1.000000 9.924455 CLFREQT 81.458832 76.528861 20 1.200000 9.469530 CLFREQT 90.928361 87.892297 20 1.000000 5.099208 CLFREQT 96.027570 92.991505 20 0.800000 8.763533 \end{filecontents} \begin{filecontents}{Fig.tikz} \tikzsetnextfilename{Fig} \begin{tikzpicture} \begin{axis}[ legend pos=north west, legend style={font=\small}, xmode=linear, ymode=linear, axis x line*=bottom, axis y line*=left, tick label style={font=\small}, grid=both, tick align=outside, tickpos=left, xlabel=xlabel, ylabel=ylabel, xmin=0,xmax=100, ymin=0,ymax=100, width=0.45\textwidth, height=0.4\textwidth, ] \addplot+[mark=*,raw gnuplot,color=red] gnuplot { plot 'data.dat' using 2:3 w lp lw 3; }; \addlegendentry{Legend}; \end{axis} \end{tikzpicture} \end{filecontents} \begin{document} %\include{exercises} %\baselineskip=0.22 in % \draftheader %\renewcommand{\theequation}{\Roman{section}.\Alph{equation}} \setcounter{Result}{0} %% this line is needed to work together with QED.sty \setcounter{equation}{0} \reversemarginpar \thispagestyle{empty} \setcounter{page}{1} \title{Dummy Title} %\date{} \maketitle \begin{figure}[bth] \begin{tabular}{p{2.25in}} \scalebox{0.5}[0.5]{\includegraphics[]{Fig.tikz}} \end{tabular} \caption{\small This is the caption.} \end{figure} \end{document}
2. と 3. に示されている 2 つの MWE に大きな違いは見当たりません。なぜ 2. の MWE はコンパイルできないのに、3. の MWE はコンパイルできるのでしょうか。
コンパイルが成功した後でも、添付されている PDF ファイルはおかしいです。図に多くの空白が含まれています。この空白を取り除くにはどうすればよいでしょうか?