每种语言的参考书目字符串对我来说不起作用(biblatex/biber/polyglossia)

每种语言的参考书目字符串对我来说不起作用(biblatex/biber/polyglossia)

我的参考书目包含英语和希伯来语条目。为了实现这一点,我使用了 XeTeX、biblatex(带有 biber 和 biblatex-apa)和 polyglossia。

由于 biblatex 不支持希伯来语,我想使用命令定义希伯来语书目字符串(例如“编辑器”)\DefineBibliographyStrings

问题:无论我怎么尝试,我的希伯来语书目项目似乎都没有注册为希伯来语DefineBibliographyStrings

  1. 如果我使用\DefineBibliographyStrings{english}{editor={עורך}},那么它会改变字符串全部条目(英文和希伯来文)。
  2. 如果我使用\DefineBibliographyStrings{hebrew}{editor={עורך}},那么它会改变字符串没有任何的条目。

我尝试了很多办法来解决这个问题:

  • 给出我的 bib 条目langidhyphenation字段language
  • 修补所有可能的情况autolang和选择。languageclearlangbiblatex
  • 将希伯来语条目重新定义为随机支持的语言,例如德语。
  • 创建 hebrew.lbx 文件等,以“添加”对 biblatex 的希伯来语支持(从英文文件复制而来,此处或彼处略作更改)。

但什么也没起作用...

以下是 MWE:

bib文件

@incollection{EnglishExample,
    title={Example},
    author={John McAuthor},
    year={2016},
    booktitle={American Journal of Examples},
    editor={Jack McEditor},
    pages={1-100}
}

@incollection{HebrewExample,
    author={ר גורבטוב and א בן-משה and מ בן-שמחון},
    title={אנשים עם פיגור שכלי},
    booktitle={סקירת השירותים החברתיים 2009},
    year={2009},
    editor={י צבע},
    pages={367-399},
    address={ירושלים},
    publisher={משרד הרווחה והשירותים החברתיים},
    keywords={hebrew},
    language={hebrew},
    hyphenation={hebrew},
    langid={hebrew}
}

tex 文件

\documentclass[oneside,english]{book}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Linux Libertine}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\makeatletter
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\usepackage{csquotes}
\usepackage[style=apa,backend=biber]{biblatex}

\addbibresource{mwe-hebrew-bib-strings.bib}

\DeclareLanguageMapping{english}{english-apa}
\DeclareLanguageMapping{hebrew}{english-apa}  % this is needed for \DefineBibliographyStrings{hebrew}

\DefineBibliographyStrings{hebrew}{%
     editor={עורך}
}
% the above \DefineBibliographyStrings affects NEITHER entry
% but changing it to {english} affects BOTH entries

\makeatother

\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

注意:由于我正在使用 LyX,因此违背我的意愿重复加载 polyglossia 和 setdefaultlanguage,但我认为这没有影响......

答案1

这里有几个问题。最大的问题是biblatex和都biblatex-apa缺乏希伯来语本地化。

但是让我们从一些不太复杂的事情开始。

\DeclareLanguageMapping{hebrew}{english-apa}  % this is needed for \DefineBibliographyStrings{hebrew}

您实际上告诉biblatex大家希伯来语与英语相同(准确地说是英语的 APA“方言”)。从那时起,只要您的文档中有希伯来语文本,它就会被视为英语,因此您的修改\DefineBibliographyStrings{hebrew}不会产生任何效果,因为它只会修改根本不使用的希伯来语字符串。

因此,您必须删除\DeclareLanguageMapping{hebrew}{english-apa}。但您将需要那里定义的某种hebrew-apa.lbx或至少部分宏。请参阅APA 格式的问题

你还必须教授biblatex希伯来语。请参阅配置 biblatex 以用于不受支持的语言的最合适方法是什么?为此。(您可能还想教csquotes希伯来语:引号(引号符号) xelatex + polyglossia + csquotes

相关内容