我使用thmtools
包来定义定理样式,因为我希望注释具有不同的颜色:
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[
spaceabove = \topsep,
spacebelow = \topsep,
headfont = \normalfont\bfseries,
notefont = \color{olive}\normalfont\mdseries,
notebraces = {}{},
headformat = \NAME{} {\NUMBER}\NOTE,
headpunct = {\newline},
bodyfont = \normalfont\upshape
]{fordefinition}
\theoremstyle{fordefinition}
\newtheorem{defn}{Definition}[section]
\begin{document}
\begin{defn}[Property(T) group]
asdg
\end{defn}
\end{document}
但括号()
在注释中表现得很奇怪。右括号总是出现在注释的末尾。
有什么办法可以解决这个问题,以便我得到我想要的括号吗?我试过使用,\right)
但没有用,我认为这不是一个好主意。
PS 我是否也正确定义了换行符以在标题后给出换行符?它可以工作,但我不确定这是否是理想的方法。
答案1
这确实很奇怪。我尝试了一些众所周知的麻烦方法,其中包括:
%
在宏中需要在行尾放置一个,但在这里无关紧要- 将括号作为一个整体(可以这么说)至关重要:
{(T)}
看起来,当这个包的内部“吃掉并消化”数据时,你会感到困惑(正如 Knuth 对 TeX 所说的那样):
- ...
- 处理
t
得很好 - 处理
y
得很好 - 处理
得很好
- 处理
(
让你走上错误的路线
就是这样。
% https://tex.stackexchange.com/questions/687217/thmtools-parentheses-behaving-weirdly-in-note
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[%
spaceabove = \topsep,%
spacebelow = \topsep,%
headfont = \normalfont\bfseries,%
notefont = \color{olive}\normalfont\mdseries,%
notebraces = {}{},%
headformat = \NAME{} {\NUMBER}\NOTE,%
headpunct = {\newline},%
bodyfont = \normalfont\upshape%
]{fordefinition}
\theoremstyle{fordefinition}
\newtheorem{defn}{Definition}[section]
\begin{document}
\begin{defn}[Property {(T)} group]% <<<
Some of the most wonderful theorems ever heard of.
\end{defn}
\end{document}
答案2
该thmtools
包使用()
来在其某些宏中划定注释(它不应该),如果注释中有括号,则会失败。
这里我修补了相关的命令以供使用<>
。
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\thmt@setheadstyle}{(}{<}{}{}
\xpatchcmd{\thmt@setheadstyle}{)}{>}{}{}
\def\thmt@embrace#1#2<#3>{#1#3#2}
\makeatother
\declaretheoremstyle[
spaceabove = \topsep,
spacebelow = \topsep,
headfont = \normalfont\bfseries,
notefont = \color{olive}\normalfont\mdseries,
notebraces = {}{},
headformat = \NAME\ \NUMBER\NOTE,
headpunct = {\newline},
bodyfont = \normalfont\upshape
]{fordefinition}
\theoremstyle{fordefinition}
\newtheorem{defn}{Definition}[section]
\begin{document}
\begin{defn}[Property(T) group]
asdg
\end{defn}
\end{document}