AIAA Latex 模板和 tikzexternalize

AIAA Latex 模板和 tikzexternalize

我正在使用 Texlive 2014 发行版中的 AIAA 类 v3.8 来制作一篇通信论文。我尝试使用 Tikz 的导出功能,tikzexternalize中所述文档

对我来说,tikzexternal无法处理导出图的大小。下图中,1 代表正确结果,构建方式如下:

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize

2 为错误结果,使用以下命令构建:

\usepackage{tikzexternal}
\tikzexternalize

在此处输入图片描述

请参阅,在第 1 页中,描边的宽度和高度均为 1 厘米。在第 2 页中,描边覆盖了所有文本宽度,而这并不是所要求的。

问题出在文档类上aiaa-tc,而不是标准类article(其中所有输出都类似于第 1 页)。哪里出了问题?

使用的代码如下:

\documentclass{aiaa-tc}

% leads to result 1
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize

%% leads to result 2
%\usepackage{tikzexternal}
%\tikzexternalize

\begin{document}

\begin{figure}
  \centering
  \begin{tikzpicture}
    \draw (0,0) -- (1cm,1cm) ;
  \end{tikzpicture}
  \caption{A line}
\end{figure}

\end{document}

答案1

问题是该类包含这一行

\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}

每次使用时都会graphicx应用这些设置\includegraphics或类似设置。当你正常加载外部化库时,TikZ 会使用\pgfimage包含外部化图像。当你使用时tikzexternal,它会使用\includegraphics

\def\pgfincludeexternalgraphics#1{%
        \begingroup
        \pgfexternalreaddpth{#1}%
        \setbox1=\hbox{\includegraphics{#1}}%
        \ifdim\pgfretval=0pt
                \box1
        \else
                \dimen0=\pgfretval\relax
                \hbox{\lower\dimen0 \box1 }%
        \fi
        \endgroup
}

因此,类的键仅在加载时才会影响与图像包含相关的设置tikzexternal,而不是在使用带有默认包含命令的外部化库时影响。

如果您确定提交指南允许,您可以全局或针对特定图像覆盖类为图像包含设置的键。

例如:

\documentclass{aiaa-tc}

% leads to result 1
% \usepackage{tikz}
% \usetikzlibrary{external}
% \tikzexternalize

%% leads to result 2
\usepackage{tikzexternal}
\tikzexternalize

\begin{document}

\begin{figure}
  \centering
  \setkeys{Gin}{width=.25\linewidth}
  \begin{tikzpicture}
    \draw (0,0) -- (1cm,1cm) ;
  \end{tikzpicture}
  \caption{A line}
\end{figure}

\end{document}

较小版本

相关内容