Bibliyografyaya (bütün) nasıl çapraz başvuru yapılır?

Aug 17 2020

Basit bir soru, ancak onu burada veya başka bir yerde Stackexchange'de bulamadım.

\printbibliographyBelirli 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 \labeloraya 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 \printbibliographykomut hakkında konuşmaya başlıyor .).

Yanıtlar

3 DavidPurton Aug 17 2020 at 13:28

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ü, \@currentlabeltarafı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}

3 moewe Aug 17 2020 at 14:12

Kaynakçanızın başlığını zaten açıkça verdiğiniz için, \labeloraya 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, biblatexbelirli sınıfları tespit etmek için kullanılır . Elverişli olarak, 'çift sınıflar' articlebenzerdir ve kullanılır \refname, 'tuhaf sınıflar' report/ bookbenzeridir 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, \labeldoğ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.

3 rugk Jan 03 2021 at 16:33

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}