Problem mit setspace und float

Tabellen und Grafiken erstellen und anordnen


Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Senbei hat geschrieben:Habe 12pt und gerad mal in das style-file reingeschaut. Für \onehalfspacing bei 12pt wird der Wert auf 1.241 gesetzt. Per Dreisatz ergibt sich mir für einen Durchschuss von 1.25 ein Wert von 1.034, also \setstretch{1.034}. Richtig soweit?
Vielleicht ist ja noch von Interesse, wie setspace überhaupt dazu kommt. Wählt man bei den Standardklassen die Schriftgröße 12pt, so wird size12.clo oder bk12.clo (bei book.cls) geladen. Dort ist die 12pt-Schrift dann als
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xiipt{14.5}%
   \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
definiert. Entscheidend ist hier die LaTeX-interne Anweisung
 \@setfontsize\normalsize\@xiipt{14.5}
Diese definiert, dass bei \normalsize die Schriftgröße 12pt mit dem Grundlinienabstand 14.5pt verwendet wird. In den fd-Dateien für CM (oder leicht abgewandelt auch für EC) ist dann folgendes festgelegt:
\DeclareFontShape{OT1}{cmr}{m}{n}%
     {<5><6><7><8><9><10><12>gen*cmr%
      <10.95>cmr10%
      <14.4>cmr12%
      <17.28><20.74><24.88>cmr17}{}
Entscheidend ist hier die Angabe: »<12>gen*cmr«. Das bedeutet, dass cmr12 geladen werden soll. Es wird also tatsächlich eine 12pt-Schrift mit einem Grundlinienabstand von 14,5pt verwendet. 14,5 / 12 = 1,20833... Der normale Durchschuss beträgt also bereits 20,833.. Prozent. Will man nun 50% so gilt: 1,5 / ( 14,5 / 12 ) = 18 / 14,5 = 1,2414.

Statt auf dem Umweg über die Faktoren von setspace kannst Du jetzt also auch direkte den Faktor ausrechnen: 1,25 / ( 14,5 / 12 ) = 15 / 14,5 = 1,034. Bei dem geringen Wert würde ich übrigens noch nicht unbedingt zum setspace-Paket greifen, sondern die 3% mehr an Durchschuss einfach generell per \linespread{1,034} setzen. Macht man das nach \begin{document} braucht man noch ein \selectfont.

Nähere Informationen zu \DeclareFontShape, \linespread und \selectfont sind dem fntguide zu entnehmen. \@setfontsize ist im dokumentierten LaTeX-Kern, source2e, zu finden. Die genannten Dokumente sind Bestandteil jeder zulässigen LaTeX-Distribution.

Achja: Für 11pt würde beispielsweise \@setfontsize\normalsize\@xipt{13.6} verwendet. \@xipt steht für 10.95. Die restliche Rechnung überlasse ich zur Übung dem interessierten Anwender.

Und noch ein Hinweis: Grundsätzlich könnten in anderen fd-Dateien tatsächlich leicht abweichende Schriftgrößen ausgewählt werden. setspace kann also bei anderen Schriften eventuell nur ungefähr korrekte Einstellungen liefern. Außerdem arbeitet es bei anderen Schriftgrößen als 10, 11 oder 12pt auch nur näherungsweise richtig. Ihr wisst jetzt aber, wie Ihr für andere Schriftgrößen ebenfalls den korrekten Faktor bestimmen könnt.

Senbei
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 17. Jul 2008, 15:18

Beitrag von Senbei »

Besser gehts wohl kaum. Danke! :D

Antworten