![如何在超链接内嵌套字符串](https://linux22.com/image/277668/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%B6%85%E9%93%BE%E6%8E%A5%E5%86%85%E5%B5%8C%E5%A5%97%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
@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}