抑制 biblatex 对参考书目字段的格式化

抑制 biblatex 对参考书目字段的格式化

我如何才能抑制 biblatex 对参考书目字段的样式?我更喜欢普通字体,而不是倾斜或斜体的标题。这意味着除作者和年份之外的所有字段都应以普通衬线字体打印。抑制引号也是不错的选择。

第二个问题是,短作者字段应以粗体显示在作者前面。这可能吗?

提前感谢您的支持!

最小示例:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}

\usepackage[
style=authoryear-icomp,
backend=biber,
sorting=nyt,
sortcase=false,
url=false,
isbn=false,
doi=false,
clearlang=false,
maxbibnames=10,
maxcitenames=2,
dashed=false
]{biblatex}

% usage of et al.
\DefineBibliographyStrings{ngerman}{%
    andothers = {et\addspace al\adddotspace},%
    andmore = {et\addspace al\adddotspace},%
}

% colon behind author in bibliography
\renewcommand{\labelnamepunct}{\addcolon\space}

\usepackage{xpatch}
% author in bold font in bibliography
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\xpretobibmacro{bbx:shortauthor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:shortauthor}{\egroup}{}{}
\xpretobibmacro{bbx:editor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:editor}{\egroup}{}{}

\usepackage{blindtext}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @Book{Berthold2014,
        Title                    = {In erster Linie Kinder. Flüchtlingskinder in Deutschland.},
        Author                   = {Berthold, Thomas},
        Year                     = {2014},
        Publisher                = {Deutsches Komitee für \textsc{Unicef} e.\,V.},
        Url                      = {https://www.unicef.de/blob/56282/fa13c2eefcd41dfca5d89d44c72e72e3/fluechtlingskinder-in-deutschland-unicef-studie-2014-data.pdf},
        Urldate                  = {2016-07-02},

        Owner                    = {sg},
        Timestamp                = {2016.07.14}
    }

    @Misc{BAMF2015b,
        Title                    = {Aktuelle Zahlen zu Asyl.},
        Author                   = {{Bundesamt für Migration und Flüchtlinge}},
        Year                     = {2015},
        Note                     = {Stand: Dezember 2015.},

        Owner                    = {lo},
        Shortauthor              = {BAMF},
        Timestamp                = {2016.07.17}
    }


    @Inbook{Braches-Chyrek2014a,
        Title                    = {Einleitung.},
        Author                   = {Braches-Chyrek, Rita and Röhner, Charlotte and Sünker, Heinz and Hopf, Michaela},
        Booktitle                = {Handbuch frühe Kindheit.},
        Year                     = {2014},
        Editor                   = {Braches-Chyrek, Rita and Röhner, Charlotte and Sünker, Heinz and Hopf, Michaela},
        Pages                    = {11-24},
        Publisher                = {Budrich},

        Address                  = {Opladen},
        Owner                    = {sg},
        Timestamp                = {2016.07.31}
    }

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
    \nocite{*}
    \printbibliography
\end{document}

答案1

字段的格式通过 控制\DeclareFieldFormat。大多数默认值在 中设置biblatex.def

您可以使用以下方法重置斜体/强调和引号

\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{title}{#1}

请注意,我们在这里使用了带星号的版本,这允许我们无条件覆盖所有特定类型的格式。

MWE(请注意,我已修改您的 bib 条目,以便不在标题中包含句号,这是没有必要的;我还将声明更改DefineBibliographyStrings为使用\adddot而不是\adddotspace

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{csquotes}

\usepackage[
style=authoryear-icomp,
backend=biber,
sorting=nyt,
sortcase=false,
url=false,
isbn=false,
doi=false,
clearlang=false,
maxbibnames=10,
maxcitenames=2,
dashed=false
]{biblatex}

% usage of et al.
\DefineBibliographyStrings{ngerman}{%
    andothers = {et\addspace al\adddot},%
    andmore = {et\addspace al\adddot},%
}

% colon behind author in bibliography
\renewcommand{\labelnamepunct}{\addcolon\space}

\usepackage{xpatch}
% author in bold font in bibliography
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\xpretobibmacro{bbx:shortauthor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:shortauthor}{\egroup}{}{}
\xpretobibmacro{bbx:editor}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{bbx:editor}{\egroup}{}{}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Berthold2014,
  title     = {In erster Linie Kinder. Flüchtlingskinder in Deutschland}, 
  author    = {Berthold, Thomas},
  year      = {2014},
  publisher = {Deutsches Komitee für \textsc{Unicef} e.\,V.},
  url       = {https://www.unicef.de/blob/56282/fa13c2eefcd41dfca5d89d44c72e72e3/fluechtlingskinder-in-deutschland-unicef-studie-2014-data.pdf},
  urldate   = {2016-07-02},
}

@Misc{BAMF2015b,
  title        = {Aktuelle Zahlen zu Asyl},
  author       = {{Bundesamt für Migration und Flüchtlinge}},
  year         = {2015},
  note         = {Stand: Dezember 2015.},
  shortauthor  = {BAMF},
}

@Inbook{Braches-Chyrek2014a,
  title      = {Einleitung},
  author     = {Braches-Chyrek, Rita and Röhner, Charlotte and Sünker, Heinz and Hopf, Michaela},
  booktitle  = {Handbuch frühe Kindheit},
  year       = {2014},
  editor     = {Braches-Chyrek, Rita and Röhner, Charlotte and Sünker, Heinz and Hopf, Michaela},
  pages      = {11-24},
  publisher  = {Budrich},
  address    = {Opladen},
}

\end{filecontents}

\addbibresource{\jobname.bib}

\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{title}{#1}


\begin{document}
  \nocite{*}
  \printbibliography
\end{document}

示例输出


更彻底的解决方案是让所有\mkbib...格式化命令都输出纯文本

\makeatletter
\protected\def\blx@imc@mkbibquote#1{#1}
\protected\long\def\blx@imc@mkbibemph#1{#1}
%\protected\long\def\blx@imc@mkbibbold#1{#1}
\protected\long\def\blx@imc@mkbibitalic#1{#1}
\makeatother

相关内容