我正在构建一个表格,我希望其中一个单元格的内容换行,以便保持表格美观紧凑并保持在页面上(更不用说避免过多的空白)。所以我使用了\parbox
。
然而,因为一些单元格的内容是印地语,而元音变音符号往往与水平规则发生冲突(或者至少所有内容都显得很拥挤),所以我决定使用
\renewcommand{\arraystretch}{1.75}
\parbox
然而,这当然意味着内容和规则之间的垂直空间太小(实际上没有) :
\documentclass[12pt]{article}
\renewcommand{\arraystretch}{1.75}
\begin{document}
\begin{tabular}{cc}
\parbox{57pt}{\textsc{Inf}/\textsc{Ger}/\\ Obligatory} & Conjunctive
\\ \hline
Lorem & Ipsum
\end{tabular}
\end{document}
显然,我需要的是指定 的高度\parbox
,或者添加一个支柱。问题是,我不知道正常的垂直间隔是多少!我想要的正是内容和规则之间的正常垂直空间量,但显然这是考虑到 的新值\arraystretch
。
答案1
看看以下解决方案是否适合您:
\documentclass[12pt]{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{p{57pt}c}
\textsc{Inf/Ger}/\newline Obligatory & Conjunctive \\ \midrule
Lorem & Ipsum
\end{tabular}
\bigskip
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{p{57pt}c}
\textsc{Inf/Ger}/\newline Obligatory & Conjunctive \\ \hline
Lorem & Ipsum
\end{tabular}
\end{document}
答案2
更改 \arraystretch 的值有一个缺点:单元格的内容看起来不再垂直居中。您可以使用包来防止大内容接触上下水平规则cellspace
,它允许您定义 最小以字母 为前缀的说明符的列中内容与上方和下方单元格之间的垂直间距S
。
关于列\hbox
中消息不全的问题p
,这可能是由于行数较短导致的连字符问题。这种情况可以通过在表格前言中加载ragged2e
和使用来大大改善。>{\RaggedRight}p{some length}
在下面的代码中,我更喜欢加载makecell
,它允许在标准单元格中换行。
\documentclass[12pt]{article}
\usepackage{makecell}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{6pt}
\setlength{\cellspacebottomlimit}{6pt}
\begin{document}
\begin{tabular}{ScSc}
\makecell{\textsc{Inf}/\textsc{Ger}/\\ Obligatory} & Conjunctive
\\ \hline
Lorem & Ipsum
\end{tabular}
\end{document}