如何制作具有直立主体文本的自定义定理

如何制作具有直立主体文本的自定义定理

我需要一个具有自定义编号的定理环境,所以我做了

\newtheorem{innercustomgeneric}{\customgenericname}
\providecommand{\customgenericname}{}

\newcommand{\newcustomtheorem}[2]{
  \newenvironment{#1}[1]
  {
    \renewcommand\customgenericname{#2}
    \renewcommand\theinnercustomgeneric{##1}
    \innercustomgeneric
  }
  {\endinnercustomgeneric}
}

\newtheoremstyle{customthm}
{}
{}
{\textbf}
{}
{\bfseries}
{.}
{.5em}
{}
\theoremstyle{customthm}
\newcustomtheorem{customthm}{Theorem}

这个,但它仍然给我斜体形状的正文。

我应该做哪些改变才能使文本变为直立?

答案1

该代码至少存在两个问题。

  • 的第三个参数\newtheoremstyle需要是字体声明,而不是带参数的字体宏。请\textbf用替换\bfseries

这将使所有类似定理的环境的文本变为粗体和直立,如果在使用以下方式设置样式后已经定义了类定理环境\theoremstyle{customthm}

  • \newtheorem{innercustomgeneric}{\customgenericname}innercustomgeneric在默认定理样式生效的位置定义类定理环境——斜体。将两行

    \newtheoremstyle{customthm}...
    \theoremstyle{customthm}
    

到达 之前 的 位置\newtheorem{innercustomgeneric}

您的总体目标并不完全清楚,但我觉得可能有更好的方法来实现它。因此,如果您遇到更多问题,可能需要解释整个计划,以便我们找到替代解决方案。

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm}
\newtheoremstyle{customthm}
{}
{}
{\bfseries}
{}
{\bfseries}
{.}
{.5em}
{}
\theoremstyle{customthm}
\providecommand{\customgenericname}{}
\newtheorem{innercustomgeneric}{\customgenericname}
\newcommand{\newcustomtheorem}[2]{
  \newenvironment{#1}[1]
  {
    \renewcommand\customgenericname{#2}
    \renewcommand\theinnercustomgeneric{##1}
    \innercustomgeneric
  }
  {\endinnercustomgeneric}
}
\newcustomtheorem{customthm}{Theorem}
\begin{document}
\begin{customthm}{5}
  My custom theorem
\end{customthm}
\end{document}

相关内容