我有一个自定义的定义样式,但我想每次都自定义标题:
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[
spaceabove=\topsep,
spacebelow=\topsep,
bodyfont=\normalfont,
numbered=no,
]{defsty}
\declaretheorem[style=defsty]{defn}
\documentclass{article}
\begin{document}
\begin{defn}[Open set]
Open set definition here.
\end{defn}
\end{document}
上述代码应导致
開啟集。在这里打开集合定义。
结果是
定义(开放集)。此处为开放集定义。
我尝试将自定义名称参数传递给环境defn
,但它不起作用:
\begin{defn}[name=Open set]
...
\end{defn}
问题是,我有很多定义,所以我无法为每一个定义都声明一个定理。
答案1
这是一个解决方案。请注意,这样做会更简单,ntheorem
因为它定义了一个empty
定理样式,该样式只有一个可选参数。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage[showframe]{geometry}
\declaretheoremstyle[
spaceabove=\topsep,
spacebelow=\topsep,
name=\hspace*{-\fontdimen2\font},
notefont=\bfseries,
notebraces={}{},
bodyfont=\normalfont,
numbered=no,
]{defsty}
\declaretheorem[style=defsty]{defn}
\begin{document}
\begin{defn}[Open set]
Open set definition here.
\end{defn}
\end{document}
添加:
使用ntheorem
包 代替amsthm
,前言应该只包含这些行(theoremtools
对于这个问题来说是不必要的):
\usepackage[amsmath, thref, thmmarks]{ntheorem} \theoremstyle{empty} \theorembodyfont{\normalfont} \newtheorem{defn}{}