Вертикальные скобки в теле теоремы с bodyfont=\mdseries\itshape?

Вертикальные скобки в теле теоремы с bodyfont=\mdseries\itshape?

Можно ли сделать так, чтобы квадратные скобки в тексте теоремы выглядели вертикальными — при использовании объявления bodyfont=\mdseries\itshapeв определении стиля теоремы с thmtools?

Метод использования пакета embrac(Копировать опцию Theoremfont из newtxtext) не работает, потому что, как embracсказано в документации, он влияет только на \emph, \textit, и , textslно не на \itshapeили \slshape.

В частности:есть ли способ избежать использования \itshape(или \slshape), но при этом получить курсив (или наклон, соответственно) в тексте теоремыкогда стиль теоремы определяется с помощью thmtools? (за исключением требуемых вертикальных скобок, конечно).

Пример:

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

Хотите вертикальные скобки в тексте теоремы?

Я знаю ответ на этот вопросКак сделать вертикальные скобки во всем документе?, который, как говорится, всё сломает.

решение1

Начиная с версии 0.8 (01.10.2019) embracпредусмотрены \embparenи \embbracketтакие случаи:

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

введите описание изображения здесь

решение2

Если вы готовы отказаться от дословного изложения материала в своих теоремах, вы можете обработать текст теоремы с помощью embracкоманды \embrac_replace_brackets:N.

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

тм

Связанный контент