Seite 1 von 3

Schriftart im Register verkleinern

Verfasst: Fr 23. Jul 2010, 10:57
von reneni
Hallo,

ich frage mich gerade, wie ich die Schrift im Namensregister in Relation zur global verwendeten Schrift verkleinern kann?
Das sectsty-Paket habe ich mir schon angeschaut, bin aber nicht schlau draus geworden. Ich verwende die KOMA-Klasse "scrreprt", in der ich schon die Überschriften umdefindiert habe
\setkomafont{sectioning}{\normalfont\normalcolor\bfseries} 
Ähnlich müsste das ja auch für die Schriftgröße im Register gehen, oder?
Dankbar für Hilfe,

Christopher

Verfasst: Fr 23. Jul 2010, 12:00
von KOMA
Wie hast Du denn das Namensregister gemacht? Das Paket idxlayout (← dies ist ein geprüfter Link, der direkt zur Paketkurzbeschreibung auf CTAN führt!) beispielsweise bietet AFAIK die Möglichkeit, die Schrift für das Verzeichnis einzustellen. Das Pakete splitidx (← dies ist ein geprüfter Link, der direkt zur Paketkurzbeschreibung auf CTAN führt!) bietet ebenfalls Möglichkeiten, in das Verzeichnis einzugreifen, um beispielsweise ein \small oder \footnotesize oder auch eine \fontsize-Anweisung einzuschleusen.

Am besten zeigst Du uns an einem vollständigen Minimalbeispiel (← dies ist ein geprüfter Link mit relevanten Informationen!) ganz kurz, was Du machst und ggf. auch was nicht funktioniert hat.

Verfasst: Fr 23. Jul 2010, 13:27
von reneni
Hallo,

und danke für den Tipp mit idxlayout.
% !TEX encoding = UTF-8 Unicode
\documentclass[ngerman]{scrreprt}

\usepackage{multind} 
\makeindex{namen}
\makeindex{orte}
\makeindex{werke}

\begin{document} 

\index{namen}{Name}Name
\index{ort}{Ort}Ort
\index{werke}{Werk}Werk

\printindex{namen}{Personenregister}
\printindex{orte}{Ortsregister}
\printindex{werke}{Werkeregister}

\end{document}  
So sieht das bei mir ungefähr aus.
Ich verwende also das multind-Package. Das idxlayout wollte ich installieren, habe ich aber nicht geschafft (unter Max OS 10.6.4). Wohin müssten denn die Dateien idxlayout.dtx und idxlayout.sty? Das Log sagt mir, ich müsse das .sty-file "into a directory searched by TeX" legen.

Danke für Hilfe,

Christopher

Verfasst: Fr 23. Jul 2010, 14:19
von lockstep
Das Paket multind stammt aus 1991 (noch aus LaTeX-2.09-Zeiten) und ist mit idxlayout nicht kompatibel. Unabhängig von der Verwendung von idxlayout empfehle ich dir, für die Erzeugung mehrerer Stichwortverzeichnisse entweder auf das Paket index oder besser auf splitidx umzusteigen.

Wenn es multind sein muss, könnte folgendes helfen (ungetestet):
\makeatletter
\def\theindex{\small\parindent\z@
 \parskip\z@ plus .3pt\relax\let\item\@idxitem}
\makeatother
(Bis auf das hinzugefügte \small entspricht dies der multind-Definition von \theindex.)

lockstep

Verfasst: Fr 23. Jul 2010, 16:18
von KOMA
Statt \theindex komplett neu zu definieren, könnte man auch
\makeatletter\g@addto@macro\theindex{\small}\makeatother
oder die Methode mit etoolbox:
\usepackage{etoolbox}
\apptocmd{\theindex}{\small}{%
  \typeout{\string\small\space added to \string\theindex}%
}{%
  \typeout{\string\theindex\space not patchable!}%
}
probieren. In jedem Fall darf \theindex erst nach dem Laden des Indexpakets gepatcht werden. Getestet und funktionsfähig befunden:
\documentclass[ngerman]{scrreprt}

\usepackage{multind}
\makeindex{namen}
\makeindex{orte}
\makeindex{werke}

\usepackage{etoolbox}
\apptocmd{\theindex}{\tiny}{%
  \typeout{\string\tiny\space added to \string\theindex}%
}{%
  \typeout{\string\theindex\space not patchable!}%
}

\begin{document}

\index{namen}{Name}Name
\index{orte}{Ort}Ort
\index{werke}{Werk}Werk

\printindex{namen}{Personenregister}
\printindex{orte}{Ortsregister}
\printindex{werke}{Werkeregister}

\end{document}
Aber auch mit dem moderneren Paket splitidx:
\documentclass[ngerman]{scrreprt}

\usepackage[makeindex]{splitidx}
\newindex[Personenregister]{namen}
\newindex[Ortsregister]{orte}
\newindex[Werkeregister]{werke}
\extendtheindex{}{\tiny}{}{}

\begin{document}

\sindex[namen]{Name}Name
\sindex[orte]{Ort}Ort
\sindex[werke]{Werk}Werk

\printindex*

\end{document}
Die Lösung mit splitidx unter Verwendung von idxlayout, zeigt Dir sicher lockstep, wenn Dich das noch interessiert, Du aber nicht damit klar kommst. \tiny statt \small habe ich im Beispiel genommen, weil die Änderung sofort ins Auge springt. So kleine Schrift sollte man in der Realität natürlich nicht verwenden.

Verfasst: Fr 23. Jul 2010, 19:11
von reneni
KOMA hat geschrieben:oder die Methode mit etoolbox
Tausend Dank, das funktioniert wunderbar. Ich denke, die werde ich verwenden.

Christopher

Verfasst: Do 29. Jul 2010, 15:17
von reneni
Jetzt ist mir doch noch etwas aufgefallen:
Kann ich auf eine ähnliche Weise auch festlegen, dass die durch die printindex-Befehle automatisch erzeugten Überschriften dort und im Text eine bestimmte Hierachie bekommen und mitnummeriert werden (in meinem Fall wäre das "8.1 Personenregister" etc.)?

Danke, Christopher

Verfasst: Do 29. Jul 2010, 15:31
von KOMA
Zwar ist es meines Wissens nach schlechter Stil, Verzeichnisse zu nummerieren, aber da splitidx die Einstellungen achtet, statt die gesamte Index-Umgebung neu zu definieren, ist das mit splitindex kein Problem:
\documentclass[ngerman]{scrreprt}

\makeatletter
\renewcommand*{\idx@@heading}{\section}
\makeatother

\usepackage[makeindex]{splitidx}
\newindex[Personenregister]{namen}
\newindex[Ortsregister]{orte}
\newindex[Werkeregister]{werke}
\extendtheindex{}{\small}{}{}

\begin{document}

\sindex[namen]{Name}Name
\sindex[orte]{Ort}Ort
\sindex[werke]{Werk}Werk

\setcounter{chapter}{7}
\chapter{Verzeichnisse}
\printsubindex[namen]

\end{document}

Verfasst: Do 29. Jul 2010, 15:56
von reneni
KOMA hat geschrieben:... ist das mit splitindex kein Problem:
Danke, KOMA, aber ich verwende leider immer noch multind. Nicht weil ich so sehr dran hänge, sondern weil es mir schlicht nicht gelingt, splitindex zu installieren.
Gibt es eine Lösung für multind, mit etoolbox (wie oben)? Vor allem, um die automatischen Überschriften für die untergeordneten Register (Personen, Orte) zu verkleinern, die sind nämlich leider genauso groß wie die Hauptüberschrift "Register", die ich per
\addcontentsline{toc}{chapter}{Register}
erzeugen muss.

Danke, Christopher

Verfasst: Do 29. Jul 2010, 21:46
von lockstep
Wiederum ohne Garantie:
\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
  \columnseprule \z@ \columnsep 35pt
  \newpage \twocolumn[\section{#2}]
  \@input{#1.ind}}
\makeatother
(Wobei es vermutlich auch einen Weg mittels \patchcmd gibt.)

lockstep