我的 MWE 改编自如何正确地对角线划分表格单元格?。
两个问题:
- 我添加了一个经验规则
0.71\baselineskip
,但是为什么0.71
呢? - 为什么
c=...
没有像下面的文本一样居中?
编辑您可以在这里看到简化和更正的版本:可选参数问题
\documentclass[10pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{array}
\usepackage{calc}
\usepackage{tikz,fourier}
\newcommand\diag[5]{%
\multicolumn{1}{|m{#2}|}{\hskip-\tabcolsep
$\vcenter{\begin{tikzpicture}[baseline=0,anchor=south west,outer sep=0]
\path[use as bounding box] (0,0) rectangle (#2+2\tabcolsep,\baselineskip);
\node[minimum width={#2+2\tabcolsep-\pgflinewidth},
minimum height=\baselineskip+#3-\pgflinewidth] (box) {};
\draw[line cap=round] (box.north west) -- (box.south east);
\node[anchor=south west,align=left,inner sep=#1] at (box.south west) {#4};
\node[anchor=north east,align=right,inner sep=#1] at (box.north east) {#5};
\end{tikzpicture}}\rule{0pt}{.71\baselineskip+#3-\pgflinewidth}$\hskip-\tabcolsep}}
\begin{document}
\begin{tabular}{%
|>{\centering\arraybackslash}m{4.5cm}
|*{4}{>{\centering\arraybackslash}m{2.5em}|}}\hline
\diag{\tabcolsep}{4.5cm}{3.4em}{Coefficient\\ de frottement $c$}{Vitesse $V$\\ (en km/h)}&50&90&110&20\\ \hline
$c=0,8$\newline route s\`eche, bitume neuf &&&&\\ \hline
$c=0,7$\newline route s\`eche, bitume moyen &&&&\\ \hline
$c=0,8$\newline route mouill\'ee, bitume moyen &&&&\\ \hline
\end{tabular}
\end{document}
答案1
使用包的解决方案diagbox
:
\documentclass[10pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{array}
\usepackage{diagbox,ragged2e}
\usepackage{fourier}
\begin{document}
\begin{tabular}{%
|>{\Centering}m{4.5cm}
|*{4}{>{\Centering}m{2.5em}|}}\hline
\diagbox{\shortstack{Coefficient de\\ frottement $c$}}
{\shortstack{\vphantom{Ä}Vitesse $V$\\(en km/h)}} & 50 & 90 & 110 & 20 \\ \hline
$c=0,8$\newline route s\`eche, bitume neuf &&&&\\ \hline
$c=0,7$\newline route s\`eche, bitume moyen &&&&\\ \hline
$c=0,8$\newline route mouill\'ee, bitume moyen &&&&\\ \hline
\end{tabular}
\end{document}
\diag{\tabcolsep}{4.5cm}{0em}....
在\diag
宏集中使用和\rule{4pt}{0.71\baselineskip....}
,你会看到它是当前行的高度(没有深度)。条目是左对齐和右对齐的,请参阅的可选参数:\node
。align=...
将其更改为align=center
,它将不再是左/右对齐。
答案2
{NiceTabular}
包的环境nicematrix
有自己的命令\diagbox
来处理这类问题。
\documentclass[10pt,french]{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{nicematrix}
\usepackage{fourier}
\begin{document}
\begin{NiceTabular}{w{c}{4.5cm}*{4}{w{c}{2.5em}}}[hvlines,cell-space-limits=3pt]
\rule{0pt}{1cm}
\diagbox{Coefficient \\ de frottement $c$}
{Vitesse $V$\\(en km/h)} & 50 & 90 & 110 & 20 \\
\Block{}{$c=0,8$\\ route sèche, bitume neuf} \\
\Block{}{$c=0,7$\\ route sèche, bitume moyen} \\
\Block{}{$c=0,8$\\ route mouillée, bitume moyen} \\
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。