如何在 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
(和系列)。lmr
U+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,ſ
只要字符存在于您的字体中,您就可以直接使用。