当在从右到左的bidi
环境中对带连字符的单词的一部分使用小型大写字母、粗体或斜体时,会发生奇怪的事情。
以下是我注意到的 MWE(使用 XeLaTeX 编译):
\documentclass[preview,convert]{standalone}
\usepackage{fontspec}
\setmainfont[Scale=MatchUppercase]{Libertinus Serif}
\usepackage{bidi}
\begin{document}
\begin{LTR}
This is all left-\textsc{to}-right, with some smallcaps.
\end{LTR}
\begin{RTL}
This is all right-to-left.
This \emph{should} all be right-\textsc{to}-left, but isn't.
This \emph{should} all be right-\emph{to}-left, but isn't.
This \emph{should} all be right-\textbf{to}-left, but isn't.
\end{RTL}
\end{document}
呈现如下,其中“从左到右”显示为“-left,toright-”:
请注意,我实际上尝试做的涉及 RTL 环境中的多语和一些 LTR 文本,但根本问题似乎来自包bidi
。
答案1
根据评论,这似乎只是一个缺陷bidi
,并且没有希望通过这种方式让它正常工作。
但是,对于不使用包的lualatex
和(相对于使用包的和),可以获得类似的效果。babel
bidi
xelatex
polyglossia
\documentclass[preview,convert]{standalone}
\usepackage[english,bidi=basic]{babel}
\babelprovide[onchar=fonts ids]{hebrew}
\usepackage{fontspec}
\setmainfont[Scale=MatchUppercase]{Libertinus Serif}
\begin{document}
This is all left-\textsc{to}-right, with some smallcaps.
\begin{otherlanguage}{hebrew}
איצט איז דא נישט קײן פראבלעם {\textdir TLT right-to-left} און דארף עס נישט זײן
איצט איז דא נישט קײן פראבלעם {\textdir TLT right-\textsc{to}-left} און דארף עס נישט זײן
איצט איז דא נישט קײן פראבלעם {\textdir TLT right-\emph{to}-left} און דארף עס נישט זײן
איצט איז דא נישט קײן פראבלעם {\textdir TLT right-\textbf{to}-left} און דארף עס נישט זײן
\end{otherlanguage}
\end{document}
渲染结果如下,符合预期: