Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

renewcommand chapter: Kommando davor und dahinter setzen

1,111 views
Skip to first unread message

Clemens Winkler

unread,
Oct 30, 2008, 8:32:35 AM10/30/08
to
Hallo Gruppe,

ich möchte über das bookmark-Paket alle Chapter-Überschrift fett (in
den PDF-Bookmarks) setzen. Mit bookmark sieht das so z.B. aus:

\bookmarksetup{bold=true}\chapter{Test}\bookmarksetup{bold=false}

Jetzt möchte ich aber am liebsten, dass \chapter umgeschrieben wird,
so dass ein

\chapter{Test}

reicht. Das Prinzip ist mir klar, ich kopiere mit über \let das
originale Chapter als neuen Befehl und über \renewcommand ändere ich
den alten. Leider bekomme ich immer Fehler.

Ich hatte z.B. folgendes probiert:

\makeatletter
\newcommand{\saved@chapter}{}
\let\saved@chapter\@chapter
\renewcommand*{\@chapter}{\bookmarksetup{bold=true}\saved@chapter
\bookmarksetup{bold=false}}
\makeatother

Ich glaube das funtioniert aber deshalb nicht, weil ich mit dem
\bookmarksetup{bold=false} mit den Parameter des chapters kollidiere.

Wer kann mir da helfen??
Danke Clemens

Wolfgang Jeltsch

unread,
Oct 30, 2008, 8:41:46 AM10/30/08
to
Clemens Winkler wrote:

Hallo,

was ist \@chapter? Ich dachte, du wolltest \chapter umdefinieren. Kann man
nicht folgendes machen:

\makeatletter
\newcommand{\saved@chapter}{}
\let\saved@chapter\chapter
\renewcommand{\chapter}[1]{\bookmarksetup{bold=true}\saved@chapter{#1}
\bookmarksetup{bold=false}}
\makeatother

Viele Grüße
Wolfgang

Clemens Winkler

unread,
Oct 30, 2008, 8:50:27 AM10/30/08
to
Ähnlich hatte ich das vorher bereits probiert, dann bekomme ich
folgende Fehlermeldung:

Fehler: ! LaTeX Error: Something's wrong--perhaps a missing \item.

Und die Frage ist auch, was würde bei der Variante mit dem optionalen
Argument \chapter[Überschrift im TOC]{Normale Überschrift} passieren?

Clemens

Clemens Winkler

unread,
Nov 3, 2008, 5:49:53 AM11/3/08
to
Ich hab jetzt über das ifthen Paket eine Möglichkeit gefunden, dass
auch chapter[kurz]{lang} entsprechend berücksichtigt wird. Allerdings
kollidiert das ganze jetzt mit \tableofcontents in den KOMA-Script
Klassen. Fehlermeldung ist

! LaTeX Error: Something's wrong--perhaps a missing \item.
Und es wird versucht das Inhaltsverzeichnis zu nummerieren.

Hat noch jemand einen Tipp?

Hier mein Minimalbeispiel:

\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[pdftex]{hyperref}
\usepackage[pdftex,open=true]{bookmark}
\usepackage{ifthen}

% Chapter neu definieren
\makeatletter

\newcommand{\saved@chapter}{}
\let\saved@chapter\chapter

\renewcommand{\chapter}[2][]{%
\bookmarksetup{bold=true}%
\ifthenelse{\equal{#1}{}}{%
\saved@chapter{#2}%
}{%
\saved@chapter[#1]{#2}%
}%
\bookmarksetup{bold=false}%
}

\makeatother

\begin{document}

\tableofcontents

\chapter{Einleitung}
\section{Test}
\blindtext

\chapter[Kurze Überschrift]{Lange Überschrift}
\section{foobar}
\blindtext

\end{document}

Markus Kohm

unread,
Nov 3, 2008, 6:35:41 AM11/3/08
to
Clemens Winkler wrote:

> \renewcommand{\chapter}[2][]{%
> \bookmarksetup{bold=true}%
> \ifthenelse{\equal{#1}{}}{%
> \saved@chapter{#2}%
> }{%
> \saved@chapter[#1]{#2}%
> }%
> \bookmarksetup{bold=false}%
> }

Du hast \chapter* nicht berücksichtigt. Du musst schon etwas wie
(ungetestet):

\renewcommand{\chapter}{%
\@ifstar {\saved@chapter}{\@dlbarg\my@chapter}%
}
\newcommand*{\my@chaper}[2][]{%
\bookmarksetup{bold=true}%
\saved@chapter[#1]{#2}%
\bookmarksetup{bold=false}%
}

machen. Man könnte sich aber auch erinnern, dass KOMA-Script bei \chapter
aber bereits Anweisungen davor und dahinter bietet und \bookmarksetup dann
einfach in \chapterheadstartvskip und \chapterheadendvskip einfügen
(ungetestet):

\g@addto@macro\chapterheadstartvskip{\bookmarksetup{bold=true}}
\g@addto@macro\chapterheadendvskip{\bookmarksetup{bold=false}}

Gruß
Markus
--
KOMA-Script 3 erschienen --> <http://www.komascript.de/komascript3>
Gruppenhinweise (auch Minimalbeispiel) --> http://www.latex-einfuehrung.de
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> http://www.komascript.de

Clemens Winkler

unread,
Nov 3, 2008, 9:05:43 AM11/3/08
to
On 3 Nov., 12:35, Markus Kohm <markus.k...@gmx.de> wrote:

> \g@addto@macro\chapterheadstartvskip{\bookmarksetup{bold=true}}
> \g@addto@macro\chapterheadendvskip{\bookmarksetup{bold=false}}

Hallo Markus,

der bookmark-Befehl scheint in den \chapterheadstartvskip und
\chapterheadendvskip Befehlen nicht wirksam zu sein. Warum auch
immer... eine Fehlermeldung kommt zumindest nicht.

Bei der von mir gewählten Variante mit deiner Erweiterung bzgl. des
Sterns bleibt ja leider das Problem mit dem Inhaltsverzeichnis.

Hast Du noch einen Tipp? Danke!!

Clemens.

Markus Kohm

unread,
Nov 3, 2008, 11:46:58 AM11/3/08
to
Clemens Winkler wrote:

> Bei der von mir gewählten Variante mit deiner Erweiterung bzgl. des
> Sterns bleibt ja leider das Problem mit dem Inhaltsverzeichnis.

Also, wenn ich die beiden Tippfehler korrigiere, dann funktioniert bei mir:

\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[pdftex]{hyperref}
\usepackage[pdftex,open=true]{bookmark}

% Chapter neu definieren
\makeatletter% <http://www.golatex.de/wiki/index.php?title=%5Cmakeatletter>

\newcommand{\saved@chapter}{}
\let\saved@chapter\chapter

\renewcommand{\chapter}{%
\@ifstar {\saved@chapter}{\@dblarg\my@chapter}%
}
\newcommand*{\my@chapter}[2][]{%


\bookmarksetup{bold=true}%
\saved@chapter[#1]{#2}%
\bookmarksetup{bold=false}%
}

\makeatother% <http://www.golatex.de/wiki/index.php?title=%5Cmakeatother>

\begin{document}

\tableofcontents

\chapter{Einleitung}
\section{Test}
\blindtext

\chapter[Kurze Überschrift]{Lange Überschrift}
\section{foobar}
\blindtext

\end{document}

Gruß
Markus
--

Clemens Winkler

unread,
Nov 4, 2008, 5:38:27 AM11/4/08
to
On 3 Nov., 17:46, Markus Kohm <markus.k...@gmx.de> wrote:

> Also, wenn ich die beiden Tippfehler korrigiere, dann funktioniert bei mir:

> ...

Ein Stern fehlte noch:
\@ifstar{\saved@chapter*}...

Damit geht es dann aber. Vielen Dank!
Clemens

0 new messages