Per alcune occorrenze di un ambiente "teorema", possiamo rimuovere le parentesi - "(" e ")" - dall'argomento facoltativo dell'ambiente?

Aug 15 2020

Per alcune occorrenze possiamo rimuovere le parentesi -- (e )-- da un theoremargomento facoltativo di ?

Sono pronto per utilizzare un comando come \nobracket, come mostrato di seguito:

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

Risposte

Mico Aug 15 2020 at 12:43

A pagina 10 della guida per l'utente del amsthmpacchetto, si trovano le istruzioni su come creare uno stile di teorema che condivide la maggior parte delle proprietà dello plainstile di teorema predefinito, tranne per il fatto che non vengono poste parentesi attorno all'argomento facoltativo di un teorema.

La seguente soluzione si basa su questo materiale.

\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

Devi in ​​qualche modo contrassegnare quando non vuoi le parentesi.

Con la tua sintassi 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}

Con una sintassi migliore:

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