我正在尝试更改headformat
中的选项declaretheoremstyle
,但出现错误,即使复制 中的thmtools
允许代码也是如此\headformat=margin
。这是我的序言:
\documentclass{amsart}
\usepackage{thmtools}
\declaretheoremstyle[
headformat=\makebox[0pt][r]{\NUMBER\ }\NAME\NOTE,
notefont=\bfseries,
notebraces={}{},
]{mystyle}
\theoremstyle{mystyle}
\newtheorem{thm}{Theorem}
但是当我尝试构建时,我收到一个错误指向headformat=
并且输出变为默认值:
知道为什么\makebox
以下操作不起作用吗\headformat=
?
或者,如果我将我的序言调整为
\documentclass{amsart}
\usepackage{thmtools}
\declaretheoremstyle[
headformat=\makebox[0pt][r]{\NUMBER\ }\NAME\NOTE,
notefont=\bfseries,
notebraces={}{},
]{mystyle}
\theoremstyle{mystyle}
\newtheorem{thm}{Theorem}
我明白了
为什么文本前面有那个不需要的空格\NOTE
?
答案1
之后]
的0pt
被误认为是 的可选参数的右括号\declaretheoremstyle
。将 的值括headformat
在括号中。
\documentclass{amsart}
\usepackage{lipsum} % just for the example
\usepackage{thmtools}
\declaretheoremstyle[
headformat={\makebox[0pt][r]{\NUMBER\ }\NAME\NOTE},
notefont=\bfseries,
notebraces={}{},
]{mystyle}
\theoremstyle{mystyle}
\newtheorem{thm}{Theorem}
\begin{document}
\lipsum[2]
\begin{thm}
Whatever
\end{thm}
\begin{thm}[Oops]
Whatever
\end{thm}
\end{document}