PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sections auflisten, in denen ein bestimmtes cite oder label gesetzt ist



rstuby
04-08-2012, 09:31
Hallo!
Ich hätte gerne so was ähnliches wie die Backref-Funktion, aber mit Angabe der section und nicht der Seite. Es ist mir ziemlich egal,ob das in der Bibliographie geschieht oder ob ich das Quellenverzeichnis dafür anders erstellen muss und ob ich dafür backref, hyperref oder noch was verwende, nur muss es sich mit musixtex vertragen (deswegen habe ich das Paket und die Maßnahme zu seiner Verträglichkeit mit biblatex im Beispiel dringelassen).
Also die Quellenliste sollte dann ungefähr so aussehen:

- Gesellschaft für Noten, Hrsg. Musterlieder mit allem. Superverlag, 2011: 1, 3
- ...

oder:

- Gesellschaft für Noten, Hrsg. Musterlieder mit allem. Superverlag, 2011: 1 Lied Nummer eins, 3 Lied Nummer drei
- ...

Geht so was und zu welchem Paket muss ich da die Doku studieren?


\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[backend=biber, bibencoding=utf8, backref]{biblatex}
\addbibresource{testbib.bib}
\usepackage[unicode]{hyperref}
\usepackage{musixtex}
\begin{document}
text
\section{Lied Nummer eins}
Noten mit leichten Änderungen aus: \cite{muster}
\section{Lied Nummer zwei}
Noten handschriflich von Max Mustermann
\section{Lied Nummer drei}
Noten transponiert und vereinfacht aus \cite{muster}
\makeatletter
\renewrobustcmd*{\addspace}{%
\unspace\blx@postpunct
\space\blx@imc@resetpunctfont}
\makeatother
\printbibliography
\end{document}
Und die testbib.bib:

@Book{muster,
title = {Musterlieder mit allem},
publisher = {Superverlag},
year = {2011},
editor = {Gesellschaft für Noten},
}

ctansearch
05-08-2012, 16:08
Hallo, rstuby
versuchs mal damit. Ist aber nur an Beispiel ohne Musixtex getestet.



\makeatletter
\renewcommand{\blx@addbackref@i}[1]{%
\ifbacktracker
\blx@leavevmode
\if@filesw
\protected@write\@mainaux{}{\string\abx@aux@backre f
{\the\c@instcount}{#1}{\the\c@refsection}%
{\thepage.\thesection}{\noexpand\the\c@page}}%
\fi
\fi}
\makeatother

rstuby
05-08-2012, 17:39
Das sieht vielversprechend aus. Es beißt sich zumindest nicht mit musixtex.
Das \thepage. muss natürlich weg, sonst gibt er immer noch die Seitennummer und einen Punkt dazu an, also 1.1, 1.3 - das ist aber nicht erwünscht.
Dummerweise wird das, was da ermittelt wird. intern für Seitennummern gehalten, was man an den Warnungen, dass Seite 3 im Beispiel nicht existiert, merkt. Aber Warnungen sind ja kein Weltuntergang und das "siehe S." lässt sich bestimmt auch ändern, ich gucke gleich mal in die Biblatex-Doku.

ctansearch
05-08-2012, 20:34
(siehe S.)
ist in /usr/share/texmf/tex/latex/biblatex/lbx/german.lbx definiert


backrefpages = {{siehe Seiten}{siehe S\adddot}}

verändern kann man das durch:


\DefineBibliographyStrings{german}{%
backrefpage = {newtext},
backrefpages= {newtext},
}

http://tex.stackexchange.com/questions/50102/redefining-cited-on-string-and-others-in-biblatex

rstuby
05-08-2012, 20:43
OK, danke. Das habe ich jetzt. Leider funktioniert es nicht in meinem Originaldokument und jetzt muss ich erstmal ein neues Minimalbeispiel hinkriegen, das den Fehler eingrenzt...

rstuby
05-08-2012, 20:53
Ach ja... mein Originaldokument ist in Wirklichkeit scrbook und die sections werden mit
\renewcommand*{\thesection}{\arabic{section}}
durchnummeriert... dann funktioniert deine Lösung nicht.
Jetzt muss ich mir erst mal überlegen, ob es die Sache wert ist, das weiter zu verfolgen, evtl. auf scrartcl umzustellen und alle Kapitel zu parts umzuwandeln, oder ob ich einfach sage, ich lasse das, und es reicht, wenn bei jedem Lied eine Referenznummer und am Ende ein normales Verzeichnis steht.

ctansearch
05-08-2012, 21:39
Geht doch auch mit scrbook


\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[backend=biber, bibencoding=utf8,backref]{biblatex}
\addbibresource{testbib.bib}
\usepackage{csquotes}
\usepackage[unicode]{hyperref}
\DefineBibliographyStrings{ngerman}{%
backrefpage = { },
backrefpages= { },
}
\makeatletter
\renewcommand{\blx@addbackref@i}[1]{%
\ifbacktracker
\blx@leavevmode
\if@filesw
\protected@write\@mainaux{}{\string\abx@aux@backre f
{\the\c@instcount}{#1}{\the\c@refsection}%
{Lied Nr.\thesection}{\noexpand\the\c@page}}%
\fi
\fi}
\makeatother
\renewcommand*{\thesection}{\arabic{section}}
\begin{document}
text
\section{Lied Nummer eins}
Noten mit leichten Änderungen aus: \cite{muster}
\section{Lied Nummer zwei}
Noten handschriftlich von Max Mustermann
\section{Lied Nummer drei}
Noten transponiert und vereinfacht aus \cite{muster}
\printbibliography
\end{document}

rstuby
06-08-2012, 07:43
Oh, jetzt geht's. Nachdem ich "hebrew" aus den Sprachen bei babel entfernt habe. Wäre ja auch bloß Angeberei gewesen, den Originaltitel von "Hinneh ma tov u ma najim" original anzugeben :-)