强制构建文档超过一页失败

强制构建文档超过一页失败

我有一份不应超过一页长的文档(在本例中是一份简历)。目前:每当我进行更改时,我都必须编译(不确定这是否是正确的术语,我对 tex 还很陌生)该文档,然后打开它并检查它是否超过一页。我希望有一个解决方案,如果它超过一页,它就会简单地阻止它进行编译。

以下是我的序言:

\documentclass[12pt, letterpaper]{article}

\usepackage[letterpaper,margin=0.75in]{geometry}
\usepackage[compact]{titlesec}

\titleformat*{\subsection}{\large\bfseries}
\titlespacing{\section}{0pt}{\parskip}{-\parskip}
\titlespacing{\subsection}{0pt}{\parskip}{-\parskip}

\renewcommand{\familydefault}{\sfdefault}
\renewcommand\labelitemi{$\cdot$}
\pagestyle

答案1

您始终需要编译文档,因为没有编译就无法知道页数。但是,如果您有多个页面,则可以抛出错误:

\documentclass{article}

\usepackage{scrlfile}% Provides \AfterReadingMainAux
\usepackage{lipsum}

\AfterReadingMainAux{%
  \ifnum\value{page}>2
    \GenericError{}{File \jobname.tex Error: More than one page}{}{}%
  \fi
}
\begin{document}
\lipsum[1-5]
%\lipsum[6]
\end{document}

如果删除%之前的内容\lipsum[6],则会出现错误:

./test.tex:14: File test.tex Error: More than one page.


Type  H <return>  for immediate help.
 ...                                              

l.14 \end{document}

如果您希望得到警告:

\documentclass{article}

\usepackage{scrlfile}
\usepackage{lipsum}

\AfterReadingMainAux{%
  \ifnum\value{page}>2
    \GenericWarning{}{File \jobname.tex Warning: Document has
      \the\numexpr\value{page}-1\relax\space pages}{}%
  \fi
}
\begin{document}
\lipsum[1-5]
\lipsum[6]
\end{document}

将导致警告:

File test.tex Warning: Document has 2 pages on input line 15.

如果您想了解新页面的开始位置:

\documentclass{article}

\usepackage{atbegshi}
\usepackage{lipsum}

\AtBeginShipout{%
  \ifnum\value{page}>1
    \GenericError{}{File \jobname.tex Warning: Starting page \thepage}{}{}%
  \fi
}
\begin{document}
\lipsum
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}

但请注意:由于 TeX 的异步输出,您将无法获得导致第二页、第三页等的单词的信息。您只能获得导致新分页符的命令或段落的信息。因此消息的行号只是一种方法,而不是确切的位置。

答案2

希望这可以帮助:

\documentclass{article}

\usepackage{lipsum}

%http://latex.org/forum/viewtopic.php?t=21514
\newcommand{\bailout}{%
\ifnum\value{page}>1 
%\undefinedcommand % uncomment to abort
\typeout{more than one page}
\fi
}

\begin{document}

\lipsum[1-6]

\bailout
\end{document}

相关内容