我在这里读到了很多关于biblatex
引用格式的问题。我使用 C、Java、Python 等语言编程了 20 多年,但一直没有取得任何进展:它似乎和我遇到过的任何东西一样晦涩难懂。我只是偶尔接触 TeX:我只是想写论文,而不是成为 TeX 大师。大多数情况下,我使用 pandoc(markdown)编写,然后将其转换为 TeX。但可能当我进入最终制作阶段时,我会使用原始 TeX,因为它可以给我更好的灵活性,从而获得更好的结果。
据我所知,我想做的事情很简单,但是很多很多个小时过去了(阅读:没有花时间写论文,因此没有效率)阅读各种文件biblatex.def
、standard.bbx
示例等等和各种网页后,我完全迷失了。
我在这里读了一页:“定制围兜乳胶样式指南”。这确实有些帮助,但并没有让我克服困难。我好像在这里遗漏了一条基本信息。
我使用biblatex
Biber 和philosophy-classic
样式,因为它接近我需要的。我像这样导入它:
\usepackage[backend=biber,sorting=nyt,style=philosophy-classic]{biblatex}
\renewbibmacro{in:}{}
正如您所看到的,我还删除了期刊和书籍章节中的“In:”。
我引用了很多书籍和期刊,我必须使用的样式在大多数引用中包括页码:
\autocite[151]{Fabrizi2015} ...
\autocite[44-49]{Levene2010}
这些结果是
(Fabrizi 2015,第 151 页)... (Levene 2010,第 44-49 页)
这不是我需要的,尽管这是我迄今为止发现的最接近我需要的样式。我需要它的格式如下:
(Fabrizi 2015:151)...(Levene 2010:44-49)
我试过使用
\usepackage[backend=biber,sorting=nyt,citestyle=authoryear-comp, bibstyle=authoryear]{biblatex}
\renewbibmacro{in:}{}
\DeclareFieldFormat{pages}{#1}
我在许多评论/答案中都看到过这一点,但似乎并没有什么区别(当我使用 style=philosophy-classic 而不是上面的 cite style 和 bib style 条目时也没有区别)。
我还使用带有和不带有页码的 textcite 和 autocites(当它们没有页码时,\textcite
可以\autocite
正常显示):
For example, see \textcite[37-38]{Burck1971}.
Contra to this position is \textcite{Miles1988}.
a map of the places described \autocites[64]{Levene2010}[2]{Fabrizi2015}.
这些的结果与上面的类似。
例如,参见 Burck (1971, 第 37-38 页)。... 与此观点相反的是 Miles (1988)。... 所描述地点的地图(Levene 2010, 第 64 页;Fabrizi 2015, 第 2 页)。
这些都应该是:
例如,参见 Burck (1971: 37-38)。... 与此观点相反的是 Miles (1988)。... 所描述地点的地图(Levene 2010: 64;Fabrizi 2015: 2)。
这个问题看起来和我的差不多:BibLaTeX 定制:页面前缀到后缀但还不够接近,我真的无法理解答案(而且答案不被接受也没有帮助)。
书目暂时还可以。它打印期刊文章卷和期的方式有些烦人,但主要缺陷是它使用“页”来标记文章所在的页码。这是:
Levene DS (2006),《李维史学》45 中的历史、元历史和观众反应》,古典时代,25,1,第 73-108 页。
应该:
Levene DS (2006),《李维史学》45 中的历史、元历史和观众反应》,古典时代,25,1.73-108。
但目前我不太关心参考书目的格式,而是关心引用风格。关于参考书目的格式似乎有足够的信息,我可以自己解决这个问题。
那么,如何更改年份和页码之间的“,p.”和“,pp.”?
答案1
你可以结合以下方法Biblatex authoryear-comp 中的冒号代替“p.”和Biblatex:对于非数字的引用,没有 \postnotedelim
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\renewcommand{\postnotedelim}{%
\iffieldpages{postnote}
{\addcolon\space}
{\addspace}}
答案2
感谢用户 moewe 在评论中提供了大部分答案:
\usepackage[backend=biber,sorting=nyt,citestyle=authoryear-comp, bibstyle=authoryear,firstinits=true,isbn=false,doi=false,url=false,eprint=false]{biblatex}
\renewbibmacro{in:}{}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\renewcommand{\postnotedelim}{%
\iffieldpages{postnote} {\addcolon\addspace} {\addspace}}
新部件
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\renewcommand{\postnotedelim}{%
\iffieldpages{postnote} {\addcolon\addspace} {\addspace}}
现在可以根据需要打印引文。
答案3
我使用了上面提供的新部件,效果很好。但为了去掉参考书目中的“页”,我添加了:
\DeclareFieldFormat{页数}{#1}