将参数传递给单个文件

将参数传递给单个文件

我需要从我的.tex 文件呈现两个版本的 pdf,一个是 A4 单面格式,另一个是 B5 双面格式。

我通过更改类选项(如果重要的话,我会使用 memoir)并重新渲染文件来实现这一点。有没有更好的方法?

答案1

我经常从单一来源制作不同尺寸的标准和大字体格式的小册子。有几种方法。

如果需要从不同格式中包含或排除某些内容,则可以使用类似comment或者multiaudience包。

将参数传递给单个文件

如果你想要一个可以生成多种格式的单个文件,你可以使用类似这样的方法text.tex,并可选择设置arara

% arara: lualatex
% arara: lualatex: { options: ['--jobname=text-largeprint', '\def\largeprint{}\input{text}'] }

\documentclass{scrbook}

\ifdefined\largeprint
  \KOMAoptions{paper=A4, oneside, fontsize=16pt, DIV=calc}
\else
  \KOMAoptions{paper=B5, twoside, fontsize=10pt, DIV=calc}
\fi

\begin{document}
  Text
\end{document}

B5 版本可以正常运行lualatex text.tex。要在名为的单独文件中生成 A4 版本text-largeprint.pdf

$ lualatex --jobname=text-largeprint "\def\largeprint{}\input{text}"

如果在文件开头包含注释,则可以同时运行两个命令:

$ arara text.tex

latexmk与多个文件一起使用

您还可以创建两个包含所需选项的文件,另一个包含源文本的文件,然后运行latexmk以同时生成两个版本。这是组织文件的一种方法:

  1. a4.tex
\documentclass[paper=A4, oneside, fontsize=16pt, DIV=calc]{scrbook}

\input{text}
  1. b5.tex
\documentclass[paper=B5, twoside, fontsize=10pt, DIV=calc]{scrbook}

\input{text}
  1. text.tex
\begin{document}
  Text
\end{document}
  1. latexmkrc(告诉latexmk要编译哪些文件)
@default_files = ('a4.tex', 'b5.tex');

pgfpages包裹

如果需要保持分页一致,则将 PDF 调整为其他尺寸要容易得多,尽管设计可能看起来有点不对:这已在大字版考试

相关内容