固定列宽表格,单元格中的文本左对齐

固定列宽表格,单元格中的文本左对齐
\section{Section Title} %label{8.4.47}
\subsection*{Some note on Section}
\begin{footnotesize}
\begin{tabular}{p{2cm}|p{4cm}|p{3cm}|p{3cm}}
Heading 1 & Heading 2 & Heading 3  & Heading 4 \\
\hline
Text 1  & Text 2 & A\textsuperscript {6/1} B\textsuperscript {5/1} C\textsuperscript {1/2}  D\textsuperscript {7/1} (E + F)\textsuperscript{8.4.46} (G + H)\textsuperscript{8.4.45} Some more text\textsuperscript{6.1.72} \\
\end{tabular}
\end{footnotesize}

上面的表格中,|p{3cm}列对齐了。字符之间有一些不必要的空格,有没有办法让它左对齐,如果文本不适合一行,可以输入“-”并继续下一行,或者干脆从新行开始。

我还可以用 Unicode 字符发布我的代码吗?

答案1

你可以使用该array包并让它插入\raggedright命令。一种方便的方法是定义一个新的列类型:

\usepackage{array}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}

现在只需使用P而不是p来获取左对齐的 p 列。

除了,您还可以使用包的\raggedright增强命令,该命令允许使用连字符。此外, 恢复了 \ 的行为(由 更改),不再需要。\RaggedRightragged2e\arraybackslash\raggedright

所以我喜欢的方式是

\usepackage{array}
\usepackage{ragged2e}
\newcolumntype{P}[1]{>{\RaggedRight\hspace{0pt}}p{#1}}

我进一步插入,\hspace{0pt}因为否则可能会出现连字符问题:TeX 不会对框中的第一个单词进行连字符处理。插入零空格可以解决这个问题。

答案2

的 2.4f 版本array引入了新的列类型:w{...}{...}W{...}{...}。第一个参数是lcr,第二个参数是列宽。使用时W,如果单元格内容太宽,则会发出警告。

\documentclass{article}
\usepackage{array}

\begin{document}

\begin{tabular}{|wl{2cm}|wr{3cm}|}
\hline
qsdf & poiu \\
\hline
pqsdg aer & pou azer \\
\hline
\end{tabular}

\end{document}

上述代码的输出

相关内容