事实上,我希望张力矢量位于中间,但我不知道为什么“张力矢量”之间没有空格。另外,开关状态的显示方式也不好。我希望这个表格有一个很好的形式。
下面是我使用的代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\renewcommand{\arraystretch}{1.3}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{caption}
\begin{document}
\begin{table}
\centering
\caption{Les tensions délivrées par l'onduleur selon l'état des
interrupteurs}
\begin{tabular}{@{} c c c c c c c @{}}
\toprule
$Vectors of tension$ & \multicolumn{3}{c}{state of switchs} &
\multicolumn{3}{c}{Output voltage} \\
\cmidrule(l){2-4}
\cmidrule(l){5-7}
& a & b & c & $V_a$ & $V_b$ & $V_c$ \\
\midrule
$V_0$ & 0 & 0 & 0 & 0 & 0 & 0 \\ \\
$V_1$ & 1 & 0 & 0 & $2U_{dc}$/3 & $-U_{dc}$/3 & $-U_{dc}$/3 \\ \\
$V_2$ & 1 & 1 & 0 & $U_{dc}$/3 & $U_{dc}$/3 & $-2U_{dc}$/3 \\ \\
$V_3$ & 0 & 1 & 0 & $-U_{dc}$/3 & $2U_{dc}$/3 & $-U_{dc}$/3 \\ \\
$V_4$ & 0 & 1 & 1 & $-2U_{dc}$/3 & $U_{dc}$/3 & $U_{dc}$/3 \\ \\
$V_5$ & 0 & 0 & 1 & $-U_{dc}$/3 & $-U_{dc}$/3 & $2U_{dc}$/3 \\ \\
$V_6$ & 1 & 0 & 1 & $U_{dc}$/3 & $-2U_{dc}$/3 & $U_{dc}$/3 \\ \\
$V_7$ & 1 & 1 & 1 & 0 & 0 & 0 \\ \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
如果你在$...$
LaTeX 中放入某些东西,它会认为它是一个数学表达式。
为了改进“开关状态”列,您可以使用p{...}
列类型。
我也将其用作\makecell
第一列标题。
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\renewcommand{\arraystretch}{1.3}
\newcolumntype{P}{>{\centering\arraybackslash$}p{1.6em}<{$}}
\newcolumntype{C}{>{\centering\arraybackslash$}c<{$}}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{caption}
\begin{document}
\begin{table}
\centering
\caption{Les tensions délivrées par l'onduleur selon l'état des
interrupteurs}
\begin{tabular}{@{} C *3P *3C @{}}
\toprule
\multirow{2}{*}{\makecell{Vectors\\ of\\ tension}} & \multicolumn{3}{c}{State of switches} &
\multicolumn{3}{c}{Output voltage} \\
\cmidrule(lr){2-4}
\cmidrule(lr){5-7}
& a& b & c & V_a & V_b & V_c \\
\midrule
V_0 & 0 & 0 & 0 & 0 & 0 & 0 \\[1ex]
V_1 & 1 & 0 & 0 & 2U_{dc}/3 & -U_{dc}/3 & -U_{dc}/3 \\[1ex]
V_2 & 1 & 1 & 0 & U_{dc}/3 & U_{dc}/3 & -2U_{dc}/3 \\[1ex]
V_3 & 0 & 1 & 0 & -U_{dc}/3 & 2U_{dc}/3 & -U_{dc}/3 \\[1ex]
V_4 & 0 & 1 & 1 & -2U_{dc}/3 & U_{dc}/3 & U_{dc}/3 \\[1ex]
V_5 & 0 & 0 & 1 & -U_{dc}/3 & -U_{dc}/3 & 2U_{dc}/3 \\[1ex]
V_6 & 1 & 0 & 1 & U_{dc}/3 & -2U_{dc}/3 & U_{dc}/3 \\[1ex]
V_7 & 1 & 1 & 1 & 0 & 0 & 0 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
编辑:
如果您不想重新定义\arraystretch
,您可以像这样微调的垂直位置\multirow
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\newcolumntype{P}{>{\centering\arraybackslash$}p{1.6em}<{$}}
\newcolumntype{C}{>{\centering\arraybackslash$}c<{$}}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{caption}
\begin{document}
\begin{table}
\centering
\caption{Les tensions délivrées par l'onduleur selon l'état des
interrupteurs}
\begin{tabular}{@{} C *3P *3C @{}}
\toprule
\multirow{2}{*}[-.5ex]{\makecell{Vectors\\ of tension}} & \multicolumn{3}{c}{State of switches} &
\multicolumn{3}{c}{Output voltage} \\
\cmidrule(lr){2-4}
\cmidrule(lr){5-7}
& a& b & c & V_a & V_b & V_c \\
\midrule
V_0 & 0 & 0 & 0 & 0 & 0 & 0 \\[1.5ex]
V_1 & 1 & 0 & 0 & 2U_{dc}/3 & -U_{dc}/3 & -U_{dc}/3 \\[1.5ex]
V_2 & 1 & 1 & 0 & U_{dc}/3 & U_{dc}/3 & -2U_{dc}/3 \\[1.5ex]
V_3 & 0 & 1 & 0 & -U_{dc}/3 & 2U_{dc}/3 & -U_{dc}/3 \\[1.5ex]
V_4 & 0 & 1 & 1 & -2U_{dc}/3 & U_{dc}/3 & U_{dc}/3 \\[1.5ex]
V_5 & 0 & 0 & 1 & -U_{dc}/3 & -U_{dc}/3 & 2U_{dc}/3 \\[1.5ex]
V_6 & 1 & 0 & 1 & U_{dc}/3 & -2U_{dc}/3 & U_{dc}/3 \\[1.5ex]
V_7 & 1 & 1 & 1 & 0 & 0 & 0 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
但是,您只能\arraystretch
针对一个表进行修改,请参见此处:每个表的单独 \arraystretch 值。
答案2
我会集中大部分精力让表格,尤其是最后三列的内容,更具视觉吸引力,从而更具可读性。我还建议使用将tabular*
宽度设置为 的环境\textwidth
,而不是基本tabular
环境。通过在水平方向上展开更多内容,垂直展开内容的必要性也会降低(如果有的话)。最后,通过明智地定义内容自动处于数学模式的新列类型,$
可以省略表格主体中的大多数符号,从而大大简化 LaTeX 代码。
\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{booktabs,amsmath,array}
\newcolumntype{C}{>{$}c<{$}}
\newcolumntype{R}{>{$}r<{$}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage[skip=0.333\baselineskip]{caption}
\newcommand\mycell[1]{\smash{%
\begin{tabular}[t]{c}#1\end{tabular}}}
\newcommand\mc[1]{\multicolumn{1}{C}{#1}} % handy shortcut macro
\begin{document}
\begin{table}
\setlength\tabcolsep{0pt} % let LaTeX figure out intercol. whitespace
\caption{Les tensions délivrées par l'onduleur selon
l'état des interrupteurs}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C *{3}{P{7mm}} *{3}{R} }
\toprule
\mycell{Vectors\\of tension}
& \multicolumn{3}{c}{Switch States}
& \multicolumn{3}{c}{Output Voltage} \\
\cmidrule{2-4}
\cmidrule{5-7}
& a & b & c & \mc{V_a} & \mc{V_b} & \mc{V_c} \\
\midrule
V_0 & 0 & 0 & 0 & \mc{0} & \mc{0} & \mc{0} \\
V_1 & 1 & 0 & 0 & 2U_{\!dc}/3 & -U_{\!dc}/3 & -U_{\!dc}/3 \\
V_2 & 1 & 1 & 0 & U_{\!dc}/3 & U_{\!dc}/3 &-2U_{\!dc}/3 \\
V_3 & 0 & 1 & 0 & -U_{\!dc}/3 & 2U_{\!dc}/3 & -U_{\!dc}/3 \\
\addlinespace
V_4 & 0 & 1 & 1 &-2U_{\!dc}/3 & U_{\!dc}/3 & U_{\!dc}/3 \\
V_5 & 0 & 0 & 1 & -U_{\!dc}/3 & -U_{\!dc}/3 & 2U_{\!dc}/3 \\
V_6 & 1 & 0 & 1 & U_{\!dc}/3 & -2U_{\!dc}/3 & U_{\!dc}/3 \\
V_7 & 1 & 1 & 1 & \mc{0} & \mc{0} & \mc{0} \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}
附录:制作最后三栏的材料真的为了便于阅读,最好用基准电压单位的倍数来表示数量,即。$U_{dc}/3$
只需确保提供一个图例来向读者解释基准电压单位是什么。
\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[skip=0.333\baselineskip]{caption}
\usepackage{booktabs,array}
\newcolumntype{C}{>{$}c<{$}}
\newcolumntype{R}{>{$}r<{$}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcommand\mycell[1]{\smash{%
\begin{tabular}[t]{@{}c@{}}#1\end{tabular}}}
\newcommand\mc[1]{\multicolumn{1}{C}{#1}} % handy shortcut macro
\begin{document}
\begin{table}
\centering
\setlength{\tabcolsep}{12pt} % default value: 5pt
\caption{Les tensions délivrées par l'onduleur selon
l'état des interrupteurs}
\begin{tabular}{@{} *{4}{C} *{3}{R} @{}}
\toprule
\mycell{Vectors\\of tension}
& \multicolumn{3}{c}{Switch states}
& \multicolumn{3}{c@{}}{Output voltage$^{*}$} \\
\cmidrule(lr){2-4}
\cmidrule(l){5-7}
& a & b & c & V_a & V_b & V_c \\
\midrule
V_0 & 0 & 0 & 0 & 0 & 0 & 0 \\
V_1 & 1 & 0 & 0 & 2 & -1 & -1 \\
V_2 & 1 & 1 & 0 & 1 & 1 & -2 \\
V_3 & 0 & 1 & 0 & -1 & 2 & -1 \\
\addlinespace
V_4 & 0 & 1 & 1 & -2 & 1 & 1 \\
V_5 & 0 & 0 & 1 & -1 & -1 & 2 \\
V_6 & 1 & 0 & 1 & 1 & -2 & 1 \\
V_7 & 1 & 1 & 1 & 0 & 0 & 0 \\
\bottomrule
\addlinespace
\multicolumn{7}{@{}l@{}}{\footnotesize $^{*}$ Output voltages are expressed in multiples of $U_{\!dc}/3$.}\\
\end{tabular}
\end{table}
\end{document}
答案3
使用tabularx
来\newcolumntype{C}{ >{ \arraybackslash \Centering } X }
定义新的列类型,这些列类型将自动设置为具有相等的宽度。如果您想要将某些列的宽度调整为参考列宽度的百分比,请使用>{\hsize=factor\hsize}C
。例如,>{\hsize=0.7\hsize}C
表示该列将具有参考列宽度的 70%。
\renewcommand{\arraystretch}{1.7}
此外,如果您希望每行与下一行之间有更多的间距,则使用它比在每行后使用多个宏更方便\\
。
以下是上述输出的代码
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\renewcommand{\arraystretch}{1.7}
\usepackage{multirow}
\usepackage{caption}
\usepackage{ragged2e}
\usepackage{tabularx}
\newcolumntype{C}{ >{ \arraybackslash \Centering } X }
\usepackage{booktabs}
\usepackage{makecell}
\begin{document}
\begin{table}
\centering
\caption{Les tensions délivrées par l'onduleur selon l'état des
interrupteurs}
\begin{tabularx}{1\textwidth}{C !{\vrule width 0.2mm} @{\extracolsep{1.5mm}}>{\hsize=0.6\hsize}C >{\hsize=0.6\hsize}C >{\hsize=0.6\hsize}C @{\extracolsep{2mm}}C C C}
\toprule
\multirow{2}{=}{\Centering Vectors of Tension} & \multicolumn{3}{c}{State of Switches} &
\multicolumn{3}{c}{Output voltage} \\
\Xcline{2-4}{0.2mm}
\Xcline{5-7}{0.2mm}
& a & b & c & $V_a$ & $V_b$ & $V_c$ \\
\Xhline{0.25mm}
$V_0$ & 0 & 0 & 0 & 0 & 0 & 0 \\
$V_1$ & 1 & 0 & 0 & $2U_{dc}$/3 & $-U_{dc}$/3 & $-U_{dc}$/3 \\
$V_2$ & 1 & 1 & 0 & $U_{dc}$/3 & $U_{dc}$/3 & $-2U_{dc}$/3 \\
$V_3$ & 0 & 1 & 0 & $-U_{dc}$/3 & $2U_{dc}$/3 & $-U_{dc}$/3 \\
$V_4$ & 0 & 1 & 1 & $-2U_{dc}$/3 & $U_{dc}$/3 & $U_{dc}$/3 \\
$V_5$ & 0 & 0 & 1 & $-U_{dc}$/3 & $-U_{dc}$/3 & $2U_{dc}$/3 \\
$V_6$ & 1 & 0 & 1 & $U_{dc}$/3 & $-2U_{dc}$/3 & $U_{dc}$/3 \\
$V_7$ & 1 & 1 & 1 & 0 & 0 & 0 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
答案4
使用array
而不是tabular
并将值排版为右侧:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{ragged2e}
\newcolumntype{P}{>{\Centering}p{1.6em}}
\usepackage{booktabs}
\usepackage{caption}
\newcommand\MC[1]{\multicolumn{1}{c}{#1}}
\def\0{\MC{0}}
\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{1.5}
\caption{Les tensions délivrées par l'onduleur selon l'état des interrupteurs}
$\begin{array}{@{} c *3P *3r @{}}\toprule
\makebox(30,-10){\shortstack{Vectors\\ of\\ tension}} &
\multicolumn{3}{c}{\text{State of switches}} &
\multicolumn{3}{c}{\text{Output voltage}} \\\cmidrule(lr){2-4}\cmidrule(lr){5-7}
& a & b & c & \MC{V_a} & \MC{V_b} & \MC{V_c} \\ \midrule
V_0 & 0 & 0 & 0 & \0 & \0 & \0 \\
V_1 & 1 & 0 & 0 & 2U_{dc}/3 & -U_{dc}/3 & -U_{dc}/3 \\
V_2 & 1 & 1 & 0 & U_{dc}/3 & U_{dc}/3 & -2U_{dc}/3 \\
V_3 & 0 & 1 & 0 & -U_{dc}/3 & 2U_{dc}/3 & -U_{dc}/3 \\
V_4 & 0 & 1 & 1 & -2U_{dc}/3 & U_{dc}/3 & U_{dc}/3 \\
V_5 & 0 & 0 & 1 & -U_{dc}/3 & -U_{dc}/3 & 2U_{dc}/3 \\
V_6 & 1 & 0 & 1 & U_{dc}/3 & -2U_{dc}/3 & U_{dc}/3 \\
V_7 & 1 & 1 & 1 & \0 & \0 & \0 \\
\bottomrule
\end{array}$
\end{table}
\end{document}