如何在超链接内嵌套字符串

如何在超链接内嵌套字符串

@string{foo = "foo"}我想要一个参考书目项目生成一个超链接,其中可点击的文本由用 定义的字符串和用 连接起来的非预定义字符串组成#

简而言之,我想要

note = {Also found in } # foo # {bar}

生成类似的东西Also found in \href{<address>}{foobar}

我知道样式apsrev4-1对条目做了类似的事情doi,将一系列包含日志数据的字符串组合成单个超链接。有没有办法在.bib文件级别执行此操作?

答案1

(如聊天中讨论的那样。)问题是如何能够在参考书目中使用定义的字符串,例如

@string{grg = "Gen.\ Relativ.\ Gravi.\@"}

但也使用字符串作为常规字段的一部分。一种解决方案是利用定义@preamble,然后将设置@string为:

@preamble{ "\newcommand{\grg}{Gen. Relativ. Gravit.}" }
@string{grg = "\grg"}

然后,如果您愿意的话,您可以做类似的事情:

@article{test,
  ...
  journal = grg,
  ...
  note = {Reprinted in \href{link-to-doi}{\grg{} xx(yy),zzzz}
}

完整示例:

\documentclass[12pt]{article}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@preamble{ "\newcommand{\grg}{Gen.\ Rel.\ Grav.}" }
@string{grg = "\grg"}

@article{bb,
  author = {Smith, John},
  title =  {Article Title},
  journal = grg,
  year =    2000,
  note =    {Reprinted in \href{DOI-link}{\grg{} xx(yy), zzzz}},
}
\end{filecontents*}

\usepackage[T1]{fontenc}
\usepackage{etoolbox}
\usepackage{natbib}
\usepackage{hyperref}

\begin{document}

\cite{bb}

\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}

相关内容