我刚刚在自己的文档类中创建了一个命令,如果我输入:\mline
它将自动仅输出 5 行。
我的问题是仅通过定义我希望通过命令显示多少行来生成行\mline
。
这就是我想要实现的
例子:
\mline[10]
输出 10 行\mline[3]
输出 3 行
代码
\newcommand{\mline}{
\noindent \null\hrulefill{} \\
\null\hrulefill{} \\
\null\hrulefill{} \\
\null\hrulefill{} \\
\null\hrulefill{} \\
}
答案1
以下是使用\loop
,\repeat
构造的一种可能性:
\documentclass{article}
\newcounter{mycont}
\newcommand\mline[1][5]{%
\setcounter{mycont}{0}
\par\noindent\loop
\ifnum\value{mycont}<#1
\null\hrulefill\\
\stepcounter{mycont}
\repeat\par}
\begin{document}
\mline
\mline[3]
\mline[8]
\end{document}
答案2
必expl3
答题:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\mline}{ O{5} }
{
\par
\prg_replicate:nn { #1 } { \hrulefill\par }
}
\ExplSyntaxOff
\begin{document}
\mline
\medskip
\mline[2]
\medskip
\mline[4]
\end{document}
答案3
pgffor
以下是使用循环的版本:
代码:
\documentclass{article}
\usepackage{pgffor}
\newcommand{\mline}[1][5]{%
\foreach \x in {1,...,#1} {%
\par\noindent\null\hrulefill{}%
}%
\par% Thanks to Gonzalo Medina: Need this for the case of text following \mline.
}
\begin{document}
\bigskip
\mline
some text.% shows why the trailing \par is required.
\mline[3]
\bigskip
\mline[2]
\end{document}