
Ich verwende das amsthm-Paket und möchte nicht, dass Zeilen, die direkt nach der Theorem-Umgebung beginnen, eingerückt werden. Ich habe das Handbuch des Pakets konsultiert und dort stand, dass ein neuer Theorem-Stil definiert werden soll. Ich habe erwartet, dass das folgende MWE diese Aufgabe erledigt.
\documentclass[12pt,a4paper]{scrreprt}
\usepackage{amsthm}
\newtheoremstyle{abcd}% name
{}% Space above, empty = `usual value'
{}% Space below
{\itshape}% Body font
{}% Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{.}% Punctuation after thm head
{.5em}% Space after thm head: \newline = linebreak
{}% Thm head spec
\theoremstyle{abcd}
\newtheorem{defn}{Definition}
\begin{document}
\begin{defn}
Some defintion
\end{defn}
This sentence shouldn't be indented.
\end{document}
Ich komme jedoch zu folgendem Schluss:
Das ist, was ich erwarten würde (erhalten durch Verwendung eines Noindent direkt nach dem Ende der Theoremumgebung)
Antwort1
\documentclass[12pt,a4paper]{scrreprt}
\usepackage{amsthm}
\usepackage{etoolbox}
\newtheorem{defn}{Definition}
\AfterEndEnvironment{defn}{\noindent\ignorespaces}
\begin{document}
\begin{defn}
Some definition.
\end{defn}
This sentence isn't indented.
\end{document}
Dies widerspricht jedoch der Intuition; der Satz nach einer Definition (oder einer anderen theoremähnlichen Struktur) leitet logischerweise einen neuen Absatz ein, daher sollte seine erste Zeile wie jede andere erste Zeile eines neuen Absatzes behandelt werden.
Antwort2
Sie können dies auf der Basis eines einzelnen Theoremtyps beheben, indem Sie Folgendes patchen \end<name>
:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{amsthm}
\newtheoremstyle{abcd}% name
{}% Space above, empty = `usual value'
{}% Space below
{\itshape}% Body font
{}% Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{.}% Punctuation after thm head
{.5em}% Space after thm head: \newline = linebreak
{}% Thm head spec
\theoremstyle{abcd}
\newtheorem{defn}{Definition}
\makeatletter
\patchcmd{\enddefn}{\@endpefalse}{}{}{}
\makeatother
\begin{document}
\begin{defn}
Some definition
\end{defn}
This sentence shouldn't be indented.
\begin{defn}
Some definition
\end{defn}
This sentence should be indented.
\end{document}
Die Stilwahl hat keinen Einfluss.
Um das gleiche Verhalten zu erhalten füralleTheoremumgebungen, ändern Sie die Definition von \@endtheorem
.
\documentclass{article}
\usepackage{amsthm}
\makeatletter
\def\@endtheorem{\endtrivlist}
\makeatother
\newtheoremstyle{abcd}% name
{}% Space above, empty = `usual value'
{}% Space below
{\itshape}% Body font
{}% Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{.}% Punctuation after thm head
{.5em}% Space after thm head: \newline = linebreak
{}% Thm head spec
\theoremstyle{abcd}
\newtheorem{defn}{Definition}
\begin{document}
\begin{defn}
Some definition
\end{defn}
This sentence shouldn't be indented.
\begin{defn}
Some definition
\end{defn}
This sentence should be indented.
\end{document}
Ein weiteres Beispiel, das zeigt, dass dadurch kein unerwünschter Platz hinzugefügt wird, wenn zwei Theoremumgebungen aufeinander folgen.
\documentclass{scrbook}
\usepackage{amsthm}
\makeatletter
\def\@endtheorem{\endtrivlist}
\makeatother
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[chapter]
\newtheorem*{thm*}{Theorem}
\begin{document}
\chapter{Chapter}
\section{Section}
Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text.
\begin{thm}
Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem.
\end{thm}
No indentation. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text.
\begin{thm}
Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem.
\end{thm}
\begin{thm}
Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem. Theorem.
\end{thm}
Indentation. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text.
\end{document}