
Ich habe ein 60-seitiges Dokument mit nummerierten Abschnitten, Unterabschnitten und Absätzen. Alle Absätze sind nummeriert. Ich möchte, dass der gesamte Text nach den nummerierten Absätzen gleichmäßig eingerückt wird, wie das folgende Beispiel zeigt:
1. Section
1.1 Subsection
1.1.1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec rhoncus non ante faucibus tempus. Quisque ex orci,
faucibus vitae magna sed, blandit fermentum massa.
1.1.2 Some numbered paras interrupted by lists:
* Item 1
* Item 2
* Item 3
and some text to finish the paragraph
1.1.2 Some numbered paras interrupted by sets of equations using AMSmath:
A = B
C = D
and some text to finish the paragraph
Derzeit habe ich etwa 60 Seiten Text (einschließlich vieler Gleichungen), der um die folgende Koma-Skriptklasse herum aufgebaut ist:
% -*- program: xelatex -*-
\documentclass[english, parskip=full, fontsize=11, DIV12, toc=left, numbers=noenddot]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
% just so we can see what is going on for now
\usepackage{showframe}
\usepackage{blindtext}
% tighten up spacing of lists
\usepackage{enumitem}
\setlist{noitemsep}
\setcounter{secnumdepth}{4}
\renewcommand\theparagraph{\thesubsection.\arabic{paragraph}}
\newcommand\p{\paragraph{}}
%
%
% make sure paragraphs reset counting at section and subsections
%
\makeatletter
\@addtoreset{paragraph}{subsection}
\@addtoreset{paragraph}{section}
\makeatother
%
% AND NOW WE BEGIN
%
\begin{document}
\section{Section}
\subsection {Subsection}
\p \blindtext
% an example numbered paragraph with an embedded list
\p \blindtext
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
and some words at the end of this para
% an example numbered paragraph with a simple equation
\p The period is defined by a pair of days ($D_l$, $D_u$) where
\begin{align*}
D^_{l} & = \text{the lower date} \\
D^_{u} & = \text{the upper date}
\end{align*}
and things happen for all days $d$ where $D_l <= d< D_u$.
\end{document}
also kehrt der gesamte Text zum linken Rand zurück. Ideal wäre es, wenn ich etwas wie den Koma-Script- \addmargin
Befehl verwenden könnte, um Listen und Mathematik von links einzurücken; aber den \p
Befehl für nummerierte Absätze so anpassen könnte, dass die Nummerierung linksbündig beginnt, aber mit einem Kästchen um die Nummer, um ihr eine Standardgröße zu geben, und dann einen hängenden Befehl für den Rest des \p-Absatzes, um ihn mit dem Rest des eingerückten Textes anzugleichen.
Oder etwas anderes ....
Aber das übersteigt bislang meine LaTeX-Kenntnisse.
Antwort1
Aktualisieren:KOMA-SkriptVersion 3.17 (oder neuer)
Mit der KOMA-Script-Version \othersectionlevelsformat
wird der Befehl nicht mehr benötigt. Sie müssen stattdessen verwenden \sectionformat
usw. \subsectionformat
Der Code ändert sich also zu
% -*- program: xelatex -*-
\documentclass[english, parskip=full, fontsize=11, DIV12, toc=left, numbers=noenddot]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
% just so we can see what is going on for now
\usepackage{showframe}
\usepackage{blindtext}
% tighten up spacing of lists
\usepackage{enumitem}
\setlist{noitemsep}
\setcounter{secnumdepth}{4}
\newcommand\p{\paragraph{}}
\newcommand\secnumindent{1.5cm}
\RedeclareSectionCommands[indent=-\secnumindent]{section,subsection,paragraph}
\RedeclareSectionCommand[afterskip=0pt,counterwithin=subsection]{paragraph}
\renewcommand\sectionformat{\parbox{\secnumindent}{\thesection\autodot}}
\renewcommand\subsectionformat{\parbox{\secnumindent}{\thesubsection\autodot}}
\renewcommand\subsubsectionformat{\parbox{\secnumindent}{\thesubsubsection\autodot}}
\renewcommand\paragraphformat{\parbox{\secnumindent}{\theparagraph\autodot}}
% from the answer of @Steven:
\addtolength\hoffset{\secnumindent}
\addtolength\textwidth{-\secnumindent}
%
% make sure paragraphs reset counting also at sections
%
\makeatletter
\@addtoreset{paragraph}{section}
\makeatother
% to reset headwidth and footwidth
\usepackage[
headwidth=\the\textwidth+\secnumindent:-\secnumindent,
footwidth=head:-\secnumindent,
headsepline,% to show the headwidth
footsepline% to show the footwidth
]{scrlayer-scrpage}
%
% AND NOW WE BEGIN
%
\begin{document}
\section{Section}
\subsection {Subsection}\label{sec:first}
\p \blindtext
% a reference
\p See \ref{sec:first}
% an example numbered paragraph with an embedded list
\p \blindtext
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
and some words at the end of this para
% an example numbered paragraph with a simple equation
\p The period is defined by a pair of days ($D_l$, $D_u$) where
\begin{align*}
D_{l} & = \text{the lower date} \\
D_{u} & = \text{the upper date}
\end{align*}
and things happen for all days $d$ where $D_l <= d< D_u$.
\section{Next section}
\subsection{Next subsection}
\p \blindtext
\end{document}
Das Ergebnis ist das gleiche wie im Bild unten.
Wenn dies auch mit den Versionen 3.15 und 3.16 kompilierbar sein soll, fügen Sie ein
\renewcommand\othersectionlevelsformat[3]{\parbox{\secnumindent}{#3\autodot}}
\providecommand\sectionformat{}\providecommand\subsectionformat{}
\providecommand\subsubsectionformat{}\providecommand\paragraphformat{}
kurz vor der Neudefinition \sectionformat
usw.
KOMA-SkriptVersion 3.15 und 3.16
Sie können die neuen Befehle \RedeclareSectionCommand
oder verwenden \RedeclareSectionCommands
und neu definieren \othersectionlevelsformat
. Es ist also weiterhin möglich, auf eine Abschnittsnummer zu verweisen, indem Sie \ref
:
\setcounter{secnumdepth}{4}
\newcommand\p{\paragraph{}}
\newcommand\secnumindent{1.5cm}
\RedeclareSectionCommands[indent=-\secnumindent]{section,subsection,paragraph}
\RedeclareSectionCommand[afterskip=0pt,counterwithin=subsection]{paragraph}
\renewcommand\othersectionlevelsformat[3]{\parbox{\secnumindent}{#3\autodot}}
% from the answer of @Steven:
\addtolength\hoffset{\secnumindent}
\addtolength\textwidth{-\secnumindent}
%
% make sure paragraphs reset counting also at sections
%
\makeatletter
\@addtoreset{paragraph}{section}
\makeatother
Um die ursprüngliche Kopf- und Fußbreite wiederherzustellen, können Sie
\usepackage[
headwidth=\the\textwidth+\secnumindent:-\secnumindent,
footwidth=head:-\secnumindent,
headsepline,% to show the headwidth
footsepline% to show the footwidth
]{scrlayer-scrpage}
Code:
% -*- program: xelatex -*-
\documentclass[english, parskip=full, fontsize=11, DIV12, toc=left, numbers=noenddot]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
% just so we can see what is going on for now
\usepackage{showframe}
\usepackage{blindtext}
% tighten up spacing of lists
\usepackage{enumitem}
\setlist{noitemsep}
\setcounter{secnumdepth}{4}
\newcommand\p{\paragraph{}}
\newcommand\secnumindent{1.5cm}
\RedeclareSectionCommands[indent=-\secnumindent]{section,subsection,paragraph}
\RedeclareSectionCommand[afterskip=0pt,counterwithin=subsection]{paragraph}
\renewcommand\othersectionlevelsformat[3]{\parbox{\secnumindent}{#3\autodot}}
% from the answer of @Steven:
\addtolength\hoffset{\secnumindent}
\addtolength\textwidth{-\secnumindent}
%
% make sure paragraphs reset counting also at sections
%
\makeatletter
\@addtoreset{paragraph}{section}
\makeatother
% to reset headwidth and footwidth
\usepackage[
headwidth=\the\textwidth+\secnumindent:-\secnumindent,
footwidth=head:-\secnumindent,
headsepline,% to show the headwidth
footsepline% to show the footwidth
]{scrlayer-scrpage}
%
% AND NOW WE BEGIN
%
\begin{document}
\section{Section}
\subsection {Subsection}\label{sec:first}
\p \blindtext
% a reference
\p See \ref{sec:first}
% an example numbered paragraph with an embedded list
\p \blindtext
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
and some words at the end of this para
% an example numbered paragraph with a simple equation
\p The period is defined by a pair of days ($D_l$, $D_u$) where
\begin{align*}
D_{l} & = \text{the lower date} \\
D_{u} & = \text{the upper date}
\end{align*}
and things happen for all days $d$ where $D_l <= d< D_u$.
\section{Next section}
\subsection{Next subsection}
\p \blindtext
\end{document}
KOMA-Script Version 3.14 (oder älter)
Hier ist ein weiterer Vorschlag, der die Antwort von @Steven verwendet, aber \othersectionlevelsformat
anstelle von neu definiert \thesection
. Es ist also weiterhin möglich, mit auf eine Abschnittsnummer zu verweisen \ref
:
\newcommand\p{\paragraph{}\hspace*{-1em}}
\newcommand\secnumindent{1.5cm}
\renewcommand\othersectionlevelsformat[3]{\makebox[0pt][r]{\parbox{\secnumindent}{#3\autodot}}}
% from the answer of @Steven:
\addtolength\hoffset{\secnumindent}
\addtolength\textwidth{-\secnumindent}
Code:
% -*- program: xelatex -*-
\documentclass[english, parskip=full, fontsize=11, DIV12, toc=left, numbers=noenddot]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
% just so we can see what is going on for now
\usepackage{showframe}
\usepackage{blindtext}
% tighten up spacing of lists
\usepackage{enumitem}
\setlist{noitemsep}
\setcounter{secnumdepth}{4}
\renewcommand\theparagraph{\thesubsection.\arabic{paragraph}}
\newcommand\p{\paragraph{}\hspace*{-1em}}
\newcommand\secnumindent{1.5cm}
\renewcommand\othersectionlevelsformat[3]{\makebox[0pt][r]{\parbox{\secnumindent}{#3\autodot}}}
% from the answer of @Steven:
\addtolength\hoffset{\secnumindent}
\addtolength\textwidth{-\secnumindent}
% to reset headwidth and footwidth
\usepackage[
headwidth=\the\textwidth+\secnumindent:-\secnumindent,
footwidth=head:-\secnumindent,
headsepline,% to show the headwidth
footsepline% to show the footwidth
]{scrlayer-scrpage}
%
% make sure paragraphs reset counting at section and subsections
%
\makeatletter
\@addtoreset{paragraph}{subsection}
\@addtoreset{paragraph}{section}
\makeatother
%
% AND NOW WE BEGIN
%
\begin{document}
\section{Section}
\subsection {Subsection}\label{sec:first}
\p \blindtext
% a reference
\p See \ref{sec:first}
% an example numbered paragraph with an embedded list
\p \blindtext
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
and some words at the end of this para
% an example numbered paragraph with a simple equation
\p The period is defined by a pair of days ($D_l$, $D_u$) where
\begin{align*}
D_{l} & = \text{the lower date} \\
D_{u} & = \text{the upper date}
\end{align*}
and things happen for all days $d$ where $D_l <= d< D_u$.
\section{Next section}
\subsection{Next subsection}
\p \blindtext
\end{document}
Antwort2
Wie ich [ungefähr] im Kommentar vorgeschlagen habe, fügen Sie diese Zeilen der Präambel hinzu
\let\svthesection\thesection
\def\thesection{\kern-1.5cm\svthesection}
\hoffset=\dimexpr\hoffset + 1.5cm\relax
\textwidth=\dimexpr\textwidth-1.5cm\relax
\paperwidth=\dimexpr\paperwidth -1.5cm\relax
Sie bewirken Folgendes: 1) Speichern einer Kopie von \thesection
; 2) Neudefinieren, \thesection
um vor dem Ausdrucken der Abschnittsüberschrift einen Kerning von 1,5 cm nach links zu erreichen; 3) Ändern, \hoffset
um das gesamte Dokument um 1,5 cm nach rechts zu verschieben; 4) Reduzieren von \textwidth
um 1,5 cm (in Kombination mit \hoffset
bleibt der rechte Rand unverändert); und 5) Reduzieren der Papierbreite um 1,5 cm, um die Änderung zu berücksichtigen \hoffset
.
Ich habe darauf hingewiesen, dass dieser Ansatz mit Nachteilen verbunden ist, die in den Abbildungen unter dem MWE zu erkennen sind. Kopf- und Fußzeile sind verschoben, was bedeutet, dass zentrierte Seitenzahlen im Vergleich zum ursprünglichen Code des OP jetzt um 0,75 cm nach rechts verschoben sind.
Der OP gab an, dass dieser Ansatz für seine/ihre Bedürfnisse geeignet sei und nur das Hinzufügen einer \begin{addmargin}
Umgebung erforderlich sei. Da ich nicht genau weiß, wo der OP diesen zusätzlichen Code platziert haben könnte, habe ich nicht versucht, ihn in mein MWE einzufügen.
Beachten Sie, dass vereinzelte hochgestellte Zeichen ^
aus dem Code des OP in der align*
Umgebung entfernt wurden (eines pro Zeile), um die Kompilierung zu erleichtern. Dieser Code wurde in XeLaTeX kompiliert, lässt sich aber auch in pdflatex kompilieren.
% -*- program: xelatex -*-
\documentclass[english, parskip=full, fontsize=11, DIV12, toc=left, numbers=noenddot]{scrartcl}
\usepackage{babel}
\usepackage{amsmath}
% just so we can see what is going on for now
\usepackage{showframe}
\usepackage{blindtext}
% tighten up spacing of lists
\usepackage{enumitem}
\setlist{noitemsep}
\setcounter{secnumdepth}{4}
\renewcommand\theparagraph{\thesubsection.\arabic{paragraph}}
\newcommand\p{\paragraph{}}
%
%
% make sure paragraphs reset counting at section and subsections
%
\makeatletter
\@addtoreset{paragraph}{subsection}
\@addtoreset{paragraph}{section}
\makeatother
\let\svthesection\thesection
\def\thesection{\kern-1.5cm\svthesection}
\hoffset=\dimexpr\hoffset + 1.5cm\relax
\textwidth=\dimexpr\textwidth-1.5cm\relax
\paperwidth=\dimexpr\paperwidth -1.5cm\relax
%
% AND NOW WE BEGIN
%
\begin{document}
\section{Section}
\subsection {Subsection}
\p \blindtext
% an example numbered paragraph with an embedded list
\p \blindtext
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
and some words at the end of this para
% an example numbered paragraph with a simple equation
\p The period is defined by a pair of days ($D_l$, $D_u$) where
\begin{align*}
D_{l} & = \text{the lower date} \\
D_{u} & = \text{the upper date}
\end{align*}
and things happen for all days $d$ where $D_l <= d< D_u$.
\end{document}
URSPRÜNGLICHES ERGEBNIS des OP
MIT MEINEM ÄNDERUNGSVORSCHLAG