将方程式与相关垂直单元格水平对齐

将方程式与相关垂直单元格水平对齐

我有一张这样的桌子:

\begin{tabular}{|l|c|r|}
    \hline
    \multicolumn{3}{|c|}{\textbf{Etumerkillinen}} \\
    \hline
    Tyyppi & Minimi & Maksimi \\
    \hline
    i8   & $ -2^{7}   $ & $ 2^{7}-1   $\\
    i16  & $ -2^{15}  $ & $ 2^{15}-1  $\\
    i32  & $ -2^{31}  $ & $ 2^{31}-1  $\\
    i64  & $ -2^{64}  $ & $ 2^{63}-1  $\\
    i128 & $ -2^{127} $ & $ 2^{127}-1 $\\
    \hline
\end{tabular}

该表呈现如下:

表格渲染 我想将数学方程式对齐,使 2、1 和负号彼此水平对齐。这可能吗?我该如何实现?

答案1

我认为,如果您为两个数据列选择左对齐,就不会出错。要将第二列中的数字对齐到2-1,您可以将单个列拆分为三个不同的子列。

我会更加集中精力让表格看起来更加开放,就像下面屏幕截图右侧那样。

在此处输入图片描述

\documentclass{article}
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{L}{>{$}l<{$}}
\newcolumntype{C}{>{${}}c<{{}$}}
\usepackage{booktabs}
\begin{document}
\begin{tabular}[t]{|l|L|L@{}C@{}L|} 
    \hline 
    \multicolumn{5}{|c|}{\textbf{Etumerkillinen}} \\
    \hline
    Tyyppi & $Minimi$ & \multicolumn{3}{c|}{Maksimi} \\
    \hline
    i8   &  -2^{7^{\mathstrut}}    &  2^{7} & - & 1   \\
    i16  &  -2^{15}   &  2^{15} & - & 1  \\
    i32  &  -2^{31}   &  2^{31} & - & 1  \\
    i64  &  -2^{64}   &  2^{63} & - & 1  \\
    i128 &  -2^{127}  &  2^{127} & - & 1 \\
    \hline
\end{tabular}%
\qquad
\begin{tabular}[t]{@{\kern2pt} l L L@{}C@{}L @{}} % cf barbara beeton's comments below
    \toprule
    \multicolumn{5}{c}{\textbf{Etumerkillinen}} \\
    \cmidrule{1-5}
    \multicolumn{1}{@{}l}{Tyyppi} & $Minimi$ & \multicolumn{3}{c@{}}{Maksimi} \\
    \midrule
    i8   &  -2^{7}    &  2^{7}  & - & 1   \\
    i16  &  -2^{15}   &  2^{15} & - & 1  \\
    i32  &  -2^{31}   &  2^{31} & - & 1  \\
    i64  &  -2^{64}   &  2^{63} & - & 1  \\
    i128 &  -2^{127}  &  2^{127} & - & 1 \\
    \bottomrule
\end{tabular}
\end{document}

答案2

您可以定义\2宏并使用它:

\def\2^#1{\hbox to1.6em{$2^{#1}$\hss}}
\begin{tabular}{|l|c|r|}
    \hline
    \multicolumn{3}{|c|}{\textbf{Etumerkillinen}} \\
    \hline
    Tyyppi & Minimi & Maksimi \\
    \hline
    i8   & $ -\2^{7}   $ & $ \2^{7}-1   $\\
    i16  & $ -\2^{15}  $ & $ \2^{15}-1  $\\
    i32  & $ -\2^{31}  $ & $ \2^{31}-1  $\\
    i64  & $ -\2^{64}  $ & $ \2^{63}-1  $\\
    i128 & $ -\2^{127} $ & $ \2^{127}-1 $\\
    \hline
\end{tabular}

答案3

另一种可能的布局,公式在各自的列中对齐并居中。它需要eqparbox对齐,并collcell在表格中使用前者:

\documentclass{article}
\usepackage{array} %

\usepackage{eqparbox}
\newcommand{\eqmathboxM}[1]{\eqmakebox[M][l]{$#1$}}
\newcommand{\eqmathboxm}[1]{\eqmakebox[m][l]{$#1$}}
\usepackage{collcell}

\begin{document}

\setlength{\extrarowheight}{3pt}
\begin{tabular}[t]{|l|>{\collectcell\eqmathboxm}c< {\endcollectcell}|>{\collectcell\eqmathboxM}c< {\endcollectcell}|}
    \hline
    \multicolumn{3}{|c|}{\textbf{Etumerkillinen}} \\
    \hline
    Tyyppi & \multicolumn{1}{c}{Maxi Minimi} & \multicolumn{1}{c|}{Mini Maksimi} \\
    \hline
    i8 & -2^{7} & 2^{7}\hfill- 1 \\
    i16 & -2^{15} & 2^{15}\hfill -1 \\
    i32 & -2^{31} & 2^{31}\hfill - 1 \\
    i64 & -2^{64} & 2^{63}\hfill - 1 \\
    i128 & -2^{127} & \eqmakebox[M]{$ 2^{127}- 1 $} \\
    \hline
\end{tabular}

\end{document} 

在此处输入图片描述

相关内容