Können wir bei einigen Vorkommen einer „Theorem“-Umgebung die Klammern – „(“ und „)“ – aus dem optionalen Argument der Umgebung entfernen?
Können wir bei manchen Vorkommen die Klammern -- (
und )
-- aus theorem
dem optionalen Argument von a entfernen?
Ich bin bereit, einen Befehl wie \nobracket
, wie unten gezeigt, zu verwenden:
\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}
Antworten
Mico
Auf Seite 10 des Benutzerhandbuchs des amsthm
Pakets finden Sie Anweisungen zum Erstellen eines Theorem-Stils, der die meisten Eigenschaften des Standard plain
-Theorem-Stils teilt, außer dass keine Klammern um das optionale Argument eines Theorems gesetzt werden.
Die folgende Lösung baut auf diesem Material auf.
\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
Sie müssen irgendwie markieren, wann Sie die Klammern nicht wollen.
Mit Ihrer vorgeschlagenen Syntax:
\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}
Mit besserer Syntax:
\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}