... also ich frag mich eh: Sollte man das nicht mit dem Literaturverzeichnis verbinden? Und Danke! Open in writeLaTeX
%\documentclass[]{scrreprt} %listof = totoc \documentclass[varwidth, margin=10pt]{standalone} \usepackage{xcolor} \pagecolor{green!20!yellow} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} %======= \begin{document} %======= Prinzipiell so: \\ \textbf{Namensverzeichnis:} \\ \\ \textsc{Einstein, Albert} (1879-1955): deutscher Physiker, .... (siehe S.1, 2, 3 und [Ein1950], [Ein1953])\\ \textsc{Fourier, Joseph} (1768-1830): französischer Physiker, .... (siehe S.1, 2, 3 und [Fou1812]) %======= \end{document} %======= gefragt 11 Jun '14, 01:42 cis |
Das ist eine schöne Anwendung für ein Paket wie Open in writeLaTeX
\RequirePackage{filecontents} \begin{filecontents*}{\jobname-aut.mst} delim_0 "\\begin{indexpagenumbers}" delim_t "\\end{indexpagenumbers}" \end{filecontents*} %\documentclass[varwidth, margin=10pt]{standalone} %\usepackage{xcolor} %\pagecolor{green!20!yellow} \documentclass{scrartcl} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} \usepackage[makeindex]{splitidx} % Neuen Index definieren: \newindex[Namensverzeichnis]{aut} % Damit wir nicht immer die ganze Erklärung zum Autor neu schreiben müssen, % definieren wir uns einen Befehl, mit dem wir das je Autor einmal machen: \newcommand{\newauthor}[2]{% \expandafter\newcommand\csname explain.\detokenize{#1}\endcsname{ #2}% } % Jetzt könnten wir natürlich nicht mehr einfach \sindex (siehe % splitidx-Anleitung) verwenden, wir wollen ja auch, dass die % Autorinformationen mit ausgegeben werden. Also definieren wir uns dafür % einen neuen Befehl. Optionales Argument ist hier ggf. eine andere % Sortiervorgabe. Ich zeige die Verwendung gleich noch. \newcommand{\authorindex}[2][\optarg]{% \def\optarg{#2}% \sindex[aut]{#1@\indexauthor{#1}}% } % Hier definieren wir, wie \indexauthor aus dem vorherigen Befehl den % Autor später ausgeben soll. \DeclareRobustCommand{\indexauthor}[1]{% \textsc{#1}\csname explain.\detokenize{#1}\endcsname } % Weil die Seitenzahlen etwas anders eingeleitet werden sollen, definieren wir % dafür einfach eine Umgebung. Diese wird per delim_0 und delim_t um die % Seitenzahlenausgabe in die ind-Datei gebracht. \newenvironment{indexpagenumbers} {\space\dotfill\space(siehe S.\space} {)} % Jetzt kommt ein Trick: Um die Literatureinträge in den Index zu bekommen, % verwenden wir eine Darstellungsform für die Seitenzahlen. Diese bekommt aber % zusätzlich zum Argument für die Seitenzahl ein erstes Argument mit dem % Literaturkey. \DeclareRobustCommand{\indexciteentry}[2]{% \cite{#1}% } \newcommand*{\authorindexcite}[2]{% \sindex[aut]{#1@\indexauthor{#1}|indexciteentry{#2}}% } \usepackage{blindtext} \usepackage{hyperref} \begin{document} \newauthor{Einstein, Albert}{(1879--1955): deutscher Physiker} \newauthor{Fourier, Joseph}{(1768--1830): französischer Physiker} % ACHTUNG: Hier muss es gleich Foebe statt Föbe heißen! \newauthor{Foebe, Klara}{Hier zeige ich, wie ö als oe sortiert werden kann} \section{Einleitung} \blindtext Wie schon Albert Einstein schrieb.\authorindex{Einstein, Albert}. Sein Kollege Fourier\authorindex{Fourier, Joseph} meinte zu demselben Thema ein Jahrhundert früher \blindtext. \blinddocument Wie schon Albert Einstein schrieb.\authorindex{Einstein, Albert}. Sein Kollege Fourier\authorindex{Fourier, Joseph} meinte zu demselben Thema ein Jahrhundert früher \blindtext Die Frau von Alber Einstein hieß übrigens nicht Klara Föbe\authorindex[Foebe, Klara]{Föbe, Klara}. \begin{thebibliography}{XXX9999} \bibitem[Ein1950]{Ein1950} Was auch immer er da geschrieben hat. \bibitem[Ein1953]{Ein1953} Was auch immer er danach geschrieben hat. \end{thebibliography} % Das folgende muss vor dem Index gemacht werden! % Vermutlich könnte man es bei biblatex auch irgendwie die Erzeugung des % Literaturverzeichnisses einbauen. \authorindexcite{Einstein, Albert}{Ein1950} \authorindexcite{Einstein, Albert}{Ein1953} % Die folgenden Zeilen sind (fast) direkt aus der splitindex-Anleitung kopiert: \begingroup % hold following extension local to this group \makeatletter % allow @ at macro names \extendtheindex% some changes of theindex environment {\let\twocolumn\@firstoptofone % deactivate \twocolumn \let\onecolumn\@firstoptofone % deactivate \twocolumn \let\clearpage\relax % deactivate \clearpage }% changes before beginning {}% no change after beginning {}% no change before ending {}% no change after ending \makeatother % deactivate \makeatletter \printindex[aut] % print index aut \endgroup % end group with extended theindex environment \end{document} Aufruf des ganzen:
unter der Voraussetzung, dass obige Datei unter dem Namen Wie man das ganze mit dem hier so beliebten Was noch fehlt ist, dass vor den Zitaten im Index ein »und« an Stelle des Kommas verwendet wird. Dafür müsste man vermutlich mit einem Befehl statt des Kommas arbeiten und über einen Zähler dann die Umschaltung vornehmen. Das war mir aber zu aufwändig. Mir reicht das so bereits. Die macht einen guten Eindruck! Aber warum tut das bei mir nicht? Hab mehrmals genau so kompiliert (auch mit Varianten,
(18 Jun '14, 10:38)
cis
@cis Bei mir läuft das Beispiel unter MiKTeX/Windows und unter TeX Live 2014/Ubuntu, aber mit TeX Live2014/Windows bekomme ich beim Aufruf von splitindex eine Fehlermeldung.
(18 Jun '14, 11:14)
esdd
Ja schon klar; wollt ja nur andeuten, daß man hier auch mal eine arara-Regel bräuchte. Also
(18 Jun '14, 11:46)
cis
1
Wenn es ohne Endung nicht geht, dann probiert es mal mit Endung Man kann aber auch Option
(18 Jun '14, 20:19)
gast3
Ja stimmt, mit
(18 Jun '14, 21:15)
esdd
Ja, so tut es. PS: Bild ergänzt in der AW.
(18 Jun '14, 21:57)
cis
Ergebnis 5 von 6
show 1 more comments
|