忽略下标或隐藏下标

忽略下标或隐藏下标

有没有办法定义一个命令,使可能的后续下标被隐藏?比如

\newcommand{\mycommand}[1]{#1\nosubscript}

类似于数学运算符,\limit如果我想要下面的下标。

背景是,我希望能够为带有覆盖层的投影仪定义命令,这些命令在特定幻灯片上根本不显示下标。我尽量避免将下标作为命令的参数。

我想要实现的是一个\underbrace带有覆盖规范的重新定义命令,例如

$\underbrace<3>{x < 0}_{x \text{ negative}}$

将仅在指定的覆盖层上显示包含其下标的下括号,否则则不显示x < 0

答案1

只是定义

\def\mycommand#1_#2{#1}

应该可以解决问题。

如果你使用

\usepackage[intlimits]{amsmath}

您不需要\limits计算总和,上述操作也同样有效。

结合我上述的尝试和 Claudio 的想法你应该能够做到:

\def\uncoversubscript<#1>#2_#3%
    {#2_{\uncover<#1>{#3}}}

答案2

第一次试验是:

\newcommand<>{\uncoversubscript}[2]{#1_{\uncover#3{#2}}}

例子:

\documentclass{beamer}

\usepackage{amsmath,amssymb}
\newcommand<>{\uncoversubscript}[2]{%
      #1_{\uncover#3{#2}}}

\begin{document}
\begin{frame}{Test}
\[\uncoversubscript<2>{x}{y} \uncoversubscript<2>{z}{1}\]
\end{frame}
\end{document}

结果框架:

在此处输入图片描述

在此处输入图片描述

第二次尝试(不完美):

\documentclass{beamer}

\usepackage{amsmath,amssymb}

% code by canaaerus
\def\uncoversubscript<#1>#2_#3%
    {#2_{\uncover<#1>{#3}}}

% code by Hendrik Vogt - http://tex.stackexchange.com/a/5465/13304
\makeatletter
\let\saved@underbrace\underbrace
\renewcommand<>*\underbrace[1]{\@ifnextchar_{\ub@with<2>{#1}}{\ub@without{#1}}}
\def\ub@with<#1>#2_#3{\mathpalette\underbrace@i{{#2}_{\only<#1>{#3}}}}
\newcommand*\ub@without[1]{\mathpalette\underbrace@i{{#1}{}}}
\newcommand*\underbrace@i[2]{\underbrace@ii#1#2}
\newcommand*\underbrace@ii[3]{\saved@underbrace{#1#2}#3}
\makeatother


\begin{document}
\begin{frame}{Test}
\[ \uncoversubscript<2->x_y \hspace*{2cm} \underbrace{x}_{y} \]


\end{frame}
\end{document}

我不知道如何在这里传递\renewcommand<>*\underbrace[1]{\@ifnextchar_{\ub@with<2>{#1}}{\ub@without{#1}}}当前的覆盖规范来改变<2>

相关内容