PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : automatisch Index oder Glossar aus Description-Umgebung



ifconfig
29-09-2007, 17:01
Hallo,
wie kann ich automatisch aus den Stichwörtern der Description-Umgebung einen Index oder ein Glossar erstellen? Ich will mir ersparen, daß ich da jedesmal \index{Stichwort} dazuschreiben muss. Beispiel:
\begin{description}
\item [Stichwort\index{Stichwort}]blabla...

Grüße,
ifconfig

edico
30-09-2007, 09:33
Versuch es vielleicht mal so:

\documentclass[a5paper]{book}
\usepackage[a5paper,margin=1in]{geometry}
\usepackage{xcolor}
\usepackage[colorlinks,linkcolor=black!60!blue!90!
]{hyperref}% <<<<<<<<<<<<<<<<<<<<<<<<<< muss vor glossary stehen!

\usepackage[style=list]{glossary}
\makeglossary

\newcommand{\itm}[2]{%
\item[#1:]{#2}%
\xglossary{name=#1,description=#2}{}%
}

\begin{document}

\begin{titlepage}
\begin{flushright}
\vspace*{64pt}\bfseries
\huge Description with Glossary\par
\vspace{12pt}
\Large How to make a glossar on the fly \par by generating a list\par
\vspace{12pt}
Edico\par\vfill
\normalfont\normalsize
This page is a simple holding-ground\par
for \LaTeX{}-related tips and tricks.
\end{flushright}
\end{titlepage}

\tableofcontents

\chapter{Compiling}
pdflatex foo -- makeindex -s foo.ist -t foo.glg -o foo.gls foo.glo --
pdflatex foo -- pdflatex foo -- pdflatex foo


\chapter{Listing}
%%% ------------------------------------------------------------------
%%% Generate a description list
%%% ------------------------------------------------------------------
\begin{description}
\itm{Berlin}{die Hauptstadt Deutschlands}
\itm{Deutschland}{ein Staat Europas}
\itm{Glossar}{Wortliste alphabetisch}
\end{description}

\appendix
%%% ------------------------------------------------------------------
%%% Generate a glossary
%%% ------------------------------------------------------------------
\printglossary

\end{document}

edico

ifconfig
30-09-2007, 19:04
Hallo Edico,
ich bekomme leider eine Fehlermeldung vom Kile beim Compilieren deines Codes:
[LaTeX] test.tex => test.dvi (latex)
[LaTeX] mit Status 1 beendet
./test.tex:9:File `glossary.sty' not found. \makeglossary
[LaTeX] 1 Fehler, 0 Warnungen, 0 badboxes

Wie bekomm ich das zum Laufen?

Grüße,
ifconfig

edico
30-09-2007, 20:24
`glossary.sty' not found.
Du hast das package glossary,sty nicht auf Deinem Rechner -- zumindest liegt es nicht im Pfad. Zwischenzeitlich hat Nicola Talbot dieses ersetzt durch glossaries.
Insofern kannst Du entweder das 'ältere' versuchen runter zu laden und einzubinden oder Du schreibst den command für das glossaries um. Dürfte vermutlich kein allzu grosser Unterschied sein. ;-)

edico

edico
01-10-2007, 08:27
Ich schrieb im letzten posting #4

den command für das glossaries um. Dürfte vermutlich kein allzu grosser Unterschied sein.
Das ist nicht richtig, insofern die Schlüsselwörter für glossaries in der Präamble, für ein eListe im Dokument deklariert werden. Eine Umschreibung für glossaryentry resp. items, wie beim Vorgängermodell glossary skizziert, wird damit doch ein wenig 'komplexer'.

Eine andere Möglichkeit ist die auch vom OP angedachte Konstellation mit Index, die ggf. so aussehen kann:

\documentclass[a5paper,oneside,smallheadings,ngerman]{scrbook}
\usepackage{times,graphicx,xcolor}
\unitlength=1cm
\usepackage[plainpages=false,colorlinks]{hyperref}

%%% --------------------------------------------------------------------------
%%% Index
%%% --------------------------------------------------------------------------
\usepackage{makeidx}
\makeindex

\newcommand{\itx}[2]{%
\item[#1:]{#2} %
\index{#1}%
}

\begin{document}

%%% --------------------------------------------------------------------------
%%% Frontmatter
%%% --------------------------------------------------------------------------
\frontmatter
\begin{titlepage}
\begin{flushright}
\vspace*{64pt}\bfseries
\huge Description with Index\par
\vspace{12pt}
\Large How to make an index on the fly \par by generating a list\par
\vspace{12pt}
Edico\par\vfill
\normalfont\normalsize
This page is a simple holding-ground\par
for \LaTeX{}-related tips and tricks.
\end{flushright}
\end{titlepage}

\tableofcontents

%%% --------------------------------------------------------------------------
%%% Mainmatter
%%% --------------------------------------------------------------------------
\mainmatter

\chapter[Description containing index]
{To make a description list containing index}
\begin{description}
\itx{Berlin}{die Hauptstadt Deutschlands}
\itx{Deutschland}{ein Staat Europas}
\itx{Glossar}{Wortliste alphabetisch}
\end{description}

%%% --------------------------------------------------------------------------
%%% Backmatter
%%% --------------------------------------------------------------------------
\backmatter
%\appendix
\cleardoublepage % <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< neue Seite
\phantomsection % <<<<<<<<<<<<<<< generiert Anker fr \addcontentsline
\addcontentsline{toc}{chapter}{Index}% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
\printindex

\end{document}

edico

ifconfig
01-10-2007, 12:34
Hallo Edico,
vielen Dank für diesen neuen Code, der lässt sich compilieren und macht genau, was ich brauche.
Damit spare ich künftig viel Zeit und TeXen macht dadurch noch mehr Spaß :-)

Grüße,
ifconfig

ifconfig
02-10-2007, 10:43
Hallo Edico,
ich bekomme in Kombination mit der verbatim-Umgebung folgende Fehlermeldung beim Compilieren:
./ldap.tex:70:Argument of \@xverbatim has an extra }. }

bei dem Code:
\itx{LDAP URLs}{blabla...\begin{verbatim}
blabla
\end{verbatim}
}

Aber wenn ichs ohne verbatim mache, klappts:
\itx{LDAP URLs}{blabla}

Wie kann ich diesen Verbatim-Konflikt lösen?

Grüße,
ifconfig

rais
02-10-2007, 11:56
Moin moin,


Wie kann ich diesen Verbatim-Konflikt lösen?

Verbatim innerhalb eines Befehls scheint nicht ganz ohne Hürde zu sein, vgl. FAQ 7.3 (http://www.dante.de/faq/de-tex-faq/html/makros3.html#60).
Wenn es Dir nur um die Angabe von URLs geht, kannst Du es vielleicht mit dem \url-Befehl aus dem gleichnamigen Paket bereits erreichen, wenn Du die verbatim-Umgebung auch noch für was anderes brauchst, dann könntest Du z. B. den \itx-Befehl etwa so umbauen:


\newcommand\itx[1][]{%
\item[#1:]%
\index{#1}%
}

und dann entsprechend \item innerhalb einer description-Umgebung aufrufen, also


\begin{description}
\itx[LDAP URLs] bla blubb
\end{description}

da sollte es dann auch mit der verbatim-Umgebung bei ``bla blubb´´ hinhauen, weil diese nun nicht mehr an den \itx-Befehl übergeben wird.
MfG,

ifconfig
02-10-2007, 12:39
Hallo Rainer,
dein Code lässt die Stichworte aus dem Index und aus der Description verschwinden. Im Description-Teil steht nun nur noch ein Doppelpunkt anstatt dem fettgedruckten Stichwort. Die noch vorhandenen fetten Stichwörter entstammen dem herkömmlichen Code mit \item{Stichwort}.

Ich hab das Bildschirm-Foto dazu angehängt.

Kannst Du das Problem lösen?

Grüße,
ifconfig

rais
02-10-2007, 13:11
Hallo ifconfig,
da hab ich zuviel geändert -- oder Du zu wenig;-)
Mit


\newcommand\itx[1][]{%
\item[#1:]%
\index{#1}%
}
erwartet \itx eckige Klammern (wenn überhaupt). Wenn Dir das zu umständlich ist, dann lass einfach die leere eckige Klammer in der Definition weg:


\newcommand\itx[1]{%<--
\item[#1:]%
\index{#1}%
}
damit hast Du dann wieder geschweifte Klammern.
MfG,

ifconfig
02-10-2007, 13:50
Hallo Rainer,
super, damit klappts nun auch mitm Verbatim.
Vielen Dank :)
Grüße,
ifconfig