
У меня возникла проблема с созданием таблицы полной ширины с несколькими столбцами.
Код:
\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}