使用 \newmdtheoremenv 的编号问题

使用 \newmdtheoremenv 的编号问题

我正在尝试使用 来制作数学课程的讲义mdframed,以便让它比典型的研究文章更简洁一些。我无法获得定理、命题、定义等的连贯编号。

理想情况下,我希望

定义1.1.1,命题1.1.2定理1.1.3警告1.1.4等等。

到目前为止我只得到 1.1.0.1 的所有版本。

我在 StackExchange 上看到过一些使用新虚拟计数器的黑客,但这似乎不起作用\newmdtheoremenv

以下是我尝试过的方法。有什么办法可以解决这个问题吗?提前谢谢!

\documentclass[ 11pt]{report}
\usepackage[latin1]{inputenc}  
\usepackage[T1]{fontenc}     
\usepackage{geometry}         
\usepackage[english]{babel}  
\usepackage{cite}
\usepackage{dsfont}
\usepackage{hyperref}
\usepackage{amssymb}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{amscd}
\usepackage{graphics}
\usepackage{float}
\usepackage{fullpage}
\usepackage{amsthm}
\usepackage{latexsym}   
\usepackage[all]{xy}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\usepackage{fourier}
\usepackage{sectsty}
\usetikzlibrary{calc}
\usepackage{titlesec}
\newcounter{dummy} 
\numberwithin{dummy}{section}
\theoremstyle{definition}
\newmdtheoremenv[%
middlelinewidth = 2 ,%
roundcorner = 3 pt ,%
innertopmargin = -3 ,
topline=false,
    bottomline=false,
backgroundcolor = white ,%
middlelinecolor = green!70!black ,%
]{prop}{Proposition}[dummy]
\newmdtheoremenv[%
middlelinewidth = 2 ,%
innertopmargin = -3 ,
topline=false,
bottomline=false,
backgroundcolor = white ,%
middlelinecolor =  blue!60!white ,%
]{definition}{Definition}[dummy]
\newmdtheoremenv[%
middlelinewidth = 2 ,%
innertopmargin = -3 ,
backgroundcolor = white ,%
middlelinecolor = green!70!black ,%
]{thm}{Theorem}[dummy]
\newmdtheoremenv[%
middlelinewidth = 0 ,%
innertopmargin = -3 ,
backgroundcolor = black!10!white ,%
]{example}{Example}[dummy]
\tikzset{
warningsymbol/.style={
  rectangle,
  draw=black,
  fill=white,
  scale=1,
  overlay}
}
\newmdtheoremenv[%
 hidealllines=true,leftline=true,
 skipabove=12,skipbelow=12pt,
 innertopmargin=0.4em,%
 innerbottommargin=0.4em,%
 innerrightmargin=0.7em,%
 rightmargin=0.7em,%
 innerleftmargin=1.7em,%
 leftmargin=0.7em,%
 middlelinewidth=.2em,%
 linecolor= black,%
 fontcolor=black,%
 firstextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\danger};},%
 secondextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\danger};},%
 middleextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                           node[warningsymbol] {\danger};},%
 singleextra={\path let \p1=(P), \p2=(O) in ($(\x2,0)+0.5*(0,\y1)$) 
                            node[warningsymbol] {\danger};},%
]{warning}{Warning}[dummy]
\begin{document}
\chapter{First chapter}
\section{First section}
\begin{definition}
Hey
 \end{definition}
\begin{prop}
Hey
\end{prop}
\begin{thm}
Hey
\end{thm}
\begin{warning}
Hey
\end{warning}
\end{document}

答案1

  1. 查找,\mdfdefinestylemdframed将节省你大量的输入
  2. 查找的语法\newtheorem,并\newmdtheoremenv在此语法的基础上进行构建。

我建议这样做:

\newmdtheoremenv[%
...
]{prop}{Proposition}[section] % <-- note

这将创建一个prop环境和一个prop由该计数器控制的计数器section。然后prop在其他计数器上重复使用该计数器:

\newmdtheoremenv[%
...
]{definition}[prop]{Definition} % <--- note placement

然后你会得到贯穿始终的环境chapter.section.prop

相关内容