我有一个,\newcommand
它会在您传递的任何内容周围插入左方括号和右方括号。
\documentclass{minimal}
\newcommand{\foo}[1]{\left[#1\right]}
\begin{document}
Since $\foo{B} = \foo{\sum_j b_jB_j}$ and $\foo{C} = \foo{\sum_i c_i C_i}$ by definition.
\end{document}
输出:
请注意,C 等式中和的方括号比 B 等式中的方括号小得多。为什么会发生这种情况?我可以避免每次都手动更改大小吗?我在大型文档中大量使用这些方括号,真的很想避免它。
答案1
括号的高度不同是由于j
与 相比字母的下降部分造成的i
。
一种方法:使用k
代替j
(或任何其他没有降部字母)
或者也许使用\bigl[
和\bigr]
是一种选择(或者如果缩放不是问题\big[
并且\big]
?)
\documentclass{article}
\usepackage{amsmath}
\newcommand{\foo}[1]{\bigl[#1\bigr]}
\begin{document}
Since $\foo{B} = \foo{\sum_j b_jB_j}$ and $\foo{C} = \foo{\sum_i c_i C_i}$ by definition.
\hrule
\end{document}
这\hrule
只是比较而已。当然还有其他方法可以实现这一点。
注意:\big[
等也可以,但缩放比例不同。这是个人喜好问题,而不是法律问题。
答案2
对于其他类似的公式中这些令人讨厌的小尺寸不匹配的简单修复方法是使用\vphantom
:
Since $\foo{B} = \foo{\sum_j b_jB_j}$ and $\foo{C} = \foo{\sum_{i\vphantom{j}} c_{i\vphantom{j}} C_{i\vphantom{j}}}$ by definition.
\vphantom
当然一个就足够了,在本例中,\sum
作为其下标的运算符的排版比其他的要低。
或者,如果您希望所有元素的高度相同,则可以在下标\smash
上使用j
,正如 WChargin 在评论中所建议的那样。如果公式位于多行段落中并且您想要减少额外的行距,则这很有用。
\documentclass{minimal}
\newcommand{\foo}[1]{\left[#1\right]}
\begin{document}
Since $\foo{B} = \foo{\sum_{\smash{j}} b_jB_j}$ and $\foo{C} = \foo{\sum_i c_i C_i}$ by definition.
\medskip
Since $\foo{B} = \foo{\sum_j b_jB_j}$ and $\foo{C} = \foo{\sum_{\vphantom{j}i} c_i C_i}$ by definition.
\end{document}
答案3
另一个可能的解决方案是自动设置最小尺寸:
\documentclass{minimal}
\newcommand{\minsize}{\vrule width 0pt height 1.5ex depth 1ex\relax}
\newcommand{\foo}[1]{\left[\minsize #1\right]}
\begin{document}
Since $\foo{B} = \foo{\sum_j b_jB_j}$ and $\foo{C} = \foo{\sum_i c_i C_i}$
by definition.
Now it will scale up --- but not down: $\foo{B} = \foo{\sum\limits_\frac{j}{j} b_jB_j}$
\end{document}
您可以使用中定义的规则的height
和参数来调整最小尺寸。depth
\minsize