分数之间的额外空格

分数之间的额外空格

我的 LaTeX 方程式中有重分数。

当一行中出现 2 个或更多连续分数时(即我评估一个产品),它们彼此太接近了。

有没有办法在 LaTeX 数学模式中的分数之间添加额外的空格?

更准确地说,我有以下包含大分数的函数:

\newcommand{\myfrac}[1]{
    \dfrac{\int\limits_0^{#1} x^2 \, \mathrm{d}x}{\zeta(#1)}
}

我厌倦了在它们之间添加额外的空格: $ \myfrac{1} \, \myfrac{2} $而不是$ \myfrac{1} \myfrac{2} $

我想到添加一个不可见的符号\i (在我的自定义函数的开始和结束处),这样它\i就会被忽略并\i\i起到作用\,

另一种方法是调整任何分数的间距,但我没有找到与具体对象之间的用户定义空间相关的任何内容。

这是我的代码:

\newcommand{\myfrac}[1]{
    \dfrac{\int\limits_0^{#1} x^2 \, \mathrm{d}x}{\zeta(#1)}
}

\begin{document}

Here everything works good:
\begin{equation*}
    a = 4 + \myfrac{1} < 5.
\end{equation*}

However, here the space between the fractions is too small:
\begin{equation*}
    b = 7 + \myfrac{1} \myfrac{2} < 5,
\end{equation*}
so I have to add an extra space:
\begin{equation*}
    b = 7 + \myfrac{1} \; \myfrac{2} < 5.
\end{equation*}

\end{document}

产生 以下输出

仅添加\,到自定义函数的末尾似乎不起作用,因为\myfrac{1}和其他运算符(即=)之间的空间比预期的要大。

答案1

您可以检查是否有另一个\myfrac跟随,在本例中,添加\;

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\myfrac}[1]{%
  \dfrac{\int\limits_0^{#1} x^2 \, \mathrm{d}x}{\zeta(#1)}%
  \@ifnextchar\myfrac{\;}{}%
}
\makeatother

\begin{document}

\begin{gather*}
    a = 4 + \myfrac{1} < 5.
\\
    b = 7 + \myfrac{1} \myfrac{2} < 5.
\end{gather*}

\end{document}

在此处输入图片描述

相同之处expl3

\documentclass{article}
\usepackage{amsmath}

\ExplSyntaxOn

\NewDocumentCommand{\myfrac}{m}
 {
  \dfrac{\int\limits\sb{0}\sp{#1} x^2 \, \mathrm{d}x}{\zeta(#1)}
  \peek_remove_spaces:n { \peek_meaning:NT \myfrac {\;} }
 }
\ExplSyntaxOff

\begin{document}

\begin{gather*}
    a = 4 + \myfrac{1} < 5.
\\
    b = 7 + \myfrac{1} \myfrac{2} < 5.
\end{gather*}

\end{document}

您可能会考虑使用不同的语法:

\documentclass{article}
\usepackage{amsmath}

\ExplSyntaxOn

\cs_new_protected:Nn \oleg_zetafrac:n
 {
  \dfrac{\int\limits\sb{0}\sp{#1} x^2 \, \mathrm{d}x}{\zeta(#1)}
 }
\cs_generate_variant:Nn \oleg_zetafrac:n { V }
\NewDocumentCommand{\zetafrac}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ; } { #1 }
  \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
  \oleg_zetafrac:V \l_tmpa_tl
  \seq_map_inline:Nn \l_tmpa_seq { \; \oleg_zetafrac:n { ##1 } }
 }
\ExplSyntaxOff

\begin{document}

\begin{gather*}
    a = 4 + \zetafrac{1} < 5.
\\
    b = 7 + \zetafrac{1;2} < 5.
\\
    c = 11 + \zetafrac{1;2;3} < 5.
\end{gather*}

\end{document}

在此处输入图片描述

相关内容