LyX 2.3 中的 Unicode 字符 ſ (U+17F)

LyX 2.3 中的 Unicode 字符 ſ (U+17F)

如何在 LyX 中使用以下字符 ſ (U+17F)?设置 UTF8 编码不起作用:

Package inputenc Error: Unicode character Ĺż (U+17F)

该文件的完整源代码为:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\begin{document}
ſ
\end{document}

我也尝试过使用:

\DeclareUnicodeCharacter{17F}{ſ}

感谢您的帮助。

答案1

首先,我们必须找到一种方法来插入所需的字形。标准字体 Computer Modern 不包含 ſ,因此需要另一种字体。一个不错的选择是 Latin Modern,它应该与 Computer Modern 基本兼容,但字符范围要广得多。Latin Modern 已在编码ſ的 115 号槽 (ASCII s) 中编码TS1

为了使TS1编码可用,请替换

\usepackage[T1]{fontenc}

\usepackage[TS1,T1]{fontenc}

然后您有两个选择:对整个文档使用 Latin Modern,或者仅使用此字体的一个字形。如果您想使用完整字体,请添加

\usepackage{lmodern}
\DeclareUnicodeCharacter{17F}{{%
  \fontencoding{TS1}%
  \selectfont s%
}}

为了避免更改全局字体,您可以添加

\DeclareUnicodeCharacter{17F}{{%
  \fontencoding{TS1}%
  \fontfamily{lmr}%
  \selectfont s%
}}

这告诉 LaTeX 每当请求Unicode 字符时,都使用s来自编码TS1(和系列)。lmrU+017F

\documentclass[english]{article}
\usepackage[TS1,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{lmodern}
\DeclareUnicodeCharacter{17F}{{%
  \fontencoding{TS1}%
  \selectfont s%
}}
\begin{document}
ſ
\end{document}

更优雅的解决方案是切换到 LuaLaTeX,ſ只要字符存在于您的字体中,您就可以直接使用。

相关内容