
\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
並使用 a\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}