使用 scrlayer-scrpage 与 polyglossia 时不显示标题

使用 scrlayer-scrpage 与 polyglossia 时不显示标题

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}

相关内容