需要修复的丑陋矩阵

需要修复的丑陋矩阵

我在设置四个方阵时遇到了困难,一个方阵一个方阵。出于美观的原因,它们需要具有相同的大小,即相同的宽度。目前,它们非常丑陋,如以下代码所示:

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}

\begin{document}

\begin{align}
    \gamma^0 &=
    \begin{bmatrix}
        0 & \tensor{\sigma}{_2} \\[1em]
        \tensor{\sigma}{_2} & 0
    \end{bmatrix},
    \\
    \gamma^1 &=
    \begin{bmatrix}
        -\, i \tensor{\sigma}{_3} & 0 \\[1em]
        0 & -\, i \tensor{\sigma}{_3}
    \end{bmatrix},
    \\
    \gamma^2 &=
    \begin{bmatrix}
        0 & \tensor{\sigma}{_2} \\[1em]
        -\, \tensor{\sigma}{_2} & 0
    \end{bmatrix},
    \\
    \gamma^3 &=
    \begin{bmatrix}
        i \tensor{\sigma}{_1} & 0 \\[1em]
        0 & i \tensor{\sigma}{_1}
    \end{bmatrix}.
\end{align}

\end{document}

预览:

在此处输入图片描述

减号是主要问题的根源。我尝试使用\mathclap每个元素(0 除外)并添加一些幻像项来均衡间距,但效果不佳,而且感觉很不靠谱。那么我怎样才能使这些矩阵大小相同,并且内部元素均衡呢?我讨厌 LaTeX 中的矩阵!!

答案1

一个简单的代码eqparbox:我定义了一个\eqmathbox命令,确保共享相同标签的所有数学框(M默认情况下)的宽度为其内容的最大自然宽度。将此命令与每列中最宽的元素一起使用就足够了(可能需要两次编译)。

amsmath无关:加载时无需加载mathtools:后者包会为您完成此操作。

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}

\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][M]{\eqmakebox[#1]{$#2$}}

\begin{document}

\begin{align}
    \gamma^0 &=
    \begin{bmatrix}
        0 & \eqmathbox{\tensor{\sigma}{_2}} \\[1em]
       \eqmathbox{\tensor{\sigma}{_2} }& 0
    \end{bmatrix},
    \\[0.5ex]
    \gamma^1 &=
    \begin{bmatrix}
       \eqmathbox{-i\tensor{\sigma}{_3}} & 0 \\[1em]
        0 & \eqmathbox{-i\tensor{\sigma}{_3}}
    \end{bmatrix},
    \\[0.5ex]
    \gamma^2 &=
    \begin{bmatrix}
        0 & \eqmathbox{\tensor{\sigma}{_2}} \\[1em]
        \eqmathbox{-\tensor{\sigma}{_2}} & 0
    \end{bmatrix},
    \\[0.5ex]
    \gamma^3 &=
    \begin{bmatrix}
       \eqmathbox{i\tensor{\sigma}{_1}} & 0 \\[1em]
        0 & \eqmathbox{i\tensor{\sigma}{_1}}
    \end{bmatrix}.
\end{align}

\end{document} 

在此处输入图片描述

答案2

该软件包nicematrix有一个专门针对该问题的功能。在环境中,由(使用但此环境将创建与相同的结果){NiceMatrixBlock}创建的所有矩阵将具有相同的列宽。需要进行两次编译。nicematrix{bNiceMatrix}{bmatrix}

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}

\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}

\usepackage{nicematrix}

\begin{document}


\begin{NiceMatrixBlock}[auto-columns-width]
\begin{align}
    \gamma^0 &=
    \begin{bNiceMatrix}
        0 & \tensor{\sigma}{_2} \\[1em]
        \tensor{\sigma}{_2} & 0
    \end{bNiceMatrix},
    \\
    \gamma^1 &=
    \begin{bNiceMatrix}
        -\, i \tensor{\sigma}{_3} & 0 \\[1em]
        0 & -\, i \tensor{\sigma}{_3}
    \end{bNiceMatrix},
    \\
    \gamma^2 &=
    \begin{bNiceMatrix}
        0 & \tensor{\sigma}{_2} \\[1em]
        -\, \tensor{\sigma}{_2} & 0
    \end{bNiceMatrix},
    \\
    \gamma^3 &=
    \begin{bNiceMatrix}
        i \tensor{\sigma}{_1} & 0 \\[1em]
        0 & i \tensor{\sigma}{_1}
    \end{bNiceMatrix}.
\end{align}
\end{NiceMatrixBlock}

\end{document}

上述代码的结果

答案3

薛定谔的猫建议的帖子处理这种间距的“减”,但你的矩阵有许多其他因素,需要太多的 if 条件。我发现最好的方法是添加幻影字符并生成输出。我相信会有一种方法可以自动化这一点,但如果你只是想让它适用于三个方程,那么phantom手动添加就可以了。

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{tensor}

\begin{document}

\begin{align}
    \gamma^0 &=
    \begin{bmatrix}
        0 & \phantom{-}\tensor{\sigma}{_2}\phantom{3} \\[1em]
        \phantom{-}\tensor{\sigma}{_2}\phantom{3} & 0
    \end{bmatrix},
    \\
    \gamma^1 &=
    \begin{bmatrix}
        -\, i \tensor{\sigma}{_3} & 0 \\[1em]
        0 & -\, i \tensor{\sigma}{_3}
    \end{bmatrix},
    \\
    \gamma^2 &=
    \begin{bmatrix}
        0 & \phantom{-}\tensor{\sigma}{_2}\phantom{3} \\[1em]
        -\, \tensor{\sigma}{_2}\phantom{3} & \phantom{-}0\phantom{3}
    \end{bmatrix},
    \\
    \gamma^3 &=
    \begin{bmatrix}
        \phantom{- }i \tensor{\sigma}{_1} & \phantom{-} 0 \phantom{3} \\[1em]
        0 & \phantom{-1}i\tensor{\sigma}{_1}
    \end{bmatrix}.
\end{align}

\end{document}

1

答案4

 \documentclass{article}
 \usepackage{amsmath}
 \usepackage[pdftex]{graphicx}
  \usepackage{tikz}


  \usepackage[utf8]{inputenc}

  \begin{document}

  \begin{tabular}{c c}
    $ \gamma^0 =$ &{$\left[
      \begin{tabular}{p{0.75cm}p{0.75cm}}
       0 & $ \sigma _{2} $\\[1em]
       $ \sigma _{2}$ & 0
      \end{tabular}\right]$}
   \end{tabular}\\
        \vspace{1cm}

   \begin{tabular}{cc}
   $ \gamma^1 =$ & {$\left[
      \begin{tabular}{p{0.75cm}p{0.75cm}}
         $ -\iota \sigma_{3}$ & 0 \\[1em]
         0 & $-\iota \sigma_ {3}$
      \end{tabular}\right]$}
   \end{tabular}  
        \vspace{1cm}  

   \begin{tabular}{cc}
       $ \gamma^2 =$ &{$\left[
       \begin{tabular}{p{0.75cm}p{0.75cm}}
        0 & $\sigma_{ 2}$ \\[1em]
        $-\iota \sigma _2$ & 0
       \end{tabular}\right]$}
   \end{tabular}
         \vspace{1cm}

   \begin{tabular}{cc}    
     $ \gamma^3 =$& {$\left[
     \begin{tabular}{p{0.75cm}p{0.75cm}}   
         $ \iota \sigma _{1}$ & 0 \\[1em]
         0 & $ \iota \sigma_{1}$
     \end{tabular}\right]$}
    \end{tabular}

    \end{document}

这里我使用了简单的 latex 命令。我有适当的 latex 术语,例如 \iota 表示 i。sigma 中也有一个修正。我还尝试调整了表格列。

相关内容