这是我在这里的第一个问题,所以如果我犯了愚蠢的错误,请多多包涵。我正在使用 overleaf(我也安装了 TexWorks,但更喜欢用 overleaf 在设备之间同步(因为可视化编辑器非常好用)),所以我无法真正看到每个文件。
我使用 apa-syle 作为基础,但想对其进行修改(我不需要遵守指南,但最喜欢 apa)。我的问题是 apa 不包含字段origlocation
和。我想将它们包含在参考书目条目末尾的origpublisher
括号中,内容如下:origdate
(原件于 1890 年出版)
我想要的是其中之一(我不关心origpublisher
显示哪种格式,我会选择任何可行的格式):
(原件于 1890 年出版,汉堡,F. Engels 出版社)
(原件于 1890 年出版,汉堡,弗里德里希·恩格斯 (Hrsg.))
(原件于 1890 年出版,汉堡,恩格斯,F. (Hrsg.))
在我的 MWE 中,我包含了 4 个 bib 条目:第一个(韦伯)只有origdate
,所以还不错。第二个(马克思)就是我上面描述的。第三个(熊彼特)有 和origdate
,origpublisher
并且应该显示为:
(原作于 1942 年,由 E. Salin 编辑)
第四位(皮凯蒂)另外还有origtitle
,最好将其包含在括号中。关于这个问题已经有一个回答,但我不太理解,无法实现它,而且它现在对我来说也不那么重要。在 apa 样式中包含series
和也是如此,number
已在这里回答。
这是我的 MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,
%citestyle=authoryear-icomp,
%bibstyle=apa,
style=apa,
]{biblatex} % https://mediatum.ub.tum.de/doc/1315979/1315979.pdf https://mirrors.ibiblio.org/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf http://mirrors.ibiblio.org/CTAN/info/translations/biblatex/de/biblatex-de-Benutzerhandbuch.pdf
\ExecuteBibliographyOptions{
uniquelist=false,
% origdate=apalong, %https://github.com/plk/biblatex-apa/blob/master/tex/latex/biblatex-apa/bbx/apa.bbx
}
\renewcommand*{\nameyeardelim}{\addspace} % remove comma in (Beadle and Tautum, 1941) This applies to citation only https://tex.stackexchange.com/questions/452228/modifying-bibliography-with-biblatex-biber-apa-style-locationpublisherdoi
\begin{filecontents}{test.bib}
@InCollection{Weber1972,
author = {Weber, Max},
date = {1972},
title = {Wirtschaft und Gesellschaft: Grundriß der verstehenden Soziologie},
edition = {5., rev. Aufl.},
isbn = {3165336318},
language = {ger},
location = {Tübingen},
publisher = {Mohr},
origdate = {1922},
type = {Band},
}
@InCollection{Marx1962,
author = {Marx, Karl},
booktitle = {Das Kapital},
date = {1962},
title = {Der Produktionsprozeß des Kapitals},
booksubtitle = {Kritik der politischen Ökonomie},
edition = {Nach der 4. Aufl.},
location = {Berlin},
publisher = {Dietz},
volume = {1},
origdate = {1890},
origlocation = {Hamburg},
origpublisher = {Engels, Friedrich},
}
@Book{Schumpeter1987,
author = {Schumpeter, Joseph A.},
date = {1987},
title = {Kapitalismus, Sozialismus und Demokratie},
edition = {6},
editor = {Seifert, Eberhard K.},
isbn = {3772012981},
language = {ger},
location = {Tübingen},
number = {172},
pagetotal = {542},
publisher = {Francke},
series = {Uni-Taschenbücher},
address = {Tübingen},
origpublisher = {Salin, Edgar},
origdate = {1942},
}
@Book{Piketty2016,
author = {Piketty, Thomas},
date = {2016},
title = {Das Kapital im 21. Jahrhundert},
edition = {1. Aufl. als Paperback},
location = {München},
number = {6236},
origlanguage = {french},
publisher = {C.H.Beck},
series = {C.H. Beck Paperback},
translator = {Utz, Ilse and Lorenzer, Stefan},
origdate = {2013},
origtitle = {Le Capital au XXIe Si{\'e}cle},
ppn_gvk = {1830858505},
}
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
\section{Test}
Lorem \parencite[190]{Marx1962}. Ipsum \parencite[30]{Weber1972}. Dolor \parencite[60]{Piketty2016}. Sit amet \parencite[391]{Schumpeter1987}.
\section{Bibliography}
\printbibliography[heading=none]
\end{document}
输出:
所以感谢您提供的帮助。
答案1
部分答案可以帮助您入门。
origyear
打印的定义apa.bbx
是\newbibmacro
而不是\DeclareFieldFormat
。如果您想使用该定义作为一种快速(但不一定在语义上正确)的方式来添加位置和发布者,那么您可以更新该宏。
\renewbibmacro*{origyear}{%
\printtext[parens]{%
\bibcpstring{origyear}
\setunit{\addnbspace}%
\printorigdate%
\iflistundef{origlocation}%
{}%
{\addcomma\addspace \printlist{origlocation}}%
\iflistundef{origpublisher}%
{}%
{\addcomma\addspace Hrsg. von \printlist{origpublisher}}%
}%
}
结果:
您可以在宏中看到origlocation
和origpublisher
的类型为list
。这来自.bbl
Biber 生成的文件:
\entry{Marx1962}{inbook}{}
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=af80d32a7d375e934f94bdfb27bf2999}{%
family={Marx},
familyi={M\bibinitperiod},
given={Karl},
giveni={K\bibinitperiod},
givenun=0}}%
}
\list{location}{1}{%
{Berlin}%
}
\list{origlocation}{1}{%
{Hamburg}%
}
\list{origpublisher}{1}{%
{Engels, Friedrich}%
}
\list{publisher}{1}{%
{Dietz}%
}
% [...some entries removed...]
\field{booksubtitle}{Kritik der politischen Ökonomie}
\field{booktitle}{Das Kapital}
\field{edition}{Nach der 4. Aufl.}
\field{origyear}{1890}
\field{title}{Der Produktionsprozeß des Kapitals}
列表条目按原样打印,不应用名称格式,因此导致人力资源弗里德里希·冯·恩格斯代替人力资源冯·恩格斯你想要什么。
因此,如果 Biber 知道这origpublisher
是个人姓名,那么它就可以提取并格式化名字、姓氏和首字母,就像.bbl
上面片段中的 Marx 一样。这需要更改数据模型,就像在链接的帖子中所做的那样,通过编写自定义biblatex-dm.cfg
。当然,与此同时,您可以更改文件.bib
以手动执行出版商名称的格式化。