我最近将乌尔都语从 XeTex 换成了 LuaTeX (Texlive 2022),总体来说一切顺利。但是,mdframed 似乎有一个错误(在 XeTeX 中我从未遇到过这种情况):
\documentclass[fontsize=12pt]{scrbook}
\usepackage[a6paper,left=1cm, right=1cm, bottom=1.2cm, top=1.5cm]{geometry}
\usepackage[dvipsnames,svgnames,x11names]{xcolor}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{rightbar}{leftmargin=0cm,rightmargin=0cm, topline=false,bottomline=false,rightline=false, leftline=true,align=right}
\mdfsetup{linecolor=black, linewidth=2pt,backgroundcolor=green}
\usepackage[english,bidi=basic]{babel}
\babelprovide[import,main]{urdu}
\babelfont[urdu]{}{AwamiNastaliq}
\babelfont[english]{rm}{Source Serif Pro}
\usepackage{fontspec}
\setmainfont[Renderer=Graphite,RawFeature={Short forms=All}]{AwamiNastaliq}
\begin{document}
\begin{mdframed}[style=rightbar]
جاتے ہیں اِس راستے پر۔ کیا کریں؟
\end{mdframed}
\end{document}
在这个例子中,如果 leftline=true,它会显示在右侧,并且整个框架会出现在它的右侧。
有解决方法吗?
答案1
我建议改用 tcolorbox。它功能更强大,更重要的是它得到了积极维护。因此,如果 bidi 出现问题,则更有机会得到纠正。它layout=graphics
似乎适用于您的示例(我没有尝试微调布局和纠正边框长度):
\documentclass[fontsize=12pt]{scrbook}
\usepackage[a6paper,left=1cm, right=1cm, bottom=1.2cm, top=1.5cm]{geometry}
\usepackage[dvipsnames,svgnames,x11names]{xcolor}
\usepackage[most]{tcolorbox}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{rightbar}{leftmargin=0cm,rightmargin=0cm, topline=false,bottomline=false,rightline=false, leftline=true,align=right}
\mdfsetup{linecolor=black, linewidth=2pt,backgroundcolor=green}
\usepackage[english,bidi=basic,layout=graphics]{babel}
\babelprovide[import,main]{urdu}
\usepackage{fontspec}
\setmainfont[Renderer=HarfBuzz]{Noto Nastaliq Urdu}
\begin{document}
\begin{mdframed}[style=rightbar]
جاتے ہیں اِس راستے پر۔ کیا کریں؟
\end{mdframed}
\begin{tcolorbox}[colback=green,enhanced,frame hidden,borderline west={4pt}{0pt}{black},sharp corners]
جاتے ہیں اِس راستے پر۔ کیا کریں؟
\end{tcolorbox}
\end{document}