我需要一个具有自定义编号的定理环境,所以我做了
\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}