我正在尝试显示一些非拉丁字符,例如 ɩ LATIN SMALL LETTER IOTA (U+0269)
、 ʋ LATIN SMALL LETTER V WITH HOOK
(U+028B)和 ɔ LATIN SMALL LETTER OPEN O (U+254)
。
我几乎尝试了所有能找到的方法,但都不起作用。我尝试了一些可能至关重要的方法,但没有奏效:
Overleaf 上所有可用的编译器:pdfLatex、Latex、XeLatex 和 LuaLatex
\usepackage[utf8]{inputenc}
并且\usepackage[utf8x]{inputenc}
(我知道应该避免使用 utf8x,但是使用 utf8x 可以显示一些字符。)\usepackage[T1]{fontenc}
,,\usepackage[T5]{fontenc}
\usepackage[T1,T4]{fontenc}
演示该问题的最小示例
\documentclass[11pt]{article}
\usepackage{times}
\usepackage{tipa}
\usepackage{textcomp}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\begin{document}
line1: \unichar{"0111}, \unichar{"00F6} \\
line2: đ, ö \\
line3: \unichar{"0254}, \unichar{"0269}, \unichar{"028B} \\
line4: ɔ, ɩ, ʋ
\end{document}
输出
我已阅读 Overleaf 提供的 Unicode 文档(https://www.overleaf.com/learn/latex/Articles/Unicode%2C_UTF-8_and_multilingual_text%3A_An_introduction, https://www.overleaf.com/learn/latex/Multilingual_typesetting_on_Overleaf_using_babel_and_fontspec) 和一些 Unicode 文档页面,以获取有关 Unicode 的一些基本知识。
当我寻找答案时,一些解决方案与为包指定语言有关babel
。但是,我的论文将包括许多语言(可能有数十种)的脚本,它们大多是代表性不足的语言(可能是土著语言和/或濒危语言),因此缺乏学术语言学研究,我甚至不知道他们使用哪种脚本。我甚至不确定是否与脚本/语言有关。
我选择了\unichar{"xxxx}
解决方案,因为^^^^xxxx
语法不起作用。使用\unichar{"xxxx}
语法时,有些字符显示不正确,例如\unichar{"0111}
(đ,带删除线的拉丁小写字母 d) 和\unichar{"00F6}
(ö,带分音符的拉丁小写字母 o)。但是,有些字符显示不正确,例如\unichar{"0254}
(ɔ,拉丁小写字母开 o)、\unichar{"0269}
(ɩ,拉丁小写字母 iota)、\unichar{"028B}
(ʋ,带钩的拉丁小写字母 v)。
我想知道为什么有些字符可以显示,而有些却不能,尽管它们都是在相同的 LaTeX 环境中使用相同的命令 ( \unichar{}
) 以十六进制表示法在 Unicode 中指定的。
另外,有没有办法显示那些当前无法渲染的字符?
答案1
使用编码utf8
(或其他)并不意味着所使用的任何字体都会为每个编码字符提供一个字形。事实上,编码字符太多了,这种情况几乎从未发生过(也许 Unifont 除外,它看起来像素化得很糟糕)。有些字体只有大写拉丁字母,而其他字体有数千个字形,但不是所有的uft8 字符。
因此,处理奇怪字符的第一步可能是搜索包含您需要的大多数“罕见”字符的优质字体。使用 xelatex 和 lualatex 您不仅限于 TeX 字体,因此有很多替代方案:
\documentclass{article}
\usepackage{fontspec}
\usepackage{tabto}\NumTabs{5}
\begin{document}
\obeylines
đ ö ɔ ɩ ʋ \tab ← not all printed (default)
{\setmainfont{GFS Didot} đ ö ɔ ɩ ʋ} \tab ← Wrong font (Missing characters)
{\setmainfont{FontAwesome} đ ö ɔ ɩ ʋ} \tab ← FonAwesome is not for this ...
{\setmainfont{Unifont} đ ö ɔ ɩ ʋ} \tab ← Unifont works, but ...
{\setmainfont{FreeSerif} đ ö ɔ ɩ ʋ} \tab ← FreeSerif works
{\setmainfont{DejaVu Serif} đ ö ɔ ɩ ʋ} \tab ← DejaVu Serif works
{\setmainfont{EB Garamond} đ ö ɔ ɩ ʋ} \tab ← EB Garamond works
\end{document}
答案2
不要使用utf8x
。
我尝试排版
ɩ, ʋ, and ɔ
你的序言(删除utf8x
)我得到了
! LaTeX Error: Unicode character ɩ (U+0269)
not set up for use with LaTeX.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.20 ɩ
, ʋ, and ɔ
?
! LaTeX Error: Unicode character ʋ (U+028B)
not set up for use with LaTeX.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.20 ɩ, ʋ
, and ɔ
?
! LaTeX Error: Unicode character ɔ (U+0254)
not set up for use with LaTeX.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.20 ɩ, ʋ, and ɔ
我查阅了手册tipa
,发现它们与产生字符的命令一起,所以我能够\DeclareUnicodeCharacter
为它们添加合适的指令。使用相同的方法添加您需要的其他指令。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
%\usepackage{acl} % where is it?
\usepackage{times}
\usepackage{tipa}
%\usepackage{latexsym} % obsolete
%\usepackage{graphicx} % not needed for the example
%\usepackage{multirow} % not needed for the example
%\usepackage{textcomp} % no longer needed
%\usepackage[utf8x]{inputenc} % don't use this
%\usepackage{microtype} % not needed for the example
%\usepackage{bbm} % not needed for the example
%\usepackage{amsmath} % not needed for the example
%\usepackage{csquotes} % not needed for the example
%\usepackage{numprint} % not needed for the example
% do here the declarations you need
\DeclareUnicodeCharacter{0269}{\textiota} % ɩ
\DeclareUnicodeCharacter{0254}{\textopeno} % ɔ
\DeclareUnicodeCharacter{028B}{\textscriptv} % ʋ
\begin{document}
ɩ, ʋ, and ɔ
\end{document}
我不得不注释掉它,\usepackage{acl}
因为你没有告诉我在哪里可以找到它。我注释掉了与问题无关的其他软件包,但请查看我添加的注释。