编码问题

编码问题

我正在尝试用 Python 编写一个将数据导出为 PDF 的程序。不幸的是,众所周知的 reportlab 模块在 Python 3 上不可用。(真遗憾。)所以我决定从程序中生成 TEX 文件并用 TeX 编译它们。

我知道我的操作系统有 True Type 字体,可以处理我需要的所有字符。所以我需要做的就是对文档中的任何 UTF8 字符使用这种字体。我还需要创建一些表格和图形。就这么简单。

我尝试使用 pdfLaTex 和 XeLaTex 来做到这一点。我不确定它们之间有什么区别。以下是 pdfLaTex 生成的示例文件:

\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[hungarian]{babel}
\author{Nagy László}
\title{Elemzés}
\begin{document}
\maketitle
\tableofcontents

\section{Esetleírás}

\subsection{A vizsgálat tárgya}

\begin{itemize}
    \item árvíztűrő tükörfórógép
    \item ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
    \item  80g/m²
\end{itemize}
\end{document}

这将引发错误:

! Package inputenc Error: Unicode char \u8:² not set up for use with LaTeX.

另一个人告诉我改用 XeLaTex,因为它对 unicode 的支持更好。我不太明白细节,但我也试过。使用 XeLaTex 时,我得到了这个错误:

Runaway argument?
! Paragraph ended before \UTFviii@three@octets was complete.
<to be read again> 
               \par 
l.7 \maketitle

好吧,我不知道这是什么意思,但有人告诉我,我应该试着把

%%!TEX encoding = UTF-8 Unicode

%% macro (???)在文件开头。我不确定这是什么意思,因为我在“不太简短的 latex2e 介绍”文档中找不到任何关于特殊内容的信息。无论如何,这都没有帮助。所以我删除了\maketitle,现在我得到了这个:

 ! Package inputenc Error: Unicode char \u8:írá not set up for use with LaTeX.

有人能帮我从哪里开始吗?我不明白错误消息,也不知道如何修复它。

答案1

在此处输入图片描述

使用 xelatex 时您不想使用inputenc用于 8 位 tex 和 pdftex 系统的输入编码,加载fontspec然后您就可以访问系统字体,如下所示使用Arial

\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage[hungarian]{babel}
\author{Nagy László}
\title{Elemzés}
\begin{document}
\maketitle
\tableofcontents

\section{Esetleírás}

\subsection{A vizsgálat tárgya}

\begin{itemize}
    \item árvíztűrő tükörfórógép
    \item ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
    \item  80g/m²
\end{itemize}
\end{document}

答案2

我也遇到了同样的错误,但是是\maketitle

我的标题是:

\documentclass[a4paper]{article} <br>
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry} <br>
**\usepackage[utf8]{inputenc}** <br>
\usepackage[portuguese]{babel} <br>
\usepackage[T1]{fontenc} <br>

问题出在\usepackage[utf8]{inputenc}。编码错误。从标题中删除它,并将编码改为西欧 > ISO 8859-1 我希望这样可以解决问题。

答案3

我在命令中遇到了同样的问题\chapter。我只需将章节标题放入命令中\protect,问题就解决了……

相关内容