日记伊希斯:科学史学会期刊 使用引用样式这与《芝加哥》(作者标题)非常相似,但有几点不同:
- 页面总是用 p./pp 来引用。
- 长
@article
引用格式为
约翰·C·格林,《达尔文研究进展反思》生物学史杂志,1975年,8:243–273,https://doi.org/10.1007/BF00130440,第 270 页
斯蒂尔曼·德雷克,《音乐在伽利略实验中的作用》《科学美国人》,1975年6月,232(6):98–104
换句话说,长篇文章的格式需要进行调整,以便:
- /紧接着
year
(用逗号标记)出现date
journal
- 应该
volume
是斜体 - 当出现问题时
number
,它应该紧跟volume
在圆括号中(而不是斜体) - 始终给出完整的页面范围(在
volume
+ 冒号后面) - 接下来是 DOI/URL
- 具体页码引用(如果有)前面应该加上“on p./pp”。
短文引用如下:
格林,《反思》,第 272 页。
简短的书籍引用与芝加哥的唯一不同之处在于它们使用“p./pp.”:
库恩,结构,第 25 页。
有人已经实施了这种略有不同的引用样式吗?如果没有,进行这些更改的最佳方法是什么?
平均能量损失
在其他地方,@moewe 已经实现了一种方法始终包含文章的完整页面范围(该答案的改进版本这里),即使是在第一次引用特定页面时也是如此。我已将其包含在以下 MWE 中,但除此之外,它仍然缺少必要的更改:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\begin{filecontents*}{\jobname.bib}
@article{greene1975,
Author = {John C. Greene},
Title = {Reflections on the Progress of Darwin Studies},
Shorttitle = {Reflections},
Journal = {Journal of the History of Biology},
Year = {1975},
Volume = {8},
Pages = {243–273},
Url = {https://doi.org/10.1007/BF00130440}}
@article{drake1975,
Author = {Stillman Drake},
Title = {The Role of Music in Galileo’s Experiments},
Shorttitle = {Role},
Journal = {Scientific American},
Month = jun,
Year = {1975},
Volume = {232},
Number = {6},
Pages = {98–104}}
@book{kuhn:structure3,
address = {Chicago},
author = {Kuhn, Thomas S.},
edition = {3},
publisher = {University of Chicago Press},
title = {The Structure of Scientific Revolutions},
year = {1996},
shorttitle = {Structure}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DefineBibliographyStrings{english}{
thiscite = {on},
}
% moewe's method for including full page range even when a specific page is cited
\newtoggle{cbxchic:hadpages}
\renewbibmacro*{fullpostnote}{%
\global\toggletrue{cbxchic:hadpages}%
\iffieldundef{chapter}%
{\iffieldundef{pages}%
{\global\togglefalse{cbxchic:hadpages}}%
{\postnotedelim%
\printfield{pages}}}%
{\postnotedelim%
\printfield{chapter}}%
\ifboolexpr{
test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
and
test {\iffieldpages{postnote}}
and
togl {cbxchic:hadpages}
}
{\setunit{\addcomma\space}%
\bibstring{thiscite}%
\setunit{\addspace}}
{\iffieldundef{postnote}{}{\postnotewrapper}}%
\usebibmacro{semel:postnote}}
\renewbibmacro*{eid+fullpostnote}{%
\global\toggletrue{cbxchic:hadpages}%
\iffieldundef{chapter}%
{\iffieldundef{pages}%
{\iffieldundef{eid}%
{\global\togglefalse{cbxchic:hadpages}}%
{\postnotedelim%
\printfield{eid}%
\clearfield{eid}}}%
{\postnotedelim%
\printfield{pages}}}%
{\postnotedelim%
\printfield{chapter}}%
\ifboolexpr{
test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
and
test {\iffieldpages{postnote}}
and
togl {cbxchic:hadpages}
}
{\setunit{\addcomma\space}%
\bibstring{thiscite}%
\setunit{\addspace}}
{\iffieldundef{postnote}{}{\postnotewrapper}}%
\usebibmacro{semel:postnote}}
\begin{document}
\cite[270]{greene1975}.
\cite[]{drake1975}.
\cite[272]{greene1975}.
\cite{kuhn:structure3}.
\mancite
\cite[25]{kuhn:structure3}.
\end{document}
电流输出:
答案1
biblatex-chicago
并不适合大规模定制。它是专门为实现所有复杂的需求而编写的芝加哥格式手册。这意味着代码有时非常复杂,才能捕捉到 CMoS 风格的所有细微差别。
postnote
这是实现您的要求的尝试。一个主要的麻烦是.的位置,biblatex-chicago
投入大量代码使其出现在 URL 之前(条目“内部”),将其移回末尾(标准样式中的位置)需要一些技巧。
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\DeclareFieldFormat{jourvol}{\mkbibitalic{#1}}
\DeclareFieldFormat{journum}{\mkbibparens{#1}}%
\renewbibmacro*{cjournal+issue+year+pages}{%
\ifentrytype{periodical}%
{\usebibmacro{cperiodical+ser+vol+num}}%
{\usebibmacro{cjournal+ser+vol+num}}}
\renewbibmacro*{cjournal+ser+vol+num}{%
\usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
\iffieldundef{series}%
{}%
{\newcunit%
\printfield[jourser]{series}%
\newcunit}%\setunit*{\addspace}?
\newcunit
\iffieldundef{issue}%
{\usebibmacro{number+or+month}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}%
\newcunit
\printfield[jourvol]{volume}%
\printfield[journum]{number}%
\setunit{\postvolpunct}}% Moved eid for 17th ed.
\DefineBibliographyStrings{english}{
thiscite = {on},
}
\AtEveryCitekey{\savefield{postnote}{\cbxsavepostnote}\clearfield{postnote}}
\DeclareFieldFormat{pages}{%
\ifboolexpr{%
togl {cms@comprange}%
and
test {\ifpages{#1}}%
}%
{\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
{\mkpageprefix[bookpagination][\mknormrange]{#1}}}
\DeclareFieldFormat[article,periodical]{pages}{%
\ifboolexpr{%
togl {cms@comprange}%
and
test {\ifpages{#1}}%
}%
{\mkcomprange{#1}}%
{\mknormrange{#1}}}
\DeclareFieldFormat{postnote}{%
\ifboolexpr{%
togl {cms@comprange}%
and
test {\ifpages{#1}}%
}%
{\mkpageprefix[pagination][\mkcomprange]{#1}}%
{\mkpageprefix[pagination][\mknormrange]{#1}}}
\renewbibmacro*{postnote}{%
\restorefield{postnote}{\cbxsavepostnote}%
\iffieldundef{postnote}
{}
{\setunit{\addcomma\space}%
\iftoggle{cms@fullnote}
{\iffieldundef{pages}
{}
{\iffieldpages{postnote}
{\bibstring{thiscite}%
\setunit{\addspace}}
{}}}
{}%
\printfield{postnote}}}
\begin{filecontents*}{\jobname.bib}
@article{greene1975,
author = {John C. Greene},
title = {Reflections on the Progress of Darwin Studies},
shorttitle = {Reflections},
journal = {Journal of the History of Biology},
year = {1975},
volume = {8},
pages = {243–273},
doi = {10.1007/BF00130440},
}
@article{drake1975,
author = {Stillman Drake},
title = {The Role of Music in Galileo’s Experiments},
shorttitle = {Role},
journal = {Scientific American},
month = jun,
year = {1975},
volume = {232},
number = {6},
pages = {98–104},
}
@book{kuhn:structure3,
address = {Chicago},
author = {Kuhn, Thomas S.},
edition = {3},
publisher = {University of Chicago Press},
title = {The Structure of Scientific Revolutions},
year = {1996},
shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite[56]{westfahl:space}
\cite[270]{greene1975}.
\cite[]{drake1975}.
\cite[272]{greene1975}.
\cite{kuhn:structure3}.
\mancite
\cite[25]{kuhn:structure3}.
\end{document}
这里尝试以一种biblatex-ext
风格重现相同的行为,以便将来更容易定制。
\documentclass[american]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ext-verbose, articlein=false, citepages=separate]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\volnumdelim}{}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibitalic{#1}}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\DeclareFieldFormat{issuedate}{#1}
\newcommand*{\jourdatedelim}{\addcomma\space}
\newcommand*{\serdatedelim}{\jourdatedelim}
\renewcommand*{\volnumdatedelim}{\addcomma\space}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\jourdatedelim}%
\iffieldundef{series}
{}
{\setunit*{\jourserdelim}%
\printfield{series}%
\setunit{\seryeardelim}}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\setunit{\volnumdatedelim}%
\usebibmacro{volume+number+eid}%
\newunit}
\renewcommand*{\bibpagespunct}{%
\ifentrytype{article}
{\addcolon}
{\addcomma\space}}
\DeclareFieldFormat{pages}{#1}
\newbibmacro*{pubinstorg+location+date}[1]{%
\ifboolexpr{
not test {\iflistundef{location}}
or
not test {\iflistundef{#1}}
or
not test {\iffieldundef{year}}}
{\setunit{\addspace}%
\printtext[parens]{%
\printlist{location}%
\iflistundef{#1}
{\setunit*{\locdatedelim}}
{\setunit*{\locpubdelim}}%
\printlist{#1}%
\setunit*{\pubdatedelim}%
\usebibmacro{date}}%
\newunit}
{}}
%\urlstyle{same}
\DeclareFieldFormat{doi}{\url{https://doi.org/#1}}
\DefineBibliographyStrings{english}{
thiscite = {on},
}
\begin{filecontents*}{\jobname.bib}
@article{greene1975,
author = {John C. Greene},
title = {Reflections on the Progress of Darwin Studies},
shorttitle = {Reflections},
journal = {Journal of the History of Biology},
year = {1975},
volume = {8},
pages = {243–273},
doi = {10.1007/BF00130440},
}
@article{drake1975,
author = {Stillman Drake},
title = {The Role of Music in Galileo’s Experiments},
shorttitle = {Role},
journal = {Scientific American},
month = jun,
year = {1975},
volume = {232},
number = {6},
pages = {98–104},
}
@book{kuhn:structure3,
address = {Chicago},
author = {Kuhn, Thomas S.},
edition = {3},
publisher = {University of Chicago Press},
title = {The Structure of Scientific Revolutions},
year = {1996},
shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite[270]{greene1975}.
\cite[]{drake1975}.
\cite[272]{greene1975}.
\cite{kuhn:structure3}.
\mancite
\cite[25]{kuhn:structure3}.
\end{document}