我怎样才能更新宏“\log”(从“log”到“\ell og”)?
默认函数 \log 在第 1 行
我用更新命令对于 \log:
\renewcommand{\log}{\ell\text{og }}
这显示在第 2 行。
但我想在第 3 行执行 \log 函数:
Default: \hspace{0.5 cm} $\log_M x^N = N \log_M x$ \\
\renewcommand{\log}{\ell\text{og }}
That show: $\log_M x^N = N \log_M x$ \\
\renewcommand{\log}{\ell\text{og}}
I want: \hspace{0.625 cm} $\log_M\hspace{2 pt}x^N = N \log_M\hspace{2 pt}x$ \\
答案1
标准宏\log
被定义为“数学运算符”。首先需要取消定义现有宏,然后通过指令等方式重新创建它\DeclareMathOperator
。
\documentclass{article} % or some other suitable doc. class
\usepackage{amsmath} % for "\DeclareMathOperator" macro
\let\log\relax % first, undefine the existing macro
\DeclareMathOperator{\log}{\ell og} % now, (re)define it
\begin{document}
$\log_M x^N = N \log_M x$
\end{document}
答案2
取消定义并重新定义命令的另一种方法是将类似对数的运算符声明为原子\mathop
。您还需要添加\nolimits
上标和下标,使其出现在右侧,而不是上方和下方。这也适用于不应使用运算符字体的运算符。
\documentclass{article}
\usepackage{amsmath}
\newcommand\ellog{\mathop{\ell\mathrm{og}}\nolimits}
\pagestyle{empty}
\begin{document}
\begin{align*}
\log_M x^N &= N \log_M x \\
\ellog_M x^N &= N \ellog_M x
\end{align*}
\end{document}
在这种情况下,我避免重新定义\log
以显示上面和下面的新旧输出,但您可以轻松地更改\newcommand\ellog
为类似的内容\DeclareRobustCommand\log
。