通过编译图形消除对 Tikz 包的依赖

通过编译图形消除对 Tikz 包的依赖

我正在准备一份论文的最终版本,以供出版商处理(和编辑)。这意味着将源代码转换为出版商风格,并删除对某些软件包的依赖。

其中一个包是蒂克兹,并且源文件包含相当多的 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 代码保留在文档中,但期刊系统不应处理它。虽然这种方法是否有效取决于期刊以及文件的处理方式,但坦白说,这对我来说似乎有点不透明。

相关内容