输出乱码

输出乱码

我用英语撰写有关阿拉伯语搭配的文章,引用了英语和阿拉伯语资料。由于资料来源众多,我使用分段参考书目,用 biblatex 筛选关键词,其中每个部分仅包含英语或仅包含阿拉伯语资料。

使用 XeTeX 和 polyglossia,我的文档的主要语言是英语,所以我必须将参考书目的阿拉伯语部分切换为阿拉伯语。这在一定程度上可行,因为该部分是从右到左的,但阿拉伯字母是不连贯的。

输出乱码

不连贯的字母

最小(不)工作示例

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{csquotes}
\setmainfont[Mapping=tex-text]{Amiri}
\setsansfont[Mapping=tex-text]{Amiri}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{arabic}

\usepackage{filecontents}
\begin{filecontents}{refs_test.bib}
@Article{Ghazala1993,
  author       = {غزالة, حسن},
  title        = {ترجمة المتلازمات اللفظية (عربي-انجليزي)},
  journaltitle = {ترجمان},
  year         = {1993},
  keywords     = {arabic},
}
@Book{Baalbaki1987,
  author    = {Baalbaki, Munir},
  title     = {Al-Mawrid: A Modern Arabic-English Dictionary},
  year      = {1987},
  publisher = {Dar al-'Ilm li'l-Malayin},
  address   = {Beirut},
  keywords  = {english}
}
\end{filecontents}

\usepackage[style=authoryear,backend=biber]{biblatex}
\addbibresource{refs_test.bib}

\usepackage{xunicode}

\begin{document}

Sample enumeration:
\begin{enumerate}
\item first
\item second
\end{enumerate}

\section{References}

\nocite{*}

\printbibliography[keyword={english}, title={English Dictionaries}, heading=subbibliography]
\selectlanguage{arabic}
\printbibliography[keyword={arabic}, title={قواميس عربية}, heading=subbibliography]

\end{document}

注意:我知道以下问题涉及相关但不同的问题:

编辑:Script=Arabic按照 Salim Bou 的建议添加

使用

\setmainfont[Mapping=tex-text,Script=Arabic]{Amiri}
\setsansfont[Mapping=tex-text,Script=Arabic]{Amiri}

使字母连接起来,但似乎将文档从 LTR 变成了 RT:例如,在枚举中,数字前面有点,而不是相反。(为了清楚地说明这一点,我向 MWE 添加了枚举并更新了图像。

在此处输入图片描述

答案1

按照 Salim Bou 的建议,更改主字体...但在本地使用{...}

{
   \setmainfont[Mapping=tex-text,Script=Arabic]{Amiri}
   \setsansfont[Mapping=tex-text,Script=Arabic]{Amiri}
   \selectla‌​nguage{arabic}
   \print‌​bibliography[keyword‌​={arabic}, title={قواميس عربية}, heading=subbibliography]
}

在此处输入图片描述

整个文档:

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{csquotes}
\setmainfont[Mapping=tex-text]{Amiri}
\setsansfont[Mapping=tex-text]{Amiri}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{arabic}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{Ghazala1993,
  author       = {غزالة, حسن},
  title        = {ترجمة المتلازمات اللفظية (عربي-انجليزي)},
  journaltitle = {ترجمان},
  year         = {1993},
  keywords     = {arabic},
}
@Book{Baalbaki1987,
  author    = {Baalbaki, Munir},
  title     = {Al-Mawrid: A Modern Arabic-English Dictionary},
  year      = {1987},
  publisher = {Dar al-'Ilm li'l-Malayin},
  address   = {Beirut},
  keywords  = {english}
}
\end{filecontents}

\usepackage[style=authoryear,backend=biber]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{xunicode}

\begin{document}

Sample enumeration:
\begin{enumerate}
\item first
\item second
\end{enumerate}

\section{References}

\nocite{*}

\printbibliography[keyword={english}, title={English Dictionaries}, heading=subbibliography]

{
  \setmainfont[Mapping=tex-text,Script=Arabic]{Amiri}
  \setsansfont[Mapping=tex-text,Script=Arabic]{Amiri}
  \selectlanguage{arabic}
  \printbibliography[keyword={arabic}, title={قواميس عربية}, heading=subbibliography]
}
\end{document}

相关内容