Dieser Quellcode:

Open in writeLaTeX
%Definition: Komponisteneintrag  
\newcounter{komp}\setcounter{komp}{1}   
%Def. Komponistendaten:  
\newcommand{\komp}[3]{$ ^{\thekomp}$\textbf{{#1}}\stepcounter{komp}%  
    \ifthenelse{\equal{#2}{}}{}{%  
        \ifthenelse{\equal{#3}{}}{ (*{#2})}{ (*{#2} -- \Cross{#3})}}}

\komp{Adorno, Theodor W.}{1903 Frankfurt a.M.       }{1969 Visp}   
\begin{compactenum}{\vspace*{-1mm}}                      %rückt den Absatz um 1mm nach oben  
    \item Sechs Bagatellen für Singstimme Singstimme Singstimme Singstimme und Klavier op. 6 (1923) 
        \begin{small}\begin{compactenum} [\hspace*{2mm}]   %rückt alle item um 2mm ein im Fall der Nummerierung von Hand  
        \item 4. O deine Hände (Lasker-Schüler)  
        \item 6. Steh ich in finstrer Mitternacht (aus dem Krieg 1914-18)  
        \item 1. Ich und mein Katharinelein (Kinderreim)  
        \item 2. Lied der Kammerjungfer (Kokoschka aus "Hiob")  
        \item 3. Trabe kleines Pferdchen (Kafka)  
        \item 5. An Zimmern (Hölderlin)  
        \end{compactenum}\end{small}

    \item Hebräische Balladen op. 34  
        \begin{small}\begin{compactenum}  
        \item Mein Volk  
        \item Boas  
        \item Ruth  
        \item Versöhnung  
        \item An Gott  
        \end{compactenum}\end{small}

    \item Einzelkompositionen  
    \begin{small}\begin{compactenum}  
        \item Mein Lied  
        \item Jerusalem  
        \item David und Jonatan  
    \end{compactenum}\end{small}  
\end{compactenum}

erzeugt den nachfolgenden - so auch gewollten - Text:

Open in writeLaTeX
20Adorno, Theodor W. (* 1903 Frankfurt a.M. — t1969 Visp)  
  A. Sechs Bagatellen fur Singstimme und Klavier op. 6 (1923) 4.0 deine Hände (Lanker-Schüler)  
     6. Stelz ich in finstrer Mitternacht (aus dem Krieg 1914-18)  
     1. Ich und mein Katharinelein (Kinderreim)  
     2. Lied der Kammerjungfer (Kokoschka aus "Hiob")  
     3. Trabe kleines Pferdchen (Kafka) 5. An Zimmern (Hölderlin)  
  B. Hebräische Balladen op. 34  
     1. Mein Volk   
     2. Boas  
     3. Ruth  
     4. Versöhnung  
     5. An Gott  
  C. Einzelkompositionen  
     1. Mein Lied  
     2. Jerusalem  
     3. David und Jonatan

Frage: Wie muss eine Umgebung in LaTex geschrieben werden, die dies ebenfalls vermag und zudem für ein spezielles Stichwortverzeichnis jeden Eintrag der zweiten Listenebene dort unter seinem Stichwort mit Referenz des aktuellen Zählerstandes \thekomp des zugehörigen Komponisten listet (hier 20 für Adorno). Etwa so: Mein Volk: 20;

gefragt 16 Mär '14, 20:48

kabel's gravatar image

kabel
2212220
Akzeptiert: 70%

bearbeitet 17 Mai '14, 10:01

Clemens's gravatar image

Clemens
19.0k113060

1

Die Hochstellung des Komponistenzählers funktioniert bei dir nicht und \Cross soll mit Sicherheit auch kein t ergeben. Für den Zähler musst Du IMHO die Definition so schreiben: ${}^{\thekomp}$. Wie ich gerade sehe, wird \Cross durch das Paket marvosym bereitgestellt (ist wohl nur ein Kopierartefakt, oder?). (Edit) Die Pakete bbding und pifont enthalten sogar eine Auswahl an Kreuzen, vgl. How to make a cross symbol in LaTeX (TeX.SE).

(17 Mär '14, 14:48) Speravir

[Ich hoffe das ist komplex genug ;)]


Bemerkungen

  1. Ich habe \komp zu einer Umgebung \begin{komp}...\end{komp} gemacht, um die logische Struktur im Dokument besser zu erhalten.
  2. Für die Listen gibt es outerlist, innerlist und indexlist. innerlist macht einfach nur \small während indexlist die einzelnen \item zum Index hinzufügt.
  3. Innerhalb von indexlist scannt \item bis zum Ende der Zeile und fügt alles zum Index hinzu.
  4. \index wurde gepatcht, dass statt der Seitenzahl die Zahl des Komponisten angezeigt wird. (Damit hat \index seine ursprüngliche Funktionalität verloren!)
  5. Für Geburt und Tod werden die Mathesymbole $\ast$ und $\dag$ verwendet.

MWE

Open in writeLaTeX
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage[utf8]{inputenx}
\usepackage{paralist,makeidx,etoolbox}
\makeatletter
% Index
\makeindex
\patchcmd{\@wrindex}{\thepage}{\thekomp}{}{}

% Item to index
\def\@itm{
  \begingroup
  \catcode`\^^M=13
  \@@itm
}
\begingroup
\catcode`\^^M=13
\gdef\@@itm#1^^M%
  {\endgroup\o@item#1\index{#1}}
\endgroup

% Komp stuff
\newcounter{komp}
\setcounter{komp}{19}
\newenvironment{komp}[3]{%
  \par\noindent%
  \refstepcounter{komp}%
  \textsuperscript{\thekomp}%
  \textbf{#1}
  \ifx\relax#2\relax\else
    \ifx\relax#3\relax
      (*#2)
    \else
      ($\ast$#2 -- $\dag$#3)
    \fi
  \fi
}{}
\newenvironment{outerlist}{
  \begin{compactenum}
}{
  \end{compactenum}
}
\newenvironment{innerlist}{
  \begin{compactenum}
  \small
}{
  \end{compactenum}
}
\newenvironment{indexlist}{
  \begin{compactenum}
  \let\o@item=\item
  \let\item=\@itm
  \small
}{
  \let\item=\o@item
  \end{compactenum}
}

\begin{document}
\begin{komp}{Adorno, Theodor W.}{1903 Frankfurt a.M.}{1969 Visp}
  \begin{outerlist}
    \item Sechs Bagatellen für Singstimme Singstimme Singstimme Singstimme und Klavier op. 6 (1923)
    \begin{innerlist}
      \item 4. O deine Hände (Lasker-Schüler)
      \item 6. Steh ich in finstrer Mitternacht (aus dem Krieg 1914-18)
      \item 1. Ich und mein Katharinelein (Kinderreim)
      \item 2. Lied der Kammerjungfer (Kokoschka aus "Hiob")
      \item 3. Trabe kleines Pferdchen (Kafka)
      \item 5. An Zimmern (Hölderlin)
    \end{innerlist}
    \item Hebräische Balladen op. 34
    \begin{indexlist}
      \item Mein Volk
      \item Boas
      \item Ruth
      \item Versöhnung
      \item An Gott
    \end{indexlist}
    \item Einzelkompositionen
    \begin{indexlist}
      \item Mein Lied
      \item Jerusalem
      \item David und Jonatan
    \end{indexlist}
  \end{outerlist}
\end{komp}

\printindex
\end{document}

alt text

alt text

Permanenter link

beantwortet 22 Jun '14, 17:26

Henri's gravatar image

Henri
10.0k31730

Ganz herzlichen Dank. Sie haben sich sehr viel Mühe gemacht! Bellenberg

(22 Jun '14, 18:03) kabel
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×12
×12

Frage gestellt: 16 Mär '14, 20:48

Frage wurde angeschaut: 2,078 Mal

Zuletzt aktualisiert: 22 Jun '14, 18:03