NiceTabular 表格标题中的旋转粗体字体

NiceTabular 表格标题中的旋转粗体字体

nicematrix我正在使用和包制作表格makecell,因为这些包一起使用可以获得包含旋转文本的多行标题单元格(如所指出的这里;如果我没记错的话,makecell单独包装允许制作带有旋转文本的单元格,可以合并垂直相邻的单元格,但不能合并单个单元格)。我需要通过设置灰色背景和粗体字体来突出显示表格标题内容。我有两个问题/疑问:

  1. 的内容\Block从单元格中心向上移动 - 字母Ś接触单元格的顶部边界线(见下图);而m旋转文本的单元格中的字母几乎接触单元格的相应边界线。如何\Block自动将内容居中?
  2. \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命令,因为您已经使用了命令。\gapemakecell\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} 

相关内容