ẽ 波浪号和 UTF8 的问题

ẽ 波浪号和 UTF8 的问题

我对以下角色有疑问

ẽ:带波浪符号的 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

相关内容