Я хочу создать макрос с именем \vs
, который устанавливает постоянный вертикальный интервал, например, \vs{40em}
будет иметь высоту 40em белого интервала. Я знаю, что есть много способов -- \vskip
, \vspace
, и т. д. -- добиться этого. Но все эти методы терпят неудачу, если сталкиваются с разрывом страницы, как показано на моем прикрепленном рисунке, созданном следующим MWE. Кто-нибудь может мне помочь с этим?
МВЭ:
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\begin{document}
some text.\vskip10em
question 1...\vskip40em
question 2...\vskip40em
question 3...\vskip40em
\end{document}
решение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}
Это отвечает на вопрос в заголовке, хотя, глядя на ваш пример кода Sketch, я бы подумал, что вы всегда хотели, чтобы заголовок вопроса располагался над пробелом, и в этом случае пробел никогда не должен попадать в верхнюю часть страницы, поэтому удаление пробела в этой точке не должно быть проблемой.
После дальнейших комментариев становится ясно, что вам на самом деле не нужно пространство, а нужен белый абзац из (скажем) 5 строк, который можно разбить на страницу, для чего вы можете сделать следующее:
\section*{Some title}
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}
\section*{Some other title}
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}\\
\mbox{}