
どうすればいいのかわからず、etoolbox ドキュメント
問題は簡単に説明できます。etoolbox を使用して、大きなドキュメントの\clearpage
any の前にを追加し\section
、各セクションが新しいページで始まるようにします。(これは書籍形式のドキュメントですが、以下の MWE は記事です)
小さなセクションがいくつかあるので、次のセクションではこれを行わないように etoolbox に指示し、セクションが終了したら再度開始するように指示します。
これをどうやって行うのですか? これを行うための etoolbox または Latex コマンドは何ですか?
MWEはこちら
\documentclass[12pt]{article}%
\usepackage{etoolbox}\preto\section{\clearpage}
\usepackage{lipsum}
\begin{document}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
%do not add \clearpage here, how?
\section{C}
\lipsum[75]
%now start adding \clearpage, it is ok
\section{D}
\lipsum[75]
\end{document}
Texlive 2013、Linux ミント。
答え1
スイッチを作成し、スイッチが true か false かに応じてコマンドを実行するという方法もあります\clearpage
。
\documentclass[12pt]{article}%
\usepackage{etoolbox}
\usepackage{lipsum}
\newtoggle{clearpagebeforesection}
\preto{\section}{\iftoggle{clearpagebeforesection}{\clearpage}{}}
\begin{document}
\toggletrue{clearpagebeforesection}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
%do not add \clearpage here, how?
\togglefalse{clearpagebeforesection}
\section{C}
\lipsum[75]
%now start adding \clearpage, it is ok
\toggletrue{clearpagebeforesection}
\section{D}
\lipsum[75]
\section{E}
\lipsum[75]
\end{document}
答え2
1つの可能性は、ローカル(読み取り専用)でコマンドを作成することです。グループで) relax
es \clearpage
:
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
この方法では、\clearpage
ドキュメント内のすべてのセクションにデフォルトで設定されますが、 には\specialsection
適用されません。
完全な例:
\documentclass[12pt]{article}%
\usepackage{etoolbox}
\preto\section{\clearpage}
% locally disable clearpage
\newcommand{\specialsection}[1]{
\begingroup
\let\clearpage\relax
\section{#1}
\endgroup
}
\usepackage{lipsum}
\begin{document}
\section{A}
\lipsum[75]
\section{B}
\lipsum[75]
% we use the new command
\specialsection{C}
\lipsum[75]
\section{D}
\lipsum[75]
\end{document}