Para algumas ocorrências de um ambiente “teorema”, podemos remover os parênteses — “(” e “)” — do argumento opcional do ambiente?

Aug 15 2020

Para algumas ocorrências, podemos remover os parênteses -- (e )-- do theoremargumento opcional de a?

Estou pronto para usar um comando como \nobracket, conforme mostrado abaixo:

\documentclass{article}
\usepackage{amsthm}

\begin{document}
\nobrackets
\begin{theorem}[aaa]
For this theorem don't want bracket ()
\end{theorem}

\begin{theorem}[bbb]
For this theorem need bracket ()
\end{theorem}
\end{document}

Respostas

Mico Aug 15 2020 at 12:43

Na página 10 do guia do usuário do amsthmpacote, encontram-se instruções sobre como criar um estilo de teorema que compartilhe a maioria das propriedades do plainestilo de teorema padrão, exceto que nenhum parêntese é colocado ao redor do argumento opcional de um teorema.

A solução a seguir se baseia neste material.

\documentclass{article}

\usepackage{amsthm}
\theoremstyle{plain} % the default
\newtheorem{theorem}{Theorem}

\newtheoremstyle{noparens}% cf. p. 10 of user guide of 'amsthm' package
    {}{}{\itshape}{}%
    {\bfseries}{.}{ }%
    {\thmname{#1}\thmnumber{ #2}\thmnote{ {\mdseries #3}}}
\theoremstyle{noparens} % switch to the new theorem style
\newtheorem{theoremnp}[theorem]{Theorem} % 'theoremnp' and 'theorem' share same counter

\begin{document}

\begin{theoremnp}[aaa]
For this theorem we don't want parentheses.
\end{theoremnp}

\begin{theorem}[bbb]
For this theorem we need parentheses.
\end{theorem}

\end{document}
egreg Sep 14 2020 at 16:04

Você precisa marcar de alguma forma quando não quiser os colchetes.

Com sua sintaxe proposta:

\documentclass{article}
\usepackage{amsthm}

\usepackage{lipsum} % for mock text

\newtheoremstyle{funny}
  {}{}
  {\itshape}
  {}
  {\bfseries}
  {.}
  { }
  {%
   \thmname{#1}% the label
   \thmnumber{ #2}% the number
   \thmnote{ {\mdseries\iffunny(\fi#3\iffunny)\fi}}% the note
   \global\funnytrue % restore the standard
  }
\newif\iffunny
\newcommand{\nobrackets}{\global\funnyfalse}

\theoremstyle{funny}
\newtheorem{theorem}{Theorem}

\begin{document}

\lipsum[1][1-6]

\nobrackets
\begin{theorem}[aaa]
For this theorem we don't want parentheses.
\end{theorem}

\lipsum[2][1-6]

\begin{theorem}[bbb]
For this theorem we need parentheses.
\end{theorem}

\lipsum[3][1-6]

\end{document}

Com uma sintaxe melhor:

\documentclass{article}
\usepackage{amsthm}

\usepackage{lipsum} % for mock text

\newtheoremstyle{funny}
  {}{}
  {\itshape}
  {}
  {\bfseries}
  {.}
  { }
  {%
   \thmname{#1}% the label
   \thmnumber{ #2}% the number
   \thmnote{ {\mdseries\iffunny(\fi#3\iffunny)\fi}}% the note
  }
\newif\iffunny
\funnytrue

\theoremstyle{funny}
\newtheorem{theorem}{Theorem}
\newenvironment{theorem*}{\funnyfalse\theorem}{\endtheorem}

\begin{document}

\lipsum[1][1-6]

\begin{theorem*}[aaa]
For this theorem we don't want parentheses.
\end{theorem*}

\lipsum[2][1-6]

\begin{theorem}[bbb]
For this theorem we need parentheses.
\end{theorem}

\lipsum[3][1-6]

\end{document}