问题
与我在这里提出的问题相关Lyx - 更改 bibtex 书目中的 URL 外观,我想在我的参考书目中包含类似“访问时间:日期 (dd.mm.yyyy)”的内容。我不能 100% 确定“访问时间”在英语中是否正确,但这个问题更侧重于如何实现这一点。
我正在使用 Lyx 的 Natbib 设置和 else-harv 书目样式。我只想要书目中显示的所有 URL 的访问日期。我不知道该如何开始,除了可能需要在 .bst 文件中进行一些更改?或者有更简单的解决方案吗?
它看起来应该是这样的:
URL:www.whatever.com(访问时间:日期)
我不确定这种风格是否常见,在访问处周围有括号还是没有括号,但我猜两者都可以。
代码
documentclass[11pt,twoside,english,openright, bibliography=totoc]{scrreprt}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.75cm,rmargin=2.5cm,headheight=18pt,headsep=8pt,footskip=26pt}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}
\usepackage{verbatim}
\usepackage{textcomp}
\usepackage{amstext}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage[authoryear]{natbib}
\usepackage{nomencl}
% the following is useful when we have the old nomencl.sty package
\providecommand{\printnomenclature}{\printglossary}
\providecommand{\makenomenclature}{\makeglossary}
\makenomenclature
\onehalfspacing
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{lscape}
{scrpage2} &oldpackage
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestyles
\ohead{\headmark}
\ifoot[Test]{Test}
\cfoot[]{}
\ofoot[\pagemark]{\pagemark}
\ihead[]{}
\chead[]{}
\automark[chapter]{chapter}
\usepackage{pdfpages}
\renewcommand\nomname{List of Acronyms}
\RedeclareSectionCommand[beforeskip=12pt,afterskip=12pt]{chapter}
\setkomafont{chapter}{\sffamily\LARGE}
\RedeclareSectionCommand[beforeskip=12pt,afterskip=10pt]{section}
\RedeclareSectionCommand[beforeskip=12pt,afterskip=8pt]{subsection}
\RedeclareSectionCommand[beforeskip=-12pt,afterskip=8pt]{paragraph}
\setkomafont{paragraph}{\sffamily\normalsize}
\usepackage {blindtext}
\setkeys{Gin}{width=\textwidth}
\raggedbottom
\usepackage[section]{placeins}
\usepackage {media9}
\usepackage[hyphens]{url}
\usepackage[colorlinks=true, urlcolor=black, linkcolor=black, citecolor=black]{hyperref}
\@ifundefined{showcaptionsetup}{}{%
\PassOptionsToPackage{caption=false}{subfig}}
\usepackage{subfig}
\makeatother
\usepackage{babel}
\begin{document}
\bibliographystyle{elsarticle-harv}
\nocite{*}
\bibliography{_bib}
\end{document}
答案1
这是 elsarticle-harv 样式的补丁文件:
--- /usr/share/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst 2016-08-03 08:15:22.000000000 +0200
+++ elsarticle-harv.bst 2016-08-26 11:28:47.873108598 +0200
@@ -67,6 +67,7 @@
title
type
url
+ urldate
volume
year
}
@@ -368,7 +369,14 @@
FUNCTION {write.url}
{ url empty$
{ skip$ }
- { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+ {
+ "\newline\urlprefix\url{" url * "}" *
+ urldate empty$
+ 'skip$
+ { " (Accessed at " * urldate * ")" * }
+ if$
+ write$ newline$
+ }
if$
}
将您的复制elsarticle-harv-bst
到您的项目并应用此补丁。如果您使用的是 unix,请将补丁保存在patch.txt
并运行
cp /usr/share/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst . && patch < patch.txt
此补丁扩展了该write.url
功能以包括字段中定义的日期urldate
。
梅威瑟:
bib.bib
:
@article{key,
author={foo},
year={2016},
url={http://example.com},
urldate={2016-08-26}
}
test.tex
:
\documentclass{article}
\usepackage{natbib}
\begin{document}
\citet{key}
\bibliographystyle{my_elsarticle-harv}
\bibliography{bib}
\end{document}
答案2
我来这里是为了解决与 OP 相同的问题。同时,elsearticle-harv.bst 的结构发生了变化。为了在 2.1 版中实现与 OP 建议的相同结果马丁·尼奥尔特,变量网址日期需要添加到.bst
文件顶部的 ENTRY 中:
ENTRY
{ address
...
url
urldate
doi
}
并且函数print.url
(以前write.url
)必须更新(解决方案复制自Martin):
FUNCTION {print.url}
{url duplicate$ empty$
{ pop$ "" }
{ new.sentence
urlprefix "\url{" * swap$ * "}" * urldate empty$
'skip$
{ " (accessed " * urldate * ")" * }
if$
}
if$
}
这应该会产生期望的结果。