将缺失值 () 添加到数学函数中

将缺失值 () 添加到数学函数中

我正在尝试使用 LaTeX 进行渲染

${f}^\prime = e^{x\,\log \cos x}\,\left(x\,\log \cos x\right)^\prime$

作为

${f}^\prime = e^{x\,\log \left (\cos \left (x  \right )  \right )}\,\left(x\,\log \left (\cos \left (x  \right )  \right )\right)^\prime$

从而自动添加缺失的 ()。如果函数有多个参数,则括号已经添加(因此不存在歧义)。有人知道一种快速简单的方法来实现这一点吗?

答案1

如果你总是这样写,下面的方法就可以工作\log \cos x

\documentclass{article}
\let\Log\log
\def\log \cos x{\Log(\cos(x))}     
\begin{document}

${f}^\prime = e^{x\,\log \cos x}\,(x\,\log \cos x)^\prime$

\end{document}

答案2

不完全是你想要的,但几乎是:

\documentclass{article}

\newcommand*{\redefinesymbolwitharg}[1]{%
  \expandafter\newcommand\csname ltx#1\endcsname{}%
  \expandafter\let\csname ltx#1\expandafter\endcsname\csname #1\endcsname
  \expandafter\renewcommand\csname #1\endcsname[1]{%
   \csname ltx#1\endcsname\left(##1\right)%
 }%
}

\redefinesymbolwitharg{cos}
\redefinesymbolwitharg{log}

\begin{document}

% You may use \ltxcos, \ltxlog etc. if you need the original definition
% without argument:
${f}^\prime = e^{x \ltxlog \left (\ltxcos \left (x  \right )  \right  )}\,\left(x \ltxlog \left (\ltxcos \left (x  \right )  \right )\right)^\prime$

% But \cos and \log expect an argument now:
${f}^\prime = e^{x \log{\cos x}}\,\left(x \log{\cos x}\right)^\prime$

\end{document}

这里对于的参数,\cos我使用了 TeX 的标准行为,即如果您不使用参数括号{……}它将使用命令后的第一个标记作为参数。这将适用于用单个字节编码的每个单个字符(例如,如果您使用但或则正确,\cos ß则会失败)。\usepackage[utf8]{inputenc}\cos{ß}\cos \beta

如果你喜欢写成\redefinesymbolwitharg\cos\redefinesymbolswitharg{cos}你可以用以下方式替换定义\redefinesymbolwitharg

\makeatletter
\newcommand*{\redefinesymbolwitharg}[1]{%
  \edef\@tempa{\expandafter\@gobble\string #1}%
  \expandafter\let\csname ltx\@tempa\expandafter\endcsname\csname \@tempa\endcsname
  \expandafter\renewcommand\csname \@tempa\endcsname[1]{%
    \csname ltx\@tempa\endcsname\left(##1\right)%
  }%
}
\makeatother

答案3

Mark 的建议很好。但是如果你不想处理,\newcommand你可以添加不带 of 的“()”,如下\left所示\right

 $ f^\prime = e^{x\,\log (\cos (x))}\,(x\,\log (\cos (x)))^\prime $

除了括号前面的空格有一点不同之外,结果几乎与您想要的完全一致。

答案4

我认为 Mark 的建议是正确的。但是,您需要注意,当涉及多个字符时(如上一种情况),除非您将 的参数括\cos在 a 中,否则会出现问题。{}

{}如果省略 as ,这与其他函数没有什么不同$\frac 12a$

\documentclass{article}

\newcommand{\Cos}[1]{\cos\left(#1\right)}%
\begin{document}
${f}^\prime = e^{x\,\log \cos x}\,\left(x\,\log \cos x\right)^\prime$

${f}^\prime = e^{x\,\log \left (\cos \left (x  \right )  \right )}\,\left(x\,\log \left (\cos \left (x  \right )  \right )\right)^\prime$

\bigskip
Now using \textbackslash{}Cos:\par
${f}^\prime = e^{x\,\log \Cos x}\,\left(x\,\log \Cos x\right)^\prime$

${f}^\prime = e^{x\,\log \Cos {x\pi}}\,\left(x\,\log \Cos {x\pi}\right)^\prime$
\end{document}

相关内容