Sie sind hier

Minisec

Hallo,
Ich würde gerne den Minisec-Befehl ändern.
Laut der Doku. geht das nicht. Ich hab's schon mit eigenem Befehl der Minisec enthält probiert. Leider aber ohne Erfolg.

Hat jemand eine Idee, wie ich den Befehl ändern kann. Oder wie kann ich eine Zwischenüberschrift mit weniger Platz nach der Zeile erstellen. Abgesehen von den /...* Befehlen - die mir zuviel Platz lassen?

Bin für jede Hilfe dankbar.

Gruß Patrick

Bild von Markus Kohm

Nach einer mit \minisec gesetzten Überschrift wird nur der normale Absatzabstand eingefügt. Noch weniger ist kaum sinnvoll, da dann ein Absatz eine stärkere Unterteilung als eine Überschrift darstellen würde. Das ist nur bei Spitzmarken (--> \paragraph bzw. \subparagraph) sinnvoll.

Wenn du es trotzdem willst, kannst du natürlich eine eigene Anweisung schreiben, die entsprechend deiner Wünsche negativen \vspace einfügt.

Was du mit »/...* Befehle« meinst, ist mir absolut unklar. Selbst wenn ich davon ausgehe, dass du statt des Slashs eigentlich einen Backslash verwenden wollte, bleibt mir die Bedeutung absolut verschlossen.

Ich hab's jetzt so gelöst.
Ist zwar glaube ich ziemlich gepfuscht, funktioniert aber.
\newcommand{\smc}[1]{{\vspace{0.3cm}{\newline}}{\em{#1}}{\nopagebreak}{\vspace{0.1cm}\newline}}

Bild von Markus Kohm

  • Was soll ein \newline nach einem \vspace?
  • Warum werden \vspace und \newline gemeinsam und \newline dann im ersten Fall nochmal alleine in eine Gruppe gepackt?
  • \em ist ein Umschalter, keine Anweisung mit Parameter. Die Gruppe um #1 ist sinnlos.
  • \nopagebreak in eine Gruppe zu packen nützt nur etwas, wenn man vermeiden will, dass es im vertikalen Modus irgendeine Auswirkung hat. Wenn im Argument von \smc am Ende nicht durch ein \par oder ähnliches in den vertikalen Modus geschaltet wird, bist du im horizontalen Modus. Wobei ich davon ausgehe, dass eigentlich Absätze im Argument unerwünscht sind. Wobei sowohl \nopagebreak als auch \vspace über \vadjust arbeiten und dann beim \newline eben erst die Penalties geändert und dann ein vertikaler Abstand eingefügt wird. Woher weißt du, dass nach diesem vertikalen Abstand dann die Penalties noch wie gewünscht gesetzt sind? Nicht, dass das falsch wäre, dem ist tatsächlich so, aber unter Berücksichtigung der anderen Eigentümlichkeiten erscheint das eher zufällig. Im vertikalen Modus stimmt es übrigens nicht. Dort scheitert bereits das \newline. Ein Grund mehr im Argument von \smc keinen Absatz zu erlauben.

Deine Definition kürzer wäre:

\newcommand{\smc}[1]{%
  \vspace{.3cm}\newline{\em #1}\nopagebreak\vspace{.1cm}\newline
}

Mit Nichterlauben von Absätzen im Argument:

\newcommand*{\smc}[1]{%
  \vspace{.3cm}\newline{\em #1}\nopagebreak\vspace{.1cm}\newline
}

Eine deutlich bessere Lösung wäre jedoch:

\newcommand*{\smc}[1]{\par
  \vspace{-\parskip}\vspace{3mm}\noindent
  \emph{#1}\par\nobreak
  \vspace{-\parskip}\nobreak\vspace{1mm}\nobreak\noindent
  \ignorespaces
}

Das kann aber nicht mithalten mit einer Kopie von \minisec aus dem scrclass.dtx (oder einer der KOMA-Script-Klassen) bei der man das Makro umbenennt und die Abstände so einstellt, wie man sie haben will.

Comments for "Minisec" abonnieren