Windows 10 英文版中 unicode 符号和 xelatex 的问题

Windows 10 英文版中 unicode 符号和 xelatex 的问题

我开始在巴西葡萄牙语版的 Windows 10 上安装使用xelatex,然后安装了英语版的 Ubuntu,然后再次安装了 Windows 10,但使用的是英语。

xelatex支持 UTF-8,所以我没有使用inputenc,并且我在葡萄牙语中使用的所有重音符号和特殊字符都被打印出来以编译我的文档,直到我安装了英文版 Windows 10。现在只有重音符号(à、á、â、ã...)被打印,但不是度数和数字指示符(ª 和 º),而是打印了一些我甚至不知道是什么的符号或字母。

下面是一个与我在我的文档中使用的序言完全相同的例子:

\documentclass[a4paper, 12pt]{article}
\usepackage[top=2cm, bottom=2cm, right=2.5cm, left=2.5cm]{geometry}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{textcomp}
\usepackage{changepage}
\usepackage[brazil]{babel}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{fourier} 
\usepackage{array}
\usepackage{makecell}

\begin{document}
Tentando escrever 2º lugar, mas falhando. Ela foi a 1ª colocada.

Acentuação tá em dia, só alguns símbolos que não.

90° também não funciona.
\end{document}

答案1

当您构建文档时,终端包含以下警告:

Package fourier Warning: Please consider loading "fourier-otf.sty" instead of
(fourier)                "fourier.sty" with Unicode engines LuaTeX or XeTeX,
(fourier)                so that Type1 fonts get replaced by OpenType fonts.
(fourier)                See file "Erewhon-Math.pdf" for more information.

所以你应该这么做。该fourier包适用于 pdfTeX 引擎,它不支持 OTF 字体。

如果我替换\usepackage{fourier}\usepackage{fourier-otf}amssymb按照包的建议删除),则输出为:

在此处输入图片描述

\documentclass[a4paper, 12pt]{article}
\usepackage[top=2cm, bottom=2cm, right=2.5cm, left=2.5cm]{geometry}
\usepackage{amsfonts, amsmath}
\usepackage{textcomp}
\usepackage{changepage}
\usepackage[brazil]{babel}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{fourier-otf}
\usepackage{array}
\usepackage{makecell}

\begin{document}
Tentando escrever 2º lugar, e está funcionando. Ela foi a 1ª colocada.

Acentuação tá em dia, só alguns símbolos que não.

90° funciona perfeitamente :)
\end{document}

答案2

截至 2021 年 6 月,只要\usepackage[T1]{fontenc}在 XeLaTeX 或 LuaLaTeX 上加载,就会出现此错误。我还没有在内核中追踪到它,我赞同 Phelype Olenik 的建议,在 XeLaTeX 中使用 Unicode 字体。您通常会在 PDFTeX 中加载 8 位字体,这与您的 MWE 配合得很好。您遇到的 mojibake 的另一种解决方法是:

\documentclass[a4paper, 12pt]{article}
\tracinglostchars=2
\usepackage[top=2cm, bottom=2cm, right=2.5cm, left=2.5cm]{geometry}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{changepage}
\usepackage[brazilian]{babel}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{fourier}
\usepackage{array}
\usepackage{makecell}
\usepackage{newunicodechar}
\usepackage{hyperref}

\newunicodechar{°}{\textdegree}
\newunicodechar{ª}{\textordfeminine}
\newunicodechar{º}{\textordmasculine}

\begin{document}
Tentando escrever 2º lugar, mas falhando. Ela foi a 1ª colocada.

Acentuação tá em dia, só alguns símbolos que não.

90° também não funciona.
\end{document}

您不再需要textcomp使用最新的 LaTeX 内核进行加载,但这无害。您也不需要amssymbamsfonts使用fourier,但这与您的问题无关。

相关内容