这不起作用它对和chessboard
或skak
都有效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}