Pour certaines occurrences d'un environnement "théorème", pouvons-nous supprimer les parenthèses - "(" et ")" - de l'argument optionnel de l'environnement ?
Pour certaines occurrences, pouvons-nous supprimer les parenthèses -- (
et )
-- de theorem
l'argument facultatif d'un ?
Je suis prêt à utiliser une commande telle que \nobracket
, comme indiqué ci-dessous :
\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}
Réponses
Mico
À la page 10 du guide de l'utilisateur du amsthm
package, on trouve des instructions sur la façon de créer un style de théorème qui partage la plupart des propriétés du plain
style de théorème par défaut, sauf qu'aucune parenthèse n'est placée autour de l'argument facultatif d'un théorème.
La solution suivante s'appuie sur ce matériau.
\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
Vous devez en quelque sorte marquer quand vous ne voulez pas les crochets.
Avec votre syntaxe proposée :
\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}
Avec une meilleure syntaxe :
\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}