我想创建一个包含如下句点序列的文档:
......................
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}