![如何使用 XeLaTeX 和 Biblatex-Biber 后端以阿拉伯语制作正确的参考书目?](https://linux22.com/image/288715/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20XeLaTeX%20%E5%92%8C%20Biblatex-Biber%20%E5%90%8E%E7%AB%AF%E4%BB%A5%E9%98%BF%E6%8B%89%E4%BC%AF%E8%AF%AD%E5%88%B6%E4%BD%9C%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%EF%BC%9F.png)
我想在一份主要用阿拉伯语编写但中间夹杂一些英文文本的文档中添加参考书目。因此,我选择了arabxetex
方法而不是polyglossia
,因为在我看来,与有大量英文文本和少量阿拉伯文文本相比,这种方法可以让你更灵活地在两个方向之间切换(我也愿意听取其他意见)。
无论如何,问题在于参考书目以及如何在不进行任何音译或直接妥协的情况下制作出与英文相对应的阿拉伯文。我来自这个问题尝试寻找答案,但 lualatex 的输出不理想,因此不够充分。
问题
如您所见,只出现了引文关键字,如何解决?如何让引文编号以印度数字(Waahid-red、Ithnaan-green、Thalaatha 等)显示,而不是阿拉伯数字(1、2、3 等)显示?
Bibliography
文档末尾没有出现任何章节?如果出现,如何使其以阿拉伯语显示المراجع
?在阿拉伯语文本中输入参考信息字段的最佳方法是什么,我遗漏了什么?
MWE 代码
\documentclass[oneside,16pt]{scrartcl}
%=====================Graphics ===================================
\usepackage[demo]{graphicx}
\usepackage{xcolor}
\usepackage{tikz}
%=====================Floats =====================================
\usepackage{floatrow}
\usepackage{float}
\usepackage{scrhack}
\usepackage{caption}
\captionsetup[figure]{labelfont=bf,labelsep=period,format=plain,skip=0pt,font=small}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{subcaption}
%=====================Hyphenation ================================
\usepackage[none]{hyphenat}
\usepackage[protrusion = true,final]{microtype}
\emergencystretch=2em
%=====================Hyperref ===================================
\usepackage[hyperindex=true, hyperfootnotes=true]{hyperref}
\hypersetup{
colorlinks, linkcolor={blue},
citecolor={blue}, urlcolor={blue}
}
%=====================Font issues ===================================
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{arabxetex}% default options are "novoc" and "fdf2alif";
% other options are "voc", "fullvoc", "utf", "trans" and "fdf2noalif"
\newfontfamily\arabicfont[Script=Arabic]{Amiri} % or put whatever open type Arabic font you have on your machine inside the two braces
%=====================Bibliography ===================================
\usepackage[style=verbose,backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina:shifa:physics:ar,
author = {ابن سينا},
year = {١٤١٧},
title = {السماع الطبيعى من كتاب الشفاء},
publisher = {دار المناهل},
location = {بيروت},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%=====================End of Preamble ===================================
\begin{document}
\begin{arab}[voc]
وَهَذِهِ فِقرَةٌ بِالعَرَبِيَة مَعَ كَلِمَة اِنكلِيزِيَة رقم 1 او 2 باللغة اللعربية.
\noindent
(\textLR{Words in \textbf{English} with \textsc{small caps} or \textit{italics} are also possible}).
عند الحاجة الى المصدر باللغة العربية \cite{ibnsina:shifa:physics:ar} تذهب الى باب المراجع فلا تجده.
\end{arab}
\printbibliography
\end{document}
MWE 输出
更新 1
根据 PLK 提供的信息丰富的答案,一些错误现在已经修复,剩下的是逗号问题(用红色圈出),它不是阿拉伯风格(应该向上而不是向下)。
\documentclass[oneside,16pt]{scrartcl}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{polyglossia}
\setmainlanguage{arabic}
\setotherlanguage{english}
\setmainfont{Arial}
\newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\newfontfamily\arabicfontsf[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\newfontfamily\arabicfonttt[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\usepackage[style=numeric,backend=biber]{biblatex}
\DefineBibliographyStrings{english}{%
references = {المراجع},
}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina:shifa:physics:ar,
author = {{ابن سينا}},
year = {1417},
title = {السماع الطبيعى من كتاب الشفاء},
publisher = {دار المناهل},
location = {بيروت},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%=====================End of Preamble ===================================
\begin{document}
وَهَذِهِ فِقرَةٌ بِالعَرَبِيَة مَعَ كَلِمَة اِنكلِيزِيَة رقم 1 او 2 باللغة اللعربية.
\textenglish{(Words in \textbf{English} with \textsc{small caps} or \textit{italics} are also possible).}
عند الحاجة الى المصدر باللغة العربية \parencite{ibnsina:shifa:physics:ar} تذهب الى باب المراجع فتجده، لكن الفارزة ليست على الطراز العربي بل الافرنجي.
\printbibliography
\end{document}
输出
问题更新:
如何修复逗号?
更新 2
在PLK的大力帮助下修复了逗号问题,最终的代码如下:
\documentclass[oneside,16pt]{scrartcl}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{polyglossia}
\setmainlanguage{arabic}
\setotherlanguage{english}
\setmainfont{Arial}
\newfontfamily\arabicfont[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\newfontfamily\arabicfontsf[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\newfontfamily\arabicfonttt[Script=Arabic,Mapping=arabicdigits]{USAMA NASKH}
\usepackage[style=numeric,backend=biber]{biblatex}
\DefineBibliographyStrings{english}{%
references = {المراجع},
}
\makeatletter
\def\abx@comma{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{،}}% \makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina:shifa:physics:ar,
author = {{ابن سينا}},
year = {1417},
title = {السماع الطبيعى من كتاب الشفاء},
publisher = {دار المناهل},
location = {بيروت},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%=====================End of Preamble ===================================
\begin{document}
وَهَذِهِ فِقرَةٌ بِالعَرَبِيَة مَعَ كَلِمَة اِنكلِيزِيَة رقم 1 او 2 باللغة اللعربية.
\textenglish{(Words in \textbf{English} with \textsc{small caps}, or \textit{italics} are also possible).}
عند الحاجة الى المصدر باللغة العربية \parencite{ibnsina:shifa:physics:ar} تذهب الى باب المراجع فأنك حتما ستجده و مع الفارزة هذه المرة على الطراز العربي الاصيل.
\printbibliography
\end{document}
输出
答案1
这对我来说似乎有用(除了我无法真正验证阿拉伯语)在 OSX 上像这样(为了简单起见,我删除了很多不必要的包):
\documentclass[oneside,16pt]{scrartcl}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{polyglossia}
\setmainlanguage{arabic}
\setotherlanguage{english}
\setmainfont{Arial}
\newfontfamily\arabicfont[Script=Arabic]{Geeza Pro}
\newfontfamily\arabicfontsf[Script=Arabic]{Geeza Pro}
\newfontfamily\arabicfonttt[Script=Arabic]{Geeza Pro}
\usepackage[style=verbose,backend=biber]{biblatex}
\DefineBibliographyStrings{english}{%
references = {المراجع},
}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ibnsina:shifa:physics:ar,
author = {ابن سينا},
year = {١٤١٧},
title = {السماع الطبيعى من كتاب الشفاء},
publisher = {دار المناهل},
location = {بيروت},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%=====================End of Preamble ===================================
\begin{document}
وَهَذِهِ فِقرَةٌ بِالعَرَبِيَة مَعَ كَلِمَة اِنكلِيزِيَة رقم 1 او 2 باللغة اللعربية.
\textenglish{(Words in \textbf{English} with \textsc{small caps} or \textit{italics} are also possible).}
عند الحاجة الى المصدر باللغة العربية \cite{ibnsina:shifa:physics:ar} تذهب الى باب المراجع فلا تجده.
\printbibliography
\end{document}
结果是:
Biber 可以理解 UTF-8,因此只要您使用 XeLaTeX 或 LuaLaTeX,就可以像以前一样直接输入。Biblatex 目前没有阿拉伯语本地化(并且通常没有真正的 RL 支持),因此它依赖于字符串的“英语”本地化,这就是我修改英语语言环境中的“参考”标题的原因。希望这能帮助您入门...