我使用了\vspace{2\baselineskip}
很多,并想创建一个新命令来跳过一定数量的行。例如,\skip{2}
而不是使用\vspace
。我知道\newcommand
我的 tex 文件序言中的内容,但我如何在我的 newcommand 中使用变量,以便我可以输入任意数量的行来跳过,而不是上面例子中的 2?
答案1
最简单的方式是,我们可以引入\skiplines{}
添加的空白倍数\baselineskip
。
\documentclass[oneside]{amsart}
\newcommand\skiplines[1]{\vspace{#1\baselineskip}}
\begin{document}
This is a paragraph.
This is the normal blank space between paragraphs (i.e., none).\skiplines{4}
Here, I have added 4 blank lines to allow the reader to make notes on the
printed paper.
\end{document}
然而,正如 David 在评论中指出的那样,除非在特殊情况下,否则不应定期手动添加空格。如果有重复的需要,则应将适当的空格量作为文档格式定义的一部分(在序言中,或在文档类本身中)添加,而不是在文档文本中添加。
这里,在下面的 MWE 中,\vspace
每行都嵌入了四行\question
,并且空行的数量可以根据 的可选参数而变化\question
。
\documentclass[oneside]{amsart}
\newcommand\skiplines[1]{\vspace{#1\baselineskip}}
\newcommand\question[2][4]{\item #2\skiplines{#1}}
\begin{document}
\begin{enumerate}
\question[2]{Who is buried in Grant's tomb?}
\question{What is the meaning of life, the universe, and everything?}
\question{How much wood does a woodchuck chuck, if a woodchuck could chuck wood?}
\end{enumerate}
Back to your regularly scheduled document.
\end{document}
答案2
如果你想添加答案或评论的空间,你可以定义
\newcommand{\skiplines}[1]{%
% end a paragraph
\par
% this space should be added to the current page
\nopagebreak
% the space should not be swallowed by a page break
\vspace*{#1\baselineskip}%
}
现在\skiplines{3}
将留下相当于三行的垂直空间。