von ebcs » Di 7. Jul 2020, 18:27
Mithilfe des Codes aus dieser Antwort werden die backref-Seitenzahlen im Literaturverzeichnis am rechten Seitenrand anstatt direkt hinter der Quellenangabe aufgeführt. Bei mehreren Seitenzahlen werden aber die hinteren nicht mehr dargestellt:
Wie muss die Definition von pageref verändert werden, damit ein automatischer Zeilenumbruch erfolgt?
Vollständiges Minimalbeispiel:
\documentclass[%
version = last,
fontsize=11pt,
twoside=off,
]{scrbook}
\usepackage{fontspec} % Zeichensatzkodierung mit LuaLaTeX
\usepackage[ngerman]{babel}
\usepackage[a4paper,
head=20pt,
top=25.8mm,
bottom=30mm,
inner=40mm,
outer=21mm
]{geometry}
\usepackage[autooneside = false, automark]{scrlayer-scrpage}
\usepackage{xcolor}
\usepackage[%
backend = biber,
bibencoding = utf8,
bibwarn = true,
style = authoryear-comp,
sorting = nyvt,
backref=true,
backrefstyle = three
]{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[%
linktocpage = true,
bookmarksnumbered,
hyperfootnotes = false,
]{hyperref}
\usepackage{bookmark} % verbessert hyperref
\hypersetup{colorlinks, citecolor=cyan, linkcolor=blue, urlcolor=black}
% pagebackref reference in the (flush) right margin
\renewbibmacro*{pageref}{% Wie muss diese Definition verändert werden, damit am Seitenrand ein % automatischer Zeilenumbruch erfolgt?
\iflistundef{pageref}
{\renewcommand{\finentrypunct}{\addperiod}}
{\renewcommand{\finentrypunct}{\addspace}%
\printtext{\addperiod\hfill\rlap{\hskip15pt\colorbox{blue!5}
{\scriptsize\printlist[pageref][-\value{listtotal}]{pageref}}}}}}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\clearpage
\setcounter{page}{10}
\chapter{Einleitung}
\textcite{augustine}
\blindtext
\chapter{Hauptteil}
\section{Erstes Unterkapitel}
\textcite{aristotle:anima}
\blindtext
\newpage
\section{Zweites Unterkapitel}
\textcite{augustine}
\blindtext
\newpage
\textcite{aristotle:anima}
\blindtext
\newpage
\section{Drittes Unterkapitel}
\textcite{augustine}
\blindtext
\newpage
\textcite{aristotle:anima}
\blindtext
\chapter{Schluss}
\textcite{aristotle:anima}
\blindtext
\newpage
\nocite{*}
\printbibliography[type = book]
\end{document}
Mithilfe des Codes aus [url=https://tex.stackexchange.com/a/149050]dieser Antwort[/url] werden die `backref`-Seitenzahlen im Literaturverzeichnis am rechten Seitenrand anstatt direkt hinter der Quellenangabe aufgeführt. Bei mehreren Seitenzahlen werden aber die hinteren nicht mehr dargestellt:
[attachment=0]pageref_margin_linebreak.png[/attachment]
Wie muss die Definition von `pageref` verändert werden, damit ein automatischer Zeilenumbruch erfolgt?
Vollständiges Minimalbeispiel:
[code]
\documentclass[%
version = last,
fontsize=11pt,
twoside=off,
]{scrbook}
\usepackage{fontspec} % Zeichensatzkodierung mit LuaLaTeX
\usepackage[ngerman]{babel}
\usepackage[a4paper,
head=20pt,
top=25.8mm,
bottom=30mm,
inner=40mm,
outer=21mm
]{geometry}
\usepackage[autooneside = false, automark]{scrlayer-scrpage}
\usepackage{xcolor}
\usepackage[%
backend = biber,
bibencoding = utf8,
bibwarn = true,
style = authoryear-comp,
sorting = nyvt,
backref=true,
backrefstyle = three
]{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[%
linktocpage = true,
bookmarksnumbered,
hyperfootnotes = false,
]{hyperref}
\usepackage{bookmark} % verbessert hyperref
\hypersetup{colorlinks, citecolor=cyan, linkcolor=blue, urlcolor=black}
% pagebackref reference in the (flush) right margin
\renewbibmacro*{pageref}{% Wie muss diese Definition verändert werden, damit am Seitenrand ein % automatischer Zeilenumbruch erfolgt?
\iflistundef{pageref}
{\renewcommand{\finentrypunct}{\addperiod}}
{\renewcommand{\finentrypunct}{\addspace}%
\printtext{\addperiod\hfill\rlap{\hskip15pt\colorbox{blue!5}
{\scriptsize\printlist[pageref][-\value{listtotal}]{pageref}}}}}}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\clearpage
\setcounter{page}{10}
\chapter{Einleitung}
\textcite{augustine}
\blindtext
\chapter{Hauptteil}
\section{Erstes Unterkapitel}
\textcite{aristotle:anima}
\blindtext
\newpage
\section{Zweites Unterkapitel}
\textcite{augustine}
\blindtext
\newpage
\textcite{aristotle:anima}
\blindtext
\newpage
\section{Drittes Unterkapitel}
\textcite{augustine}
\blindtext
\newpage
\textcite{aristotle:anima}
\blindtext
\chapter{Schluss}
\textcite{aristotle:anima}
\blindtext
\newpage
\nocite{*}
\printbibliography[type = book]
\end{document}
[/code]