为什么 mpchess 生成的棋盘超出页面范围,这是最简单的代码

为什么 mpchess 生成的棋盘超出页面范围,这是最简单的代码
\documentclass[a4paper, twoside,12pt]{article}
\usepackage[margin=1.5cm]{geometry}
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\setotherlanguage{english}
\setmainfont{amiri}
\usepackage{multicol}
\newcommand{\ar}{\textarabic}
\newcommand{\en}{\textenglish}
\usepackage{luamplib}
\everymplib{input mpchess}

\begin{document}
\section{مقدمة}
\LARGE

لدي طموح بأني سأستطيع استخدام حزم الشطرنج في لاتيك لإنتاج كتيب جميل عن الشطرنج يوماً ما.

\begin{mplibcode}
string pgnstr;
pgnstr := "1. e4 e5 2. Nf3 Nc6 3. Nxe5 Nxe5 4. Bb5 c6";
build_chessboards_from_pgn(pgnstr);
beginfig(0);
set_color_theme("BrownLichess");
set_coords_outside;
init_backboard;
draw backboard;
show_last_move(3);
draw chessboard_step(3);
%init_chessboard;
%draw chessboard;
%draw_arrows(red)("e7--h5","g1|-e5");
endfig;

\end{mplibcode}
وذلك عندما أجد حلاً لمشكلة ظهور الرقعة خارج الصفحة في حزمة
\en {mpchess}
\end{document} 

答案1

棋盘不支持双向语言。您可以尝试使用 babel 并将棋盘切换为英语(以及 LTR):

\documentclass[a4paper, twoside,12pt]{article}
\usepackage[margin=1.5cm]{geometry}
\usepackage[english,arabic, provide=*, bidi=basic, layout=counters.tabular]{babel}

\babelfont{rm}[Renderer=Harfbuzz]{amiri}

\usepackage{multicol}
\newcommand{\ar}{\textarabic}
\newcommand{\en}{\foreignlanguage{english}}
\usepackage{luamplib}
\everymplib{input mpchess} 

\begin{document}
\section{مقدمة}
\LARGE 

لدي طموح بأني سأستطيع استخدام حزم الشطرنج في لاتيك لإنتاج كتيب جميل عن الشطرنج يوماً ما. 


\en{%
\begin{mplibcode}
string pgnstr; pgnstr := "1. e4 e5 2. Nf3 Nc6 3. Nxe5 Nxe5 4. Bb5 c6"; 
build_chessboards_from_pgn(pgnstr); beginfig(0); 
set_color_theme("BrownLichess"); set_coords_outside; init_backboard; draw 
backboard; show_last_move(3); draw chessboard_step(3); 
%init_chessboard;
%draw chessboard;
%draw_arrows(red)("e7--h5","g1|-e5");
endfig; 
\end{mplibcode}
}

% \selectlanguage{arabic} 
 وذلك عندما أجد حلاً لمشكلة ظهور الرقعة خارج الصفحة في حزمة \en 
{mpchess} 
\end{document}

在此处输入图片描述

相关内容