如何自定义 \newtheorem

如何自定义 \newtheorem

我想知道是否有办法在使用 \newtheorem 命令创建的环境中删除斜体文本格式。

这是我的代码:

\newtheorem{teorema}{Teorema}[subsection]

\begin{document}

\begin{teorema}
    This is a new theorem.
\end{teorema}

结果如下:

在此处输入图片描述

问题是我不想让文本变成斜体。我该如何实现?

答案1

如果你使用的话,这会相当容易amsthm

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{teorema}{Teorema}[subsection]

我不建议按照小节对定理进行编号,原因如下。首先,你不得不使用小节,但这并不总是必要的;其次,如果课程有章节,你最终会得到定理数字。

我也不建议使用直立字体,因为斜体提供了视觉线索,可以更容易地找到语句。

答案2

工作方式\newtheorem和可修补的环境定义取决于\newtheorem所使用的文档类和包。

使用 article-class 而不使用包,你可以做这样的事情:

\documentclass{article}

\newtheorem{teorema}{Teorema}[subsection]
\makeatletter
\@ifdefinable\Oldteorema{\let\Oldteorema=\teorema}%
\renewcommand\teorema{\@ifnextchar[{\teoremaopt}{\Oldteorema\normalfont}}%
\newcommand\teoremaopt[1][]{\Oldteorema[{#1}]\normalfont}%
\makeatother

\begin{document}

\begin{teorema}
    This is a new theorem.
\end{teorema}

\begin{teorema}[someone]
    This is a new theorem.
\end{teorema}


\end{document}

我不保证它可以与其他文档类(例如,beamer)兼容。

您是否考虑过使用amsthm 软件包及其\newtheoremstyle/\theoremstyle命令?

相关内容