我正在尝试制作一些小虚线,用于签名不同的人,下面印有他们的名字。我认为如果虚线的宽度和水平位置与人的名字相匹配,看起来会很棒。我寻找了一个解决方案,并找到了一个这里,并包含在我的示例中。
但是,这不会改变间距,因此它实际上与长度并不完全匹配。 有什么好方法可以实现这一点吗?
\documentclass{letter}
\usepackage{lipsum}
\address{Street \\ City \\ Country}
\newlength\mylen
\newcommand\mdotfill[2][-0em]{%
\settowidth\mylen{$#2$}
\addtolength\mylen{#1}
\leavevmode\hbox to \mylen{\xleaders\hbox{.}\hfill}}
\begin{document}
\begin{letter}{Company name \\ Street\\ City\\ Country}
\opening{Dear Sir or Madam:}
\lipsum[1-2]
\vfill
\closing{Signed,}
\mdotfill{John Doe}\hfill\mdotfill{Jane Doe} \hfill \mdotfill{Joe W. Long Name} \hfill \mdotfill{Lisa Simpson}\\
John Doe\hfill Jane Doe\hfill Joe W. Long Name\hfill Lisa Simpson
\end{letter}
\end{document}
答案1
这是一个根据小包装打印下面的点和名称的宏makebox
:
\documentclass{letter}
\usepackage{lipsum}
\address{Street \\ City \\ Country}
\usepackage{makebox}
\newcommand\signhere[1] {\begin{tabular}{c}\makebox*{#1}{\xleaders\hbox{.}\hfill}\\[2ex]#1\end{tabular}}
\begin{document}
\begin{letter}{Company name \\ Street\\ City\\ Country}
\opening{Dear Sir or Madam:}
\lipsum[1-2]
\vfill
\closing{Signed,}
\signhere{Edward Lear}\hfill\signhere{Jane Eyre}\hfill\signhere{Mahatma Kane Jeeves}\hfill\signhere{Lisa Simpson}
\end{letter}
\end{document}