Latex、国际象棋棋盘、skak 和阿拉伯语多语系统无法协同工作

Latex、国际象棋棋盘、skak 和阿拉伯语多语系统无法协同工作

这不起作用它对和chessboardskak都有效polyglossia但对两者都不起作用有人能帮我吗

\documentclass[16pt]{article}
\usepackage{geometry}
\geometry{a4paper, portrait, margin=15mm}
\usepackage{skak}
\usepackage{chessboard}
\usepackage{polyglossia}
\setdefaultlanguage[calendar=gregorian,locale=mashriq,numerals=arabic]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.0]{Amiri}


\begin{document}
لعب هذا الدور عام الف و تسعمائة و خمسة و سبعين بلا فائدة تذكر

\def\mylist{Ke1, qe2, kf3}
\setchessboard{setpieces=\mylist}
\def\mylist{Ke1, ra1, ke3}
\chessboard

\end{document}

答案1

chessboard 不是为 bidi 或 arabic 编写的。在内部,它在很多地方使用了\arabic,这不是一个好主意,因为如果软件包重新定义 \arabic 来打印其他数字系统,它就会中断。此外,它没有考虑 RTL。作为一种解决方法,在打印棋盘之前,请(在本地)恢复原始的阿拉伯语定义并切换到 LTR:

\documentclass[16pt]{article}
\usepackage{geometry}
\geometry{a4paper, portrait, margin=15mm}
\usepackage{skak}
\usepackage{chessboard}
\usepackage{polyglossia}
\setdefaultlanguage[calendar=gregorian,locale=mashriq,numerals=arabic]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.0]{Amiri}

\makeatletter\let\ori@arabic\@arabic
\newcommand\restorearabic{\let\@arabic\ori@arabic}
\begin{document}
لعب هذا الدور عام الف و تسعمائة و خمسة و سبعين بلا فائدة تذكر

\selectlanguage{english}
\begingroup
\restorearabic
\def\mylist{Ke1, qe2, kf3}
\setchessboard{setpieces=\mylist}
\def\mylist{Ke1, ra1, ke3}
\chessboard
\endgroup

\end{document}

相关内容