平均能量损失

平均能量损失

为了符合期刊的风格过去和现在,我希望使用它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}

Alexandra Walsham,《重新评估宗教改革与世界的祛魅》,《历史期刊》,第 2 期(2008 年) Christopher Markiewicz,《近代奥斯曼帝国历史中的欧洲主义趋势和伊斯兰化轨迹》,《过去与现在》,第 239 期(2018 年)

相关内容