我对以下角色有疑问
ẽ:带波浪符号的 e
我使用 UTF-8 编码并收到以下错误
! Package inputenc Error: Unicode char \u8:ẽ not set up for use with LaTeX.
我知道这个解决方案:\~e
但问题是,ẽ
我关心的是 mendeley 自动生成的 bibtex 里面的作者名字......
但是,我可以在 mendeley 中对其进行修改并更改ẽ
,\~e
但这不是一个非常优雅的解决方案......
e
无论如何,如果没有解决方案,我可以放弃它并简单地替换它。我只是好奇为什么 UTF-8 不能处理这个问题?我以为 UTF-8 可以处理所有可能的字符。
梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
This does not work: ẽ
This works: \~e
\end{document}
答案1
Unicode 字符的范围相当大。因此,utf8.def
它仅限于使用已加载的字体编码之一可以显示的字符。缺点是,一些可以通过重音符号构造的字符可能会漏掉。因此,\DeclareUnicodeCharacter
允许添加以下字符:
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{1eBC}{\~E}
\DeclareUnicodeCharacter{1EBD}{\~e}
补充(参见egreg的评论):
包newunicodechar
提供\newunicodechar
声明字符而不指定其明确的代码号:
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{Ẽ}{\~E}
\newunicodechar{ẽ}{\~e}
软件包版本 1.3selinput
(在 CTAN 上随下一个捆绑版本更新,.dtx
已附加,文件通过在文件上.sty
运行 plain 来提取)通过 提供此功能。以下示例添加了一个用于设置 Unicode 字符的键值接口,如果需要大量额外的 Unicode 字符声明,可以更轻松地键入:tex
.dtx
\DeclareInputUnicodeChar
\usepackage[utf8]{inputenc}
\usepackage{selinput}[2012/09/29]
\usepackage{kvsetkeys}
\makeatletter
\kv@parse{
Ẽ=\~E,
ẽ=\~e,
}\DeclareInputUnicodeChar
\makeatother
新版本 1.12inputenx
将通过以下方式添加对这些角色的支持
\usepackage[utf8]{inputenc}% or inputenx
\input{ix-utf8enc.dfu}% 2012/11/12 or later needed