数组中元素之间的间距

数组中元素之间的间距

下表已基本完成(我尽量让代码更易读)

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tikz}
\usepackage{mathtools}
\usepackage{array}

\begin{document}
    \begin{center}
        \renewcommand{\arraystretch}{1.6}
        \begin{equation*}
        \begin{array}{ | >{\centering\arraybackslash$} p{4.0cm} <{$} 
            | >{\centering\arraybackslash$} p{4.0cm} <{$} 
            | >{\centering\arraybackslash$} p{4.0cm} <{$}
            | } \hline
        a+\infty=\infty & a-\infty=-\infty & \infty+\infty=\infty \\ \hline                              % End of 1st row

        -\infty-\infty=-\infty & \infty\cdot\infty=\infty & -\infty\cdot\infty=-\infty \\ \hline         % End of 2nd row

        \dfrac{a}{\infty}=0         & 

        \dfrac{a}{0}=
        \left\{ \renewcommand{\arraystretch}{1}
        \begin{tabular}{c}
        $ \infty $ si $ a>0 $\\
        $ -\infty $ si $ a<0 $
        \end{tabular} \right.\ &

        \infty^a=
        \left\{ \renewcommand{\arraystretch}{1}
        \begin{tabular}{c}
        $ \infty $ si $ a>0 $\\
        $ 0 $  si $ a<0 $
        \end{tabular}\right.\ \\ \hline                                                                  % End of 3rd row

        \infty^\infty=\infty&\infty^{-\infty}=0&

        a^\infty=
        \left\{ \renewcommand{\arraystretch}{1}
        \begin{tabular}{c}
        $ \infty $ si $ a>1 $\\
        $ 0 $  si $ 0\leq a<1 $
        \end{tabular}\right.\ \\ \hline                                                                  % End of 4th row

        \cellcolor{gray!25}& 0^a=0\text{ si $ a>0 $} &\cellcolor{gray!25}  \\ \hline                       % End of 5th row

        \end{array}
        \end{equation*}
    \end{center}
\end{document}

这里有几个问题:

  • 我设法使列具有相同的宽度,但是每次我想创建具有该属性的列时,我都必须复制粘贴该代码(也许需要重新定义\renewcommand?)
  • 当我tabulararray环境中使用时,花括号距离单元格限制太近,我想知道您是否可以重新定义这些行的所有单元格的大小以适合这些表格。
  • 是否有一个选项array(或tabular)可以拉伸数组而不必在\renewcommand{\arraystretch}{<number>}每次创建新表时使用它?

我正在寻找一个通用的解决方案,不仅仅是针对这个问题,因为我将在下一份报告中定义很多表格,而且肯定很多人会欣赏一个通用的解决方案,因为我看到很多关于这个神秘的 LaTeX 表格世界的问题。

答案1

您可以通过以下方式创建新的列类型:

\newcolumntype{C}{>{\centering\arraybackslash $}p{\mylen}<{$}}

然后在数组列定义中使用它:

\begin{array}{|C|C|C|}

\mylen定义为具有 3 列相同的宽度,但不会产生 Overfull hbox(有关解释,例如,这里。我还使用了较小的字体大小。

为了增大单元格高度,我曾\mystrut{<length>}在内容前后放置间隙\\[<length>]。我没有更新,\arraystrech因为这也会影响环境中的间距cases,我用的是环境间距tabular

正如 marmot 在他的评论中所说,不需要将equation环境放在其中center,它已经居中了。

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{mathtools}
\usepackage{array}
\usepackage{calc}
\newlength{\mylen}
\setlength{\mylen}{\linewidth/3-2\tabcolsep-\arrayrulewidth-\arrayrulewidth/3}
\newcolumntype{C}{>{\centering\arraybackslash $}p{\mylen}<{$}}
\newcommand{\mystrut}[1]{\rule{0pt}{#1}}

\begin{document}
\begin{equation*}\small
    \begin{array}{|C|C|C|} 
    \hline
    \mystrut{12pt} a+\infty=\infty & a-\infty=-\infty & \infty+\infty=\infty \\[4pt] 
    \hline                              % End of 1st row
    \mystrut{12pt} -\infty-\infty=-\infty & \infty\cdot\infty=\infty & -\infty\cdot\infty=-\infty \\[4pt] \hline         % End of 2nd row
    \mystrut{26pt}\dfrac{a}{\infty}=0         & 
    \dfrac{a}{0}=
    \begin{cases}
     \infty  & \text{si }  a>0 \\
     -\infty  & \text{si }  a<0 
    \end{cases} &
    \infty^a=
    \begin{cases}
     \infty & \text{si }  a>0 \\
     0  & \text{si }  a<0 
    \end{cases} \\[20pt]
    \hline                                % End of 3rd row
    \mystrut{26pt}\infty^\infty=\infty&\infty^{-\infty}=0&

    a^\infty=
    \begin{cases}
     \infty & \text{si } a>1 \\
     0  & \text{si } 0\leq a<1 
    \end{cases} \\[20pt] 
    \hline                                % End of 4th row
\cellcolor{gray!25}& \mystrut{14pt}0^a=0\text{ si $ a>0 $} &\cellcolor{gray!25}  \\[4pt]
\hline                       % End of 5th row
    \end{array}
\end{equation*}

\end{document}

在此处输入图片描述

相关内容