Biblatex 引用 - 更改页面前缀

Biblatex 引用 - 更改页面前缀

我在这里读到了很多关于biblatex引用格式的问题。我使用 C、Java、Python 等语言编程了 20 多年,但一直没有取得任何进展:它似乎和我遇到过的任何东西一样晦涩难懂。我只是偶尔接触 TeX:我只是想写论文,而不是成为 TeX 大师。大多数情况下,我使用 pandoc(markdown)编写,然后将其转换为 TeX。但可能当我进入最终制作阶段时,我会使用原始 TeX,因为它可以给我更好的灵活性,从而获得更好的结果。

据我所知,我想做的事情很简单,但是很多很多个小时过去了(阅读:没有花时间写论文,因此没有效率)阅读各种文件biblatex.defstandard.bbx示例等等和各种网页后,我完全迷失了。

我在这里读了一页:“定制围兜乳胶样式指南”。这确实有些帮助,但并没有让我克服困难。我好像在这里遗漏了一条基本信息。

我使用biblatexBiber 和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}

相关内容