参考书目,其句子风格尊重各种语言的语法

参考书目,其句子风格尊重各种语言的语法

我正在用英语写一份报告,引用许多其他语言的文章(例如意大利语、瑞典语、挪威语......)

但是,即使我添加了该autolang=hyphen选项biblatex,并将该选项添加langid到每个非英语文章中,biber仍然LaTeX无法正确格式化我的参考书目。

我想要的是:参考书目中的句子风格符合语言的大写规则。因此,例如在德语中,许多单词通常大写。因此,Loew 的标题应为(遵循句子风格):北德意志联邦共和国森林地表附生植物生存状况. 每个引用都应针对给定的语言进行设置(由 给出langid)。

另外,我想biblatex 的句子风格忽略期刊标题。biblatex 手册中说,既为又titlecase为 设定了(但书名仍为大写)。到目前为止,我找不到解决方法,但我更希望titlejournaltitleseriestitle句子风格以及journaltitle大写

次要问题:

也许有人可以解释一下,为什么斜体水龙骨约翰逊的文章中的单词是否全部大写?

我正在使用biberpdflatex基于的自定义参考书目样式(此处未给出)authoryear。(通常,我也使用babelfontenclmodern,但它们对于 MWE 来说不是必需的)

编辑:如果我想显示已编译的文档,我是否需要上传它或者有没有办法做到这一点stackexchange

谢谢各位好心人!

梅威瑟:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{current.bib}
    @Article{Johnson1921,
        author          = {Johnson, Duncan S.},
        title           = {{\textit{Polypodium vulgare}} as an Epiphyte},
        volume          = {72},
        number          = {4},
        pages           = {237--244},
        date            = {1921},
        groups          = {Accidental Epiphytes},
        journaltitle    = {The University of Chicago Press},
    }
    @Book{Magnin1895,
        author    = {Magnin, A.},
        title     = {Florule adventive des Saules T{\^e}tards de la r{\'e}gion Lyonnnaise},
        publisher = {Librairie G{\'e}n{\'e}rale Henri Georg},
        year      = {1895},
        groups    = {Accidental Epiphytes},
        langid    = {french},
    }
    @Article{Steenis1925,
        author       = {van Steenis, C. G. G. J.},
        title        = {Over de phanerogamen en vaatkryptogamen voorkomende op knotwilgen in Nederland},
        pages        = {360--406},
        date         = {1925},
        journaltitle = {Nederlandse Kruidk. Arch.},
        langid       = {dutch},
    }
    @Article{Staeger1908,
        author          = {St{\"{a}}ger, Rob},
        title           = {Beitrag zur schweizerischen ``Epiphytenflora''},
        pages           = {17--90},
        date            = {1908},
        journaltitle    = {Mittheilungen der Naturforschenden Gesellschaft in Bern},
        langid       = {ngerman},
    }
    @Article{Loew1892,
        author          = {Loew, E.},
        title           = {Anf{\"{a}}nge epiphytischer Lebensweise bei Gef{\"{a}\ss}plfanzen Norddeutschlands},
        volume          = {33},
        pages           = {63--74},
        date            = {1892},
        journaltitle    = {Verhandlungen des Botanischen Vereins f{\"{u}}r die Provinz},
        langid          = {ngerman},
    }
    @Book{Schimper1888,
        title     = {Die epiphytische Vegetation Amerikas},
        publisher = {Universit{\"{a}}t Bonn},
        author    = {Schimper, A. F. W.},
        volume    = {2},
        series    = {Botanische Mittheilungen aus den Tropen},
        booktitle = {Botanische Mittheilungen aus den Tropen},
        date      = {1888},
        langid    = {ngerman},
        location  = {Jena},
    }
\end{filecontents}

\usepackage[utf8]{inputenc}
\usepackage[backend=biber,uniquename=init,autolang=hyphen,block=space,style=authoryear,useprefix=false]{biblatex}
\DeclareFieldFormat{titlecase}{\MakeSentenceCase{#1}}
\bibliography{current}

\begin{document}


\section*{Epiphytes are awesome!}
So this is my main document in English but citing from many sources of various languages \parencite[eg.][]{Steenis1925, Magnin1895, Johnson1921, Staeger1908, Loew1892, Schimper1888}

\printbibliography

\end{document}

答案1

您想要带星号的版本\MakeSentenceCase

\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}

来自biblatex文档,第 211-212 页,(重点是我的)

[ \MakeSentenceCase/ \MakeSentenceCase*] 带星号的版本与常规版本不同,因为它考虑了字段中指定的条目语言langid。如果langid字段已定义并包含用\DeclareCaseLangs[...] 声明的语言,则执行句子大小写转换。如果字段langid未定义,则\DeclareCaseLangs检查用 声明的语言列表中是否存在从语言选项派生的主文档语言。如果找到,则执行句子大小写转换,如果没有,则text 不会以任何方式更改。建议\MakeSentenceCase*在格式化指令中使用而不是常规变体。

默认情况下也是journal(title)大写的titlecase,如果你想禁用它,请使用

\renewbibmacro*{journal}{%
  \ifboolexpr{
    test {\iffieldundef{journaltitle}}
    and
    test {\iffieldundef{journalsubtitle}}
  }
    {}
    {\printtext[journaltitle]{%
       \printfield[default]{journaltitle}%
       \setunit{\subtitlepunct}%
       \printfield[default]{journalsubtitle}}}}

避免水龙骨大写使用

title = {\textit{Polypodium vulgare} as an Epiphyte},

这里的问题是biblatex需要将标题的首字母大写。因为括号biblatex将整个\textit{Polypodium vulgare}视为句子的首字母并将其大写,导致大喊大叫。

相关内容