Absatzeinzug am Seitenbeginn unterdrücken

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.
Verena
Forum-Anfänger
Forum-Anfänger
Beiträge: 44
Registriert: Mi 18. Nov 2015, 14:41

Absatzeinzug am Seitenbeginn unterdrücken

Beitrag von Verena »

Liebe alle,

ich weiß, dass es furchtbar aussieht, aber ich muss für einen Verlag Folgendes formatieren: Die erste Zeile eines neuen Absatzes wird normalerweise um 0.5cm eingerückt.
Dies soll lt. Verlag nicht der Fall sein, wenn der Absatzbeginn mit einem neuen Seitenbeginn zusammenfällt.

Ich habe zwei Lösungen gefunden:

(1) \appendtoks \noindentation \to \everybeforepagebody
==> Fehlermeldung: Undefined control sequence

(2) Sowie eine Lösung mit \everypar

Beide zu finden hier: https://tex.stackexchange.com/questions ... e-in-latex


Da die Antworten schon von 2011 sind, frage ich mich, ob es inzwischen eine bessere Lösung gibt?
\noindent wäre die Not-Lösung, aber dafür müsste ich das Dokument dann händisch durchgehen............

Danke für eure Hilfe!


Und hier noch das Minimalbsp.:

Code: Alles auswählen

\documentclass[10pt, numbers=noenddot]{scrbook}

%Hier das, was meine Absätze betrifft.
\fontsize{10}{12}\selectfont % Schriftgrad 10pt, Zeilenabstand 12pt
\setparsizes{1cm}{0pt}{0pt plus 1fil} %regelt Abstand in Absätzen -> Einzug, Abstand oben, Abstand unten

\begin{document}
 
Hier steht viel Text.

Hier steht ein neuer Absatz, der zufällig mit einem Seitenbeginn zusammenfällt (das heißt nicht über einen Befehl).
 

\end{document}

Gast

Beitrag von Gast »

Die erste Lösung erfordert ConTeXt (wie übrigens auch in der entsprechenden Antwort angegeben).

Die Verwendung von \everypar funktioniert in LaTeX nur sehr begrenzt. Man kann das lokal für kurzzeitige Änderungen verwenden. Da aber LaTeX selbst ebenfalls bei verschiedenen Gelegenheiten Gebrauch davon macht, überdauert es nicht alle LaTeX-Umgebungen. Eine richtig gute, vollautomatische Lösung könnte daher durchaus einige Probleme aufwerfen. Immerhin könnte man bei der Lösung mit \everypar noch testen, ob die beiden Makros für die Seitenummern bereits definiert sind und nur dann den Test vornehmen, um die Fehlermeldungen bei \ifnum beim Hinzufügen weiterer Absätze zu vermeiden.

Die folgende Lösung versucht, das Problem mit \everpar dadurch zu lösen, dass es immer wieder \everypar aufruft, kann aber auch nicht alle Probleme lösen:

Code: Alles auswählen

\documentclass{article}
\usepackage{afterpage}
\usepackage{blindtext}
\usepackage{refcount}

\newcounter{parnumber}
\makeatletter
\AtBeginDocument{%
  \@setpar{%
    \edef\thisbegin@pageref{\pageref{par:begin:\theparnumber}}%
    \stepcounter{parnumber}%
    \edef\nextstart@pageref{\pageref{par:begin:\theparnumber}}%
    \@@par
    \global\everypar{\label{par:begin:\theparnumber}\marginpar{\theparnumber}}%
    \ifx\thisbegin@pageref\nextstart@pageref
      \typeout{Nothing to do before \theparnumber}%
    \else
      \ifdim\pagetotal=\pagegoal
        \typeout{Do not indent \theparnumber}%
        \global\everypar{\hskip-\parindent\label{par:begin:\theparnumber}\marginpar{\theparnumber}}%
      \else
        \typeout{Nothing to do before \theparnumber}%
      \fi
    \fi
  }
  \everypar{\label{par:begin:\theparnumber}\marginpar{\theparnumber}}%
}
\AtEndDocument{\label{par:begin:\theparnumber}}% ugly heack
\makeatother

\begin{document}
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
\Blindtext[12]
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?
Holla die Waldfee, was soll ich sagen, wozu dieser Unsinnstext dient?

\Blindtext[5]
\end{document}
Die \marginpar-Anweisungen dienen nur der einfacheren Kontrolle. Am Ende wären sie natürlich (ebenso wie die \typeout-Anweisungen) zu entfernen.

Verena
Forum-Anfänger
Forum-Anfänger
Beiträge: 44
Registriert: Mi 18. Nov 2015, 14:41

Beitrag von Verena »

Leider habe ich die Lösung in meinem Dokument noch nicht zum Laufen gebracht, aber danke vielmals für Deine Mühe! Ich versuche es weiter.

Antworten