Abfrage ob vor Text Gleitobjekte sind etc.

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Max H

Abfrage ob vor Text Gleitobjekte sind etc.

Beitrag von Max H »

Hey Leute,

habe schon ne Weile gegoogelt und leider nichts passendes gefunden, vielleicht formuliere ich mein Problem auch nicht richtig..

Ich möchte mir gern einen eigenen Befehl schreiben, der mir einen Absatz im Text erzeugt. Dieser soll mir einen \vspace{12pt} einfügen. Unter folgenden Bedingungen soll er das aber nicht tun:

-wenn er auf am Seitenbeginn steht (da der Text oben Beginnen soll)
-wenn davor ein Gleitobjekt ist (da nach diesen sowieso schon ein Abstand ist)
-wenn davor eine Überschrift ist (danach ist ebenfalls ein Abstand)

Ohne diese Bedingung würde sich der Abstand addieren und man hätte größere Lücken drin

Gibt es eine Möglichkeit mit der ich überprüfen kann ob vorher ein Gleitobjekt steht bzw. ob eine neue Seite begonnen wurde?

Vielen Dank für eure Hilfe!
Max

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Max H

Beitrag von Max H »

Danke für die schnelle Antwort, Johannes!

Sowas habe ich auch schon versucht. Das Problem ist nur, dass sich dann der Abstand vor und nach meinen Überschriften vergrößert.

Hier mal das Minimalbeispiel:
\documentclass[%
	%parskip=full
	]{scrbook}
	
	%Schriftgröße und Absatz der Überschriften formatieren
	
	\RedeclareSectionCommand[%
		beforeskip=0pt,%
		afterskip=12pt,%
		font=\fontsize{11pt}{14pt}\selectfont\bfseries%			
		]{chapter}	
		
\begin{document}
\chapter{Test}
Hallo Hallo Hallo
\end{document}
Wenn du jetzt die Option "parskip=full" ein- und auskommentierst siehst du, dass sich der Text vertikal verschiebt.

Kann man das irgendwie umgehen?

Vielen Dank für eure Hilfe!

Noch so einer

Beitrag von Noch so einer »

Man kann afterskip entsprechend verkleinern:
\documentclass[%
   parskip=full
   ]{scrbook}
   
   %Schriftgröße und Absatz der Überschriften formatieren
   
   \RedeclareSectionCommand[%
      beforeskip=0pt,%
      afterskip=0pt,%
      font=\normalsize% \bfseries kommt schon von Element disposition
      ]{chapter}  
     
\usepackage{mwe}

\begin{document}
\chapter{Test}
\lipsum
\end{document}
Allerdings sollte man bedenken, dass durch den Absatzabstand natürlich auch die optische Wirkung verändert wird und genau dem eben automatisch Rechnung getragen wird. Wenn die Überschrift im Vergleich zum Abstand zwischen Absätzen zu dicht an den ersten Absatz heranrückt, wirkt das schnell – wie drücke ich das möglichst wenig negativ aus? – merkwürdig.

Max H

Beitrag von Max H »

Wenn ich aber
afterskip=0
setze hat das wieder Auswirkungen auf andere Fälle (z.B. der Abstand zwischen Überschrift und Unterüberschrift wird dann zu klein, dann müsste ich vor alle Unterüberschriften ein
beforeskip=12pt
setzen)
Aber dann gibt es Probleme zwischen Textabsatz und Unterüberschrift.

Hier mal das Minimalbeispiel
\documentclass[%
   parskip=full
   ]{scrbook}
   
   %Schriftgröße und Absatz der Überschriften formatieren
   
   \RedeclareSectionCommand[%
      beforeskip=0pt,%
      afterskip=0pt,%
      font=\normalsize% \bfseries kommt schon von Element disposition
      ]{chapter}  
   
    \RedeclareSectionCommand[%
      beforeskip=12 pt,%muss gewählt werden, damit Abstand zwischen Überschriften
      %afterskip=0pt,% hier würde kein Zeilenumbruch stattfinden
      afterskip=0.01ex,% etwas unsauber, aber erzeugt Zeilenumbruch (\newline funktioniert nicht)
      font=\normalsize% \bfseries kommt schon von Element disposition
      ]{section}  

\begin{document}
\chapter{Test}
\section{Test}
Erster Absatz nach Unterüberschrift
\par Der nachfolgende Abstand ist jetzt zu gross
\section{Test}
\section{Test}
\end{document}

Laut der Word-Vorlage, die ich für eine Studienarbeit umsetzen will, haben alle Objekte einen Abstand von 12 pt, also Überschrift-Unterüberschrift, Überschrift-Text, Text-Text..
Ob das typografisch sinnvoll ist oder nicht sei dahingestellt..

Jedenfalls funktioniert es so leider auch nicht :-(
Danke trotzdem.

Hat noch jemand Vorschläge?
Vielen Dank![/code]

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4304
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

\documentclass{article}
\makeatletter
\newcommand\test{\par\if@nobreak\else \addvspace{3cm}\fi abc}
\makeatother
\begin{document}
\test

blub \test

\section{abc}
\test

\begin{figure}[t]
ein bild
\end{figure}
\newpage
\test
\end{document}

Noch so einer

Beitrag von Noch so einer »

Ich sehe das Problem nicht so recht:
\documentclass[%
   parskip=full
   ]{scrbook}
   
   %Schriftgröße und Absatz der Überschriften formatieren
   
   \RedeclareSectionCommand[%
      beforeskip=0pt,%
      afterskip=0pt,%
      font=\normalsize% \bfseries kommt schon von Element disposition
      ]{chapter}  
   
    \RedeclareSectionCommand[%
      beforeskip=0pt,%muss gewählt werden, damit Abstand zwischen Überschriften
      %afterskip=0pt,% hier würde kein Zeilenumbruch stattfinden
      afterskip=1sp plus -1sp minus 1sp,% etwas unsauber, aber erzeugt Zeilenumbruch (\newline funktioniert nicht)
      font=\normalsize% \bfseries kommt schon von Element disposition
      ]{section}  

\begin{document}
\chapter{Test}
\section{Test}
Erster Absatz nach Unterüberschrift
\par Der nachfolgende Abstand wirklich nicht?
\section{Test}
\section{Test}
\end{document}
Bild

Besserwisser

Beitrag von Besserwisser »

BTW: Für Abstände von 12pt müsste man noch die Schriftgröße 10pt einstellen. Bei der voreingestellten Dokumentschriftgröße 11pt hat man 13.6pt als Zeilenabstand und damit auch als Absatzabstand.

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Allerdings sind 12pt in LaTeX auch nicht 12pt in Word ;-) Hier liegen verschiedene Definitionen des Punktes zu Grunde. Was Word macht weiß ich nicht, aber InDesign beispielsweise nimmt den Dito-Punkt, der in LaTeX mit der Einheit dd verfügbar ist.
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4304
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

iTob hat geschrieben:nimmt den Dito-Punkt
Buuuuh!

https://de.wikipedia.org/wiki/François_Ambroise_Didot

Antworten