我正在用英语写一篇论文,其中有一些波斯语。为此,我使用了\usepackage{polyglossia}
。问题是波斯语脚本像主要英语句子一样从左到右显示,而不是从右到左显示。当我在单独的行上用波斯语书写时,它会正确对齐(从右到左)。
这是我的代码:
\documentclass[12pt]{scrartcl}
\usepackage{silence}
\WarningFilter{latex}{Command \InputIfFileExists}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage{hologo}
\usepackage{fontawesome}
\setmainlanguage{english}
\setotherlanguages{persian}
% Main serif font for English (Latin alphabet) text
\setmainfont{Noto Serif}
% define fonts for other languages
\newfontfamily\persianfont{Scheherazade}[Script=Arabic, Scale=1.8]
\title{ Multilingual Text using Polyglossia}
\begin{document}
\maketitle
This is a mainly English document that contains other languages. Here is some Persian text: \begin{persian}
من کبک دوست دارم
\end{persian}
How I want it to look but in the same line:
\begin{persian}
من کبک دوست دارم
\end{persian}
\end{document}
PS 1 花了几个小时寻找答案,尝试使用波斯语和 Babel 以及 XePersian 包,但没有成功。请帮忙,任何建议都将不胜感激!
PS2 也许是字体问题?
答案1
将答案从评论中移到这里:使用
\textpersian{من کبک دوست دارم}
另一个选择是使用babel
命令
\babelprovide[import=fa, onchar=fonts ids]{persian}
它会自动检测您输入的脚本并相应地更改语言。它不是绝对完美的,但它可以处理一行中间的第二种语言的短语。