如何拉伸表格或小页面以填充剩余空间?

如何拉伸表格或小页面以填充剩余空间?

我正在尝试制作这样的文档:

在此处输入图片描述

由于有很多这样的部分,我想创建一个新的命令,例如\textwithline{}{},然后我可以输入

Author: \textwithline{Joe Shmoe}{First name, Last name}

This author's editor: \textwithline{Billy Willy}{First name, Last name}

在我的文档中。

注意重要特征:

  • 该行必须填满所有可用的剩余空间
  • 行上方和下方的文本必须居中
  • 左侧的文本长度可变(或可能为空白)

有什么好方法可以发出这样的命令吗?我试过:

  • tabular\hfill实际上并没有拉伸桌子
  • tabular*但它没有给左边的文本“留出空间”
  • minipage但这要求我每次都对宽度进行硬编码
  • \uline{\hfill Billy Willy \hfill}{\hfill First name, Last name \hfill}\centering行下方的文本不在行上居中,而是在页面上

答案1

在此处输入图片描述

\documentclass{article}

\newcommand\textwithline[2]{{%
\setlength\parfillskip{0pt}%
\hrulefill
\raisebox{5pt}{\makebox[0pt]{#1}}%
\raisebox{-12pt}{\makebox[0pt]{#2}}%
\hrulefill
\par
\bigskip}}

\begin{document}



Author: \textwithline{Joe Shmoe}{First name, Last name}

This author's editor: \textwithline{Billy Willy}{First name, Last name}

\end{document}

答案2

这是一个使用选项linegoal计算线的剩余宽度(由给出\linegoal)。

在此处输入图片描述

\documentclass{article}

\usepackage{linegoal}

\newcommand{\textwithline}[2]{%
  \begin{minipage}[t]{\linegoal}
    \centering\strut #1 \\[-.7\baselineskip]
    \hrulefill \\[-.1\baselineskip]
    \centering\small\footnotesize #2
  \end{minipage}\par
  \addvspace{.5\baselineskip}
}

\begin{document}

Author: \textwithline{Joe Shmoe}{First name, Last name}

This author's editor: \textwithline{Billy Willy}{First name, Last name}

\end{document}

由于linegoal使用类似标签引用的系统(得益于zref),任何宽度的变化都需要您至少编译两次才能稳定下来。

相关内容