可能重复:
动态签名/日期行
我怎样才能使文本以如下形式出现在线下:
____________________
name, phone
或者
Name:____________________
(full name)
谢谢!
更新:
两位用户提供的解决方案对于固定大小的 效果很好hspace
。 使用它来制作函数也很容易。
Name: $\underset{\text{(full name)}}{\underline{\hspace{5cm}}}$
但是我想知道是否可以使用这种动态hspace
?或者这是完全不同的问题?
答案1
这是一个基于(可能被滥用的)数学模式的解决方案。我定义了一个名为的新命令,\tline
以使其更简单。第一个参数是您想要的行下方的文本,第二个参数是您想要的行的长度。
代码/示例:
\documentclass[]{article}
\usepackage[]{amsmath}
% THIS IS MY NEWLY DEFINED COMMAND
\newcommand\tline[2]{$\underset{\text{#1}}{\text{\underline{\hspace{#2}}}}$}
\begin{document}
Name: \tline{(full name)}{1in}
\end{document}
输出:
编辑:我修改了代码,使下划线填充了行的其余部分。该技术基于这回答另一个问题。
附加前导码:
% Code based on http://www.latex-community.org/forum/viewtopic.php?f=44&t=10246
\newsavebox\mybox
\newlength\mylen
\newlength\fieldlen
\newcommand\tlinefill[2]{\noindent #1\sbox\mybox{#1}%
\settowidth\mylen{\usebox\mybox}%
\setlength\fieldlen{\linewidth}%
\addtolength\fieldlen{-\mylen}%
$\underset{\text{#2}}{\text{\underline{\hspace{\fieldlen}}}}$}
使用新命令\tlinefill
,该行可以填充行的其余部分。第一个参数是您想要在行前面的文本,第二个参数是您想要在行下面的文本。因此,\tlinefill{Name: }{(full name)}
将产生:
请注意,lipsum
这里的文字只是为了显示线宽。
答案2
或者通过使用\shortstack
以下方式降低:-\baselineskip
\raisebox
\documentclass{article}
\begin{document}
How now \raisebox{-\baselineskip}{\shortstack{\underline{\hspace{3cm}}\\(brown cow)}}?
\end{document}
答案3
另一种可能性是使用\underset
amsmath 包中的命令,例如
\documentclass{article}
\usepackage{amsmath}
\pagestyle{empty}
\begin{document}
$\underset{\text{name, phone}}{\underline{\hspace{5cm}}}$
\vspace*{2cm}
Name: $\underset{\text{(full name)}}{\underline{\hspace{5cm}}}$
\end{document}
答案4
可能有很多方法可以做到这一点。一种方法是使用tabular
环境:
\begin{tabular}{lc}
Name: & \underline{\hspace{2in}}\\
& \textsf{(full name)}
\end{tabular}