如何消除 biblatex 书目的希伯来语本地化中连词“and”后面的空格?

如何消除 biblatex 书目的希伯来语本地化中连词“and”后面的空格?

以下 LaTeX 代码保存在 中~/Test.tex

\begin{filecontents*}[overwrite]{\jobname.bib}
@book{hebook,
   author = {אריק and בנץ},
   title = {כותרת},
   year = {2022}
}
\end{filecontents*}
\begin{filecontents*}[overwrite]{hebrew.lbx}
\ProvidesFile{hebrew.lbx}
[\abx@lbxid]
\DeclareRedundantLanguages{hebrew}{hebrew}
\DeclareBibliographyStrings{and = {{ו}{ו}}}
\endinput
\end{filecontents*}
\documentclass{article}
\usepackage[bidi=basic,hebrew,provide=*]{babel}
\babelfont{rm}[Renderer=HarfBuzz]{FreeSans}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{hebook}
\printbibliography
\end{document}

代码创建一个名为的文件,Test.bib其中包含一个由单个条目组成的 BibTex 书目:两位作者撰写的一本书。然后,代码创建一个名为的文件,hebrew.lbx其中包含该语言环境biblatex的本地化字符串hebrew。此文件仅包含一个条目:表示连词的希伯来语单词and,例如,用于两位作者之间的连词。然后,代码创建一篇简单的文章,通过包确定其主要语言babel为希伯来语。文章正文包含对书目条目的引用和书目。

然后在终端中执行以下命令。

> cd ~
> lualatex Test
> biber Test
> lualatex Test

因此文件~/Test.pdf已生成。在 PDF 查看器中打开时,文件显示如下。(我在屏幕截图中仅截取了显示的相关部分。)

包含两位作者的书的希伯来书目

(请注意,希伯来语是一种从右到左的语言。)

可以看出,输出符合预期。那么一切都很好,对吧?不完全是。问题是,在希伯来语中,与欧洲语言不同,连词不是一个独立的词,而是一个作为前缀附加到下一个词(即词的左边,因为希伯来语是从右到左的语言)。但是,如屏幕截图所示,希伯来语连词被视为一个独立的单词,并且与后面的作者姓名之间有一个空格隔开。

如何才能消除这个空间呢?

答案1

在此处输入图片描述

在指定的标记之后有一些 biblatex 辅助宏,然后\space您可以插入一个向前查看并吞噬空间的宏。

\begin{filecontents*}[overwrite]{\jobname.bib}
@book{hebook,
   author = {אריק and בנץ},
   title = {כותרת},
   year = {2022}
}
\end{filecontents*}
\begin{filecontents*}[overwrite]{hebrew.lbx}
\ProvidesFile{hebrew.lbx}
[\abx@lbxid]
\DeclareRedundantLanguages{hebrew}{hebrew}
\DeclareBibliographyStrings{and = {{ו\foo}{ו\foo}}}
\endinput
\end{filecontents*}
\documentclass{article}
\usepackage[bidi=basic,hebrew,provide=*]{babel}
\babelfont{rm}[Renderer=HarfBuzz]{FreeSans}
\usepackage{biblatex}
\def\foo#1\space{#1}
\addbibresource{\jobname.bib}
\begin{document}
\cite{hebook}
\printbibliography
\end{document}

相关内容