我正在尝试用 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
,问题就解决了……