PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle für Formatierung von Überschriften



johndaveus
23-05-2008, 00:44
Hallo,

ich versuch grad, meine Überschriften zu formatieren.

Hier einige Fragen:

1) Mit \renewcommand*{\chapterformat}{} kann ich die chapters umdefinieren.
Wie aber kann ich z.B. die subsections umdefinieren? Im Scrguide ist von \renewcommand*{\othersectionlevelsformat}[1] die Rede ... aber wie setzt man das ein? Für was steht die [1]?

2) Was bedeutet das Sternchen nach \renewcommand?

3) thechapter gibt die Kapitelnummer, thepart die partnummer ... aber wie macht man das bei subsection etc.?

4) Mittels \chapapp kommt "Kapitel" ... Wie komme ich zu "Abschnitt"? \sectapp? Oder wie lautet der Befehl?

5) Wo kann man arabic, roman, alph etc. einstellen?

Ich habe alles im Scrguide gelesen, werde aber nicht ganz schlau daraus ...

Vielen Dank für Eure Hilfe!

Stefan_K
23-05-2008, 01:10
Hallo,

1. die [1] steht dafür, dass man einen Parameter angeben kann. Dieser Parameter steht für die Gliederungsebene, kann also etwa section oder subsection lauten.

2. bei der Stern-Variante dürfen Argumente keine Leerzeilen, \par oder absatzübschreitende Makros enthalten. Deren Verwendung erleichtert die Fehlersuche. Siehe hier: Defining Commands (http://theoval.sys.uea.ac.uk/~nlct/latex/novices/newcommand.html) (unten) bzw. Short and Long Commands (http://theoval.sys.uea.ac.uk/~nlct/latex/novices/short.html#sec:short).

3. \thesubsection etc.

4. Abschnitten wird kein "Abschnitt" vorangestellt, Kapiteln schon "Kapitel". Brauchst Du ein Makro? Ich habe schon \@sectapp (Section) gesehen (nicht in KOMA-Script), aber benötigst Du es? Wofür?

5. \arabic, \roman bzw. alph geben einen Zähler im entsprechenden Format aus, ob Seitenzahl oder Abschnittsnummer o.ä. Schreib, was genau Du einstellen möchtest.

Ich habe die 5 Fragen zunächst recht kurz beantwortet, falls es an mancher Stelle nicht ausreicht, frag getrost konkreter nach.

Viele Grüße,

Stefan

johndaveus
24-05-2008, 11:48
Danke Stefan!

Gerne frag ich ein paar Sachen aber noch konkreter nach .... [HINWEIS: alle Fragen, die weiter unten beantwortet wurden, werde ich hier oben ergänzen, damit Latex-unfähige Leute wie ich einen Frage-Antwort-Katalog zur Verfügung haben.]

Was ich bisher verstanden habe: Um die Kapitelüberschrift umzuformatieren, benutze ich folgenden Befehl:
\renewcommand*{\chapterformat}{\chapapp\enskip\the chapter\autodot\enskip}
Das klappt gut so. Hier weiss ich z.B., dass ich das Wort "Kapitel" mit \chapapp erzeuge, dann einen Zeichenabstand mit \enskip, dann die Kapitelnummer mit \thechapter.
Wenn ich also "Kapitel 2 Blablablaüberschrift" haben möchte, schreibe ich wie oben bereits erwähnt:
\renewcommand*{\chapterformat}{\chapapp\enskip\the chapter\autodot\enskip}

Aber: Ich möchte gern für jede andere Ebene ebenfalls "meinen eigenen Senf" dazu geben, und für jede Ebene die Gliederungsnummer selbst definieren (z.B. ob sie Römisch gross oder Arabisch oder in Buchstaben geschrieben wird.). Leider schaffe ich das aber nicht, da ich nicht weiss, wie man auf die Gliederungsnummern in den entsprechenden Ebenen zugreift.
Warum das ganze? Daran sind andere Leute schuld! An jeder Uni werden andere Formatierungen für die Überschriften verlangt! Da können die armen Studenten, die zudem nichts von Latex verstehen, leider nix dafür.

Wäre es möglich, hier an dieser Stelle diese Befehle kurz aufzulisten? Ev. mit einem Beispiel? Das würde mir extrem helfen, und vielleicht auch anderen Nutzern....

1) Befehle, um Überschriften umzudefinieren ... aber irgendwie klappt das nicht?! Zumindest kann man so das voreingestellte Löschen, wenn man will, indem man die darauffolgende Klammer leerlässt.
a) Part = \renewcommand*{\partformat}{}
b) chapter = ?
c) section = ? \sectionformat klappt nicht ????!!!!!!!
d) subsection = ?
e) subsubsection = ?
f) paragraph = ?
g) subparagraph = ?

2) Gliederungsnummern umdefinieren:
Vorlage für Befehle: \renewcommand*{\thegliederungsebene}{\format{glied erungsebene}.}. Erklärungen nachstehend:
a) \thegliederungsebene = \thepart \thechapter \thesection \thesubparagraph etc.
b) \format = \Alph für Grossbuchstaben, \alph für Kleinbuchstaben, \Roman für Grosse römische Zahlen, \roman römisch klein, \arabic für normale arabische Zahlen
c) Gliederungsebene = part, section, paragraph etc.
d) Beispiel: \renewcommand*{\thesection}{\Alph{section}.}

3) Ebenennamen
a) Part = ?
b) chapter = \chapapp
c) section = ?
d) Für die anderen Ebenen braucht man da wohl keinen Ebenennamen mehr. Wie könnte man aber z.B. als Section-name "Übung" oder "Beispiel" nehmen?

4) Weitere Befehle
a) Leerzeichen = \enskip
b) Punkt, wenn gem. Duden einer hinsoll: \autodot
c) Die Ebene \subparagraph hinzufügen = bei scrbook gibt's die anscheinend schon als Voreinstellung
d) Bis auf welche Ebene in den Überschriften wird numeriert?: \setcounter{secnumdepth}{X}, wobei X die Ebene anzeigt; 5 = subparagraph
d) Bis auf welche Ebene soll im Inhaltsverzeichnis angezeigt werden? \setcounter{tocdepth}{5}, wobei die Zahl verändert werden kann.

5) Beispiele
aa) Ich möchte gar nix haben für Part: \renewcommand*{\partformat}{}
a) Ich möchte haben: Kapitel X Meineblablaüberschrift =
\renewcommand*{\chapterformat}{\chapapp\enskip\the chapter\autodot\enskip}
\renewcommand*{\thesection}{\Alph{section}.}
b) Ich möchte haben: "1. Abschnitt Meineabschnittsüberschriftbla" = ?
c) Ich möchte für subsection haben: "I." = \renewcommand*{\thesubsection}{\Roman{subsection}. }
d) Ich möchte für subsubsection haben: "1." = \renewcommand*{\thesubsubsection}{\arabic{subsubse ction}.}
e) Ich möchte für paragraph haben: "A." = \renewcommand*{\theparagraph}{\Alph{paragraph}.}
f) Ich möchte für subparagraph haben "a.a" "b.b" etc. = \renewcommand*{\thesubparagraph}{\alph{subparagrap h}.\alph{subparagraph}.}
g) Ich möchte für subparagraph haben "a.a", "a.b" etc. = \renewcommand*{\thesubparagraph}{\alph{paragraph}. \alph{subparagraph}.}

6) Inhaltsverzeichnis
a) Wie kann man den Einzug anpassen? Wo kann man dazu Antworten finden (Scrguide? hatte nichts gefunden.)

Sabrina.Dankers
24-05-2008, 11:56
Hallo,

wie man es genau macht weiß ich auch nicht. Aber am besten du schaust dir den entsprechenden Klassenfile an, wie die Überschriften da definiert sind.

johndaveus
24-05-2008, 14:19
Hm, ja, das wäre in der Tat eine gute Idee, da könnte man sich dann anhand der jeweiligen Befehle, deren Resultat man ja sehen kann, ausdenken, welcher Parameter was bedeutet, und dann die unten aufgelisteten Fragen eventuelle beantworten.

Nur: wie/wo findet man diese Klassenfiles?

Sorry, wie man sieht kenn ich mich nicht so gut aus ...

Sabrina.Dankers
24-05-2008, 14:28
Je nachdem welche Klasse du verwendest hat diese entweder die Endung sty oder cls. Bei den KomaKlassen auf jeden Fall nach cls suchen und bei den Standardklassen nach sty-Dateien. Wie man da unter Windows gescheit suchen kann, weiß ich nicht, aber das kann dir sicher jemand sagen. Bei mir unter Mac OS x liegt der Klassenfile für scrartcl z.B. hier:

/usr/local/texlive/2007/texmf-dist/tex/latex/koma-script/scrartcl.cls

Also auf jeden Fall unter der Distribution im texmf-Verzeichnis

johndaveus
26-05-2008, 00:18
So, ich hab mal in der scrbook.cls-Datei nachgeschaut.

Folgende Befehle (siehe unten) betreffen wohl meine Frage:

Aber: Leider erhalte ich 10000 Fehlermeldungen, wenn ich versuche, alles umzudefinieren ...

z.B.: Die section wird im Standarddokument als 1.1 numeriert.
\renewcommand*\thesection{\thechapter.\@arabic\c@s ection}

Logischerweise müsste ich doch jetzt einfach das \thechapter. entfernen, und dann würde die section lediglich als 1. numeriert? Aber das funktioniert leider nicht.

Was mache ich denn da falsch? \renewcommand*\thesection{\@arabic\c@section}

Hier die Befehle, welche als Standard vorgegeben sind. Vielleicht kann ja jemand erklären, wie man die jetzt selbst benutzen könnte ...

Vielen Dank!



\setcounter{secnumdepth}{2}
\newcounter{part}
\renewcommand*{\thepart}{\@Roman\c@part}
\newcommand*{\partformat}{\partname~\thepart\autod ot}
\newcounter{chapter}
\renewcommand*{\thechapter}{\@arabic\c@chapter}
\newcommand*{\chapterformat}{%
\mbox{\chapappifchapterprefix{~}\thechapter\autodo t\enskip}%
}
\newcommand*\chaptermarkformat{\chapappifchapterpr efix{\ }%
\thechapter\autodot\enskip}
\newcounter{section}[chapter]
\renewcommand*\thesection{\thechapter.\@arabic\c@s ection}
\newcommand*\sectionmarkformat{\thesection\autodot \enskip}
\newcounter{subsection}[section]
\renewcommand*{\thesubsection}{\thesection.\@arabi c\c@subsection}
\newcounter{subsubsection}[subsection]
\renewcommand*{\thesubsubsection}{%
\thesubsection.\@arabic\c@subsubsection
}
\newcounter{paragraph}[subsubsection]
\renewcommand*{\theparagraph}{\thesubsubsection.\@ arabic\c@paragraph}
\newcounter{subparagraph}[paragraph]
\renewcommand*{\thesubparagraph}{%
\theparagraph.\@arabic\c@subparagraph
}
\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
\renewcommand*{\@seccntformat}[1]{%
\protect\othersectionlevelsformat{#1}{%
\expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
}
\newcommand*\partname{Part}
\newcommand*\chaptername{Chapter}

rais
26-05-2008, 02:13
Moin moin,


Was mache ich denn da falsch? \renewcommand*\thesection{\@arabic\c@section}

lass lieber erstmal die Finger von LaTeX-Interna...


\renewcommand*\thesection{\arabic{section}}
sollte schon tun.;)

Soll der Abschnittszähler weiterhin mit Erhöhen des Kapitelzählers zurückgesetzt werden?

MfG

Sabrina.Dankers
26-05-2008, 07:46
Hallo noch mal,

wenn du in den LaTeX-Interna... rumpfuschst, dann musst du das in
\makeatletter

\makeatother
einschachteln, weil es sich um TeX-Code handelt und nicht mehr um LaTeX-Code.

@rais: Das ist schon richtig. Lieber nicht in den LaTeX-Interna rumpfuschen, aber er hatte ja sehr spezielle Fragen. Und das mit dem umdefinieren der section war ja nicht die einzige. Oder weißt du wie man alles andere umdefiniert ohne dabei in LaTeX-Interna... rumzupfuschen.

johndaveus
26-05-2008, 10:26
Wow, super, vielen Dank für all Eure Antworten und Bemühungen!

Auf viele Fragen habe ich mittlerweile meine Antworten gefunden, ich werden deswegen die entsprechenden Fragezeichen in der Liste, die ich aufgestellt hatte, mit den Antworten ergänzen.

Jetzt hab ich vor allem noch zwei Fragen:

a) wie kann man den Abstand im Inhaltsverzeichnis zwischen linkem Rand und Gliederungszähler einstellen? Und wie den Abstand zwischen Gliederungszähler und Überschriftentext?

b) Wie kann man auch auf der Ebene Section einen Gliederungstext hinzufügen? z.B. "Übung" oder "Beispiel" etc.? Und zwar so, dass er nicht im inhaltsverzeichnis auftaucht, sondern nur im Text selber?

Vielen herzlichen Dank im voraus!

Sabrina.Dankers
26-05-2008, 10:47
Zu a)
\renewcommand*\l@section{\@dottedtocline{1}{0em}{2 .5em}}

zum linken Rand
zur Nummerierung

zu b) keine Ahnung. Sehr exotisch würde ich mal sagen. Also wie man das generell ändert ist ja nicht das Problem. Aber es taucht dann halt auch im Inhaltsverzeichnis auf.



\renewcommand\thesection{Übung \arabic{section}}


So z.B.

johndaveus
26-05-2008, 11:33
Vielen Dank Frau Dankers!
So langsam komm ich meinem Ziel näher!
Danke nochmals, und einen schönen Tag wünsch ich!

Zu a) [Hinweis für Latex-Nix-Versteher wie mich]: man muss \makeatletter vor diesen Befehl schreiben, und \makeatother danach (fragt mich nicht wieso, aber istsoweilistso).

Beispiele:

\makeatletter
\renewcommand*\l@section{\@dottedtocline{1}{0em}{2 em}}
\renewcommand*\l@subsection{\@dottedtocline{1}{2em }{2em}}
\renewcommand*\l@subsubsection{\@dottedtocline{1}{ 4em}{2em}}
\renewcommand*\l@paragraph{\@dottedtocline{1}{6em} {2em}}
\renewcommand*\l@subparagraph{\@dottedtocline{1}{8 em}{2em}}
\makeatother

Aber nun noch eine Frage: Warum funktioniert das bei Chapter nicht? \renewcommand*\l@chapter{{0em}{2em}}? Ich wollte alles so lassen wie's ist (dh. die Chapter-Überschrift fett lassen, keine dottedtocline etc.), aber halt eben den Abstand zwischen Gliederungszahl und Überschrift auf 2em setzen ... Wie könnte man das machen?

zu b) Vielleicht schreib ich das am besten einfach bei jeder Überschrift selbst von Hand dazu .... und zwar \section[Das Rentier]{Übung 1: Das Rentier}, dann kommt's ja nicht ins Inhaltsverzeichnis.

Sabrina.Dankers
26-05-2008, 11:35
Oho, so förmlich. Das ist aber nicht notwendig.

LG Sabrina

johndaveus
26-05-2008, 13:23
NA, ich hab ja auch nur so förmlich danke gesagt weil ich mich voll freue endlich das zu haben was ich wollte!

Nur eine Frage wär jetzt (zumindest fürs erste ...) noch offen:

Warum funktioniert es bei Chapter nicht, den Abstand zwischen der Gliederungszahl und der Überschrift anzupassen?
\renewcommand*\l@chapter{{0em}{2em}}?
Ich wollte alles so lassen wie's ist (dh. die Chapter-Überschrift fett lassen, keine dottedtocline etc.), aber halt eben den Abstand zwischen Gliederungszahl und Überschrift auf 2em setzen ... Wie könnte man das machen?

Sabrina.Dankers
26-05-2008, 13:27
Das weiß ich jetzt so auch nicht. Da müsstest du nochmal in der book.cls schauen, wie es da für chapter definiert ist im Inhaltsverzeichnis. Mit den Schriftgrößen ist es kein Problem. Die musst du dann einfach wieder neu angeben.

johndaveus
26-05-2008, 14:05
Hm ... leider werd ich aus dem Eintrag zu \l@chapter nicht schlau ....

Bei den anderen (\l@section etc.) war alles ganz klar und einfach; aber bei chapter steht ein ganzes blabla ... wo kann man den da den Abstand zwischen Gliederungsnummer und überschrift einstellen?

\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\ifnum \lastpenalty<20010
\addpenalty{-\@highpenalty}%
\fi
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\if@tocleft
\ifx\toc@l@number\@empty\else
\setlength\@tempdima{0\toc@l@number}%
\fi
\fi
\begingroup
\raggedchapterentry
\parindent \z@ \advance\rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\interlinepenalty\@M
\leavevmode
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
\usekomafont{chapterentry}{#1\nobreak
\usekomafont{chapterentrypagenumber}{%
\hfill\nobreak
\hb@xt@\@pnumwidth{\hss#2}}}\par
\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}
\endgroup
\penalty20009
\else
\penalty\@highpenalty
\endgroup
\fi
\fi
}
\newcommand*{\raggedchapterentry}{}
\newcommand*{\l@chapteratlist}{\l@chapter}