这个问题涉及三件事:
- 在单元格中强制换行
- 结合以上内容
\rowcolors
- 结合上面的垂直线
1.这显然是一个常见问题,因为我已经阅读了有关此问题的多个帖子。但是,我还没有找到任何真正的解决方案来解决这个极其恼人的问题,只有一些小技巧。
基本上,我有一张表格,第一列有一个名称、一个字母和一个单位,我希望字母和单位放在第二行以节省水平空间。我试过:
p{}
设置列宽:由于内容的长度不一样,所以不起作用。\newline
:使用 tabulary 时它工作了一次(?),然后就停止工作了。\parbox
:但是我不想坐下来为每个单元格设置框宽度,这似乎完全没有必要。\makecell
和\thead
:这两个都很好用,允许\\
内部!它们都自动提供最佳的换行符和单元格形状\pbox
:给出与上面类似的结果,但是是其他的对齐方式。
但是,现在进入第二部分:
\makecell
and \thead
(and \pbox
) 完全搞乱了\rowcolors
。它显然将两行单元格处理为两个单元格或其他。那么,我该如何解决这个问题?还有其他方法可以在单元格中插入换行符吗?或者可以\rowcolors
操纵吗?可以\makecell
操纵吗?在 CTAN 手册中找不到任何关于\makecell
软件包的答案
3.此外,这也是一个已知问题。在实施时\rowcolors
,彩色行会弄乱垂直线...它们没有被完全覆盖,而是被覆盖了一半或宽度减半,看起来很糟糕。使用时也是一样\rowcolor
。我试过了\setlength\arrayrulewidth{1pt}
,但这只会增加所有线条的宽度,而不会补偿那些被弄乱的部分。有什么好的建议吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{makecell}
\usepackage{tabulary}
\usepackage{float}
\definecolor{lg}{gray}{0.9}
\begin{document}
\begin{table}[H]
\centering
\rowcolors{1}{lg}{}
\begin{tabulary}{1\textwidth}{|l|C C C C C|}\hline
No. & 1 & 2 & 3 & 4 & 5\\
\makecell[l]{Name} & DIN CK45 & M244 & Alumec 89 & HPFS 7980 & Ti-6Al-4V (Grade 5)\\
\makecell[l]{Type} & HTS & Cast Alu. & Aluminium & Fused Silica & Titanium \\
\makecell[l]{Young's modulus \\ E [GPa]} & 210 & 90 & 71.5 & 72.7 & 113.8 \\
\makecell[l]{Poisson's ratio \\ $\nu$ [1]} & 0.3 & 0.3 & 0.3 & 0.16 & 0.34 \\
\makecell[l]{Yield strength \\ $\sigma_y$ [MPa]} & 500 & 185 & 550 & - & 880 \\
\makecell[l]{Ultimate strength \\ $\sigma_u$ [MPa]} & 585 & 190 & 590 & 52.4 & 950 \\
\makecell[l]{Reference temp. \\ $t_{ref}$ [\degree C]} & - & 25 & 25 & 25 & - \\
\makecell[l]{Density \\ $\rho$ [kg/m\textsuperscript{3}]} & 7840 & 2650 & 2830 & 2201 & 4430 \\
\makecell[l]{Manufacturer} & Metal Ravne & MAHLE & UDDEHOLM & CORNING & - \\ \hline
\end{tabulary}
\caption{Material data}
\label{tab:materials1}
\end{table}
\end{document}
答案1
差不多一年后(!)这个答案对 OP 没什么帮助……或者我错了 :)。无论如何,着色\makecell
有点棘手。正确的着色可以通过放入宏来获得\makecell{...}
,\cellcolor
例如:
\cellcolor{lg}{\makecell[l]{Poisson's ratio\\ $\nu$ \cite{1}}}
然而,我宁愿将表重新设计成:
\documentclass{article}
\usepackage[margin=35mm]{geometry} % <-- added
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{siunitx} % <-- added
\usepackage{tabularx} % <-- changed
\renewcommand\tabularxcolumn[1]{m{#1}} % <-- added
\newcolumntype{C}{>{\centering\arraybackslash}X} % <-- added
\newcolumntype{L}{>{\raggedright\arraybackslash}X} % <-- added
\definecolor{lg}{gray}{0.9}
\begin{document}
\begin{table}
\centering
\setlength\tabcolsep{3pt}
\rowcolors{1}{lg}{}
\begin{tabularx}{\textwidth}{| >{\hsize=1.25\hsize}L | *{5}{>{\hsize=0.95\hsize}C} |}
\hline
\hfil No. & 1 & 2 & 3 & 4 & 5 \\
\hline
Name & DIN CK45 & M244 & Alumec 89 & HPFS 7980 & Ti-6Al-4V (Grade 5)\\
Type & HTS & Cast Alu. & Aluminium & Fused Silica & Titanium \\
Young's modulus E [GPa]
& 210 & 90 & 71.5 & 72.7 & 113.8 \\
Poisson's ratio $\nu$ \cite{1}
& 0.3 & 0.3 & 0.3 & 0.16 & 0.34 \\
Yield strength $\sigma_y$ [MPa]
& 500 & 185 & 550 & -- & 880 \\
Ultimate strength $\sigma_u$ [MPa]
& 585 & 190 & 590 & 52.4 & 950 \\
Reference temp. $t_{\mathrm{ref}}$ [\si{\degreeCelsius}]
& -- & 25 & 25 & 25 & -- \\
Density $\rho$ [\si{kg\per\metre\cubed}] & 7840 & 2650 & 2830 & 2201 & 4430 \\
Manufacturer& Metal Ravne & MAHLE & UDDEHOLM & CORNING & -- \\
\hline
\end{tabularx}
\caption{Material data}
\label{tab:materials1}
\end{table}
\end{document}
这使:
答案2
与。{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{geometry}
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{float}
\begin{document}
\begin{table}[H]
\centering
\begin{NiceTabular}{|l|*{5}{X[c]}|}
\CodeBefore
\rowcolors[gray]{1}{0.9}{}
\Body
\Hline
No. & 1 & 2 & 3 & 4 & 5\\
Name & DIN CK45 & M244 & Alumec 89 & HPFS 7980 & Ti-6Al-4V (Grade 5)\\
Type & HTS & Cast Alu. & Aluminium & Fused Silica & Titanium \\
\Block{}{Young's modulus \\ E [GPa]} & 210 & 90 & 71.5 & 72.7 & 113.8 \\
\Block{}{Poisson's ratio \\ $\nu$ [1]} & 0.3 & 0.3 & 0.3 & 0.16 & 0.34 \\
\Block{}{Yield strength \\ $\sigma_y$ [MPa]} & 500 & 185 & 550 & - & 880 \\
\Block{}{Ultimate strength \\ $\sigma_u$ [MPa]} & 585 & 190 & 590 & 52.4 & 950 \\
\Block{}{Reference temp. \\ $t_{\text{ref}}$ [°C]} & - & 25 & 25 & 25 & - \\
\Block{}{Density \\ $\rho$ [kg/m\textsuperscript{3}]} & 7840 & 2650 & 2830 & 2201 & 4430 \\
Manufacturer & Metal Ravne & MAHLE & UDDEHOLM & CORNING & - \\
\Hline
\end{NiceTabular}
\caption{Material data}
\label{tab:materials1}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案3
我不知道这会如何pbox
弄乱您的行颜色,但对我来说却不是这样:
\newcommand{\multilinebox}[1]{\pbox{\linewidth}{\vspace{.5\baselineskip}#1\vspace{.5\baselineskip}}}