如果条件匹配,则每页后都显示空白页

如果条件匹配,则每页后都显示空白页

我的大学要求论文双面,但献词、致谢、目录等应该是单面的。

我的想法是将以下代码添加到已存在的宏中,但将其应用于每个页面...现有宏将页码样式更改为罗马字体,并更改一些其他样式。它在之后立即被调用\begin{document}。在论文的主要部分之前,调用另一个宏,将页码设置为阿拉伯语,并为后续页面应用一些特定样式。

问题是,我不知道如何LaTeX在第一个宏中说它应该\addblankpage在编译每个页面后添加并在第二个宏中停止。


\newcommand{\addblankpage}{%
    \clearpage%
    \thispagestyle{empty}%
    \addtocounter{page}{-1}%
    \clearpage%
}

\begin{document}

    \maketitle

    % Single sided, a blank page after every page should be generated
    \preface % The first macro

    \input{statutory-declaration}
    \input{note-of-thanks}
    \input{dedication}
    \input{abstract}

    \tableofcontents

    % Double sided, no extra page should be generated
    \main % The second macro

    \input{sections/introduction}
    \input{sections/experiments}
    \input{sections/interpretation}
    ...

\end{document}

答案1

下面在 的帮助下完成您想要的操作atbegshi

\documentclass{article}

\usepackage{atbegshi,blindtext}

\title{I didn't post an MWE}
\author{The one who forgot to post an MWE}

\makeatletter
\newif\ifpreface@nextblank

\newcommand*\preface@blanks{}%
\let\preface@blanks\relax
\newcommand*\preface
  {%
    \global\preface@nextblanktrue
    \gdef\preface@blanks%
      {%
        \ifpreface@nextblank
          \thispagestyle{empty}%
          \addtocounter{page}{-1}%
          \mbox{}%
          \clearpage
          \global\preface@nextblankfalse
        \else
          \global\preface@nextblanktrue
        \fi
      }%
    \AtBeginShipout{\preface@blanks}
  }
\newcommand*\main
  {%
    \global\let\preface@blanks\relax
  }
\makeatother

\begin{document}

    \maketitle

    % Single sided, a blank page after every page should be generated
    \preface % The first macro

    \blinddocument

    \tableofcontents

    % Double sided, no extra page should be generated
    \main % The second macro

    \blinddocument

\end{document}

上面没有做的事情(但是会很好):

  • 检查是否\preface在左页或右页上使用
  • \clearpage(s)当\preface\main用于下一页时

相关内容