我有一份带有自定义参考书目的文档。我的意思是,参考书目是手动完成的,以在其中插入自定义内容。以下 MWE 说明了我的问题。命令生成的链接\cite
指向文档的第一页,而不是指向书目所在的页面。我猜这是正常行为,因为我没有\bibliography
命令。我该如何解决这个问题?
\documentclass[a4paper, 12pt]{article}
%% Bibliography %%
\usepackage[backend=bibtex]{biblatex}
\newcommand{\itembib}[1]{\item[\cite{#1}] \fullcite{#1}}
\begin{filecontents}{mybib.bib}
@article{Article1,
author={Manu},
title={A nice paper},
journaltitle={Journal 1},
year=2017
}
@article{Article2,
author={Max},
title={A nice paper again},
journaltitle={Journal 2},
year=2016
}
\end{filecontents}
\addbibresource{mybib.bib}
%% hyperref %%
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{
colorlinks, linkcolor={red!50!black},
citecolor={blue!50!black}, urlcolor={blue!80!black}
}
\begin{document}
\begin{titlepage}
TITLE
\end{titlepage}
\newpage
\tableofcontents
\newpage
\section{INTRODUCTION}
Blabla
\newpage
\section{BIBLIO}
\subsection{Subsec 1}
\begin{itemize}
\itembib{Article1}
\end{itemize}
\subsection{Subsec 2}
\begin{itemize}
\itembib{Article2}
\end{itemize}
\newpage
\section{CHAPTER 1}
Blabla\cite{Article1}.
\newpage
\section{CHAPTER 2}
Blabla\cite{Article2}.
\end{document}
答案1
默认情况下,biblatex
仅为参考书目中的条目分配链接锚点。特别是,\fullcite
不会获得链接回的锚点。这是有道理的,因为条目的锚点应该是唯一的,并且通常可以合理地假设条目只会出现在一个参考书目中。另一方面,条目可能会被引用多次,并且其\fullcite
核心仍然是引用命令。
您可以使用
\makeatletter
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\blx@anchor%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\makeatother
生成\fullcite
通常在参考书目中生成的锚点。然后链接应该可以正常工作。当然,如果您\fullcite
多次使用同一项目,或者您\printbibliography
毕竟使用了相同的项目,那么这将非常糟糕。