使勒让德符号大小相同

使勒让德符号大小相同

我在排版(n 次方)勒让德符号时遇到了一些麻烦。我设置了命令

\newcommand{\Leg}[3][]{\left(\frac{#2}{#3}\right)_{#1}}

但是,当我输入例如

$$\Leg[3]{\pi}{\theta} = \Leg[3]{\theta}{\pi}$$

左边的符号比右边的符号小:

图片

如果有人能建议一种方法来使符号大小相同,我将不胜感激。(无论是设置命令\Leg使其始终输出相同大小的符号,还是每次使用时调整大小的临时方法\Leg都很棒。)

答案1

您可以(并且应该)使用\genfrac

\documentclass{article}
\usepackage{amsmath}

\newcommand{\genlegendre}[4]{%
  \genfrac{(}{)}{}{#1}{#3}{#4}%
  \if\relax\detokenize{#2}\relax\else_{\!#2}\fi
}
\newcommand{\legendre}[3][]{\genlegendre{}{#1}{#2}{#3}}
\newcommand{\dlegendre}[3][]{\genlegendre{0}{#1}{#2}{#3}}
\newcommand{\tlegendre}[3][]{\genlegendre{1}{#1}{#2}{#3}}

\begin{document}

We can use the Legendre symbol $\legendre{\pi}{\theta}$
\[
\legendre[3]{\pi}{\theta} = \legendre[3]{\theta}{\pi}
\]
We can also choose the size
\[
\frac{\dlegendre[2]{\pi}{\theta}+1}{3}
\]
\end{document}

命令\legendre\dlegendre和作用与、和\tlegendre相同。\frac\dfrac\tfrac

在此处输入图片描述

\genfrac命令有六个参数:

  1. 左分隔符(如果为空,则无分隔符);
  2. 右分隔符(如果为空,则无分隔符);
  3. 分数线的粗细(如果为空,则为标准粗细);
  4. 要使用的数学样式(如果为空,则使用当前样式);样式用 0(显示样式)、1(文本样式)、2(脚本样式)、3(scriptscript 样式)表示;
  5. 分子;
  6. 分母。

因此,我们通过传递不作为第四个参数来\legendre从中获得,通过传递。\genlegendre\genfrac\dlegendre0

这个\if\relax\detokenize{#1}\relax诀窍是为了避免生成空下标\scriptspace

答案2

\mathstrut带有以下包的解决方案mleftright

\documentclass{article}
\usepackage[utf8]{inputenc}%
\usepackage{mathtools}
\usepackage{mleftright} 
\newcommand{\Leg}[3][]{\mleft(\frac{#2\mathstrut}{#3}\mright)_{\mkern-6mu#1}} 

\begin{document}

 \[ \Leg{\pi }{\sigma}\quad \Leg[3]{\pi }{\theta}\quad \Leg{\theta}{\pi} \]

\end{document}

在此处输入图片描述

答案3

我稍微改变了一下语法:现在可选参数是大小命令,索引是必需的。只需尝试一下您喜欢的大小即可。

您的命令的问题在于您自动应用自动大小调整(左和右),如果给出不同的输入(尤其是不同的大小),则不会产生相同的输出。

顺便说一句:您应该使用\[...\]而不是$$语法。

尺寸

\documentclass{article}
\usepackage{amsmath}
\newcommand{\Leg}[4][big]{\csname #1l\endcsname(\frac{#3}{#4}\csname#1r\endcsname)_{#2}}

\begin{document}
\[
    \Leg[Bigg]{3}{\pi}{\theta} = \Leg[Bigg]{3}{\theta}{\pi}
\]
\[
    \Leg{3}{\pi}{\theta} = \Leg{3}{\theta}{\pi}
\]
\end{document}

答案4

这是允许您继续使用自动缩放的替代方案。它定义了一个\Legmatch命令,并附加了两个伪参数。这些伪参数给出了另一个 Legendre 表达式,该表达式的大小应与该表达式相匹配。

在内部,它在成对的分隔符内插入一个\vphantom框,该框的高度与另一个表达式的内容相同,宽度为零。

\documentclass[varwidth, preview]{standalone}

\usepackage{mathtools}
\usepackage{unicode-math}

\newcommand{\Legmatch}[5][]{\left(\vphantom{\frac{#4}{#5}}\frac{#2}{#3}\right)_{#1}} 

\begin{document}
\[
   \Legmatch[3]{\pi}{\theta^{\frac{\alpha^2}{2}}}{\theta}{\pi} =
   \Legmatch[3]{\theta}{\pi}{\pi}{\theta^{\frac{\alpha^2}{2}}}
\]
\end{document}

匹配勒让德表达式

我特别喜欢 Bernard 的答案,它使用了mleftright。在某些特殊情况下,这个可能仍然有用,例如,如果您想分割线或在同一行上引入其他支柱。

相关内容