Absatzeinzug am Seitenbeginn unterdrücken

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Absatzeinzug am Seitenbeginn unterdrücken

von Verena » Do 11. Jul 2019, 10:29

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.

von Gast » Mi 10. Jul 2019, 19:04

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:
\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.

Absatzeinzug am Seitenbeginn unterdrücken

von Verena » Mi 10. Jul 2019, 15:19

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.:
\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}

Nach oben