MWE:
这不起作用,我只看到正文。
\documentclass[headinclude=true]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{arabic} % \setmainlanguage doesn't change anything
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Scheherazade}
\chead*{لماذا لا يظهر النص؟} % not shown, the below line doesn't work either
%\chead*{\textenglish{Can you see me?} % no I can't
\begin{document}
أهلا وسهلا % this appears with no problems.
\end{document}
但是,将主要语言切换为英语并使用是\textarabic
可行的。
\documentclass[headinclude=true]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Scheherazade}
\chead*{\textarabic{لماذا لا يظهر النص؟}}
\begin{document}
\textarabic{أهلا وسهلا}
\end{document}
有没有办法将主要语言设置为阿拉伯语并使用scrlayer-scrpage
?
编辑:我正在使用进行编译xelatex
。
答案1
您可以像defaultlanguage
在序言中那样定义英语,然后使用更改为阿拉伯语\resetdefaultlanguage{arabic}
,请注意,您必须将其包含在组内
代码
\documentclass[headinclude=true]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Scheherazade}
\chead*{\textarabic{هذا النص يظهر}}
\begin{document}
{%
\resetdefaultlanguage{arabic}
أهلا وسهلا
}
\end{document}
或者
\documentclass[headinclude=true]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Scheherazade}
\AtBeginDocument{\begingroup}
\AtEndDocument{\endgroup}
\chead*{\textarabic{هذا النص يظهر}}
\begin{document}
\resetdefaultlanguage{arabic}
أهلا وسهلا
\end{document}