我正在撰写一份科学报告,遇到以下问题:
我想在参考文献列表中使用 ACS 参考样式,但不在正文中使用。最好使用以下格式,例如
(姓氏,1990 年)
在文本中。
目前 biblatex 与以下输入一起使用
\usepackage[
backend=biber,
style=chem-acs,
sorting=nty
]{biblatex}
它在文本中显示为 [1],但我的主管想要另一种样式。我的结论是,该样式覆盖了我迄今为止所做的其他更改。我尝试了 natbib,但对 Latex 的总体了解有限,但当它工作时,它确实会变得很好。
答案1
chem-acs
本质上是一种数字样式。将其与作者年份引用不加任何更改地组合会导致奇怪的结果。
biblatex
允许您分别选择参考书目和引用样式。因此,
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
bibstyle=chem-acs,
citestyle=authoryear,
sorting=nyt,
]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
\printbibliography
\end{document}
原则上可行,但会产生不良结果
参考书目中的数字与文本中的任何内容都没有任何联系,实际上将焦点从名称上转移开了(您需要使用名称来唯一地标识引用)。
我们可以通过重新定义书目环境来摆脱这个数字。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
bibstyle=chem-acs,
citestyle=authoryear,
sorting=nyt,
]{biblatex}
\defbibenvironment{bibliography}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
ipsum \autocite{worman}
dolo \autocite{geer}
\printbibliography
\end{document}
但这凸显了这种组合的另一个次优之处:引文通过作者和年份来标识。年份隐藏在条目末尾,当我们扫描条目时不会立即引起我们的注意(除非是@article
s,其中年份是粗体)。因此,参考书目样式不适合作者-年份引文。
标准authoryear
风格可以产生更加令人满意的结果。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=authoryear,
]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
ipsum \autocite{worman}
dolo \autocite{geer}
\printbibliography
\end{document}
答案2
为了满足您的要求,您可以简单地定义以下命令:
\newcommand{\cited}[1]{(\citeauthor{#1}, \citeyear{#1})}
但是,当您这样做时,单击年份不再会指向参考书目部分中的相应参考。所以我们需要更改 citeyear 命令。(此具体解决方案在此处给出:让 hyperref 与 biblatex 中的 \citeyear 和 \citeyearpar 协同工作)
有关更多信息,请参阅此 pdf 的第 184 页: https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf
片段如下:
% Basic settings
\documentclass[12pt, a4paper]{article}
\usepackage[english]{babel}
% Bibliography management
\usepackage[backend=biber, style=chem-acs]{biblatex}
\usepackage[hidelinks]{hyperref}
\addbibresource{References.bib}
% Redefining citeyear
\DeclareCiteCommand{\citeyear}
{}
{\bibhyperref{\printfield{year}}}
{\multicitedelim}
{}
% The command
\newcommand{\cited}[1]{(\citeauthor{#1}, \citeyear{#1})}
\begin{document}
\section*{Introduction}
Lorem ipsum \cited{example}
\printbibliography[heading=bibintoc,title={Bibliography}]
\end{document}