这是我的代码,它在表格的最后一行失败了。为什么?
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{l}
a \\ b \tabularnewline
\cellcolor{blue}{a b} \tabularnewline
\cellcolor{green}{a \\ b}
\end{tabular}
\end{document}
答案1
\cellcolor{green}{a \\
做:
\cellcolor{green}
其次是- 一个显式的 begin-group 标记,用于启动一个新组(
{
带类别代码 1 的左括号) - 添加一个
a
字符 tabular
行末有\\
此时,这是不正确的,因为\\
终止了正在处理的单元格,但 begin-group end end-group 标记在此单元格内未正确平衡( 启动了一个组,{
但您的代码未正确结束该组)。这就是为什么 TeX 说:
./rr.tex:10: Missing } inserted.
<inserted text>
}
l.10 \cellcolor{green}{a \\ b
}
(据我所知,上面写着后阅读,b
因为\\
在发出 ) 之前做了一些前瞻性检查,以查看您是否给出了可选参数\cr
。
此外,这也是我写这个答案的原因,\cellcolor
只接受一个参数,而不是两个,因此我会写这个来修复你的例子:
\documentclass{article}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{l}
a \\
b \\
\cellcolor{blue!20}a b\\
\cellcolor{green!20}a\\
\cellcolor{green!20}b
\end{tabular}
\end{document}
(xcolor
仅用于使颜色看起来比仅仅blue
和更美观green
)
答案2
因为该行有多个单元格。以下方法可行:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{l}
\\ b \tabularnewline
\cellcolor{blue}{a b} \tabularnewline
\cellcolor{green}{a} \\ \cellcolor{green}{b}
\end{tabular}
\end{document}
答案3
好吧。(La)TeX 的表格模型每天都会给我带来惊喜。
我认为新的tabularray
包裹会再次给您带来惊喜。:-)
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{tblr}{l}
a \\ b \\
\SetCell{blue8} a b \\
\SetCell{teal8} {a \\ b}
\end{tblr}
\end{document}
答案4
使用,您可以在一个单元格中放入多行内容,使用多功能的内置命令,该{NiceTabular}
命令有一个键来填充它。nicematrix
\Block
fill
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{l}[colortbl-like]
a \\
b \\
\cellcolor{blue!15}a b \\
\Block[fill=green!15]{}{a \\ b}
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。