soulutf8 无法在 XeLaTeX 中使用西里尔文

soulutf8 无法在 XeLaTeX 中使用西里尔文

我正在尝试使用包突出显示用俄语编写的文本soulutf8。在使用 XeLaTeX 呈现的 PDF 文件中,我没有看到突出显示的俄文字母,而是看到了空白。使用英文符号,它可以正常工作。

我的 MWE:

\documentclass[a4paper, 11pt]{article}

\usepackage[main=russian, english]{babel}

\usepackage[T2A]{fontenc}
\usepackage[cm-default]{fontspec}
\setromanfont{PT Sans}

\usepackage[usenames,dvipsnames]{xcolor}

\usepackage{soulutf8}
\sethlcolor{red}

\begin{document}
Текст на русском для проверки кириллицы.

\hl{Выделенный русский тест}

\hl{Highlighted English text}
\end{document}

我得到的结果:

在此处输入图片描述

答案1

与建议的类似这个答案,并且还在这个\usepackage{soulutf8},可以通过在或后添加以下几行来实现西里尔字体的突出显示\usepackage{soul}

\makeatletter
\font\SOUL@tt={LiberationMono}
\setbox\z@\hbox{\SOUL@tt-}
\SOUL@ttwidth\wd\z@
\makeatother

或者像这样:

\makeatletter
\let\SOUL@tt\relax
\newfontface{\SOUL@tt}{LiberationMono}
\setbox\z@\hbox{\SOUL@tt-}
\SOUL@ttwidth\wd\z@
\makeatother

LiberationMono只是支持西里尔字符的 TrueType 字体的一个例子。

相关内容