对于我们的数学讲座,我一直在硬编码这样的段落
\paragraph*{Definition 1.1.1 (foo)}
\paragraph*{Example 1.1.2}
\paragraph*{Proposition 1.1.3}
我想创建新的命令,例如\definition
、\lemma
、\theorem
、 ...,用于创建此类段落并处理编号。如果您需要了解,每个命令都嵌套在子部分中。
有什么具体的想法什么是最好的吗?
答案1
不不不。
\setcounter{secnumdepth}{5}
应该使你的段落自动带有数字。
等一下,重读这个问题,ntheorem
包允许您创建自动编号的新环境(而不是命令)等等。这可能会更好。
以下是这些工作原理的一个简单示例:
\documentclass{article}
\usepackage{ntheorem}
\newtheorem{theorem}{Theorem}[subsection]
\newtheorem{example}{Example}[subsection]
\begin{document}
\section{Foo}
\subsection{First sub}
\begin{theorem}
Here is a theorem
\end{theorem}
\begin{theorem}
Another theorem
\end{theorem}
\subsection{Second sub}
\begin{example}
An example
\end{example}
\begin{theorem}
A third theorem
\end{theorem}
\end{document}
宣布一个新的定理需要给出环境一个名称,然后为定理类型提供一个名称,该名称将显示并最终(可选)告诉它从哪里获得编号。在本例中,我已告诉和theorem
从它们所在的位置example
获取编号subsection
,但您可以根据需要进行更改。
答案2
您可以使用自己的环境,如下所示:
\documentclass{article}
\newcounter{definition}[section] % counter will reset every section
\renewcommand{\thedefinition}{\thesubsection.\arabic{definition}}
\newenvironment{definition}{\refstepcounter{definition}{\bfseries Definition \thedefinition}}{}
\begin{document}
\section{foo}
\subsection{bar}
\begin{definition}\label{testmylabel}
Here is a definition.
\end{definition}
We see in \ref{testmylabel}.
\end{document}
请注意,通过使用,\refstepcounter
您能够使用\label
和\ref
。如果您计划加载任何其他定理包(例如ntheorem
),您可能希望对定义使用不同的名称,例如“mydefinition”,以避免潜在的冲突。
以下是您请求的多功能环境
\documentclass{article}
\usepackage{ifthen}
\newcounter{definition}[section]
\renewcommand{\thedefinition}{\thesubsection.\arabic{definition}}
\newenvironment{definition}{\refstepcounter{definition}{\bfseries Definition \thedefinition}}{}
\newenvironment{flexible}[1]{\refstepcounter{definition}%
\ifthenelse{\equal{#1}{def}}%
{%
{\bfseries Definition \thedefinition}%
}%
{%
\ifthenelse{\equal{#1}{prop}}%
{%
{\bfseries Proposition \thedefinition}%
}{}%
}%
}%
{}
\begin{document}
\section{foo}
\subsection{bar}
\begin{definition}\label{testmylabel}
Here is a definition.
\end{definition}
We see in \ref{testmylabel}.
\begin{flexible}{def}
some text
\end{flexible}
\begin{flexible}{prop}
some text
\end{flexible}
\end{document}