Personenregister über backref-Befehl generieren

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


OktoberGrabowski
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Di 11. Aug 2020, 20:44

Personenregister über backref-Befehl generieren

Beitrag von OktoberGrabowski »

Schönen guten Abend!

Ich muss für ein Buch ein Personenregister erstellen.
In meinem Text sind die Personen allerdings deckungsgleich mit den Autoren, die ich zitiere und die alle in meinem Literaturverzeichnis vorkommen. Jetzt habe ich mich an den backref-Schalter erinnert, durch den man im Literaturverzeichnis hinter jeden Eintrag die entsprechenden Seitenzahlen setzen kann. Bevor ich mir nun die Arbeit mache und hinter jedes Zitat noch einen Index-Eintrag setze, dachte ich frage mal nach, ob jemand von Euch eine Idee hat, wie man den backref-Schalter für das Personenregister nutzbar machen kann.

Hier mein Minimal-Beispiel, in dem der Index-Eintrag noch mit \sindex erzeugt wird:

 
\begin{filecontents*}{bediaBibliographie.bib}
	@ARTICLE{Beispiel2010,
		author = {Max Muster},
		title = {goLaTeX Wiki-Beispiel},
		journal = {LaTeX Journal},
		year = {2010},
		pages = {1-3},
		timestamp = {2010.03.21},
		url = {http://www.golatex.de/wiki/index.php?title=Minimalbeispiel}
	} 
\end{filecontents*}

\documentclass[
10pt,a4paper
]{scrbook}

%%%% INPUT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

%%% SPRACHEN und Extra Packages %%%%%%%%%%%
\usepackage{lmodern}
\usepackage[ibycus,ngerman]{babel} 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% LITERATURVERWALTUNG %%%%%%%%%%%
\usepackage[style=footnote-dw,
backend=biber,
bibencoding=utf8,
pagetracker=page,
ibidtracker=constrict,
idemtracker=constrict,
citedas=true,
backref=true,
citepages=separate,
citeauthor=namefont
]
{biblatex}
\addbibresource{bediaBibliographie.bib}

%%%%REGISTER
\usepackage{makeidx}
\usepackage{manyind}
\makeindex

\begin{document} 

\section{Hier gehts los}

\section{Hier gehts weiter}
Max Muster\sindex[P]{Muster} hat das beste Beispiel.\cite{Beispiel2010}
	
\printbibliography

\renewcommand{\indexname}{1. Personenregister}
\setindex{P}
\printindex
\addcontentsline{toc}{section}{1. Personenregister}
	
\end{document}	

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Personenregister über backref-Befehl generieren

Beitrag von MoeWe »

biblatex kann von sich aus \index-Aufrufe ausführen. Die relevante Paket-Option heißt indexing. Was genau wie zum Index hinzugefügt wird, wird normalerweise von den bibmacros citeindex und bibindex kontrolliert. Natürlich werden dadurch nur Vorkommen von Namen, Titeln etc. zum Index hinzugefügt, die von biblatex selbst in Zitaten oder Bibliographie-Einträgen erzeugt werden. Dein manuelles

Max Muster\sindex[P]{Muster}

kann also nur gut automatisiert werden, wenn Du stattdessen zu einem biblatex-Befehl übergehst

\citeauthor{Beispiel2010} 

Leider habe ich gerade nicht die Zeit, Dein (gutes) Minimalbeispiel anzupassen und zu testen, aber es gibt von biblatex mehrere Beispieldateien mit Index http://mirrors.ctan.org/macros/latex/co ... single.tex, http://mirrors.ctan.org/macros/latex/co ... ltiple.tex, http://mirrors.ctan.org/macros/latex/co ... bentry.tex. Bei TeX.SX gibts noch https://tex.stackexchange.com/q/507429/35864

Wenn Du mit den Hinweisen in den Dateien nichts anfangen kannst, kannst Du Dich ja nochmal melden. Ansonsten freut man sich hier im Forum auch, wenn Du Deine Frage selbst beantwortest.


OktoberGrabowski
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Di 11. Aug 2020, 20:44

Re: Personenregister über backref-Befehl generieren

Beitrag von OktoberGrabowski »

Vielen herzlichen Dank für die Links, lieber MoeWe!
Mit Hilfe des letztgenannten Links konnte ich das gesuchte Personenregister erstellen - Problem gelöst!

Minimalbeispiel
\begin{filecontents}{bediaBibliographie.bib}
@ARTICLE{Beispiel2010,
author = {Max Muster},
title = {goLaTeX Wiki-Beispiel},
journal = {LaTeX Journal},
year = {2010},
pages = {1-3},
timestamp = {2010.03.21},
url = {http://www.golatex.de/wiki/index.php?ti ... albeispiel}
}
\end{filecontents}

\documentclass[
10pt,a4paper
]{scrbook}

%%%% INPUT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

%%% SPRACHEN und Extra Packages %%%%%%%%%%%
\usepackage{lmodern}
\usepackage[ibycus,ngerman]{babel}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% LITERATURVERWALTUNG %%%%%%%%%%%
\usepackage[style=footnote-dw,
backend=biber,
bibencoding=utf8,
pagetracker=page,
ibidtracker=constrict,
idemtracker=constrict,
citedas=true,
backref=true,
citepages=separate,
citeauthor=namefont,
indexing=cite%%%%%NEW
]
{biblatex}
\addbibresource{bediaBibliographie.bib}

%%%%REGISTER
\usepackage{imakeidx}
\makeindex[intoc,title={1. Sachregister}
]
\makeindex[intoc,name=names,title={2. Personenregister}
]
\DeclareIndexNameFormat{default}{%
\usebibmacro{index:name}{\index[names]}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}
\renewbibmacro*{citeindex}{%
\ifciteindex
{\indexnames{labelname}}
{}}

\makeatletter
\newcommand\ila@it@abshanghyphen{%
\ila@it@abshang% layout hang verwenden, aber
\renewcommand{\subitem}{\@idxitem\hspace*{\ila@subindent}--\enskip}% \subitem ändern
% Hier ggf. auch noch \subitem ändern.
}
\makeatother

\usepackage[justific=raggedright,
itemlayout=abshanghyphen,
%itemlayout=singlepar,
indentunit=1em,
hangindent=0.4cm,
subindent=0.26cm,
subsubindent=1em,
%totoc=on
]{idxlayout}
\renewcommand*{\indexfont}{\fontsize{8.5pt}{10.5pt}\selectfont }

\makeatletter
\renewcommand{\subitem}{\@idxitem{--}\hspace{\ila@subindent}}%
\renewcommand{\subsubitem}{\@idxitem{--}\hspace{\ila@subsubindent}}%
\makeatother
\renewcommand*\see[2]{\emph{\seename} #1}

\begin{document}
\tableofcontents
\chapter{Hier gehts los}
Max Muster\index{Krasser Verlauf}
hat das beste Beispiel.\cite{Beispiel2010}

\chapter{Hier gehts weiter}
Max Muster%\sindex{Muster}
hat das beste Beispiel.\cite{Beispiel2010}

\printbibliography

\addchap{\centering Register}
\printindex % the general index
\printindex[names] % the name index


\end{document}
[/MWE]


Antworten