格式化参考书目中的反向引用

格式化参考书目中的反向引用

pagebackref我使用包中的选项hyperref,只得到每个参考文献名称末尾的链接列表。它应该打印类似“引用页数”的内容,但我甚至无法做到这一点。

我的目的是改变一些命令使它用西班牙语说出来,我发现它已经考虑了西班牙语,我想backref.sty这就是所谓的hyperref......阅读hyperref,,的文档没有帮助。backrefbackrefx

有什么猜测吗?

有关的:格式化参考书目中的反向引用

答案1

使用:

\usepackage[pagebackref=true]{hyperref}
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{[{\tiny%
    \ifcase #1 Not cited.%
          \or Cited on page~#2.%
          \else Cited on pages #2.%
    \fi%
    }]}

我将其放在\tiny方括号内的字体中[]。请根据自己的喜好进行更改:)

答案2

对于类似的情况,我更喜欢使用更简洁的文本,并在参考书目的开头进行解释,而不是使用\tiny(在这里看起来很糟糕,特别是在正常大小的括号内)。结合安德鲁的回答natbib\bibpreamble并在实际参考列表之前留出一些空间\bigskip,我最终得到以下设置,以根据需要进行自定义:

% Add any needed options:
\usepackage{natbib}
\usepackage[backref=page]{hyperref}

% Customize list of backreferences.
% From https://tex.stackexchange.com/a/183735/1340
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{%
    \ifcase #1%
          \or [Page~#2.]%
          \else [Pages~#2.]%
    \fi%
    }
% Explain list of backreferences.
% https://tex.stackexchange.com/a/70953/1340
\renewcommand{\bibpreamble}{%
  [Citing pages are listed after each reference.]%
  \par\bigskip}

当然,你可以进一步自定义序言文本(和格式)。为了使序言更接近标题,目前我已经确定了以下内容——但我不确定这种低级调整是否是好的排版(上面的看起来更安全),所以 YMMV:

\newcommand{\myBibPreambleText}{[Citing pages are listed after each reference.]}

\renewcommand{\bibpreamble}{%
  \vspace{-2 \bigskipamount}%
  \myBibPreambleText%
  \par \vspace{2 \bigskipamount}}

编辑:与其像这样修改垂直间距,不如修改\bibsection以添加一个可能更健壮(从印刷上来说)“字幕”,以便 TeX 计算适当的位置。我可以使用以下代码执行此操作,其中我已添加到正在使用的\\ {\normalsize\mdseries \myBibPreambleText}定义中,除非我加载包,否则会重写相关代码。\bibsectiontocbibind

\newcommand{\myBibPreambleText}{[Citing pages are listed after each reference.]}

\makeatletter
\renewcommand{\bibsection}{
  \chapter*{\bibname \\ {\normalsize\mdseries \myBibPreambleText}}
  \@mkboth {\MakeUppercase {\bibname }}{\MakeUppercase {\bibname }}
}
\makeatother

相关内容