我有一个 6 厘米宽的盒子,我想在其中放置一个标签,标签后面跟着下划线区域,该区域应填满所有剩余的水平空间。如何正确制作?
\makebox[6cm]{
Label: \underline{
\makebox[<100% of free space>]{Signature}
}\newline
}
答案1
这就是你想要的东西吗?
\documentclass{article}
\usepackage{bigstrut}
\begin{document}
\fbox{%
\parbox{6cm}{
Label: Signature\\[3ex]
\hphantom{Label: }\hrulefill
}}\bigskip
or \bigskip
\fbox{%
\parbox{6cm}{
Label: \hfill Signature\hfill\null\\[3ex]
\hphantom{Label: }\hrulefill
}}\bigskip
或 \bigskip
\fbox{%
\parbox{6cm}{\bigstrut
Label: \hrulefill\\[3ex]
\hphantom{Label: }\hfill Signature\hfill\null
}}
\end{document}
答案2
有多种方法可以实现这一点。下面是使用固定宽度p
列的方法tabular
:
\documentclass{article}
\newcommand{\signature}[2][6cm]{%
\begin{tabular}{@{} l @{} p{#1} @{} }
#2:~ & \\
\cline{2-2}
& \centering\footnotesize Signature
\end{tabular}}
\begin{document}
\signature{Stan}
\signature[7cm]{Cartman}
\signature{Kyle}
\signature[40mm]{Kenny}
\end{document}
如果要指定指定长度的整个宽度,可以使用tabularx
定义:
\newcommand{\signature}[2][6cm]{%
\begin{tabularx}{#1}{@{} l @{} X @{} }
#2:~ & \\
\cline{2-2}
&\centering\footnotesize Signature
\end{tabularx}}
答案3
您可以测量标签,然后制作一个与可用空间一样宽的表格。
\documentclass{article}
\newsavebox{\signaturelabelbox}
\newcommand{\signature}[2][6cm]{%
\makebox[#1]{%
\sbox{\signaturelabelbox}{#2: }%
\usebox{\signaturelabelbox}%
\renewcommand{\arraystretch}{0}%
\begin{tabular}[t]{@{}c@{}}
\makebox[\dimexpr#1-\wd\signaturelabelbox]{}\\
\hline
\footnotesize\strut Signature
\end{tabular}%
}%
}
\begin{document}
\signature{Author}
\signature{Advisor}
\signature[10cm]{Author}
\signature[10cm]{Advisor}
\end{document}
您负责垂直间距(可以添加到宏中)。