\vs
一定の垂直間隔、たとえば\vs{40em}
40em の高さの空白スペースをタイプセットする というマクロを作成したいと考えています。これを実現するには\vskip
、、、\vspace
など、さまざまな方法があることは知っています。しかし、次の MWE によって生成された添付の図に示すように、これらの方法はすべてページ区切りが発生すると失敗します。誰かこれを手伝ってくれませんか?
MWE:
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\begin{document}
some text.\vskip10em
question 1...\vskip40em
question 2...\vskip40em
question 3...\vskip40em
\end{document}
答え1
スペースを分割して、一部を1ページに、一部を次のページに配置したい場合は、小さなチャンクでループを試してみてください。例:
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand\manyvspace { m }
{
\par
\int_step_inline:nn{#1}{\vspace*{1em}\goodbreak}
}
\ExplSyntaxOff
\begin{document}
some text.\vskip10em
question 1... \manyvspace{30}
question 2... \manyvspace{40}
question 3... \manyvspace{40}
\end{document}
答え2
以下のフォームをご利用ください*
:
\vspace*{4cm}
これはタイトルの質問に答えていますが、スケッチのサンプル コードを見ると、質問のタイトルは常にスペースの上に置きたいと考えていたと思います。その場合、スペースはページの上部には決して来ないので、その時点でスペースを落とすことは問題にならないはずです。
さらにコメントを追っていくと、スペースをまったく必要とせず、むしろ(例えば)5行の白い段落(ページをまたいで分割される可能性がある)が必要なようです。そのためには、次のようにします。
\section*{Some title}
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}
\section*{Some other title}
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}