减少环境的冗余代码

减少环境的冗余代码

我正在使用 thmbox 包创建许多自制环境。大多数环境只是名称不同,但代码相同。有人能帮我减少代码量,让我可以更轻松地更改代码吗?以下是代码示例:

\declaretheorem[thmbox=M, within = section,]{Definition}%
\newenvironment{definition}[1][]{%
    \ifblank{#1}{\begin{Definition}}{\begin{Definition}[\normalfont\bfseries #1]}%
    \normalfont%
}%
{\end{Definition}}
\NoIndentAfterEnv{definition}%

\declaretheorem[style = nonitalicstyle,thmbox=M]{Axiom}%
\newenvironment{axiom}[1][]{%
    \ifblank{#1}{\begin{Axiom}}{\begin{Axiom}[\normalfont\bfseries #1]}%
    \normalfont%
}%
{\end{Axiom}}%
\NoIndentAfterEnv{axiom}%

\declaretheorem[style = nonitalicstyle,thmbox=M]{Notation}%
\newenvironment{notation}[1][]{%
    \ifblank{#1}{\begin{Notation}}{\begin{Notation}[\normalfont\bfseries #1]}%
    \normalfont%
}%
{\end{Notation}}%
\NoIndentAfterEnv{notation}%

答案1

由于某些原因,titlestyle选项(thmbox包)不能按预期工作,并且thmtools包的文档没有提供太多相关信息。

如果您希望以普通粗体打印可选参数,则需要这样做:

\setkeys{thmbox}{titlestyle=\textbf{ (#1)}}

单独使用效果很好thmbox,但不能与 结合使用thmtools。因此,还需要

\usepackage[nothm]{thmbox}

平均能量损失

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}

\usepackage[nothm]{thmbox}
\setkeys{thmbox}{titlestyle=\textbf{ (#1)}}

\declaretheorem[style = mystyle,within=section,thmbox=M]{Definition}%
\declaretheorem[style = nonitalicstyle,thmbox=M]{Axiom}%
\declaretheorem[style = nonitalicstyle,thmbox=M]{Notation}%

\begin{document}

\begin{Definition}[Euclid]
Definizione
\end{Definition}

\begin{Axiom}[Euclid]
Definizione
\end{Axiom}

\begin{Notation}[Euclid]
Definizione
\end{Notation}

\end{document}

在此处输入图片描述

相关内容