Überschrift Abstand mit \partheadstartvskip

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: Überschrift Abstand mit \partheadstartvskip

von MoonKid » So 13. Apr 2014, 18:27

Also ich bin aus den genannten Gründen immer noch dagegen, die section-Commandos zu überladen und kann nicht nachvollziehen, warum es neben der Fülle anderer kleverer KOMA-Format-Konzepte nichts gibt, um die Abstände rund um eine Überschrift zu manipulieren. Liest der Koma Entwickler hier mit? ;)

Da mir keine andere Wahl bleibt hier meine Lösung. Ich musste sie mi etwas mehr vollpacken, da man eigentliches Dokument (mit ner Menge anderer grausamer Manipulationen drin) nicht das gewünschte Ergebnis lieferte.
Besonders zu beachten ist hier subsubsection, die so überladen wurde, dass sie sich wie ein paragraph verhält.

Die Abstände habe ich nicht auf 0ex gesetzt, weil in diesem Fall z.B. das \center für die section "ignoriert" wird. Mit einem 0.01ex kann ich auch leben und meine typografisch unterbelichteten Dozenten merken das eh nicht.
% vert.tex
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\makeatletter
\renewcommand\section{%
  \@startsection{section}{\sectionnumdepth}{\z@}%
  {0.01ex}%{-3.5ex \@plus -1ex \@minus -.2ex}%
  {0.01ex}%{2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\renewcommand\subsection{%
  \@startsection{subsection}{\subsectionnumdepth}{\z@}%
  {0.01ex}%{-3.25ex\@plus -1ex \@minus -.2ex}%
  {0.01ex}%{1.5ex \@plus .2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsection
  }%
}
% dritte Gliederungsebene ähnlich wie \paragraph
\renewcommand\subsubsection{%
     \@startsection{subsubsection}{\subsubsectionnumdepth}{0.5cm}%
     {0.01ex}%{-3.25ex\@plus -1ex \@minus -.2ex}%
     {0ex}%{-1.5ex \@plus .2ex}%-1.5ex statt +1.5ex
     {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
     \setlength{\parfillskip}{\z@ plus 1fil}\fi
     \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
  }%
}
\makeatother

\setkomafont{section}{\normalfont\center\bfseries}
\setkomafont{subsection}{\normalfont\bfseries}
\setkomafont{subsubsection}{\normalfont\bfseries}
\renewcommand\subsubsectionmark[1]{.\space} % punkt am Ende der dritten Ebene
\KOMAoption{numbers}{noendperiod}
\renewcommand*{\othersectionlevelsformat}[3]{% Nummer in der Überschrift
   #3\ifstr{#1}{section}{.}{\autodot}\enskip
}

\begin{document}
\section{Section}
\subsection{SubSection}
\subsubsection{SubSubSection}
Text
\end{document}
btw: Dies ist die letzte Arbeit, die ich an dieser Uni schreibe. Mit etwas Glück komme ich also in Zukunft nicht mit soviel gruseligen Zeug hier an. :D

von Besserwisser » Mo 7. Apr 2014, 16:35

MoonKid hat geschrieben:\section macht soviel noch nebenbei - gerade bei koma. Gliederungsnummernformatierungen, Inhaltsverzeichnis, Label, blabla.
All das macht es über \@startsection. Die Definition von \section sieht in scrartcl beispielsweise so aus:
\newcommand\section{%
  \@startsection{section}{\sectionnumdepth}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
Die Argumente sind:
  1. Name der Ebene (im Beispiel: section)
  2. Nummerische Gliederungsebene (\sectionnumdepth)
  3. Einzug (\z@ also 0pt)
  4. vertikaler Abstand vor der Überschrift (der negative Wertebedeutet, dass der Texteinzug für den Text nach der Überschrift unterdrückt wird, tatsächlich verwendet wird der absolute Wert)
  5. Abstand nach der Überschrift (ein positiver Wert ist hier ein vertikaler Abstand während ein negativer als Absolutwert für einen horizontalen Abstand genommen würde)
  6. Formatierung für Nummer und Text der Überschrift
gefolgt von den Argumenten von \section selbst.

von MoonKid » Mo 7. Apr 2014, 16:23

Besserwisser hat geschrieben:Da die Überschriften der Ebenen \section bis \subparagraph bereits auf der simplen Kernanweisung \@startsection basieren, hat der Autor es wohl nicht für notwendig erachtet, das um weitere simple Anweisungen zu ergänzen.
Das die auf @startsection (ein Kern-Makro?) basieren weiß ich.

Aber ich habe scheinbar ein generelles Verständnisproblem. Mit deiner Antwort kann ich nämlich nix anfangen.
Implizierst du etwa, ich solle \section und Co entsprechend überschreiben? Ist dies tatsächlich die einzige (in meinen Augen unsaubere) Lösung?

\section macht soviel noch nebenbei - gerade bei koma. Gliederungsnummernformatierungen, Inhaltsverzeichnis, Label, blabla. Von diesen Internas verstehe ich viel zu wenig, um die Tragweite einer section-Neudefinition abschätzen zu können. Daher nehme ich davon lieber Abstand, falls es eine weniger einschneidende Lösung gibt.

von Besserwisser » Mo 7. Apr 2014, 16:17

MoonKid hat geschrieben:KOMA muss doch dafür eine simple Lösung, wie eben \partheadstartvskip haben.
Da die Überschriften der Ebenen \section bis \subparagraph bereits auf der simplen Kernanweisung \@startsection basieren, hat der Autor es wohl nicht für notwendig erachtet, das um weitere simple Anweisungen zu ergänzen.

von MoonKid » Mo 7. Apr 2014, 13:14

Achso ich dachte "part" wäre indiesem Kontext für alles andere außer "chapter", weil dort sections nämlich nicht explizit erwähnt werden.

Die Suche in der KOMA-Anleitung nach "headstartvskip" und "startvskip" ergab nichts mit einem Bezug zu sections.

Dann steh ich auf dem Schlauch.

EDIT: Selbstverständlich finde ich im Netz allerhand Beispieel, wie \section & Co einfach per \renewcommand überschrieben. Das sehe ich für so eine einfache Aufgabe, aber nicht als brauchbare Lösung an. Es hat was sehr hacking mässiges und führt evlt. zu diversen Sideeffects. KOMA muss doch dafür eine simple Lösung, wie eben \partheadstartvskip haben.

von Besserwisser » Mo 7. Apr 2014, 13:01

Solange Du kein \part verwendest, ist es irgendwie nicht sehr verwunderlich, wenn sich durch Umkonfiguration der \part-Überschriften nichts ändern …

Für \part-Überschrift gibt es übrigens noch eine dritte Anweisung. Siehe dazu die KOMA-Script-Anleitung oder das KOMA-Script-Buch.

Überschrift Abstand mit \partheadstartvskip

von MoonKid » Mo 7. Apr 2014, 12:57

Weil es meiner typographisch inkompententen Studiengangsleitung zu kompliziert ist, hat sie kurzer Hand die Vorgaben dahingegehend geändert, dass es jetzt einfach gar keien vertikalen Abstände mehr gibt. :D

Das hab ich jetzt nach KOMA-Anleitung versucht. Aber die Neudefinition beider Makros hat nicht den gringsten Effekt.

Sicherlich habe ich doch was falsch verstanden.
% vert.tex
\documentclass{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\renewcommand{\partheadstartvskip}{}
\renewcommand{\partheadendvskip}{}

\begin{document}
\section{Section}
\subsection{SubSection}
\subsubsection{SubSubSection}
Text
\end{document}

Nach oben