tcolorbox 和 bidi 行为

tcolorbox 和 bidi 行为

当使用带有 tcolorbox 包的 bidi 时,框不与文本内联。运行 MWE 时,无论是否注释 bidi,都可以清楚地看到一切。有人可以解释这种行为并可能提出解决方案/解决方法吗?

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{bidi}

\begin{document}
Lorem ipsum before \tcbox[size=tight, on line]{some tcb text} lorem ipsum after
\end{document}

答案1

问题的原因是 bidi 包重新定义了tikzpicture和 ,pgfpicture并将它们放入一个段落中。如果启用了 bidi,以下内容也无法在您的 MWE 中正常工作:

Lorem ipsum before \tikz\node[draw] {text}; lorem ipsum after

可以pgfpicture本地重置其原始行为。但当然,这也会禁用双向适配(本地)。但也许这对您的应用程序来说并不重要。请尝试以下操作:

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{bidi}

\makeatletter

\tcbset{%
  bidi reset/.code={%
    \let\pgfpicture\origin@pgfpicture%
    \let\endpgfpicture\origin@endpgfpicture%
  }
}

\makeatother

\begin{document}
Lorem ipsum before \tcbox[bidi reset, size=tight, on line]{some tcb text} lorem ipsum after
\end{document}

这适用于 MWE。但是,它可能无法为您的预期应用程序提供预期的结果,因为您会出于某种原因而包含 bidi...

答案2

此问题已在软件包版本中修复18.3bidi您甚至可以将其设置为 RTL:

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{bidi}
\setRTL
\begin{document}
Lorem ipsum before \tcbox[size=tight, on line]{some tcb text} lorem ipsum after
\end{document}

输出结果如下:

在此处输入图片描述

相关内容