该\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