我正在尝试使用 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}