如何删除 biblatex 中期刊文章前面的“übers”?

如何删除 biblatex 中期刊文章前面的“übers”?

我开始使用 BibLaTeX,遇到了一点问题。目前,一篇文章的引用如下所示:

在此处输入图片描述

我想删除文章标题前面的“Übers。”。我的 MWE 如下所示:

@article{asher_indirect_2001,
  title = {Indirect speech acts},
  volume = {128},
  url = {http://www.springerlink.com/index/K4V421247052432T.pdf},
  pages = {183--228},
  number = {1},
  journaltitle = {Synthese},
  author = {Asher, Nicholas and Lascarides, Alex},
  urldate = {2017-09-05},
  date = {2001},
  file = {Asher & Lascarides (2006)_ Indirect speech acts.pdf:files/131/Asher & Lascarides (2006)_ Indirect speech acts.pdf:application/pdf}
}
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[english, german]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}

\usepackage[
  backend=biber,
  bibencoding=latin1,
  isbn = false,
  doi = false,
  url = false,
  style = authoryear,
    ]
{biblatex}


\renewcommand{\postnotedelim}{\addcolon\addspace} % Doppeltpunkt in der Kurzzitierweise nach Jahr

\DeclareFieldFormat{postnote}{#1} % kein S. in der Kurzzitierweise vor der Seitenzahl

\renewcommand{\labelnamepunct}{\addcolon\addspace} %Doppelpunkt statt Punkt hinter der Jahresangabe im Literaturverzeichnis

\AtEveryBibitem{\clearfield{pagetotal}}

\DeclareFieldFormat[article]{citetitle}{#1\midsentence}
\DeclareFieldFormat[article]{title}{#1\midsentence} %Titel bei Artikeln nicht in ""

\DeclareFieldFormat[incollection]{citetitle}{#1\midsentence}
\DeclareFieldFormat[incollection]{title}{#1\midsentence} %Titel bei Sammelbänden nicht in ""

\DeclareFieldFormat[thesis]{citetitle}{#1\midsentence}
\DeclareFieldFormat[thesis]{title}{#1\midsentence} %Titel bei Diss. nicht in ""

\DeclareFieldFormat[unpublished]{citetitle}{#1\midsentence}
\DeclareFieldFormat[unpublished]{title}{#1\midsentence}
%Titel bei unpublished nicht in ""

\DeclareFieldFormat{pages}{#1} % das S. bei Artikeln im Literaturverzeichnis löschen

\renewcommand{\multinamedelim}{\space \& \space} 
   \renewcommand{\finalnamedelim}{\space \& \space} %Schrägstriche zwischen den Autoren

\DefineBibliographyStrings{german}{%
        andothers = {et\ al\adddot}, %et al. statt u.a.
        editors = {\mkbibparens{Hgg\adddot}}, %Hgg. plural
}


% kein Komma zwischen Namen und (Hrsg.)
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}
    {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND
                 \NOT\iffirstonpage\AND
         \(\NOT\boolean{bbx@inset}\OR
           \iffieldequalstr{entrysetcount}{1}\)}
       {\bibnamedash}
       {\printnames{editor}%
    \setunit{\addspace}
    \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}

  %Schriftenreihen in (=)
\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
     \printtext{=\addspace}%
     \printfield{series}%
     \setunit*{\addcomma\space}%
     \printfield{number}%
     \printtext{\addperiod}}
     \nopunct}}

     %Schriftenreihen an das Ende der Literaturangabe packen

     % Herausgeber vor Titel des Sammelbandes
\renewbibmacro*{in:}{%
  \printtext{\bibstring{in}\intitlepunct}%
  \ifnameundef{bookauthor}
    {\ifnameundef{editor}
       {\printnames[byeditor]{editor}%
        \setunit{\addcomma\space}%
        \usebibmacro{translator+othersstrg}%
        \clearname{translator}}
       {\printnames{editor}%
        \setunit{\addcomma\space}%
        \usebibmacro{editor+othersstrg}%
        \clearname{editor}}}
    {\ifnamesequal{author}{bookauthor}
       {}
       {\printnames{bookauthor}%
        \clearname{bookauthor}}}%
  \newunit\newblock}

%(Hrsg.) anstelle von hrsg. von bei Schriftenreihen
 \renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames[byeditor]{editor}%
     \setunit{\addspace}%
     \usebibmacro{byeditor+othersstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}


%bei Journals die Heftnummer in () nach der Jahreszahlnummer
\renewbibmacro*{journal+issuetitle}{% 
  \usebibmacro{journal}% 
  \setunit*{\addspace}% 
  \iffieldundef{series} 
    {} 
    {\newunit 
     \printfield{series}% 
     \setunit{\addspace}}% 
  \printfield{volume}% 
  \iffieldundef{number} 
     {} 
      {\mkbibparens{\printfield{number}}}% 
  \setunit{\addcomma\space}% 
  \printfield{eid}% 
  \setunit{\addspace}% 
  \usebibmacro{issue+date}% 
  \setunit{\addcolon\space}% 
  \usebibmacro{issue}% 
  \newunit}



\addbibresource{Linguistik.bib}

\begin{document}
\nocite{asher_indirect_2001}

\printbibliography
\end{document}

答案1

有问题的是您对 的重新定义\renewbibmacro*{in:}

使用您当前的代码,它会尝试在所有条目类型的“in”后打印编辑器或翻译器。代码测试是否存在editor,如果存在,则打印编辑器。如果没有,editor它会打印translator,如果确实有翻译器,则不进行测试。editor代码在translator“Trans./Übers.”后打印“(editor)”/“(Hrsg.)”。在示例的特定情况下,没有editor,因此代码尝试打印translator,字段为空,因此不显示任何内容,然后它打印“Übers。”。

对所有条目类型都这样做是没有意义的,@article因为根本没有编辑器,也很少有翻译器(而且在那个地方也不会出现翻译器),你可能只希望对 这样做@incollection。但即便如此,在继续之前也应该检查 是否translator已定义。

我也修改了你的其他代码

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[english, german]{babel}
\usepackage[T1]{fontenc}

\usepackage[
  backend=biber,
  isbn = false,
  doi = false,
  url = false,
  style = authoryear,
    ]
{biblatex}


\renewcommand{\postnotedelim}{\addcolon\addspace}

\DeclareFieldFormat{postnote}{#1}

\renewcommand{\labelnamepunct}{\addcolon\addspace}

\AtEveryBibitem{\clearfield{pagetotal}}

\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{citetitle}{#1\isdot}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1\isdot}

\DeclareFieldFormat{pages}{#1}

\renewcommand{\multinamedelim}{\addspace\&\space} 
\renewcommand{\finalnamedelim}{\multinamedelim}

\DefineBibliographyStrings{german}{%
  andothers = {et\addabbrvspace al\adddot},
  editors = {Hgg\adddot},
}


% kein Komma zwischen Namen und (Hrsg.)
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\printdelim{editortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\printdelim{nameyeardelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extrayear}}
\makeatother


%Schriftenreihen in (=)
\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
       \printtext{=\addspace}%
       \printfield{series}%
       \setunit*{\addcomma\space}%
       \printfield{number}%
       \printtext{\addperiod}}
       \nopunct}}

%Schriftenreihen an das Ende der Literaturangabe packen
% Herausgeber vor Titel des Sammelbandes
\renewbibmacro*{in:}{%
  \printtext{\bibstring{in}}%
  \printunit{\intitlepunct}%
  \ifentrytype{incollection}{%
    \ifnameundef{bookauthor}
       {\ifnameundef{editor}
          {\ifnameundef{translator}
             {}
             {\printnames{translator}%
              \setunit{\addspace}%
              \usebibmacro{translator+othersstrg}%
              \clearname{translator}}}
          {\printnames{editor}%
           \setunit{\addspace}%
           \usebibmacro{editor+othersstrg}%
           \clearname{editor}}}
        {\ifnamesequal{author}{bookauthor}
           {}
           {\printnames{bookauthor}%
            \clearname{bookauthor}}}}%
    {}%
  \newunit\newblock}

%bei Journals die Heftnummer in () nach der Jahreszahlnummer
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}


\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{asher_indirect_2001,
title = {Indirect speech acts},
volume = {128},
url = {http://www.springerlink.com/index/K4V421247052432T.pdf},
pages = {183--228},
number = {1},
journaltitle = {Synthese},
author = {Asher, Nicholas and Lascarides, Alex},
urldate = {2017-09-05},
date = {2001},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{asher_indirect_2001,sigfridsson,worman,geer,brandt,westfahl:space,westfahl:frontier}

\printbibliography
\end{document}

它使用了biblatex只在较新的版本(比如 >= 3.5)中可用的新功能biblatex,它已使用 3.7 进行了测试。

相关内容