Hallo,
ich möchte Kapitelüberschriften so formatieren, daß nur der Eintrag von \chapter{}
zentriert gesetzt wird, und links und rechts davon je eine horizontale Linie bis zum Satzspiegelrand, auf halber x-Höhe, mit Abstand zum Text. Wie man die Zeile darüber, mit »Kapitel 1«, entfernt, habe ich schon rausgefunden, auch wie man die Kapitelüberschrift zentriert und direkt davor etwas in dieselbe Zeile setzt, aber nicht danach. Geht das überhaupt? In meinem Dokument sind die Kapitelüberschriften alle sehr kurz, am längsten ist »Special Credits«, deswegen sollte es da keine Komplikationen geben.
Wo ist das Minimalbeispiel?
Zukünftig oder wenn Dir diese Antwort nicht genügt, machst Du bitte ein vollständiges Minimalbeispiel.
Unter der Voraussetzung, dass Deine Angaben korrekt sind, wobei ich da wegen des Entfernen von »Kapitel 1« so meine Zweifel habe, weil das bei den KOMA-Script-Klassen in der Voreinstellung gar nicht existiert, würde beispielsweise das funktionieren:
Danke …
… das scheint erstmal zu funktionieren. Allerdings mußte ich dafür erstmal auf das aktuelle KOMA-Script aktualisieren, ich hatte noch 3.09 von 2011. Dabei dachte ich, ich hätte schon wenigstens TL2014 auf meinem Rechner, aber es ist TL2013. Mit KOMA-Script 3.19a hab ich jetzt eine neues Problem, dazu mache ich einen neuen Thread auf.
Minimalbeispiel konnte ich keines liefern, weil ich ja absolut keinen Plan hatte, wie ich das angehen sollte.
Und ja, das Entfernen von »Kapitel 1« ist Quatsch, das hatte ich mit den Teileüberschriften gemacht, ursprünglich hattee ich die Artikelklasse und Teile anstelle von Kapiteln benutzt.
Irrtum
Du hattest erwähnt, dass Du bereits etwas herausgefunden hast. Das hättest Du zeigen können. Du hättest auch zeigen können, wo genau Du das haben willst. So wusste ich nicht einmal, welche Klasse Du verwendest. Im Idealfall muss ich in einem Minimalbeispiel nur den Code für die gewünschte Änderung einfügen aber nicht erst noch einen Rahmen dafür aus den Fingern saugen. Weiteres zu dem Thema und warum ich auch dann ein Minimalbeispiel haben will, wenn der Fragesteller keine Ahnung hat, wie er sein Ziel erreichen kann, ist übrigens unter dem bereits im letzten Kommentar enthaltenen Link zu finden. Lies es!
Auch wieder wahr.
Ich bin außerdem draufgekommen, daß ich besser Abschnitte anstelle von Kapiteln benutzen sollte, und hab das deswegen etwas angepaßt. Insgesamt sieht das nun so aus:
Das ist wahrscheinlich noch nicht ganz perfekt, aber bei dem Dokument funktioniert es einwandfrei. Das sieht jetzt genau so aus, wie ich wollte. Danke nochmal.
PS: Und mal wieder an der falschen Stelle die Antwort reingeschrieben.
Bitte verbessern
Font-Änderungen gehören nicht in
\sectionlinesformat
, sondern per\setkomafont
oder\addtokomafont
vorgenommen, damit sie auch korrekt verarbeitet werden. Man sollte dann natürlich Schriftumschalter verwenden, also\lsstyle
und\scshape
.So?
Oder auch
\large
usw.?PS: Zefix …
Natürlich auch \large
Das kommt dann in den Font für das Element
section
bzw.subsection
.Wobei im Beispiel ein Wechsel zu scrartcl sinnvoll wäre, weil die Kapitelebene nicht verwendet wird. Bei scrartcl sind die Schriftgrößen dann bereits so voreingestellt, wie im Beispiel gefordert – bei scrreprt übrigens auch.
Sicher?
Mit den Schriftgrößenanweisungen ändern sich die Größen der Überschriften, zumindest bei scrartcl.
Aus scrartcl.cls
Oder als Minimalbeispiel:
Ergibt bei mir die Auskunft:
Und
Zeigt auch gleich große Überschriften.
Tatsache.
Aus mir unerfindlichen Gründen stand bei mir
headings=small
in der Präambel.Fehler
In
fehlt der Sonst-Fall. Da muss noch etwas wie
{#3#4}
dahinter. Wobei man sich den Fall eigentlich auch komplett sparen kann, weil das ohnehin der Voreinstellung entspricht:Again what learned.
Danke.
Doch nicht ganz
Wenn ich das so mache wie in deinem Beispiel (oder deinen Code kompiliere), dann geht die Linie rechts neben der Kapitelüberschrift nicht bis ganz an den Rand. Das passiert nicht, wenn ich die Klassenoption
parskip=full-
verwende (dann geht sie bis an den Rand).Mit folgender Definition (und ohne
parskip=full-
) steht die Überschrift alleine und zentriert (hab nachgemessen):Schreibt man
#2#3
in eine\mbox
, dann steht die Überschrift ganz links.In meinem Beispiel weiter unten, mit Linien neben den Section-Überschriften, funktioniert es trotz der
\mbox
. Wenn ich das richtig verstanden habe, sollte sie einen Umbruch verhindern und nur den Text umschließen, nicht einen ganzen Absatz. Warum klappt das dann bei Kapiteln doch nicht? Sind die anders definiert als die Sections?\renewcommand*{\raggedsection}{\centering}
wirkt sich ja auch auf Kapitelüberschriften aus.Welches Deiner Beispiele?
In meinem Beispiel habe ich jetzt extra noch Paket showframe eingefügt, um zu visualisieren, dass die Linien trotz
parskip=half
bis an den Rand reichen. Das verwendet allerdings kein Klasse mit Kapitel. Deine Beispiele haben dagegen den bereits genannten\ifstr
-Fehler, so dass ich jetzt nicht weiß, worauf Du Dich genau beziehst.Dass sich an der Stelle
\parfillskip
auswirken kann, liegt bei Deinem Code jedenfalls an der\mbox
. Diese bewirkt, dass das Absatzende im dritten Argument von\chapterlinesformat
ignoriert wird. Damit kann sich die durchaus vorhandene lokale Änderung von\parfillskip
nicht auswirken. Du musst also in dem Fall selbst nach der Box wieder ein Absatzende einfügen.Außerdem hast Du in Deinem Codeschnipsel im Argument von
\chapterlinesformat
ein Leerzeichen durch Zeilenumbruch bzw. verlässt Dich darauf, dass sich das nicht auswirkt. Auf so etwas solltest Du aber besser achten.Die
\mbox
solltest Du besser weglassen, wenn Du die Linien nicht setzt. Die stört dann mehr als sie nützt.Und ja: Der Stil
chapter
ist anders definiert als der Stilsection
. Deshalb haben die Befehle\sectionlinesformat
und\chapterlinesformat
auch unterschiedliche Parameterzahl.Sorry …
… ich meinte Dein erstes Beispiel. Da geht die rechte Linie nicht bis zum Rand. Von meinen Beispielen meinte ich dann wohl doch das von Dir korrigierte, den
\ifstr
-Fehler hatte ich schon wieder vergessen.Verstehe ich das so richtig: Das dritte Argument setzt innerhalb der
\mbox
ein Absatzende (der Länge Null?), außerhalb wird aber wegen der Anwesenheit der\mbox
ein weiteres, normales Absatzende gesetzt? Wenn ich nach der rechten Linie noch\kern-1em
oder\hspace*{-\parskipfill}
schreibe, ändert sich nichts.Ich habe auch mal die
\mbox
samt der Linien usw. in\bgroup\setlength{\parskipfill}{0em}…\egroup
gesetzt, hat aber nichts gebracht.Die
\mbox
habe ich ja von Dir übernommen, aus Deinem ersten Beispiel. Da sind übrigens auch zwei nichtauskommentierte Zeilenumbrüche. Die haben bei mir aber keine Wirkung. Die Sache mit den Leerzeichen durch Zeilenumbrüche usw. ist mir bewußt. Der Zeilenumbruch in meinem Codeschnipsel hat bei mir kein Leerzeichen zur Folge, auch dann nicht, wenn die beiden Argumente in einer\mbox
sitzen. Vielleicht habe ich deswegen das Zeilenende nicht auskommentiert, normalerweise mache ich das immer.Die Linien will ich schon, die
\mbox
und den Rest habe ich nur probeweise weggelassen, um zu sehen, was dann passiert, und dann, wenn man eines nach dem anderen wieder einfügt.Hier nochmal ein Beispiel mit den verschiedenen Varianten, zum einzelnen Entkommentieren:
Nicht ganz
Wie in der Anleitung zu lesen ist, enthält das dritte Argument ein Absatzende. Wenn Du nun dieses dritte Argument in eine
\mbox
packst, dann ist dieses Absatzende also in der\mbox
. Absatzenden, Zeilenumbrüche etc. werden innerhalb einer\mbox
aber nicht ausgeführt. Damit fehlt das Absatzende. Damit hat auch die lokale Änderung von\parfillskip
keine Auswirkung mehr. Deshalb musst Du selbst dafür sorgen, dass nach der\mbox
noch ein Absatzende ausgeführt wird. Man vergleiche:vs.
BTW: Nach Befehlen werden Leerzeichen und einzelne Zeilenumbrüche ignoriert. Also braucht man an der Stelle das Zeilenende nicht auszukommentieren. Müsste auch unter dem Link zu dem Thema erklärt sein.