为了学习,我需要将一些信息放入 中tabular
。我使用tabularx
和 来确定我使用的列宽\parbox
。这些都很好用,但两列上的文本不是从同一级别开始的。我想让左列上的文本与右列上的文本处于相同的高度,我该怎么做?
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{french}
\setotherlanguages{english,german,latin,italian,spanish,russian,greek}
\usepackage{tabularx}
\begin{document}
\begin{center}
\begin{tabularx}{\linewidth}{|@{}>{\bfseries}l|@{\hspace{.5em}}X@{}|}
\hline \parbox{3cm}{text} & text \\
\hline \parbox{3cm}{text} & text \\
...
\end{tabularx}
\end{center}
\end{document}
答案1
对于第一列,不要指定l
为列类型,然后使用\parbox
(宽度为3cm
)来排版其材质。而是p{3cm}
直接使用列类型说明符。
鉴于第一列的设置相当狭窄,我会使用右边不规则而不是完全(即左、右)对齐。
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{french}
\setotherlanguages{english,german,latin,italian,spanish,russian,greek}
\usepackage{tabularx}
\usepackage{ragged2e} % for "\RaggedRight" macro
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}}
\usepackage{lipsum} % for filler text
\begin{document}
\noindent
\begin{tabularx}{\linewidth}{ @{}
>{\bfseries}P{3cm} | @{\hspace{.5em}}
X @{}}
\hline
Once upon a time, there was an enchanted castle \dots &
\lipsum*[1] \\
\hline
text & text \\
\end{tabularx}
\end{document}
附录回答@u2berggeist 的后续问题:
\arraybackslash
您能解释一下列类型定义中该命令的必要性吗
让我先从该软件包的用户指南的摘录开始array
:
\arraybackslash:
恢复以在环境中\\
使用(之后等)。array
tabular
\raggedright
诚然,这太简洁了。让我尝试对 的目的进行更冗长的解释\arraybackslash
。
当使用
\newcolumntype
定义新的列类型时, 的含义\\
会发生变化(我承认我从未完全理解其中的原因)。但结果是\\
不再是创建换行符的宏;人们必须使用 来\tabularnewline
代替。该指令\arraybackslash
只是恢复了 的普遍预期行为\\
。(我想我从未见过喜欢在 ...\tabularnewline
上打字的人\\
)在上面的代码中,列(第一列)没有强制换行
P
。因此,并非绝对必要在的定义\arraybackslash
中使用。那么我为什么要使用呢?我这样做有两个原因。\newcolumntype
P
\arraybackslash
首先,这样做永远不会有坏处——除非一个人渴望打字
\tabularnewline
……其次,如果该
P
列用于最终的\arraybackslash
列而不是第一列,如果在说明中没有使用,\newcolumntype
就会产生一些相当神秘的错误消息,这肯定会让除了 David Carlisle 之外的所有人都感到困惑。这个网站上的帖子经常出现在 Google 搜索中,甚至在发布多年之后也是如此。例如,这个答案可能会出现在搜索“latex table raggedright column”中。这个答案的随意读者可能会很高兴地注意到\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}}
甚至可能注意到必须加载包
ragged2e
(因为它定义了\RaggedRight
)。普通读者可能会错过——事实上,错过应该得到原谅!——在tabularx
手头的环境中,P
列类型不会在最终的专栏。如果我发布\newcolumntype{P}[1]{>{\RaggedRight}p{#1}}
对于给定的环境,答案仍然“有效”
tabularx
;但是,它将不必要地冒着在未来的用户中造成巨大挫败感的风险,这些用户使用术语“latex table raggedright column”进行网络搜索,并且有兴趣使用该P
列类型作为他们类似环境的最后一列,即最右边的列tabular
。
我成功回答了你的问题吗?