nicematrix
我正在使用和包制作表格makecell
,因为这些包一起使用可以获得包含旋转文本的多行标题单元格(如所指出的这里;如果我没记错的话,makecell
单独包装允许制作带有旋转文本的单元格,可以合并垂直相邻的单元格,但不能合并单个单元格)。我需要通过设置灰色背景和粗体字体来突出显示表格标题内容。我有两个问题/疑问:
- 的内容
\Block
从单元格中心向上移动 - 字母Ś
接触单元格的顶部边界线(见下图);而m
旋转文本的单元格中的字母几乎接触单元格的相应边界线。如何\Block
自动将内容居中? - 该
\Block
命令是否允许为单元格组应用粗体脚注字体,就像\renewcommand{\theadfont}{\footnotesize\bfseries}
在makecell
包中一样?
代码:
\documentclass[table]{standalone}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{nicematrix}
\renewcommand{\arraystretch}{1.3}
\begin{document}
\begin{NiceTabular}[hvlines,code-before=\rowcolor{gray!30}{1-3}]{%
S[table-format=2.1]
S[table-format=1.2]
S[table-format=2.1]
}
\multicolumn{2}{c}{\makecell{Średnia wartość\\czegoś tam}} &
{\Block{2-1}{\rotate \makecell{Obrócony opis\\kolumny B}}} \\
{\Block{2-1}{\rotate \makecell{straszne dane}}}
& \rotate \makecell{inne dane\\z długim opisem} \\
& {A} & {B} \\
63.5 & 4.87 & 63.5\\
88.4 & 5.13 & 88.4\\
\end{NiceTabular}
\end{document}
答案1
\Block
您的问题与命令(由提供)无关,nicematrix
因为该命令\Block
是不是在两个单元格中使用时都存在问题(但是,\Block
在这些单元格中使用并不能解决问题,因为该命令\Block
不会创建空间)。
事实上,您的问题会出现在{tabular}
LaTeX 标准中(只要您使用明确\rotatebox
而不是\rotate
提供的语法变体nicematrix
)。
对于第一个单元格(其内容为),我建议使用提供的Średnia wartość czegoś tam
命令,因为您已经使用了命令。\gape
makecell
\makecell
由此得出:\gape[t]{\makecell{Średnia wartość\\czegoś tam}}
。
\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{nicematrix}
\renewcommand{\arraystretch}{1.3}
\begin{document}
\begin{NiceTabular}[hvlines,code-before=\rowcolor{gray!30}{1-3}]{%
S[table-format=2.1]
S[table-format=1.2]
S[table-format=2.1]
}
\multicolumn{2}{c}{\gape[t]{\makecell{Średnia wartość\\czegoś tam}}} &
{\Block{2-1}<\rotate>{Obrócony opis\\kolumny B}} \\
{\Block{2-1}<\rotate>{straszne dane}}
&{\Block{}<\rotate>{inne dane\\z długim opisem\;}}\\
& {A} & {B} \\
63.5 & 4.87 & 63.5\\
88.4 & 5.13 & 88.4\\
\end{NiceTabular}
\end{document}
答案2
对于blocks
,文本已经位于中心。如果您想要进一步移动,请使用\hspace
来实现所需的输出。对于,您可以尝试调整单元格宽度,或者减小文本的大小,以便文本不会触及单元格边框。这可以通过使用或spacing
来实现。只需在文本前使用它即可。\small
\scriptsize
\documentclass[table]{standalone}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{nicematrix}
\begin{document}
\centering
\begin{NiceTabular}[hvlines,code-before=\rowcolor{gray!30}{1-3}]{%
S[table-format=2.1]
S[table-format=1.2]
S[table-format=2.1]
}
\multicolumn{2}{c}{\makecell{\scriptsize{Średnia wartość}\\\scriptsize{czegoś tam}}} &
{\Block{2-1}{\hspace{-.4cm}\rotate \makecell{Obrócony opis\\kolumny B}}} \\
{\Block{2-1}{\centering\rotate \makecell{straszne dane}}}
& \rotate \makecell{inne dane\\z długim opisem} \\
& {A} & {B} \\
63.5 & 4.87 & 63.5\\
88.4 & 5.13 & 88.4\\
\end{NiceTabular}
\end{document}
评论后编辑答案:
\documentclass[table]{standalone}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{nicematrix}
\begin{document}
\centering
\begin{NiceTabular}[hvlines,code-before=\rowcolor{gray!30}{1-3}]{%
S[table-format=2.1]
S[table-format=1.2]
S[table-format=2.1]
}
\multicolumn{2}{c}{\makecell{\scriptsize{\textbf{Średnia wartość}}\\\scriptsize{\textbf{czegoś tam}}}} &
{\Block{2-1}{\hspace{-.4cm}\rotate \makecell{\small \textbf{Obrócony opis}\\\small\textbf{kolumny B}}}} \\
{\Block{2-1}{\centering\rotate \makecell{\small \textbf{straszne dane}}}}
& \rotate \makecell{\scriptsize \textbf{inne dane}\\\scriptsize \textbf{z długim opisem}} \\
& {A} & {B} \\
63.5 & 4.87 & 63.5\\
88.4 & 5.13 & 88.4\\
\end{NiceTabular}
\end{document}