为日志写入功率

为日志写入功率

我想表达(\ln{(x)})^4为,\ln^4{(x)}但是幂在 ln 和 x 之间占用了太多空间。应该怎么写?

答案1

解释

以下是您可选择的(非全面)列表(最佳选择是41)正确排版您想要的内容:

  1. (\ln x)^4是正确的,但可能看起来重的从数学角度来看。因此,您可能更喜欢将功率置于 ln 和X
  2. \ln^4 x是您建议的,但它在 4 后面添加了一个大空格,这让读者觉得很奇怪。
  3. \ln^4(x)。在这里,视觉效果更清晰,但 4 和括号之间仍留有一小段细长的额外空格,这从印刷的角度来看是有问题的。
  4. \lnn{4}{x}其中\lnn定义为\newcommand{\lnn}[2]{\ln^{#1}\mkern-1mu(#2)}x和 是函数4的参数\lnn(可能有用),视觉效果完美。唯一的问题是您必须定义一个新命令。

代码

\documentclass{article}

\newcommand{\lnn}[2]{\ln^{#1}\mkern-1mu(#2)}

\begin{document}
\begin{enumerate}
    \item \verb|$(\ln x)^4$| produces:
    
    $(\ln x)^4$
    \item \verb|$\ln^4 x$| produces:
    
    $\ln^4 x$
    \item \verb|$\ln^4(x)$| produces:
    
    $\ln^4(x)$
    \item \verb|$\lnn{4}{x}$| produces:
    
    $\lnn{4}{x}$
\end{enumerate}
\end{document}

输出

LaTeX 输出

编辑:正如@egreg 在评论中指出的那样,\ln由于它是由其定义的,所以不接受参数,\DeclareRobustCommand\ln{\mathop{\operator@font ln}\nolimits}因此我根据它更新了我的答案。

答案2

还没有人提及的一个选项是写成{\ln^4},它为操作符提供了原子的间距\mathord而不是\mathop

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{gather*}
\ln^4 x \\
{\ln^4} x
\end{gather*}

\end{document}

计算机现代样本

答案3

首先,括号是多余的,应该省略。现在我列出四种不同的排版方式。

\documentclass{article}
\pagestyle{empty}

\begin{document}

$(\log x)^4$ is mathematically sound

$\log^4x$ isn't so sound

$(\log(x))^4$ is preferred by somebody

$\log^4(x)$ is not really good

\showoutput

\end{document}

在此处输入图片描述

借助\showoutput我们可以看到排版的细节。

第一起案件

....\mathon
....\OT1/cmr/m/n/10 (
....\hbox(6.94444+1.94444)x12.91669
.....\OT1/cmr/m/n/10 l
.....\OT1/cmr/m/n/10 o
.....\OT1/cmr/m/n/10 g
.....\kern0.13887
....\glue(\thinmuskip) 1.66663
....\OML/cmm/m/it/10 x
....\OT1/cmr/m/n/10 )
....\hbox(4.51111+0.0)x4.48613, shifted -3.62892
.....\OT1/cmr/m/n/7 4
....\mathoff

您可以看到“g”后面有两个空格:一个是斜体校正,这是必要的,因为字母稍微延伸到了边界框的右侧。第二个是通常的细空格。

\ln我们会害怕

....\mathon
....\OT1/cmr/m/n/10 (
....\hbox(6.94444+0.0)x8.33336
.....\OT1/cmr/m/n/10 l
.....\OT1/cmr/m/n/10 n
....\glue(\thinmuskip) 1.66663
....\OML/cmm/m/it/10 x
....\OT1/cmr/m/n/10 )
....\hbox(4.51111+0.0)x4.48613, shifted -3.62892
.....\OT1/cmr/m/n/7 4
....\mathoff

因为没有对“n”进行斜体校正。

第二种情况

....\mathon
....\hbox(6.94444+1.94444)x12.91669
.....\OT1/cmr/m/n/10 l
.....\OT1/cmr/m/n/10 o
.....\OT1/cmr/m/n/10 g
.....\kern0.13887
....\hbox(4.51111+0.0)x4.48613, shifted -4.47224
.....\OT1/cmr/m/n/7 4
....\glue(\thinmuskip) 1.66663
....\OML/cmm/m/it/10 x
....\mathoff

斜体修正插入“g”和指数之间。后面是细空格。

第三种情况

....\mathon
....\OT1/cmr/m/n/10 (
....\hbox(6.94444+1.94444)x12.91669
.....\OT1/cmr/m/n/10 l
.....\OT1/cmr/m/n/10 o
.....\OT1/cmr/m/n/10 g
.....\kern0.13887
....\OT1/cmr/m/n/10 (
....\OML/cmm/m/it/10 x
....\OT1/cmr/m/n/10 )
....\OT1/cmr/m/n/10 )
....\hbox(4.51111+0.0)x4.48613, shifted -3.62892
.....\OT1/cmr/m/n/7 4
....\mathoff

斜体修正位于“g”和括号之间。没有空隙。

第四种情况

....\mathon
....\hbox(6.94444+1.94444)x12.91669
.....\OT1/cmr/m/n/10 l
.....\OT1/cmr/m/n/10 o
.....\OT1/cmr/m/n/10 g
.....\kern0.13887
....\hbox(4.51111+0.0)x4.48613, shifted -4.47224
.....\OT1/cmr/m/n/7 4
....\OT1/cmr/m/n/10 (
....\OML/cmm/m/it/10 x
....\OT1/cmr/m/n/10 )
....\mathoff

与第三种情况类似,没有薄空间。

评论

在所有这些情况下我都没有看到多余的空间。

从数学家的角度来看,我认为应该避免第 2 和第 4 种情况。对数的幂很少出现,因此不需要特殊的符号。这与三角函数不同,其中平方和更高的幂出现得非常频繁。第四种情况可能会被误认为

\log(\log(\log(\log x)))

一切都适用于\ln,但我讨厌这种符号。近四个世纪以来,数学家们通常使用“log”作为唯一真正有用的对数。为什么工程师和物理学家要站出来命令数学家改变他们几百年来的习惯?

如果您确实想在出现下标或指数时删除细小的空间,请按以下步骤操作。

\documentclass{article}

\NewCommandCopy{\logop}{\log}
\RenewDocumentCommand{\log}{e{^_}}{%
  \logop
  \IfValueTF{#1}{% there is an exponent
    \IfValueT{#2}{% there is also a base
      _{#2}%
    }%
    ^{#1}\!{}% add an empty atom
  }{% no exponent
    \IfValueT{#2}{_{#2}\!{}}% add an empty atom
  }%
}

\linespread{1.1}

\begin{document}

$\log x$

$\log(x)$

$\log_{10}x$

$\log_{10}(x)$

$\log^4 x$

$\log^4(x)$

$\log_{10}^4 x$

$\log_{10}^4(x)$

\end{document}

在此处输入图片描述

相关内容