我正在尝试创建一个标题来横跨一组办公文档;我尝试使用多行的 widetable 包,但没有成功。这是我目前最接近的,使用http://www.tablesgenerator.com/和 diagbox 包:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage{diagbox}
\usepackage{multirow}
\begin{document}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{lllll}
\hline
\multicolumn{1}{|l|}{\multirow{2}{*}{Model Effectivity}} & \multicolumn{4}{c|}{REVISIONS} \\ \cline{2-5}
\multicolumn{1}{|l|}{} & \multicolumn{1}{l|}{REV} & \multicolumn{1}{l|}{DESCRIPTION} & \multicolumn{1}{l|}{DATE} & \multicolumn{1}{l|}{APPROVED} \\ \hline
\multicolumn{1}{|l|}{\diagbox[dir=NE]{\hspace{35pt} }{ \hspace{35pt}}} & \multicolumn{1}{l|}{-} & \multicolumn{1}{l|}{Initial Release} & \multicolumn{1}{l|}{1/1/2016} & \multicolumn{1}{l|}{Travis} \\ \hline
& & &
\end{tabular}
\end{table}
\end{document}
我还需要调整行上的 vbox 尺寸 - 我必须使用 diagbox 来获取我想要的对角线框(似乎很明显,对吧?)但除非我添加 hspace 元素,否则它不会正确到达角落,这会使那个框太高。
我怎样才能让斜线和宽表格和平共处(而不必尝试在 Tikz 中绘制它)?
编辑:我想尝试跨越比其他问题更大比例的页面宽度 - 但是,这是一种在工程文档中很常见的“标题”类型(不是 LaTeX 意义上的)。
我正在添加一个类似的图像:其中有相当多的空白空间(以便稍后,更改的描述可以包含几句话来说明更改了什么,或者合并了哪些 ECO。
[编辑 2] 因此,我尝试使用 eqsetminwidth 强制宽度按照我想要的方式计算,然后使用 adjustwidth 将表格移回中心(通过手动移动它 - 这并不优雅,但至少这是正确的想法!)。现在只需弄清楚为什么它在第一列下有那些垂直线...
\documentclass[a4paper,twoside,10pt]{report}
\usepackage{diagbox}
\usepackage{array, multirow, caption}
\usepackage{eqparbox}
\usepackage{adjustbox}
%\usepackage[showframe=true]{geometry}
\usepackage{changepage}
\makeatletter
\newcommand*{\centerfloat}{%
\parindent \z@
\leftskip \z@ \@plus 1fil \@minus \textwidth
\rightskip\leftskip
\parfillskip \z@skip}
\makeatother
\begin{document}
%\eqsetminwidth{<tag>}{<width>}
\eqsetminwidth{R}{4.5in}
\eqsetminwidth{D}{3.5in}
%\begin{adjustbox}{center}
\begin{table}[!htb]
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
%\centerfloat
%\noindent
\begin{adjustwidth}{-1.75cm}{}
\centering\renewcommand\arraystretch{1.333}
% \caption{My caption}
% \label{my-label}
\begin{tabular}{|*{5}{c|}}
\hline
\multicolumn{1}{|c|}{\multirow{2}{*}{\eqmakebox[H]{Model Effectivity}}} & \multicolumn{4}{c|}{\eqmakebox[R]{REVISIONS}} \\
\cline{2-5}
& \multicolumn{1}{l|}{REV} & \eqmakebox[D]{DESCRIPTION} & DATE & APPROVED \\
\hline
\diagbox[dir=NE, width =\dimexpr\eqboxwidth{H} + 2\tabcolsep\relax, height=0.6cm]{}{} & --- & Initial Release & 1/1/2016 & Travis \\
\hline
\end{tabular}
\end{adjustwidth}
\end{table}
%\end{adjustbox}
\end{document}
答案1
给你:我使用eqparbox
包测量第一列标题的宽度,并将的宽度设置为该\diagbox
宽度。我还简化了你的代码,并删除了所有无用的\multicolumn
s。最后,我加载了caption
包以获得标题和表格之间的适当垂直距离:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage{diagbox}
\usepackage{array, multirow, caption}
\usepackage{eqparbox}
\begin{document}
\begin{table}[!htb]
\centering\renewcommand\arraystretch{1.333}
\caption{My caption}
\label{my-label}
\begin{tabular}{|*{5}{l|}}
\hline
\multicolumn{1}{|l|}{\multirow{2}{*}{\eqmakebox[H]{Model Effectivity}}} & \multicolumn{4}{c|}{REVISIONS} \\
\cline{2-5}
& \multicolumn{1}{l|}{REV} & DESCRIPTION & DATE & APPROVED \\
\hline
\diagbox[dir=NE, width =\dimexpr\eqboxwidth{H} + 2\tabcolsep\relax, height=0.6cm]{}{} & --- & Initial Release & 1/1/2016 & Travis \\
\hline
\end{tabular}
\end{table}
\end{document}