![使用 biblatex-iso690 进行简短约会](https://linux22.com/image/417772/%E4%BD%BF%E7%94%A8%20biblatex-iso690%20%E8%BF%9B%E8%A1%8C%E7%AE%80%E7%9F%AD%E7%BA%A6%E4%BC%9A.png)
我正在尝试使用iso-alphabetic
包中的 biblatex 样式biblatex-iso690
。
样式包含此代码(参见此处)https://github.com/michal-h21/biblatex-iso690/blob/065ab3d7e20c4d797d702d21ffad596cef150db9/iso.bbx#L74):
\ExecuteBibliographyOptions{%
date=year,% Use only years
urldate=iso,% Use ISO8601 Extended Format (yyyy-mm-dd) for URL 'seen' dates
seconds=true,% ISO8601 format requires 'seconds=true'
}
我想用 覆盖日期设置alldates=long
,但是不起作用。
梅威瑟:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@online{A,
author={A},
date={2000-01-01},
urldate={2020-02-02},
}
\end{filecontents}
\usepackage[style=iso-alphabetic,alldates=short]{biblatex}
\addbibresource{test.bib}
\begin{document}
\cite{A}
\printbibliography
\end{document}
输出:
我需要做什么才能将输出中的“2000-01-01”更改为“01/01/2000”
答案1
biblatex-iso690
使用技巧来打印完整日期,否则@online
只打印年份(这是必要的,因为biblatex
不支持类型级日期选项,请参阅https://github.com/plk/biblatex/issues/863和https://github.com/michal-h21/biblatex-iso690/pull/74用于历史记录biblatex-iso690
。特别是 ISO 日期格式在宏中是硬编码的fulldate
(https://github.com/michal-h21/biblatex-iso690/blob/065ab3d7e20c4d797d702d21ffad596cef150db9/iso.bbx#L504)。您可以通过重新定义该宏来更改日期格式。
\documentclass{article}
\usepackage[style=iso-alphabetic,alldates=short]{biblatex}
\newbibmacro*{fulldate}{%
\mkdaterangeshort{}%
}
\begin{filecontents}{\jobname.bib}
@online{A,
author = {A},
date = {2000-01-01},
urldate = {2020-02-02},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{A}
\printbibliography
\end{document}