如何生成周期序列

如何生成周期序列

我想创建一个包含如下句点序列的文档:

......................
Date

............................
Signature

有没有什么方法可以做到这一点而不用自己输入所有句点(甚至可能是一种针对这种常见的印刷怪癖的方法)?

答案1

使用\dotfill

\documentclass{article}
\usepackage{xparse}
\usepackage{multicol}

\NewDocumentCommand \dotbox {o O{.5\linewidth} m O{3ex} O{\linewidth}}
{
  \begin{minipage}{#2}
    \IfValueTF{#1}{#1}{\null}
    \\[#4]
    \makebox[#5]{\dotfill}
    \\
    #3
  \end{minipage}
}

\begin{document}
\hrule
\begin{multicols}{2}
  \dotbox[Please sign below:]{A. U. Thor}

  \dotbox[And your initials:]{A. U. T.}[6ex][6em]
\end{multicols}
\hrule
\vspace*{3cm}
\hrule
\dotbox[Sign here (4ex)][4cm]{\TeX.SX}[4ex]
\hspace*{2cm}
\dotbox[And here (3ex)][3cm]{\TeX.SX}
\hrule
\end{document}

输出

请注意,虽然此实现允许您进行连续调用\dotbox而无需段落中断,但如果您使用不同的尺寸进行调用,基线可能会被搞砸,正如从后两次使用中看到的那样。

答案2

下面是执行此操作的 TeX 文件示例:

\documentclass{article}

\begin{document}

\makeatletter
\def\mydots#1{\hbox to #1{\leaders\hbox{$\m@th
        \mkern 1mu\hbox{.}\mkern 1mu$}\hfil}}
\makeatother    

\mydots{5pc}

\end{document}

\mydot{5pc}将用点表示宽度5 件。您可以自定义它。

注意:还有一个名为dashrule它具有许多功能。

答案3

\hbox不建议使用,因为它可能会产生意想不到的效果。

\newcommand{\dottedline}[3][3ex]{%
  \par % end the current paragraph (if necessary)
  \nopagebreak % don't break a page here
  \vspace{#1}% space before the signature
  \noindent\makebox[#2]{\dotfill}% make the dotted line
  \\* % go to a new line without any page break
  \noindent#3% signature
  \par % end the paragraph
}

这是一个完整的例子:

\documentclass{article}

\newcommand{\dottedline}[3][3ex]{%
  \par % end the current paragraph (if necessary)
  \nopagebreak % don't break a page here
  \vspace{#1}% space before the signature
  \noindent\makebox[#2]{\dotfill}% make the dotted line
  \\* % go to a new line without any page break
  \noindent#3% signature
  \par % end the paragraph
  \vspace{#1}% space below the signature
}

\begin{document}

Please sign here:

\dottedline{6cm}{A. U. Thor}

And your initials:

\dottedline[1ex]{3cm}{A. U. T.}

\end{document}

在此处输入图片描述

相关内容