正弦平方,带括号作为参数

正弦平方,带括号作为参数

我有许多三角函数的幂,它们的参数通常不同于t

\sin^2{\frac{2\pi}{T}t}

例如

现在,我想将参数放在括号中,我知道我可以使用

\sin^2{\left(\frac{2\pi}{T}t\right)}

但我想自动获得它。

现在,我尝试用参数重新定义符号,如下所示https://tex.stackexchange.com/a/35646/106445

但当我尝试添加电源时,出现两个错误:Missing { insertedMissing } inserted。我认为这是因为它需要参数,而我却添加了电源。有什么解决方法吗?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}

\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}

\begin{document}

\[\cos{2x}\]
\[\cos^2{2x}\]

\end{document}

第一个没有问题,但是一旦我像平常一样添加正方形,它就会断裂

答案1

我的建议是不是引入自动括号,当然不会引入 产生的自动缩放括号\left...\right。就我个人而言,我发现\cos(x)比 更清晰\cos{x},而且你真的没有节省击键次数(而且括号毫无意义,因为它\cos不带参数)。至于\left/ \right,有足够的例子在这个网站上,我们可以解释为什么过度使用它们往往会产生相当糟糕的后果。

话虽如此,以下代码(在任何情况下都不应使用:-))可能会按预期工作:

\documentclass{article}

\makeatletter
\newcommand*{\redefinesymbolwitharg}[1]{%
  \expandafter\let\csname ltx#1\expandafter\endcsname\csname #1\endcsname
  \@namedef{#1}{\@ifnextchar{^}{\@nameuse{#1@}}{\@nameuse{#1@}^{}}}%
  \expandafter\def\csname #1@\endcsname^##1##2{%
     \csname ltx#1\endcsname\ifx!##1!\else^{##1}\fi\mathopen{}\mathclose\bgroup\left(##2\aftergroup\egroup\right)
     }%
}
\makeatother

\begin{document}

\[
\cos{x} \quad \cos{\frac1x} \quad \cos^2{y} \quad \sin^{2\alpha+1}\theta
\]

\redefinesymbolwitharg{cos}
\redefinesymbolwitharg{sin}

\[
\cos{x} \quad \cos{\frac1x} \quad \cos^2{y} \quad \sin^{2\alpha+1}\theta
\]

\end{document}

在此处输入图片描述

相关内容