有没有办法删除在:以及参考书目中所有条目的等价词,无论条目的语言是什么?我试过了\renewbibmacro*{in:}{}
,但这对芬兰语条目没有影响(特奥克塞萨:遗迹):
2020 年新年。泰瓦斯。教义:- Linnunrata。托伊姆。科斯莫·诺特。
(我想要的是:2020 年新年。泰瓦斯。 - 林努拉塔。托伊姆。科斯莫·诺特。)
这里是 MWE:
\documentclass[12pt]{report}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inbook{Taht2020,
langid = {finnish},
title = {Taevas},
booktitle = {Linnunrata},
author = {Põhja Täht},
editor = {Kosmo Naut},
year = {2020},
}
@inbook{Taht2019,
langid = {english},
title = {Taevas},
booktitle = {Linnunrata},
author = {Põhja Täht},
editor = {Kosmo Naut},
year = {2019},
}
\end{filecontents*}
\usepackage[utf8]{inputenc}
\usepackage[T2A, T1]{fontenc}
\usepackage[finnish, english, estonian]{babel}
\usepackage[bibencoding=auto, backend=biber, autolang = other, style=authoryear, sorting=debug, dashed=false, citestyle=authoryear-comp, maxcitenames=2]{biblatex}
\usepackage[babel]{csquotes}
\usepackage{xpatch, filecontents}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\setunit*{\space}%
\printtext%
}{}{}
\renewbibmacro*{begentry}{%
\ifnameundef{shortauthor}
{}
{\textbf{\printnames{shortauthor}%
\addspace{=}\space}}}
\renewbibmacro*{in:}{}
\bibliography{\jobname}
\DeclareFieldFormat*{title}{#1}
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\xpretobibmacro{bbx:editor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:editor}{\egroup}{}{}
\DeclareFieldFormat[inbook]{title}{#1\addperiod{\space}}{}
\DeclareFieldFormat[inbook]{booktitle}{--{\space}#1\addperiod}
\begin{document}
Citing different works \parencite{Taht2019, Taht2020}
\printbibliography
\end{document}
答案1
爱沙尼亚语和芬兰语模块均在参考书目语言附加部分中biblatex
重新定义了 bibmacro in:
。如果您想自己重新定义此宏,则需要在 中进行\DefineBibliographyExtras{<language>}
。
我建议您重新定义in:
,这样您不再需要在title
和的字段格式中包含标点符号命令booktitle
。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A, T1]{fontenc}
\usepackage[finnish, english, estonian]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,
style=authoryear-comp,
maxcitenames=2,
dashed=false,
autolang=other
]{biblatex}
\usepackage{xpatch}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\setunit*{\space}%
\printtext%
}{}{}
\renewbibmacro*{begentry}{%
\ifnameundef{shortauthor}
{}
{\textbf{\printnames{shortauthor}%
\addspace{=}\space}}}
\DefineBibliographyExtras{estonian}{%
\renewbibmacro*{in:}{\printunit{\addperiod\addspace--\space}}}
\DefineBibliographyExtras{finnish}{%
\renewbibmacro*{in:}{\printunit{\addperiod\addspace--\space}}}
\DeclareFieldFormat*{title}{#1}
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\xpretobibmacro{bbx:editor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:editor}{\egroup}{}{}
\begin{filecontents*}{\jobname.bib}
@inbook{Taht2020,
langid = {finnish},
title = {Taevas},
booktitle = {Linnunrata},
author = {Põhja Täht},
editor = {Kosmo Naut},
year = {2020},
}
@inbook{Taht2019,
langid = {english},
title = {Taevas},
booktitle = {Linnunrata},
author = {Põhja Täht},
editor = {Kosmo Naut},
year = {2019},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
Citing different works \autocite{Taht2019, Taht2020}
\printbibliography
\end{document}
答案2
编辑:请参阅下面 moewe 的评论,了解为什么不这样做。
将以下内容放入你的序言中应该有效:
\DefineBibliographyStrings{finnish}{
in = {}
}