为了符合期刊的风格过去和现在,我希望使用它biblatex-chicago
来为文章的内联引用生成以下输出(在本例中\cite{walsham}
):
亚历山德拉·沃尔沙姆,《重新评估宗教改革与世界的祛魅》,历史期刊,李,2(2008)。
其中“li”是罗马数字 51,“2”是期号。还请注意,期刊标题后面有一个逗号,并且即使命令中没有特定的页码引用,文章的整个页码范围也会被抑制\cite
。
同时,如果volume
字段留空,而number
字段不留空,则输出应该如下所示(\cite{markiewicz}
):
Christopher Markiewicz,《近代奥斯曼帝国历史中的欧洲主义趋势和伊斯兰化轨迹》,过去和现在,第239号(2018年)。
即,期刊名称后仍带有逗号,然后no.~\unspace
或类似名称后为number
字段。
是否有一种简单的方法可以调整宏来实现这一点?
平均能量损失
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\begin{filecontents*}{\jobname.bib}
@article{walsham,
author = {Alexandra Walsham},
journal = {Historical Journal},
volume = {51},
number = {2},
pages = {497--528},
title = {The Reformation and the Disenchantment of the World Reassessed},
year = {2008}
}
@article{markiewicz,
title={Europeanist trends and Islamicate trajectories in early modern Ottoman history},
author={Markiewicz, Christopher},
journal={Past and Present},
number={239},
pages={265--281},
year={2018}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{walsham}
\cite{markiewicz}
\end{document}
答案1
正如评论中所提到的,biblatex-chicago
这是一种非常复杂的野兽,甚至所谓的简单修改本身也可能出奇的复杂。
我建议如下。请注意,我暂时删除了pages
条目中的引用字段@article
,因为这是您唯一询问的内容。
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\DeclareFieldFormat{jourvol}{%
\ifinteger{#1}
{\Rn{#1}}
{#1}}
\DeclareFieldFormat{journum}{%
\iffieldundef{volume}
{\ifboolexpr{%
test {\ifnumerals{#1}}%
and
not test {\ifnumeral{#1}}%
}%
{\bibstring{numbers}\addspace #1}%
{\bibstring{number}\addspace #1}}
{#1}}
\renewbibmacro*{cjournal+ser+vol+num}{%
\usebibmacro{journal+sub}{in}%
\setunit{\addspace}%
\printlist[periodplace]{location}%
\newcunit
\printfield[jourser]{series}%
\newcunit
\printfield[jourvol]{volume}%
\setunit{\addcomma\addspace}%
\printfield[journum]{number}}
\AtEveryCitekey{%
\ifentrytype{article}
{\clearfield{pages}}
{}}
\begin{filecontents*}{\jobname.bib}
@article{walsham,
author = {Alexandra Walsham},
journal = {Historical Journal},
volume = {51},
number = {2},
pages = {497--528},
title = {The Reformation and the Disenchantment of the World Reassessed},
year = {2008},
}
@article{markiewicz,
title = {Europeanist trends and Islamicate trajectories in early modern Ottoman history},
author = {Markiewicz, Christopher},
journal = {Past and Present},
number = {239},
pages = {265--281},
year = {2018},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{walsham}
\cite{markiewicz}
\printbibliography
\end{document}