我正在使用该包slashbox
,并且我的左列相当宽,我该如何调整对角线(由创建\backslashbox
)以使其从单元格的角落开始和结束?
示例代码:
\documentclass[11pt]{article}
\usepackage{slashbox}
\usepackage{pict2e}
\begin{document}
\begin{table}[ht!]
\centering
\begin{tabular}{ *{4}{|c}|}
\hline
\backslashbox{foo}{bar} & test & header & header \\
\hline
relatively wide column& b & $3$ & $4$ \\
ds & c & $1$ & $4$ \\
\hline
\end{tabular}
\end{table}
\end{document}
结果:
答案1
最简单、最直接的方法是指定斜线框的字面大小。在你的情况下,它大约是 40 毫米。所以试试这个:
\backslashbox[40mm]{foo}{bar}
推广这种方法并不会太复杂。计算反斜杠框的大小时,先取列最宽字符串的大小,然后加上表格列分隔符宽度的两倍。
答案2
由于这是一个涉及斜杠包本身,唯一的解决方案可能是破解包源。考虑重新构建表并使用书签包。请参阅下面的代码来了解一些想法。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
\usepackage{booktabs,multirow}
\begin{document}
\begin{table}[!ht]
\caption{Table caption}\label{tab:default}
\centering
\begin{tabular}{*{4}{|c}|}\hline
\multirow{2}{*}{foo} & \multicolumn{3}{|c|}{bar} \\ \cline{2-4}
& test & header & header \\ \hline
relatively wide column& b & $3$ & $4$ \\
ds & c & $1$ & $4$ \\ \hline
\end{tabular}
\end{table}
\begin{table}[!ht]
\caption{Table caption}\label{tab:booktabs}
\centering
\begin{tabular}{*{4}{c}}\toprule
\multirow{2}{*}[-0.5ex]{foo} & \multicolumn{3}{c}{bar} \\ \cmidrule{2-4}
& test & header & header \\ \midrule
relatively wide column& b & $3$ & $4$ \\
ds & c & $1$ & $4$ \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
还值得考虑删除垂直线以提高表格的可读性,如上所示。