增加表格特定行的列宽

增加表格特定行的列宽

我一直在摆弄一张桌子,想知道是否有人可以帮助我改进这一点:

\documentclass{report} 
\usepackage{array}
\begin{document}
\begin{tabular}[]{p{2em}  p{4in}} 
xy     &     Some text, some more text \\
yz     &     Some other text, some more text \\
\multicolumn{2}{>{\hangindent=2em}p{3in}}{this is longer \quad Some other text, some more and more and more text, a lot of text} \\
zz     &     Some further text, some more text \\
\end{tabular}
\end{document}

一个两列表格,其中左列很小,但有些行可能包含我想放到第二列中的信息。第二列的悬挂缩进仍应与该列对齐。此外,我想指定第二列的宽度以使用其余的文本宽度。也许表格是错误的方法。欢迎提出任何建议。

在此处输入图片描述

答案1

您可以使用tabularx制作适合宽度的表格。

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx}
\usepackage[nopar]{lipsum}

\begin{document}

\noindent
\begin{tabularx}{\linewidth}{ @{} p{2em} X @{} } 
  xy & Some text, some more text \\
  yz & Some other text, some more text \\
     & \hspace{\dimexpr-2em-2\tabcolsep}this is longer \quad Some other text, \lipsum[2] \\
  zz & Some further text, some more text
\end{tabularx}

\end{document}

不用使用\multicolumn\hangindent只需将第一行移到左侧,并在第一行留出负空间。其他边缘的列间隙已使用@{}说明符移除。


类似tabular结构不会在段落(或行)中间跨越页面边界。如果担心这一点,您可以使用类似descriptionenumitem为此提供了一些简单的功能style=sameline

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}
\usepackage[nopar]{lipsum}

\begin{document}

\begin{description}[font=\normalfont, leftmargin=2.5em, style=sameline, noitemsep]
  \item[xy] Some text, some more text
  \item[yz] Some other text, some more text
  \item[this is longer\quad] Some other text, \lipsum[2]
  \item[zz] Some further text, some more text
\end{description}

\end{document}

我通过插入来强调该项目与后续文本之间的差距\quad

相关内容