pageref Seitenzahlen am Seitenrand mit automatischem Zeilenumbruch

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: pageref Seitenzahlen am Seitenrand mit automatischem Zeilenumbruch

Re: pageref Seitenzahlen am Seitenrand mit automatischem Zeilenumbruch

von ebcs » Di 7. Jul 2020, 20:00

So passt es perfekt, vielen Dank für deine Lösung und die schnelle Antwort! :D 👍👍👍

Re: pageref Seitenzahlen am Seitenrand mit automatischem Zeilenumbruch

von MoeWe » Di 7. Jul 2020, 19:23

Eine \colorbox bricht von sich allein nicht um. Du könntest eine \parbox in die \colorbox stopfen.

Ich würde zusätzliche die Ausgabe der Liste aber auch noch etwas anders angehen. Ich find es praktischer, sie zu Beginn des Eintrags auszugeben und sie damit an der ersten Zeile auszurichten, dann braucht man aber ein klein wenig größere Maschinerie.

\documentclass[%
version = last,
fontsize=11pt, 
twoside=off, 
]{scrbook}

\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,
			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}

\newlength{\marginwritesep}
\setlength{\marginwritesep}{0.5em}
\newlength{\marginwritewidth}
\setlength{\marginwritewidth}{1.5cm}

% based on egreg's (https://tex.stackexchange.com/users/4427/egreg)
% answer to https://tex.stackexchange.com/a/123451/35864
% originally CC BY-SA 3.0, but dual-licensed under LPPL
% see https://tex.meta.stackexchange.com/a/3333/35864
\newcommand{\marginwrite}[1]{%
  \strut\vadjust{%
    \vbox to 0pt{%
      \kern-\the\dimexpr\ht\strutbox+\dp\strutbox\relax
        \hfill\rlap{\kern\marginwritesep
          #1}%
      \vss
    }%
  }%
}

\newcommand*{\simplecolorparbox}[3]{%
  \colorbox{#1}{\parbox{#2}{#3}}}

\makeatletter
\renewbibmacro*{begentry}{%
  \iflistundef{pageref}
    {}
    {\marginwrite{%
       \simplecolorparbox{blue!5}{\marginwritewidth}{%
         \scriptsize\raggedright
         \printlist[pageref][-\value{listtotal}]{pageref}}}%
     \blx@initunit}}
\makeatother

\renewbibmacro*{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}

pageref Seitenzahlen am Seitenrand mit automatischem Zeilenumbruch

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:

pageref_margin_linebreak.png

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}

Nach oben