我对 latex 还很陌生。但我想知道是否有一个软件包可以让你点击引文进入谷歌搜索或谷歌学术页面来访问论文。
我目前正在使用“hyperref”包,因此我的 pdf 在单击后会跳转到我的章节和引文所在的位置。而且我确实看到您也可以使用 hyperref 生成链接。
但理想情况下,我正在寻找这样的东西:如果我单击引文,它会带我进入包含 bibtex 信息的 Google 学术搜索。有人知道有什么软件包或方法可以实现这一点吗?
谢谢!
- 编辑 -
例如:
@article{grotta2004constraint,
title={Constraint-induced movement therapy},
author={Grotta, James C and Noser, Elizabeth A and Ro, Tony and Boake, Corwin and Levin, Harvey and Aronowski, Jarek and Schallert, Timothy},
journal={Stroke},
volume={35},
number={11 suppl 1},
pages={2699--2701},
year={2004},
publisher={Am Heart Assoc}
}
是否可以编写一个函数,将引用参考“grotta2004constraint”作为 [1],然后在谷歌上打开一个页面,结果显示“https://scholar.google.com/scholar?q=Constraint-induced+movement+therapy%2C+Grotta%2C+James+C+and+Noser%2C+Elizabeth+A+and+Ro%2C+Tony+and+Boake%2C+Corwin+and+Levin%2C+Harvey+and+Aronowski%2C+Jarek+and+Schallert%2C+Timothy&btnG=&hl=en&as_sdt=0%2C5“如果我点击引文,标题和作者会放入谷歌学术的哪里?
答案1
这可以通过使用来实现biblatex
,例如通过重新定义标题的格式以包含基于标题本身和作者列表的链接。
标题是最简单的,非格式化文本可以使用宏获得\thefield{title}
。作者更难,因为这些信息存储在列表中(而不是字符串)。借用https://tex.stackexchange.com/a/60633(并更新如下)https://tex.stackexchange.com/a/299084)您可以使用索引函数来biblatex
循环作者列表并将其存储在宏中。
MWE,用 编译pdflatex myfile.tex
,然后biber myfile
,然后pdflatex myfile.tex
:
\documentclass{article}
\usepackage[backend=biber,style=numeric]{biblatex}
\usepackage{hyperref}
% only for this example, to create a .bib-file on the fly
\usepackage{filecontents}
% explicit space to separate search terms
\def\space{ }
% add the hyperlink to the title (which is in argument #1)
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\href{https://scholar.google.com/scholar?q=\thefield{title}\space\authname}{\mkbibquote{#1\isdot}}}
% macro to store author last (family) names per citation
\newcommand*{\authname}{}
\DeclareIndexNameFormat{getname}{%
% split the name into parts
\nameparts{#1}
% add family name to author list
\xappto{\authname}{\namepartfamily\space}
}
% make author list for each citation
\AtEveryBibitem{%
% make list empty
\undef\authname
% call 'getname' for each author in a loop
\indexnames[getname][1-99]{author}
}
% store bibliography on the fly
\begin{filecontents*}{\jobname.bib}
@article{grotta2004constraint,
title={Constraint-induced movement therapy},
author={Grotta, James C and Noser, Elizabeth A and Ro, Tony and Boake, Corwin and Levin, Harvey and Aronowski, Jarek and Schallert, Timothy},
journal={Stroke},
volume={35},
number={11 suppl 1},
pages={2699--2701},
year={2004},
publisher={Am Heart Assoc}
}
\end{filecontents*}
% use stored bibliography file
\addbibresource{\jobname.bib}
\begin{document}
Article with Google Scholar link: \cite{grotta2004constraint}
\printbibliography
\end{document}
结果(链接目标显示为工具提示):
转换为 url 格式(带有+
和%2C
等)由 pdf 阅读器或浏览器自动执行(至少对我来说)。
请注意,没有实施错误检查或特殊处理 - 当标题或作者包含特殊字符或格式时,应该会出现问题。一些问题可以通过从搜索查询中删除作者部分来解决(因此只保留DeclareFieldFormat
),通常 Google Scholar 也会仅通过标题来查找出版物。