
我想使用 biblatex-chicago 風格並將年份放入括號中。
因此我遵循了這篇文章中的解決方案: 括號內的年份
然而,這似乎只適用於沒有芝加哥風格的 biblatex。使用芝加哥風格,括號添加在參考文獻的末尾,沒有任何內容。
這是一個 MWE:
\begin{filecontents*}{test.bib}
@INPROCEEDINGS{author2017,
author = {Firstname Lastname},
title = {My Title},
year = {2017},
pages = {123--124}
}
\end{filecontents*}
\documentclass{scrbook}
\usepackage[
authordate,
backend=biber,
]{biblatex-chicago}
% Try to add parentheses around year in bibliography
% however, they are added at the end
\DeclareFieldFormat{parens}{\mkbibparens{#1}}
\renewbibmacro*{date}{\printtext[parens]{\printdate}}
\bibliography{test.bib}
\begin{document}
\textcite{author2017}
\printbibliography
\end{document}
使用 moewe 的文章和解決方案擴展了 MWE:
\begin{filecontents*}{\jobname.bib}
@INPROCEEDINGS{author2017inp,
author = {Firstname Lastname},
title = {My In Proceedings},
year = {2017},
pages = {123--124}
}
@ARTICLE{author2017art,
author = {Firstname Lastname},
title = {My Article},
year = {2017},
pages = {123--124}
}
@BOOK{author2017book,
author = {Firstname Lastname},
title = {My Book},
year = {2017},
pages = {123--124}
}
\end{filecontents*}
\documentclass{article}
\usepackage[
authordate,
backend=biber,
]{biblatex-chicago}
\addbibresource{\jobname.bib}
\makeatletter
\renewbibmacro*{cmsbibyear}{%
\printtext[parens]{%
\iftoggle{cms@origlabel}%
{\usebibmacro{origyear+labelyear}}%
{\iftoggle{cms@bothlabelnew}%
{\usebibmacro{bothyear+oldstyle}}%
{\iftoggle{cms@bothlabelold}%
{\usebibmacro{bothyear+oldstyle}}%
{\usebibmacro{labelyear+extrayear}}}}}%
\ifcsdef{@cms@tempdate}%
{\toggletrue{\@cms@tempdate}}%
{}}%
\makeatother
\begin{document}
\nocite{*}
\printbibliography
\end{document}
答案1
biblatex-chicago
要確保它符合 CMS 標準,日期處理非常複雜,因此要更改它並不容易。以下似乎是最安全和最短的重新定義 - 儘管在極少數情況下它可能會導致不良結果,但我還沒有遇到過其中一種情況。
\begin{filecontents*}{\jobname.bib}
@INPROCEEDINGS{author2017,
author = {Firstname Lastname},
title = {My Title},
year = {2017},
pages = {123--124}
}
\end{filecontents*}
\documentclass{article}
\usepackage[
authordate,
backend=biber,
]{biblatex-chicago}
\addbibresource{\jobname.bib}
\makeatletter
\renewbibmacro*{cmsbibyear}{%
\printtext[parens]{%
\iftoggle{cms@origlabel}%
{\usebibmacro{origyear+labelyear}}%
{\iftoggle{cms@bothlabelnew}%
{\usebibmacro{bothyear+oldstyle}}%
{\iftoggle{cms@bothlabelold}%
{\usebibmacro{bothyear+oldstyle}}%
{\usebibmacro{labelyear+extrayear}}}}}%
\ifcsdef{@cms@tempdate}%
{\toggletrue{\@cms@tempdate}}%
{}}%
\makeatother
\begin{document}
\textcite{author2017}
\printbibliography
\end{document}