在命令行上设置初始页码

在命令行上设置初始页码

我想排版 LaTeX 文件并从命令行设置初始页码(因为我需要经常更改它以与不同的文档合并)。我以为下面的方法可行,但实际上不行:

pdflatex "\setcounter{page}{5}\input{test.tex}"

当我这样做时,首页页码仍然是 1 - 有人知道为什么会这样吗?

答案1

pdflatex "\AtBeginDocument{\setcounter{page}{5}}\input{test.tex}"

答案2

因为这基本上相当于将其放在\setcounter{page}{5}LaTeX 文件的开头,甚至在 \documentclass{...}; 之前,此时页码计数器甚至尚未设置,并将通过后续命令重置。

有很多方法可以实现你想要的。如果我知道你使用的是什么操作系统,我会更容易提出建议。例如,在基于 Unix 的系统上,你可以使用sed

一个相对独立于平台的选项是这样的:在你的 .tex 文件中放入如下内容:

\input{pagenumbercommand}

它在编译时读取文件 pagenumbercommand.tex。(这可以发生在之后\begin{document}或类似情况。)pagenumbercommand.tex 可以包含一行,您可以随意重写。然后,例如:

echo "\setcounter{page}{5}" > pagenumbercommand.tex && pdflatex test.tex

会做你想做的事。(我认为这甚至在 Windows 上也能工作!)像 LuaTeX 这样的软件会提供更简单的解决方案。

答案3

您可以在命令行上定义一个宏并在之后立即使用它\begin{document}。这解决了@frabjous提到的没有其他文件的问题。

之后立即使用pdflatex "\newcommand{\startpagecount}{\setcounter{page}{5}}\input test"和。\startpagecount\begin{document}

相关内容