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 17 Mär '14, 01:48

kabel's gravatar image

kabel
25982632
Akzeptiert-Rate: 33%

bearbeitet 17 Mai '14, 16:01

cgnieder's gravatar image

cgnieder
22.1k243463

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, 19: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, 23:26

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

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

(23 Jun '14, 00:03) kabel
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×16
×16

gestellte Frage: 17 Mär '14, 01:48

Frage wurde gesehen: 9,034 Mal

zuletzt geändert: 23 Jun '14, 00:03