我在创建具有多列的全宽表时遇到问题。
代码如下:
\documentclass[]{article}
\usepackage{longtable,booktabs}
\usepackage{geometry}
\geometry{
a4paper,
left=20mm,
right=20mm,
top=20mm,
bottom=20mm
}
\usepackage{ltablex}
\usepackage{calc}
\usepackage[dvipsnames,table]{xcolor}
\usepackage{lipsum}
\definecolor{header-color}{HTML}{C0C0C0}
\definecolor{color-reserved}{HTML}{E0E0E0}
\definecolor{color1}{HTML}{F0F0F0}
\definecolor{color2}{HTML}{FFFFFF}
\begin{document}
\begin{tabularx}{\linewidth}%
{% col 1
|p{\widthof{Bit(s)}}|%
% col 2
p{\widthof{FIELD1\_NAME}}|%
% col 3
p{\widthof{Permissions}}|%
% col 4
p{\widthof{Reset Value}}|%
% col 5
X|
}
\hline
\rowcolor{header-color}
\rowcolor{header-color}{\bf Bit(s)} & {\bf Field Name} & {\bf Permissions} & {\bf Reset Value} & {\bf Attributes} \\
\hline
\hline
\endfirsthead
\hline
\rowcolor{header-color}{\bf Bit(s)} & {\bf Field Name} & {\bf Permissions} & {\bf Reset Value} & {\bf Attributes} \\
\hline
\hline
\endhead
\rowcolor{color-reserved}0 & Reserved & -- & -- & \\\hline
\rowcolor{color2}
1 & FIELD1\_NAME & RW & 0x0 & \\\hline
\rowcolor{color2}
& \multicolumn{4}{p{\hsize}|}{
\lipsum[1-2]
} \\\hline
\end{tabularx}
\end{document}
不幸的是,这并不是我所期望的。
- “权限”列宽度不够
- 右侧有一个不应该存在的额外空格。
我的期望是X
将右列拉伸到文本宽度(如表格配置中所定义)。
我打算从脚本创建这个表,但我不能将列的大小设置为常量。
答案1
使用p
类型列或l
类型列进行固定的两种可能性:
\documentclass[]{article}
\usepackage{longtable,booktabs}
\usepackage{geometry}
\geometry{
a4paper,
left=20mm,
right=20mm,
top=20mm,
bottom=20mm
}
\usepackage{ltablex}
\usepackage{calc}
\usepackage[dvipsnames,table]{xcolor}
\usepackage{lipsum}
\definecolor{header-color}{HTML}{C0C0C0}
\definecolor{color-reserved}{HTML}{E0E0E0}
\definecolor{color1}{HTML}{F0F0F0}
\definecolor{color2}{HTML}{FFFFFF}
\usepackage{makecell}
\renewcommand{\theadfont}{\normalsize\bfseries}
\begin{document}
\begin{tabularx}{\linewidth}%
{% col 1
|p{\widthof{\bfseries Bit(s)}}|%
% col 2
p{\widthof{FIELD1\_NAME}}|%
% col 3
p{\widthof{\bfseries Permissions}}|%
% col 4
p{\widthof{\bfseries Reset Value}}|%
% col 5
X|
}
\hline
\rowcolor{header-color}{\bfseries Bit(s)} & {\bfseries Field Name} & {\bfseries Permissions} & {\bfseries Reset Value} & {\bfseries Attributes} \\
\hline
\hline
\endfirsthead
\hline
\rowcolor{header-color}{\bfseries Bit(s)} & {\bfseries Field Name} & {\bfseries Permissions} & {\bfseries Reset Value} & {\bfseries Attributes} \\
\hline
\hline
\endhead
\rowcolor{color-reserved}0 & Reserved & -- & -- & \\\hline
\rowcolor{color2}
1 & FIELD1\_NAME & RW & 0x0 & \\\hline
\rowcolor{color2}
& \multicolumn{4}{p{\textwidth-4\tabcolsep-3\arrayrulewidth-\widthof{\bfseries Bit(s)}}|}{
\lipsum[1-2]
} \\\hline
\end{tabularx}
\begin{tabularx}{\linewidth}%
{% col 1
|p{\widthof{\bfseries Bit(s)}}|%
l|%
l|%
l|%
% col 5
X|
}
\hline
\rowcolor{header-color}{\bfseries Bit(s)} & {\bfseries Field Name} & {\bfseries Permissions} & {\bfseries Reset Value} & {\bfseries Attributes} \\
\hline
\hline
\endfirsthead
\hline
\rowcolor{header-color}{\bfseries Bit(s)} & {\bfseries Field Name} & {\bfseries Permissions} & {\bfseries Reset Value} & {\bfseries Attributes} \\
\hline
\hline
\endhead
\rowcolor{color-reserved}0 & Reserved & -- & -- & \\\hline
\rowcolor{color2}
1 & FIELD1\_NAME & RW & 0x0 & \\\hline
\rowcolor{color2}
& \multicolumn{4}{p{\textwidth-4\tabcolsep-3\arrayrulewidth-\widthof{\bfseries Bit(s)}}|}{
\lipsum[1-2]
} \\\hline
\end{tabularx}
\end{document}