我正在尝试使用\tabular{r l}
和 下划线\hspace
来制作表格。我尝试使用 \fill 让 hspace 填充可用空间,但它不起作用。
\documentclass{article}
\usepackage[utf8]{inputenc}
\title{Helpdesk ticket}
\author{felixphew}
\begin{document}
\begin{tabular}{r l}
Name & \underline{\hspace{\fill}} \\
Ticket No & \underline{\hspace{\fill}}
\end{tabular}
\end{document}
但是,下划线没有显示出来。我想要的结果有点类似于这(使用9cm
而不是生成\fill
),但是应该有某种方法可以使下划线使用所有可用空间。
答案1
这对你们来说够了吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
\title{Helpdesk ticket}
\author{felixphew}
\usepackage{showframe}
\begin{document}
\maketitle
\noindent%
\begin{tabular}{@{}p{.2\linewidth} @{}p{.8\linewidth}}
\textbf{Name:} & \hrulefill\\[5pt]
\textbf{Ticket No:} & \hrulefill
\end{tabular}
\end{document}
另一个解决方案:如果您希望长度有更大的灵活性,您只需更改值\firstcol
,然后另一个就会有所不同。
因此,假设您必须编写一个长度更长的字段,只需更改第一列的长度。
\documentclass{article}
\usepackage[utf8]{inputenc}
\title{Helpdesk ticket}
\author{felixphew}
\usepackage{showframe}
\newlength{\firstcol}
\newlength{\secondcol}
\setlength{\firstcol}{2cm}
\setlength{\secondcol}{\linewidth}
\addtolength{\secondcol}{-\firstcol}
\begin{document}
\maketitle
\noindent%
\begin{tabular}{@{}p{\firstcol} @{}p{\secondcol}}
\textbf{Name:} & \hrulefill\\[5pt]
\textbf{Ticket No:} & \hrulefill
\end{tabular}
\end{document}
答案2
不管怎样,已经太晚了...另一个解决方案,比@Sigur 的答案稍微简化了一点:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{showframe}
\usepackage{tabularx}
\title{Helpdesk ticket}
\author{felixphew}
\begin{document}
\maketitle
\noindent%
\begin{tabularx}{\textwidth}{@{}r X}
\textbf{Name:} & \hrulefill \\[5pt]
\textbf{Ticket No:} & \hrulefill \\
\end{tabularx}
\end{document}
或者与@Sigur 的回答有点不同(而且不那么美好):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\renewcommand{\arraystretch}{1.3}
\title{Helpdesk ticket}
\author{felixphew}
\begin{document}
\maketitle
\noindent%
\begin{tabularx}{\textwidth}{@{}r X}
\textbf{Name:} & \\ \cline{2-2}
\textbf{Ticket No:} & \\ \cline{2-2}
\end{tabularx}
\end{document}
答案3
那么,也许我也可以展示我多年前编写的代码,以解决类似的问题(实际上略作了重新调整)。它tabular
根本不涉及,所以请完全忽略这个答案。重点是,我需要一些(可选的)规则下方的解释性文字。
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{enumitem}
\makeatletter
% Command \fillinline prints a rule with an optional explanatory text underneath.
%
% Usage:
% \fillinline[<text>]{<width>}
% Prints a rule of width <width>, with explanatory text <text> underneath.
% <width> may be equal to \fill.
\newcommand*\fillinline[2][]{%
\setlength\skip@{#2}%
\vrule \@height 8mm \@width\z@
\nobreak \leaders\hrule \@height .2\p@ \hskip\skip@
\nobreak
\hskip -\skip@
\divide\skip@\tw@
\hskip\skip@
\makebox[\z@][c]{\raisebox{-1ex}[\z@][\z@]{\tiny #1}}%
\nobreak\hskip\skip@
\kern\p@ % in case a punctuation follows
}
% Another simple trick that may be handy:
\newenvironment*{checkboxitemize}
{\itemize[label=$\Box$, leftmargin=*]} % or set labelindent as well
{\enditemize}
\makeatother
\begin{document}
The undersigned \fillinline[Surname, Name]{\fill},\linebreak
born in~\fillinline{\fill}
on \fillinline[mm]{6mm}/\fillinline[dd]{6mm}/\fillinline[year]{10mm},\linebreak\space
etc. etc.
Payment method:
\begin{checkboxitemize}
\item Cheque
\item Credit card
\item \ldots
\end{checkboxitemize}
\end{document}
输出: