Aufrechte Klammern im Theoremkörper mit bodyfont=\mdseries\itshape?

Aufrechte Klammern im Theoremkörper mit bodyfont=\mdseries\itshape?

Ist es möglich, eckige Klammern im Hauptteil eines Theorems aufrecht erscheinen zu lassen – wenn man die Deklaration bodyfont=\mdseries\itshapebei der Definition eines Theorems im Stil mit verwendet thmtools?

Die Methode zur Verwendung des Pakets embrac(Option „Theoremfont“ aus „newtxtext“ kopieren) funktioniert nicht, da es, wie in der Dokumentation angegeben, nur , , und embracbetrifft, nicht aber oder .\emph\textittextsl\itshape\slshape

Insbesondere:Gibt es eine Möglichkeit, die Verwendung von \itshape(oder \slshape) zu vermeiden und dennoch Kursivschrift (bzw. Schrägschrift) im Hauptteil eines Theorems zu erhalten?wenn der Theoremstil mit ? definiert ist thmtools(natürlich mit Ausnahme der gewünschten aufrechten Klammern).

Beispiel:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{embrac}
\usepackage{thmtools}

\makeatletter
\declaretheoremstyle[
  headfont= \sffamily\bfseries,
  headpunct={\sffamily\bfseries.},
  postheadspace=0.5em,
  notefont=\sffamily\bfseries,
  headformat=\NAME\NUMBER\let\thmt@space\@empty\NOTE,
  bodyfont=\mdseries\itshape,
  spaceabove=12pt,spacebelow=12pt,
]{thmstyle}
\makeatother

\theoremstyle{thmstyle}% default
\declaretheorem[name=Theorem,numberwithin=section]{theorem}

\begin{document}
\section{A section}

\begin{theorem}

Let $A$ and $B$ be subsets [see section 2] of a set $X$.Then
\[
X \setminus (A \cup B) = (X \setminus A) \cap (X \setminus B).
\]
\end{theorem}

\end{document}

Möchten Sie aufrechte Klammern im Text des Theorems?

Ich kenne die Antwort aufWie erhält man aufrechte Klammern im gesamten Dokument?, was, wie es heißt, Dinge kaputt machen wird.

Antwort1

Seit der Version 0.8 (01.10.2019) embracgibt es \embparenfür \embbracketFälle wie diesen:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{embrac}
\usepackage{thmtools}

\makeatletter
\declaretheoremstyle[
  headfont= \sffamily\bfseries,
  headpunct={\sffamily\bfseries.},
  postheadspace=0.5em,
  notefont=\sffamily\bfseries,
  headformat=\NAME\NUMBER\let\thmt@space\@empty\NOTE,
  bodyfont=\mdseries\itshape,
  spaceabove=12pt,spacebelow=12pt,
]{thmstyle}
\makeatother

\theoremstyle{thmstyle}% default
\declaretheorem[name=Theorem,numberwithin=section]{theorem}

\begin{document}
\section{A section}

\begin{theorem}
  Let $A$ and $B$ be subsets \embbracket{see section 2} of a set $X$.Then
  \[ X \setminus (A \cup B) = (X \setminus A) \cap (X \setminus B). \]
\end{theorem}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Wenn Sie bereit sind, auf wörtliches Material in Ihren Theoremen zu verzichten, können Sie den Hauptteil des Theorems mit embracdem \embrac_replace_brackets:NBefehl verarbeiten.

\documentclass{article}

\usepackage{embrac}
\usepackage{amsthm,thmtools}

\ExplSyntaxOn
\cs_new_protected:Npn \murray_embrac_text:n #1
  {
    \tl_set:Nn \l__embrac_tmpa_tl {#1}
    \embrac_replace_brackets:N \l__embrac_tmpa_tl
    \l__embrac_tmpa_tl
  }

\NewDocumentCommand { \embracifytheorem } { m }
  {
    \NewEnvironmentCopy { origenv_#1 } { #1 }
    \RenewDocumentEnvironment { #1 } { o +b }
      {
        \IfNoValueTF{##1}
          {\begin{origenv_#1}}
          {\begin{origenv_#1}[##1]}
        \murray_embrac_text:n { ##2 }
        \end{origenv_#1}
      }
      {}
  }
\ExplSyntaxOff

% you can adjust or remove these to your liking
\AddOpEmph{?}[0pt,1pt]
\AddOpEmph{!}[0pt,1pt]
\AddOpEmph{:}[0pt,1pt]

\makeatletter
\declaretheoremstyle[
  headfont= \sffamily\bfseries,
  headpunct={\sffamily\bfseries.},
  postheadspace=0.5em,
  notefont=\sffamily\bfseries,
  headformat=\NAME\NUMBER\let\thmt@space\@empty\NOTE,
  bodyfont=\mdseries\itshape,
  spaceabove=12pt,spacebelow=12pt,
]{thmstyle}
\makeatother

\theoremstyle{thmstyle}% default
\declaretheorem[name=Theorem,numberwithin=section]{theorem}
\embracifytheorem{theorem}

\begin{document}

\section{A section}

\begin{theorem}

Let $A$ and $B$ be subsets [see section 2] of a set $X$.Then
\[
X \setminus (A \cup B) = (X \setminus A) \cap (X \setminus B).
\]
\end{theorem}

\end{document}

thm

verwandte Informationen