Bibliyografyaya (bütün) nasıl çapraz başvuru yapılır?
Basit bir soru, ancak onu burada veya başka bir yerde Stackexchange'de bulamadım.
\printbibliography
Belirli bir giriş değil, sadece başlık / başlangıç sayfası tarafından oluşturulan başlığa çapraz referans vermek istiyorum .
Bunu nasıl yapabilirim?
Bunu şu şekilde kullanıyorum:
\printbibliography[title={Quellenverzeichnis}, heading=subbibnumbered]
Sorun, paketin başlığını otomatik olarak oluşturmasıdır, bu yüzden sadece \label
oraya bir yerleştirip ona başvuramam.
Her zamanki kullanabilmesi Temelde, sadece ihtiyacın olan her şey yapmak istiyorum \ref
, \hyperref
, \autoref
, \fullrefvb
Ayrıca biblatex belgelerinde hiçbir şey bulamadım (sayfa 88 ff. Aka sn. 3.7.2 \printbibliography
komut hakkında konuşmaya başlıyor .).
Yanıtlar
Garip bir şekilde, bunu yapmanın bariz bir yolunu bulamıyorum.
Başlığı yazdıran, ardından etiketi ekleyen ve ardından bibliyografyanın geri kalanını yazdıran bir seçenek. Benim bilmediğim bir nedenden ötürü, \@currentlabel
tarafından güncellenmiyor \printbibheading
, bu yüzden alt bölüm sayacını azaltmak için hack'e ihtiyacım var, sonra onu kullanarak artırıyorum \refstepcounter
.
Daha iyi bir seçenek olması gerektiğini düşündüm.
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[colorlinks]{hyperref}
\begin{document}
\section{Here}
\subsection{There}
Page \pageref{bib}. Section \ref{bib}.
\nocite{westfahl:space,aksin}
\printbibheading[title=Quellenverzeichnis, heading=subbibnumbered]
\addtocounter{subsection}{-1}
\refstepcounter{subsection}
\label{bib}
\printbibliography[heading=none]
\end{document}

Kaynakçanızın başlığını zaten açıkça verdiğiniz için, \label
oraya gizlice girebilirsiniz .
David Purton'un MWE'si ve bariz değişikliklerle
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[colorlinks]{hyperref}
\begin{document}
\section{Here}
\subsection{There}
Page \pageref{bib}. Section \ref{bib}.
\nocite{sigfridsson,worman}
\printbibliography[title={Quellenverzeichnis\label{bib}}, heading=subbibnumbered]
\end{document}

Sınıfa bağlı olarak otomatik olarak 'Referanslar' veya 'Kaynakça'yı seçen bir çözüm istiyorsanız, deneyebilirsiniz.
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[colorlinks]{hyperref}
\makeatletter
\newcommand*{\reforbibname}{%
\ifodd\abx@classtype\relax
\bibname
\else
\refname
\fi
}
\makeatother
\begin{document}
\section{Here}
\subsection{There}
Page \pageref{bib}. Section \ref{bib}.
\nocite{sigfridsson,worman}
\printbibliography[title={\reforbibname\label{bib}}, heading=subbibnumbered]
\end{document}
Dahili komut \abx@classtype
, biblatex
belirli sınıfları tespit etmek için kullanılır . Elverişli olarak, 'çift sınıflar' article
benzerdir ve kullanılır \refname
, 'tuhaf sınıflar' report
/ book
benzeridir ve kullanılır \bibname
.
Bunun, kaynakça başlık tanımlarındaki varsayılan başlığın olası değişikliklerini hesaba katmadığını unutmayın.
Bir alternatif, \label
doğrudan kaynakça başlık tanımına dahil etmek olabilir. Bu durumda bu olurdu
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[colorlinks]{hyperref}
\defbibheading{subbibnumbered:link}[\refname]{%
\subsection{#1}%
\label{bib}}
\begin{document}
\section{Here}
\subsection{There}
Page \pageref{bib}. Section \ref{bib}.
\nocite{sigfridsson,worman}
\printbibliography[heading=subbibnumbered:link]
\end{document}
(elbette isterseniz ön yazının üzerine yazabilirsiniz subbibnumbered
, ancak etiket başlığa sabit kodlu olduğundan, onu iki kez kullanmaktan kaçınmak için benzersiz bir ad seçmek daha iyi olabilir.) Her durumda, bu bilmenizi / belgenizde kullanılan kaynakça başlığının orijinal tanımını kopyalayın.
Biblatex'in v3.16 sürümünden itibaren artık kullanabilirsiniz label
.
Örnek vb. Sayı / özellik isteğinden kopyalanır , bu nedenle tüm krediler @moewew'e gider ve bunu da uygulayan.
İşte bir örnek:
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\usepackage{cleveref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{sigfridsson}
\Cref{biblabel}
\printbibliography[heading=bibnumbered, label=biblabel]
\end{document}