![在 bidi RTL 环境中使用小型大写字母进行连字符连接以及其他格式](https://linux22.com/image/458220/%E5%9C%A8%20bidi%20RTL%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%B0%8F%E5%9E%8B%E5%A4%A7%E5%86%99%E5%AD%97%E6%AF%8D%E8%BF%9B%E8%A1%8C%E8%BF%9E%E5%AD%97%E7%AC%A6%E8%BF%9E%E6%8E%A5%E4%BB%A5%E5%8F%8A%E5%85%B6%E4%BB%96%E6%A0%BC%E5%BC%8F.png)
当在从右到左的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}
渲染结果如下,符合预期: