我正在准备一份论文的最终版本,以供出版商处理(和编辑)。这意味着将源代码转换为出版商风格,并删除对某些软件包的依赖。
其中一个包是蒂克兹,并且源文件包含相当多的 tikz 图形。使用tikz/外部化库,但是这不会消除对包的依赖,因为 tikz 负责包含。
基本上,我想转换一个文档:
\documentclass{acmart}
\usepackage{tikz}
%\usetikzlibrary{external}
%\tikzexternalize[prefix=figures/]
\begin{document}
\title{A paper with tikz figures}
\author{Jakub Opršal}
\email{[email protected]}
\maketitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\begin{figure}
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
\caption{A circle}
\end{figure}
\end{document}
进入:
\documentclass{acmart}
\begin{document}
\title{A paper with tikz figures}
\author{Jakub Opršal}
\email{[email protected]}
\maketitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\begin{figure}
\includegraphics{figures/stack-exchange-figure0.pdf}
\caption{A circle}
\end{figure}
\end{document}
在此过程中编译所有 tikz 图形(这不是什么大问题,因为只需编译一次原始文档就足够了)。
您知道有什么有效的方法可以用相应的图形替换代码中的 tikz 图形吗?
答案1
您可以使用该ifthen
包。
以下是一个例子:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{ifthen}
\newif\ifsubmit
%\submitfalse % work with this
\submittrue % submit this
\newcommand{\submissionfigure}[2]{\ifsubmit #1 \else #2 \fi}
\submissionfigure{}{
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=figures/]
}
\begin{document}
\begin{figure}
\submissionfigure{
\includegraphics[scale=1]{figures/submission-figure-figure0.pdf}
}{
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
}
\caption{A circle}
\end{figure}
\end{document}
原则上,这应该允许您将 tikz 代码保留在文档中,但期刊系统不应处理它。虽然这种方法是否有效取决于期刊以及文件的处理方式,但坦白说,这对我来说似乎有点不透明。