Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Index mit Makros

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30

    Index mit Makros

    Hi Leute,

    habe folgende Problem:
    Möchte eine Dokumentation zu einem Projekt schreiben (Klassen und deren Methoden dokumentieren) - mit LaTeX.

    Damit man sich schnell zurecht findet, soll es einen Index geben mit Sortierung nach Objekten und untergeordnet deren Methoden.

    Um Schreibaufwand zu sparen ist meine Vorgehensweise die folgende (siehe Minimalbeispiel):

    Für jede beschriebene Klasse wird ein Makro gesetzt:
    \setObj{KlasseA}
    und in den Index aufgenommen \index{\getObj}

    Die Erklärungen der Methoden sollen mit in den Index aufgenommen werden mit
    \index{\getObj!methodename()}.


    Mein Problem ist das folgende: (Siehe Ausgabe main.ind).
    Dieses \getObj wird 1:1 ins das Indexfile (main.ind) übertragen, nicht aber deren Inhalte.

    Also auf das Beispiel bezogen:
    Inhalt von main.ind
    Code:
    \begin{theindex}
      \item \getObj , 1, 2
        \subitem add(), 1
        \subitem div(), 2
        \subitem set(), 1
        \subitem sub(), 2
    \end{theindex}
    gewünschter Inhalt:
    Code:
    \begin{theindex}
      \item classA , 1
        \subitem add(), 1
        \subitem set(), 1    
      \item classB , 2
        \subitem div(), 2
        \subitem sub(), 2
    \end{theindex}
    Ich hoffe ich bin zu verstehen.
    Vielen Dank, wenn sich jemand der Sache annimmt.

    Liebe Grüße,
    derJan

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Ka55i0peia Beitrag anzeigen
    Um Schreibaufwand zu sparen ist meine Vorgehensweise die folgende (siehe Minimalbeispiel):
    ich seh den `geringeren Schreibaufwand' nicht ganz ...
    Zitat Zitat von Ka55i0peia Beitrag anzeigen
    Für jede beschriebene Klasse wird ein Makro gesetzt:
    \setObj{KlasseA}
    und in den Index aufgenommen \index{\getObj}

    Die Erklärungen der Methoden sollen mit in den Index aufgenommen werden mit
    \index{\getObj!methodename()}.


    Mein Problem ist das folgende: (Siehe Ausgabe main.ind).
    Dieses \getObj wird 1:1 ins das Indexfile (main.ind) übertragen, nicht aber deren Inhalte.
    versuch es so:
    Code:
    \documentclass[a4paper,12pt]{scrreprt}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{index} %Mehrer Indexe
    \newindex{default}{idx}{ind}{Klassenverzeichnis}
    
    \newcommand{\initObj}{ \newcommand{\getObj}{initObj} }
    \newcommand{\setObj}[1]{ \renewcommand{\getObj}{#1} } 
    
    \newcommand*\Index[1]{%
      \expandafter\index\expandafter{#1}}
    \begin{document}
    \chapter{Die Klassen}
    \initObj
    
    	\section{Klasse A}\setObj{classA}
    		\Index{\getObj}
    		
    		\subsection{Methoden}
    			\begin{enumerate}
    				\item Methode add \Index{\getObj!add()} \\Erklärung Erklärung Erklärung
    				\item Methode set \Index{\getObj!set()}	\\Erklärung Erklärung Erklärung		
    			\end{enumerate}
    
    \newpage %damit der Effekt deutlicher wird (im Index 2)
    	
    	\section{Klasse B}\setObj{classB}
    		\Index{\getObj}
    		
    		\subsection{Methoden}
    			\begin{enumerate}
    				\item Methode sub \Index{\getObj!sub()} \\Erklärung Erklärung Erklärung
    				\item Methode div \Index{\getObj!div()}	\\Erklärung Erklärung Erklärung		
    			\end{enumerate} 	
    	\printindex
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30

    Danke

    Hat geklappt, VIELEN DANK!

    Eine Fragen zum Verständnis:
    • Was macht \expandafter\index\expandafter{#1}?


    ich seh den `geringeren Schreibaufwand' nicht ganz
    Schon klar, is auch nen sehr abstraktes Beispiel. Hab viel mit \newcommand für Styles gearbeitet und da werden die \Index gleich mitgesetzt. Wollts Bsp aber simpel halten

    Nochma danke für die schnelle und präzise Antwort!

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Ka55i0peia Beitrag anzeigen
    Eine Fragen zum Verständnis:
    • Was macht \expandafter\index\expandafter{#1}?
    da hilft vllt erstmal http://www.tug.org/utilities/plain/c...expandafter-rp

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •