NiceTabular 环境中合并单元格中的换行符

NiceTabular 环境中合并单元格中的换行符

我正在尝试使用 NiceTabular 创建一个表格,因为我遇到了多列/多行的一些颜色问题。

表格看起来已经很好了,除了 \Block 单元格中没有换行。在普通单元格中,换行按预期工作。使用多行时我遇到了同样的问题,但我可以再次将宽度设置为多行参数,然后换行完成,但使用 NiceTabular 我无法做到这一点:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{nicematrix} % nicematrix.sty must be installed

\begin{document}
\begin{NiceTabular}[colortbl-like]{|p{1cm}|p{2cm}|Wc{3cm}|p{4cm}|p{4cm}|} 
    \hline 
    \Block[fill=[HTML]{FFFF00}]{2-1}{Table Title}    &
    \Block[fill=[HTML]{FFFF00}]{2-1}{Column 1}   &  Column   &   \Block[fill=[HTML]{FFFF00}]    {2-2}{Column 3} &  \\ 
    \cline{3-3}       
    &     &     2    &       &   \\ 
    \hline 
    Row 1 & Value 1 & Value 2    & Value 3 & Value 4 \\ 
    \hline 
    \Block[fill=[HTML]{780373}]{2-1}{Row 2}  &  
    Long text outside of Block &     
    \Block[fill=[HTML]{548235}]{2-1}{This cell contains a long value}    &   \Block[fill=[HTML]{0070C0}]{2-2}{Value 8} &  \\ 
    \cline{2-2}       
    & Value 6 &  & & \\ 
    \hline 
\end{NiceTabular}   
\end{document}

表格应该在最后从 excel 自动创建,因此仅在文本中添加换行符并不能解决问题。如何在 NiceTabular \Block 中获得换行符?

在此处输入图片描述

答案1

带有\parbox

\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{nicematrix}
\usepackage{rotating}

\begin{document}

\begin{sidewaystable}
\begin{NiceTabular}[hvlines,colortbl-like]{p{1cm}p{2cm}Wc{3cm}p{4cm}p{4cm}} 
    \Block[fill=[HTML]{FFFF00}]{2-1}{Table Title}    &
    \Block[fill=[HTML]{FFFF00}]{2-1}{Column 1}   &  Column   &   \Block[fill=[HTML]{FFFF00}]    {2-2}{Column 3} &  \\ 
    &     &     2    &       &   \\ 
    Row 1 & Value 1 & Value 2    & Value 3 & Value 4 \\ 
    \Block[fill=[HTML]{780373}]{2-1}{Row 2}  &  
    Long text outside of Block &     
    \Block[fill=[HTML]{548235}]{2-1}{\parbox{3cm}{This cell contains a long value}}    &   \Block[fill=[HTML]{0070C0}]{2-2}{Value 8} &  \\ 
    & Value 6 &  & & \\ 
\end{NiceTabular}   
\end{sidewaystable}

\end{document}

备注: 就您而言,密钥hvlines绘制了所有必需的规则。

与往常一样nicematrix,您需要进行多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案2

在最新版本nicematrix(2021-08-10 的 v. 6.0)中,固定宽度的列(类型为 、 和 的列)的宽度p用于bmX的单列块。因此,就您而言,您直接得到了预期的结果。

\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{nicematrix}
\usepackage{rotating}

\begin{document}

\begin{sidewaystable}
\begin{NiceTabular}[hvlines,colortbl-like]{p{1cm}p{2cm}Wc{3cm}p{4cm}p{4cm}} 
    \Block[fill=[HTML]{FFFF00}]{2-1}{Table Title}    &
    \Block[fill=[HTML]{FFFF00}]{2-1}{Column 1}   &  Column   &   \Block[fill=[HTML]{FFFF00}]{2-2}{Column 3} &  \\ 
    &     &     2    &       &   \\ 
    Row 1 & Value 1 & Value 2    & Value 3 & Value 4 \\ 
    \Block[fill=[HTML]{780373}]{2-1}{Row 2}  &  
    Long text outside of Block &     
    \Block[fill=[HTML]{548235}]{2-1}{This cell contains a long value}    &   \Block[fill=[HTML]{0070C0}]{2-2}{Value 8} &  \\ 
    & Value 6 &  & & \\ 
\end{NiceTabular}   
\end{sidewaystable}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容