定义要显示多少行的函数

定义要显示多少行的函数

我刚刚在自己的文档类中创建了一个命令,如果我输入:\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}

相关内容