删除线 (st) 命令删除 Unicode 字母

删除线 (st) 命令删除 Unicode 字母

\st命令删除末尾的 Unicode 字母。

我在 TexLive 2020 上大部分时间都使用 LuaLatex。

这是我的 MWE。

\documentclass[a4paper,openany,14pt,oneside,]{extbook}

\usepackage{soul} 
\usepackage{xcolor}
\newcommand{\strkfade}[1]
           {{\color{black!50}\st{#1}}}
           

\begin{document}

This is normal text.

\strkfade{This is striked through faded text}

This is striked through faded Unicode text, which prints correctly: \strkfade{distance between İstanbul - Iğdır}

This is striked through faded Unicode text, which prints uncorrectly: \strkfade{Iğdırı}. It must have printed \emph{Iğdırı} i.e. an ``ı'' at the end. But it drops that ``ı''.
\end{document}

如何解决这个问题?

更新 我的问题已通过以下链接关闭:灵魂从单词末尾删除一些重音字母

我已尝试链接中的解决方案,但没有效果,请参阅下面的说明。

笔记她的解决方案建议添加这些代码

\makeatletter
\let\SOUL@tt\relax
\newfontface{\SOUL@tt}{FreeMono}
\makeatother

加载后soul我应用它后,出现此错误:

! Package soul Error: Reconstruction failed.

答案1

soul由于您正在使用 lualatex,因此当有出色的软件包时,确实没有什么好的理由使用它lua-ul

% !TeX TS-program = lualatex

\documentclass[a4paper,openany,14pt,oneside,]{extbook}

\usepackage{lua-ul} 
\usepackage{xcolor}
\newcommand{\strkfade}[1]
           {{\color{black!50}\strikeThrough{#1}}}
           

\begin{document}

This is normal text.

\strkfade{This is striked through faded text}

This is striked through faded Unicode text, which prints correctly: \strkfade{distance between İstanbul - Iğdır}

This is striked through faded Unicode text, which prints uncorrectly: \strkfade{Iğdırı}. It must have printed \emph{Iğdırı} i.e. an ``ı'' at the end. But it drops that ``ı''.
\end{document}

答案2

编辑:soul并且soulutf8已合并:

此版本是 Melchior Franz 的原始 soul 包和 Heiko Oberdiek 的 soulutf8 包的合并,并且也支持 UTF8。


您可以使用该包soulutf8

结果

结果

相关内容