\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{mathtools}
\begin{document}
\renewcommand{\arraystretch}{1.2}
\newcommand{\minus}{\scalebox{0.4}[1.0]{$-$}}
\[
\begin{bmatrix*}[r]
0& \minus\frac{1}{2} &\frac{1}{2} \\
\minus\frac{1}{2}& 0&\minus\frac{1}{2}\\
\frac{1}{2}& \minus\frac{1}{2}&0
\end{bmatrix*}
\]
\end{document}
如何减小数字“0”的大小以适应分数“1/2”?(减少“0”的高度?)
更新示例
如下图所示,比例接近1/3
答案1
我赞同 Mico 的建议,不要这样做。但解决方案是让分数显示样式,而不是缩小零(您的示例可能是由不懂如何正确调整分数大小的简单软件设置的。以下是从您的 MWE 改编的另一种替代设置:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{mathtools}
\begin{document}
\newcommand{\half}{{\displaystyle\frac{1}{2}\vphantom{\frac{1}{2}^1_1}}}
\[
\begin{bmatrix*}[r]
0& -\half &\half \\
-\half& 0&-\half\\
\half& -\half&0
\end{bmatrix*}
\]
\end{document}
我放入分数\displaystyle
并使用在\vphantom
分数上方和下方添加额外的间距(可能不够)。
答案2
我不会缩小0
数字的大小。如果你认为它们相对于文本样式的\frac{1}{2}
表达式来说看起来太大,也许真的所需要的是用它们的十进制表示形式替换这些\frac
项 - 当然,同时将数字与它们的(显式或隐式)小数标记对齐。
\documentclass{article}
\usepackage{mathtools} % for 'bmatrix*' env.
\usepackage{siunitx} % for 'S' column type
\begin{document}
\[
\renewcommand\arraystretch{1.33}
\begin{bmatrix*}[r]
0 & -\frac{1}{2} & \frac{1}{2} \\
-\frac{1}{2} & 0 & -\frac{1}{2} \\
\frac{1}{2} & -\frac{1}{2} & 0
\end{bmatrix*}
\]
\[
\left[ % note: no need to increase the value of '\arraystretch'
\begin{array}{@{} *{3}{S[table-format=-1.1]} @{}}
0 & -0.5 & 0.5 \\
-0.5 & 0 & -0.5\\
0.5 & -0.5 & 0
\end{array}
\right]
\]
\end{document}
答案3
在我看来,减少分数(默认为文本模式)与普通数字之间的大小差异的一个好方法是使用中等大小的分数nccmath
,它们约为 \displaystyle 的 80%:
\documentclass{article}
\usepackage{nccmath, mathtools} % for 'bmatrix*' env.
\usepackage{makecell}
\begin{document}
\[ \setcellgapes{3pt}\makegapedcells
\begin{bmatrix*}[r]
\phantom{-}0 & -\mfrac{1}{2} & \mfrac{1}{2} \\
-\mfrac{1}{2} & 0 & -\mfrac{1}{2} \\
\mfrac{1}{2} & -\mfrac{1}{2} & 0
\end{bmatrix*}
\]%
\end{document}
答案4
我想说的是,您的示例实际上表明了相反的意思:“我希望即使对于分子和分母也保持常规大小”。使用\dfrac
而不是\frac
。
另外,为什么你们对减号有特殊处理?为什么还-
不够?
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{mathtools}
\begin{document}
\renewcommand{\arraystretch}{2}
\[
\begin{bmatrix*}[r]
0 & -\dfrac{1}{2} & \dfrac{1}{2} \\
-\dfrac{1}{2} & 0 & -\dfrac{1}{2} \\
\dfrac{1}{2} & -\dfrac{1}{2} & 0
\end{bmatrix*}
\]
\end{document}