尝试使用表格和下划线来制作表格?

尝试使用表格和下划线来制作表格?

我正在尝试使用\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}

输出:

上述代码的输出

相关内容