将方阵显示为正方形

将方阵显示为正方形

首先,在有人跳出来进行“重复”攻击之前:我在论坛上搜索了很多次,但我找到的解决方案实际上都不再有效(它们似乎已经过时了,或者原因超出了我的理解范围)。我最大的希望和最彻底的尝试与建议有关这里

无论如何,我目前正在使用 pdfLaTex 和 Overleaf。

标题几乎描述了我想要做的事情,但是这里是用于可视化的 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathdots}
\usepackage{amsmath}

\begin{document}
Initial and good looking:
    \[ \Delta_9 = \begin{vmatrix}
        \frac{8}{9} & 8 & \dots&\dots&\dots & 8 & -63\\
        \frac{8}{8} & \vdots &  &  & \iddots & -56 & 8\\
        \frac{8}{7} & \vdots &  & \iddots & -49 & \iddots & \vdots\\
        \vdots&\vdots&\iddots&\iddots&\iddots& &\vdots\\
        \frac{8}{3} & 8 & -21 & \iddots &  &  & \vdots\\
        \frac{8}{2} & -14 & \iddots &  &  &  & \vdots\\
        -7 & 8 & \dots & \dots & \dots & \dots & 8\\
        \end{vmatrix}\]
        
After some elementary operations and ugly looking:
    \[
    \begin{vmatrix}
        -7.1 & 8 & 8 & \dots & \dots & \dots & 8\\
        \frac{8}{2} +7 & -7.2 - 8 & 0 & \dots & \dots & \dots & 0\\
        \frac{8}{3} +7 & 0 & -7.3 - 8 & \ddots &  &  & \vdots\\
        \vdots&\vdots&\ddots&\ddots&\ddots& &\vdots\\
        \frac{8}{n-2} +7 & \vdots &  & \ddots & -7(n-2) - 8 & \ddots & \vdots\\
        \frac{8}{n-1} +7 & \vdots &  &  & \ddots & -7(n-1) - 8 & 0\\
        \frac{8}{n} +7 & 0 & \dots&\dots&\dots & 0 & -7n - 8
    \end{vmatrix}
    \]
\end{document}

其结果为: 矩形代替方阵

对我来说,在这种情况下,非常重要的一点是,这个方阵实际上显示为正方形。也就是说,里面的每个条目都将被格式化为正方形(而不是默认情况下的矩形),相对于最高/最宽条目的两个维度(高度或长度)中的最大者。我真的不介意整个东西变得太大,只要它能很好地呈现和理解。

我希望格式化能够动态发生,因为我有很多矩阵,而且我真的不想用自定义间距值分别格式化每个矩阵。(这是我最常遇到的建议之一)

我需要这个是因为点,我用它们直观地可视化矩阵的结构。所以,如果你对如何理解行、列和对角线的“点”有任何更好的建议,这也是一种替代解决方案。

总的来说,也许存在一种解决矩阵动态综合点分需求的“最佳”方法,但我不知道,因此也欢迎对此进行任何澄清!

好像是这样的。提前谢谢大家!

答案1

尝试一下这个代码。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathdots}
\usepackage{amsmath}

\usepackage{array}% added

\begin{document}
Initial and good looking:
    \[ \Delta_9 = \begin{vmatrix}
        \frac{8}{9} & 8 & \dots&\dots&\dots & 8 & -63\\
        \frac{8}{8} & \vdots &  &  & \iddots & -56 & 8\\
        \frac{8}{7} & \vdots &  & \iddots & -49 & \iddots & \vdots\\
        \vdots&\vdots&\iddots&\iddots&\iddots& &\vdots\\
        \frac{8}{3} & 8 & -21 & \iddots &  &  & \vdots\\
        \frac{8}{2} & -14 & \iddots &  &  &  & \vdots\\
        -7 & 8 & \dots & \dots & \dots & \dots & 8\\
        \end{vmatrix}\]
        
After some elementary operations and better looking:

\renewcommand{\arraystretch}{3} % added
    \[
    \begin{vmatrix}
        -7.1 & 8 & 8 & \dots & \dots & \dots & 8\\
        \frac{8}{2} +7 & -7.2 - 8 & 0 & \dots & \dots & \dots & 0\\
        \frac{8}{3} +7 & 0 & -7.3 - 8 & \ddots &  &  & \vdots\\
        \vdots&\vdots&\ddots&\ddots&\ddots& &\vdots\\
        \frac{8}{n-2} +7 & \vdots &  & \ddots & -7(n-2) - 8 & \ddots & \vdots\\
        \frac{8}{n-1} +7 & \vdots &  &  & \ddots & -7(n-1) - 8 & 0\\
        \frac{8}{n} +7 & 0 & \dots&\dots&\dots & 0 & -7n - 8
    \end{vmatrix}
    \]
\end{document}

正方形

更新

我写了一个宏来计算squarefy矩阵,无需手动调整(\arraystretch计算)。需要mathtools包。

\documentclass{article}

\usepackage{mathtools} % added
\usepackage{calc}
\usepackage{mathdots}

\newcommand{\getlengthratio}[2]{%
    \number\numexpr
    \dimexpr#1\relax
    /
    \dimexpr#2\relax
    \relax} 

\newcommand{\GetMatrix}{}
\newlength{\MWi}
\newlength{\MWii}
\newcounter{MWiii}

\newcommand{\squarefy}[2]{%
\renewcommand{\GetMatrix}{} 
\renewcommand{\arraystretch}{1}
\renewcommand{\GetMatrix}{#1}
\setlength{\MWi}{\widthof{$\displaystyle\GetMatrix$}}
\setlength{\MWii}{\heightof{$\displaystyle\GetMatrix$}}
\setcounter{MWiii}{\getlengthratio{0.5\MWi}{\MWii}}
\renewcommand{\arraystretch}{\theMWiii} %% added
\[#2#1\]}


\begin{document}

 \squarefy{%
\begin{vmatrix}
\frac{8}{9} & 8 & \dots&\dots&\dots & 8 & -63\\
\frac{8}{8} & \vdots &  &  & \iddots & -56 & 8\\
\frac{8}{7} & \vdots &  & \iddots & -49 & \iddots & \vdots\\
\vdots&\vdots&\iddots&\iddots&\iddots& &\vdots\\
\frac{8}{3} & 8 & -21 & \iddots &  &  & \vdots\\
\frac{8}{2} & -14 & \iddots &  &  &  & \vdots\\
-7 & 8 & \dots & \dots & \dots & \dots & 8\\
\end{vmatrix}
}{\Delta_9 = }

\squarefy{%
\begin{vmatrix}
-7.1 & 8 & 8 & \dots & \dots & \dots & 8\\
\frac{8}{2} +7 & -7.2 - 8 & 0 & \dots & \dots & \dots & 0\\
\frac{8}{3} +7 & 0 & -7.3 - 8 & \ddots &  &  & \vdots\\
\vdots&\vdots&\ddots&\ddots&\ddots& &\vdots\\
\frac{8}{n-2} +7 & \vdots &  & \ddots & -7(n-2) - 8 & \ddots & \vdots\\
\frac{8}{n-1} +7 & \vdots &  &  & \ddots & -7(n-1) - 8 & 0\\
\frac{8}{n} +7 & 0 & \dots&\dots&\dots & 0 & -7n - 8
\end{vmatrix}
}{}

\end{document}

纽斯凯菲

相关内容