![具有多行、颜色和不规则右侧的表格](https://linux22.com/image/462939/%E5%85%B7%E6%9C%89%E5%A4%9A%E8%A1%8C%E3%80%81%E9%A2%9C%E8%89%B2%E5%92%8C%E4%B8%8D%E8%A7%84%E5%88%99%E5%8F%B3%E4%BE%A7%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我已经花了 3 天时间尝试创建像 Word 中那样的简单表格。我想为我自己创建一些模板。我尝试了许多 LaTeX 转换器,但都不能满足我的所有要求。这就是我得到的结果,但必须修复几个问题。我几乎确定我不需要代码中的多列。只需为某些行设置对齐即可。
\hhline
我在 的位置用单元格颜色绘制了线条 ( )\multirow
,但仍然有一些线条,这取决于缩放比例。PDF Foxit 阅读器也是如此。我尝试使用\hline
和,\cline
但它们无法正确处理彩色单元格。是否有选项可以更改线宽?我使用
\multirow
,如果我使用 also,单元格内的文本就不会在中间\multicolumn
。如果我删除\multicolumn
它,它就会出现在中间。但是我通过 将它定义在顶部>{\raggedright}p{0.2\textwidth}|
。所以我想将它放在单元格内的顶部,或者选择将它从顶线稍微往下放一点,这样可以更好地控制单元格内的放置。另外,我想将单元格对齐到左上角或左中角,但不设置单元格的宽度,可以吗?
3-4. 如果我有一个长句子,我希望它应该根据列的大小自动移动到另一行。但如果我需要用 来合并单元格,如果 里面的句子必须使用 ,则\multirow
它不起作用。如果我不需要合并单元格,我可以从 中取出一个句子,它会按预期将句子分成几行。在代码行 43 外面,自动转到下一行。在第 46 行里面,因为我需要使用来合并几个单元格,并且我必须使用。它不会自动转到其他行。\multirow
tabular
\multirow
\multirow
\multirow
\multirow
tabular
- 我想让某些单元格居中对齐,但不设置列宽。我该怎么做?
% Automatically added code
\documentclass{article}
\usepackage{xcolor}
\begin{document}
% End of automatically added code
\begin{table}[H]
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|>{\raggedright}p{0.2\textwidth}|>{\raggedright}p{0.2\textwidth}|c|c|c|c|>{\raggedright}p{0.3\textwidth}|}
%{|l|l|c|c|c|c|l|}%>{\raggedright}p{0.12\textwidth}
\hhline{-------}
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189}Parameter}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Details}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Min}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Typ}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Max}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Unit}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{79, 129, 189} Notes}}\tabularnewline
\hhline{|-|-|-|-|-|-|-|}
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{ 79, 129, 189}VDD}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228}VDD2\_b\_a}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228} 1.71}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228} 2}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228} 2.2}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228} {[}V{]}}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{184, 204, 228}2V ±5\%}} \tabularnewline
\hhline{|-|-|-|-|-|-|-|}
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{ 79, 129, 189}}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241}VDD1V8\_c\_d}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 0.9}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.2}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} {[}V{]}}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241}}} \tabularnewline
\hhline{|>{\arrayrulecolor[RGB]{79, 129, 189}}-|>{\arrayrulecolor{black}}->{\arrayrulecolor{black}}|-|-|-|-|-|}
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{ 79, 129, 189}}} &
\multicolumn{1}{|l|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} }} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.0}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.2}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.29}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} {[}V{]}}} &
\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241}}1.20V ±10\%, on save mode also work 5{[}V{]} input \tabularnewline
\hhline{|>{\arrayrulecolor[RGB]{79, 129, 189}}-|>{\arrayrulecolor[RGB]{219, 229, 241}}->{\arrayrulecolor{black}}|-|-|-|-|-|}
\multirow{-3}{*}{\cellcolor[RGB]{ 79, 129, 189}\begin{tabular}[l]{@{}l@{}}Open Source \\SDevice\end{tabular}} &
\multicolumn{1}{|l|}{\multirow{-2}{*}{\cellcolor[RGB]{219, 229, 241}VDD5V2\_sssss\_ttttt}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 0.95}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.0}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} 1.05}} &
\multicolumn{1}{|c|}{\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241} {[}V{]}}} &
\multirow{1}{*}{\cellcolor[RGB]{219, 229, 241}}1.00V ±20\%, on save also work 3{[}V{]} \tabularnewline
\hhline{|-|-|-|-|-|-|-|}
\end{tabular}
}
\end{table}
% Automatically added code
\end{document}
% End of automatically added code
先感谢您。
答案1
这是使用 制作表格的一种方法{NiceTabular}
。nicematrix
无论使用哪种 PDF 查看器,您都不会看到细白线。
然而,您需要多次编译。
\documentclass[x11names,svgnames,11pt]{article}
\usepackage{geometry}
\usepackage{nicematrix}
\usepackage{xcolor}
\begin{document}
\begin{NiceTabular}{p{25mm}lccccX[l,m]}[hvlines]
\CodeBefore
\rowcolor[RGB]{79,129,189}{1}
\columncolor[RGB]{79,129,189}{1}
\rectanglecolor[RGB]{184,204,228}{2-2}{2-*}
\rectanglecolor[RGB]{219,229,241}{3-2}{5-*}
\Body
Parameter & Details & Min & Typ & Max & Unit & Notes \\
VDD & VDD2\_b\_a & 1.71 & 2 & 2.2 & [V] & 2V ±5\% \\
\Block{3-1}{Open Source Device }
& VDD1V8\_c\_d & 0.9 & 1. & 1.2 & [V] & \\
& \Block{2-1}{VDD5V2\_sssss\_ttttt} & 1.0 & 1.2 & 1.29 & [V] & 1.20V ±10\%, on save mode also work 5[V] input \\
& & 0.95 & 1.0 & 1.05 & [V] & 1.00V ±20\%, on save also work 3[V] \\
\end{NiceTabular}
\end{document}
答案2
对于这样的表格,我建议您使用包tabularray
。它提供了所有可能的控件。文档非常棒,而且很庞大。
我已经重新设计了您的表格,tabularray
并将分隔线水平线改为白色。本论坛的大多数成员强烈建议您避免在表格中使用垂直线。我遇到的唯一问题是我无法消除列之间的细垂直空白。
%
\documentclass[x11names,svgnames,11pt]{article}
%
\usepackage[body={15cm,23cm},centering]{geometry}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\setlength{\belowrulesep}{0pt}
\setlength{\aboverulesep}{0pt}
\begin{tblr}{
width=1\textwidth, stretch=1.5,
cell{1}{1-7} = {bg=azure3, fg=white},
cell{1-5}{1} = {bg=azure3, fg=white},
cell{2}{2-7} = {bg=azure7},
cell{3}{2-7} = {bg=azure8},
cell{4-5}{2-7} = {bg=azure9},
colspec = {llSSSlX[l, 3cm]}
}
\toprule
Parameter & Details & Min & Typ & Max & Unit & Notes \\
\hline[white]
VDD & VDD2\_b\_a & 1.71 & 2 & 2.2 & [V] & 2V ±5\% \\
\hline[white]
\SetCell[r=3]{m, 2cm} Open Source Device
& VDD1V8\_c\_d & 0.9 & 1. & 1.2 & [V] & \\
\cline[white]{3-7}
& \SetCell[r=2]{m, 3.5cm} VDD5V2\_sssss\_ttttt & 1.0 & 1.2 & 1.29 & [V] & 1.20V ±10\%, on save mode also work 5[V] input \\
\cline[white]{3-7}
& & 0.95 & 1.0 & 1.05 & [V] & 1.00V ±20\%, on save also work 3[V] \\
\bottomrule
\end{tblr}
\end{document}
答案3
使用tabularray
包的另一种可能的解决方案:
\documentclass{article}
\usepackage[body={15cm,23cm}]{geometry}
\usepackage{siunitx}
\usepackage{xcolor}
\definecolor{darkB}{RGB}{ 79, 129, 189} % dark blue
\definecolor{mediumB}{RGB}{184, 204, 228} % dark blue
\definecolor{lightB}{RGB}{219, 229, 241} % dark blue
\usepackage{tabularray} % version 2023A
\UseTblrLibrary{booktabs, siunitx}
\newlength\colwidth
\begin{document}
\begingroup
\settowidth\colwidth{Parameter}
\noindent
\begin{tblr}{row{1} = {guard, bg=darkB,fg=white},
row{2} = {bg=mediumB},
row{3} = {bg=lightB},
colspec = {Q[l, wd=4.4em, bg=darkB,fg=white] l
SSS
c X[l, m]},
hlines, vlines,
}
Parameter & Details & Min & Typ & Max & Unit & Notes \\
VDD & VDD2\_b\_a & 1.71 & 2 & 2.2 & [V] & 2V ±5\% \\
\SetCell[r=3]{l} Open Source Device
& VDD1V8\_c\_d & 0.9 & 1. & 1.2 & [V] & \\
& \SetCell[r=2]{l} VDD5V2\_sssss\_ttttt
& 1.0 & 1.2 & 1.29 & [V] & 1.20V ±\qty{10}{\%},
on save mode also work \qty{5}{\volt} input \\
& & 0.95 & 1.0 & 1.05 & [V] & 1.00V ±\qty{20}{\%},
on save also work \qty{3}{\volt} \\
\end{tblr}
\endgroup
\end{document}