Biblatex:如何从参考书目中删除“In:”(Teoksessa:)(对于英语以外的语言)?

Biblatex:如何从参考书目中删除“In:”(Teoksessa:)(对于英语以外的语言)?

有没有办法删除在:以及参考书目中所有条目的等价词,无论条目的语言是什么?我试过了\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}

星期二,2019。谢谢。出处:Linnunrata。编辑作者:Kosmo Naut。//现在是 2020 年。谢谢。 – Linnunrata。托伊姆。科斯莫·诺特。

答案2

编辑:请参阅下面 moewe 的评论,了解为什么不这样做。

将以下内容放入你的序言中应该有效:

\DefineBibliographyStrings{finnish}{
  in = {}
}

相关内容