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