从一个 tex 文件生成两个不同的 pdf?

从一个 tex 文件生成两个不同的 pdf?

有没有办法通过一次运行 pdflatex 自动生成两个不同的 pdf 文件?

我想制作同一篇文档的德文版和英文版。我知道如何定义充当开关的命令(例如\germanenglish),我可以像

\germanenglish{Deutscher Text}{english text}

然而,目前最好的解决方案是在序言中定义一个命令来切换开关。然而,更方便的方法是让 latex 生成

filename_de.tex
filename_en.tex

只需单击一下。

答案1

感谢评论,我能够按如下方式解决问题:

\ProvidesPackage{altlang}[2015/09/20 Alternative Languages Package]

\RequirePackage{xstring}
\RequirePackage{etoolbox}

\newtoggle{alternativelanguage}
\togglefalse{alternativelanguage}

\IfSubStr*{\jobname}{\secondlang}{%
   \toggletrue{alternativelanguage}%
}{%
   \togglefalse{alternativelanguage}%
}

\newcommand{\lang}[2]{\iftoggle{alternativelanguage}{#2}{#1}}

\newcommand{\producealternativelanguage}{%
   \iftoggle{alternativelanguage}{}{%
      \StrBefore*{\jobname}{\firstlang}[\substrbefore]
      \StrBehind*{\jobname}{\firstlang}[\substrbehind]
      \edef\myjobname{\substrbefore\secondlang\substrbehind}
      \def\space{ }
      \immediate\write18{pdflatex --jobname=\myjobname\space \jobname.tex}
   }
}

\endinput

用法:

%% file myfile_de.tex
...
\newcommand{\firstlang}{_de}
\newcommand{\secondlang}{_en}

\usepackage{altlang}

...
\producealternativelanguage

\begin{document}
\lang{deutscher Text}{english text}
\end{document}

%% pdflatex-ing with shell-escape being enabled
%% will produce myfile_de.tex and myfile_en.tex

相关内容