
Dies ist eine Fortsetzung meiner vorherigen FrageRichtige Methode zum Einfügen nicht nummerierter Kapitel in eine kapitelweise Bibliographie mithilfe von Biblatex.
Die von Audrey vorgeschlagene Lösung funktioniert nicht mehr, wenn ich das titlesec
Paket verwende, um die Kapitelüberschriften zu ändern. Hier ist ein MWE:
\documentclass{book}
\usepackage{titlesec}
\usepackage{titletoc}
\setcounter{tocdepth}{3}
\usepackage[style = phys,%
sorting=none,%
backend=biber,%
style=numeric,%
hyperref=auto,%
backref = true,%
refsection=chapter,%
% citereset=chapter,%
dateabbrev=false,%
urldate=comp]{biblatex}
\usepackage{nameref}
\makeatletter
% Extend biblatex's \chapter patch to \chapter*
\def\blx@refpatch@chapter#1{%
\ifundef\chapter
{\blx@err@nodocdiv{chapter}}
{\pretocmd\@makechapterhead
{#1}{}{\blx@err@patch{\string\@makechapterhead}}%
\pretocmd\@makeschapterhead
{#1}{}{\blx@err@patch{\string\@makeschapterhead}}}}
% Save data for bibliography titles
\apptocmd\@makechapterhead
{\csdef{subbib:\therefsection}{%
Chapter~\ref{refsection:\therefsection} - \nameref{refsection:\therefsection}}}{}{}
\apptocmd\@makeschapterhead
{\csdef{subbib:\therefsection}{%
\nameref{refsection:\therefsection}}}{}{}
\makeatother
\defbibheading{subbibliography}{%
\section*{References for \csuse{subbib:\therefsection}}}
\titleformat{\chapter}[hang]
{\bfseries \LARGE \bfseries }{ \thechapter}{0.75em}{}[\vspace{2ex}\titlerule]
\titlespacing*{\chapter}{0cm}{0cm}{0.6cm}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{B02,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
}
@misc{C03,
author = {Cuthor, C.},
year = {2003},
title = {Charlie},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\chapter*{Introduction}
\begin{refsegment}
\cite{A01}
\end{refsegment}
\chapter{Chapter 1}
\cite{A01,B02}
\chapter*{Conclusion}
\begin{refsegment}
\cite{C03}
\end{refsegment}
\backmatter
\printbibheading[heading=bibintoc]
\bibbysection[heading = subbibliography]
\end{document}
Das Ergebnis in der Bibliographie lautet:
Wie Sie sehen, sind die Verweise auf die Kapitel verschwunden. Es gibt nicht einmal Fragezeichen. Ich vermute, das bedeutet, dass der \csuse{subbib:\therefsection}}
Teil der Lösung von Audrey ins Nichts führt, nachdem ich die Neudefinition des Kapitelformats mithilfe titlesec
von eingefügt habe \titleformat
.
Außerdem \titleformat{...}
führt das Neudefinieren der Kapitelüberschriften vor dem Biblatex-Patch zu folgendem Fehler argument of \csdef has an extra }
.
Irgendwelche Ideen, wie man das umgehen kann?
Antwort1
Das Anhängen der Kapitelmakros ist wahrscheinlich das Problem. Sie können die Steuersequenzdefinitionen für die Titel direkt nach biblatex
dem vorangestellten Patch verschieben.
\def\blx@refpatch@chapter#1{%
\ifundef\chapter
{\blx@err@nodocdiv{chapter}}
{\pretocmd\@makechapterhead
{#1\csdef{subbib:\therefsection}{Chapter~\ref{refsection:\therefsection}}}
{}{\blx@err@patch{\string\@makechapterhead}}%
\pretocmd\@makeschapterhead
{#1\csdef{subbib:\therefsection}{\nameref{refsection:\therefsection}}}
{}{\blx@err@patch{\string\@makeschapterhead}}}}