PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : parskip-Einfluss auf Abstände bei Überschriften etc. eliminieren & \fontsize Problem



The EYE
15-05-2015, 08:05
Hallo liebes Forum!

Ich stehe am Anfang meiner Masterarbeit und was steht da als erstes an? Richtig, die LaTeX-Vorlage aufpolieren! Ich habe also meine letzte genommen und die ganzen (verschleppten...) Fehlermeldungen eliminiert, möglichst auf KOMA-Script umgebaut etc. Leider ist die Vorlage meines Profs eine MS Word Vorlage... Mit LaTeX hat er zum Glück kein Problem. Allerdings bin ich jetzt dabei die Abstände etc. seiner Vorlage möglichst gut in LaTeX zu übertragen. Der Klassiker... Eventuell kommen also noch mehr Threads zu Teilproblemen ;-)

Nun geht es um die Abstände bei Überschriften und zwischen Absätzen und dann habe ich noch ein Problem mit \fontsize.

1. Abstände
Ich habe die Abstände bei den Überschriften aktuell so gelöst (hier mal für section und subsection):


\RedeclareSectionCommand[
beforeskip = 12pt,
afterskip = 12pt]{section} %vor und nach section 12pt Abstand
\RedeclareSectionCommand[
beforeskip = 6pt,
afterskip = 6pt]{subsection} %vor subsection 6pt und nach subsection 6pt Abstand

Das funktioniert von der Sache her schon sehr gut. Allerdings fehlt mir nun der Abstand bei Absätzen (brauche da eine Leerzeile). Im Handbuch zum KOMA-Script stehen alle möglichen Einstellungen zu parskip=Methode. full- klingt für mich perfekt:

Absätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet. Absatzenden werden nicht gekennzeichnet. [KOMA-Script, 5. Auflage, S. 91]

Allerdings ändern sich bei der Verwendung von parskip auch die händisch eingestellten Abstände bei den Kapitelüberschriften! Zu sich durch parskip ändernden Abständen im Handbuch:

Wird ein Absatzabstand verwendet, so verändert sich auch der Abstand vor, nach und innerhalb von Listenumgebungen. Dadurch wird verhindert, dass diese Umgebungen oder Abstände innerhalb dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze des normalen Textes voneinander. Inhalts-, Abbildungs- und Tabellenverzeichnis werden immer ohne zusätzlichen Absatzabstand gesetzt. [KOMA-Script, 5. Auglage, S. 92]

Wie gehe ich nun am besten vor? Hier das Minimalbeispiel dazu:


\documentclass[fontsize=12pt
,parskip=full-
]
{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}

\parindent 0pt %kein Einrücken bei einem Absatz

\RedeclareSectionCommand[
beforeskip = 12pt,
afterskip = 12pt]{section} %vor und nach section 12pt Abstand
\RedeclareSectionCommand[
beforeskip = 6pt,
afterskip = 6pt]{subsection} %vor subsection 6pt und nach subsection 6pt Abstand

\begin{document}
\section{Test 1}
\blindtext
\section{Test 2}
\blindtext

\blindtext
\subsection{Test 3}
\blindtext
\subsection{Test 4}
\blindtext
\section{Test 5}
\blindtext
\end{document}


2. \fontsize Problem mit Fehlermeldung
Ich hätte die Größe von section gerne in 16pt. Im KOMA-Script Buch wird auf fntguide (http://mirror.selfnet.de/tex-archive/macros/latex/doc/fntguide.pdf) verwiesen. Hier heißt es auf Seite 7:

For example, to set the size to 12 without changing the baseline skip:
\fontsize{12}{\f@baselineskip}
Nach diesem Prinzip klappt es bei mir nicht. Kile gibt keine hilfreichen Fehlermeldungen aus (finished with exit code 1, Undefined control sequence \section{Test1} und so weiter). Die Log Datei enthält allerdings den Hinweis, dass \f das Problem zu sein scheint. Hier ein Auszug:


(/usr/local/texlive/2014/texmf-dist/tex/latex/base/t1cmss.fd
File: t1cmss.fd 2014/09/29 v2.5h Standard LaTeX font definitions
)
! Undefined control sequence.
<argument> \f
@baselineskip
l.13 \section{Test 1}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Missing number, treated as zero.
<to be read again>
@
l.13 \section{Test 1}

A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)

! Illegal unit of measure (pt inserted).
<to be read again>
@
l.13 \section{Test 1}

Dimensions can be in units of em, ex, in, pt, pc,
cm, mm, dd, cc, nd, nc, bp, or sp; but yours is a new one!
I'll assume that you meant to say pt, for printer's points.
To recover gracefully from this error, it's best to
delete the erroneous units; e.g., type `2' to delete
two letters. (See Chapter 27 of The TeXbook.)


Das Minimalbeispiel dazu (ohne \f, Anweisung mit \f ist auskommentiert):


\documentclass[fontsize=12pt]{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}

%\setkomafont{section}{\fontsize{16}{\f@baselinesk ip}}
\setkomafont{section}{\fontsize{16}{16}}

\begin{document}
\section{Test 1}
\blindtext
\section{Test 2}
\blindtext

\blindtext
\subsection{Test 3}
\blindtext
\subsection{Test 4}
\blindtext
\section{Test 5}
\blindtext
\end{document}


Ich könnte natürlich auch mit einer funktionierenden Vorgehensweise ohne \f glücklich werden. Dachte nur, dass es für mich am einfachsten wäre hier den eingestellten Wert zu lassen. Aber da bin ich mir ziemlich unsicher...

Gruß Max

u_fischer
15-05-2015, 08:50
Wegen des Fehlers: Es fehlt \makeatletter. Der Rest ist mir jetzt zu lang.



\makeatletter %macht @ zu einem Buchstaben
\setkomafont{section}{\fontsize{16}{\f@baselineski p}}
\makeatother

The EYE
15-05-2015, 08:56
Super, danke!

Das erste Problem noch einmal in kurz:
Abstände der Überschriften habe ich manuell eingestellt:


\RedeclareSectionCommand[
beforeskip = 12pt,
afterskip = 12pt]{section} %vor und nach section 12pt Abstand
\RedeclareSectionCommand[
beforeskip = 6pt,
afterskip = 6pt]{subsection} %vor subsection 6pt und nach subsection 6pt Abstand


Zwischen Absätzen hätte ich gerne eine Leerzeile, weshalb ich die Option parskip=full- geladen habe. Hierdurch verändern sich allerdings meine manuell eingestellten Abstände der Überschriften (werden deutlich größer). Nochmal das Beispiel:


\documentclass[fontsize=12pt
,parskip=full-
]
{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}

\parindent 0pt %kein Einrücken bei einem Absatz

\RedeclareSectionCommand[
beforeskip = 12pt,
afterskip = 12pt]{section} %vor und nach section 12pt Abstand
\RedeclareSectionCommand[
beforeskip = 6pt,
afterskip = 6pt]{subsection} %vor subsection 6pt und nach subsection 6pt Abstand

\begin{document}
\section{Test 1}
\blindtext
\section{Test 2}
\blindtext

\blindtext
\subsection{Test 3}
\blindtext
\subsection{Test 4}
\blindtext
\section{Test 5}
\blindtext
\end{document}


Gruß Max

klops
15-05-2015, 10:12
Wozu setzt Du \parindent, das von Option parskip bereits auf 0 gesetzt wird, noch einmal explizit auf 0?

Der Rest ist IMHO so absurd, dass ich daran nicht mitwirken will. Tut mir leid.

The EYE
15-05-2015, 10:30
Wozu setzt Du \parindent, das von Option parskip bereits auf 0 gesetzt wird, noch einmal explizit auf 0?
Mein Fehler! Hatte ich entfernt und getestet und angenommen, dass es doch einen Einzug gab. Kann ich jetzt nicht mehr nachvollziehen.* War natürlich Quatsch. Muss da etwas verdreht haben.



Der Rest ist IMHO so absurd, dass ich daran nicht mitwirken will. Tut mir leid.
Das hilft mir nicht meine Fehler zu verbessern. Und ich bin gerne bereit dazu! Worauf beziehst du dich denn? Auf die Vorgaben? Darüber brauchen wir nicht zu sprechen... Auf die RedeclareSectionCommand-Befehle? Die werden so auch im scrguide (http://texdoc.net/texmf-dist/doc/latex/koma-script/scrguide.pdf) als Beispiel aufgeführt. S. 390:


\RedeclareSectionCommand[%
beforeskip=-10pt,%
afterskip=1sp%
]{paragraph}


Gruß Max

* Vermutlich hatte ich da gerade parskip auskommentiert und nahm an es wäre nicht so...

u_fischer
15-05-2015, 11:06
Wegen der Art, wie in LaTeX \@startsection definiert ist, ist es nicht möglich, einen "afterskip" zu bekommen, der kleiner als \parskip ist. Die Umdefinitionen von KOMA ändern da (leider) nichts dran. Um dein gewünschtes Verhalten zu erhalten, müsstest du also \section ganz anders definieren.

Allerdings sieht ein Abstand von \section zum nachfolgenden Text, der kleiner als \parskip ist, eher bescheiden aus ...

The EYE
15-05-2015, 12:05
Danke für die Erklärung! Ich werde mal sehen, ob ich alternativ mit einem parskip=half- leben kann :-)

Gruß Max

klops
15-05-2015, 13:36
Allerdings sieht ein Abstand von \section zum nachfolgenden Text, der kleiner als \parskip ist, eher bescheiden aus ...
Zwischen \section und Text davor sieht es IMHO sogar noch schlimmer aus. Das gibt einen ganz falschen Eindruck davon, was zusammen gehört.