
Tenho muitos problemas ao compilar figuras pgfplots/tikz através da cadeia latex+dvips+ps2pdf. Posso compilar com sucesso o mesmo conjunto de figuras pgfplots/tikz através do pdflatex. A razão pela qual preciso compilar através da cadeia latex+dvips+ps2pdf é porque alguns símbolos matemáticos não estão incorporados no arquivo pdf gerado pelo pdflatex.
Minhas perguntas são as seguintes.
- Como posso incluir figuras em PDF usando \includegraphics e compilando através da cadeia latex+dvips+ps2pdf?
Se existir uma solução para esta opção, posso primeiro compilar os números pgfplots/tikz em valores de saída em PDF. Em seguida, posso incluir as figuras em PDF usando \includegraphics e compilando através da cadeia latex+dvips+ps2pdf.
- O problema da caixa delimitadora ao compilar figuras pgfplots/tikz através da cadeia latex+dvips+ps2pdf.
Um MWE chamado example.tex
da seguinte forma:
\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}
Eu compilo o arquivo example.tex através
latex -interaction=nonstopmode -shell-escape example.tex; dvips -o example.ps example.dvi; ps2pdf example.ps
Os erros de saída são:
! 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
Qual é a causa do erro “Erro LaTeX: Não é possível determinar o tamanho do gráfico”?
Tentei obter uma compilação usando outro MWE conforme mostrado abaixo através de latex+dvips+ps2pdf.
\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}
Eu realmente não vejo uma grande diferença entre os 2 MWEs mostrados em 2. e 3. Por que o MWE em 2. não pode ser compilado, mas o MWE em 3. pode ser compilado?
Mesmo após uma compilação bem-sucedida, o arquivo pdf mostrado em anexo é estranho. Muito espaço em branco está incluído na figura. Como se livrar do espaço em branco?