2

I have a number of trig functions raised to some powers, and the arguments are often different from just t

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

for example

Now, I would like to get the argument to be in parentheses, which I know I can input manually with

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

but I would like to get it automatically.

Now, I've tried to redefine the symbol with argument, as shown here https://tex.stackexchange.com/a/35646/106445

but when I try to add the power I get two errors: Missing { inserted, and Missing } inserted. I assume it's because it's expecting the argument and I have added the power instead. Any workaround?

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

There is no problem with the first one, but once I add the square as I would normally it breaks

  • For me the linked code works fine. Could you please provide a complete example that shows the issue? – marmot Nov 7 '18 at 3:06
  • 1
    For what it is worth, \sin does not take an argument. No braces {...} are needed. – Steven B. Segletes Nov 7 '18 at 4:45
  • I had no clue, I guess I have always assumed it took one and I always wrote it that way ´\sin{x}´ I've added a complete example – Mahoma Nov 7 '18 at 5:09
  • @StevenB.Segletes right, but I think that OP wants it for correct spacing when using an operator and braces. I add braces (manually) for that. – manooooh Nov 7 '18 at 5:59
2

My (unrequested) advice would be not to introduce automatic brackets, and surely not to introduce automatically scaling brackets produced by \left...\right. Personally, I find \cos(x) rather clearer than \cos{x}, and you don't really spare keystrokes (and the braces are quite pointless, since \cos doesn't take an argument). As for \left/\right, there are enough examples on this site as why their overuse produces often rather bad results.

This being said, the following code (which should never be used under any circumstances :-)) might work as desired:

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

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.