
\documentclass{amsart}
\newtheorem{theorem}{Theorem}[section]
\begin{document}
\subsection*{1}
\begin{theorem}
blah is blah
\end{theorem}
\begin{theorem}
bloo is bloo
\end{theorem}
\subsection*{2}
\begin{theorem}
bleh is bleh
\end{theorem}
\begin{theorem}
blih is blih
\end{theorem}
\end{document}
Это выглядит так:
1.
Theorem 0.1. blah is blah
Theorem 0.2. bloo is bloo
2.
Theorem 0.3. bleh is bleh
Theorem 0.4. blih is blih
Как мне сбросить счетчик, чтобы во втором ненумерованном подразделе теорема 0.3 была сброшена до теоремы 0.1 (а также сделать теорему 0.4 теоремой 0.2)?
(Я добавил ненумерованные подразделы, потому что в этом конкретном классе документов разделы центрированы, что мне не нравится, поэтому я начинаю с использования подразделов, но нумерация подразделов начинается с 0,1, а я хочу, чтобы она начиналась с 1. Поэтому я снял нумерацию с подразделов и ввел свои собственные номера.)
решение1
Я не уверен, что понимаю, о чем вы спрашиваете, так как вы, кажется, говорите, что вам нужны две теоремы 0.1 и две теоремы 0.2. Для меня это не имеет смысла, поэтому я думаю, что вы, вероятно, хотите что-то вроде этого:
Для этого я определил фальшивую \section
команду, которая использует mysection
счетчик, который также используется для нумерации теорем.
\documentclass{amsart}
\newcounter{mysection}
\let\realsection=\section
\renewcommand\section[1]{\refstepcounter{mysection}%
\subsection*{\themysection.\space #1}
}
\newtheorem{theorem}{Theorem}[mysection]
\begin{document}
\section{First section}
\begin{theorem}
blah is blah
\end{theorem}
\begin{theorem}
bloo is bloo
\end{theorem}
\section{Second section}
\begin{theorem}
bleh is bleh
\end{theorem}
\begin{theorem}
blih is blih
\end{theorem}
\end{document}
решение2
Изменение формата команды \section
— тривиальная задача, и это гораздо лучший подход (как отметила Ульрике Фишер), чем пропуск этого уровня и использование \subsection
.
это определение \section
в amsart.cls
:
\def\section{\@startsection{section}{1}%
\z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
{\normalfont\scshape\centering}}
просто удалите \centering
команду:
\makeatletter
\def\section{\@startsection{section}{1}%
\z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
{\normalfont\scshape}}
\makeatother
Если вы предпочитаете какой-либо другой стиль шрифта, а не заглавные буквы, вы можете изменить его одновременно, например, на \bfseries
.
Альтернативный метод изменения только частей определения команды предоставляется командой \patchcmd
из пакета etoolbox
; подробности см. в документации.