pdflatex:在 documenclass 之前定义的宏的编码问题

pdflatex:在 documenclass 之前定义的宏的编码问题

我用它pdflatex来创建一堆个性化文档。根据姓名列表,我为每个 John 和 Jane Doe 生成以下格式的 tex 文件:

\newcommand{\firstname}{John}
\newcommand{\lastname}{Doe}
\input{thedocument.tex}

然后简单地pdflatex在每个生成的 tex 文件上运行。

但是,如果人员例如是Jöhn和,Jäne并且他们的名字分别显示为JhnJne,那么我在使用此方法时会遇到编码问题。

我不知道如何修复这个问题。

  • file johndoe.texTeX document, ISO-8859 text, with no line terminators
  • file thedocument.texLaTeX 2e document, ISO-8859 text

在 中thedocument.tex有一行\usepackage[latin1]{inputenc}。我尝试使用utf8选项,但pdflatex在 中第一个非 ASCII 字符处失败thedocument.tex。我尝试了其他几个选项;每个latinN选项都会导致名称损坏,其他所有选项都会导致pdflatex失败。

由于工作中的所有其他特殊字符thedocument.tex和文件类型似乎相同,我猜测我的问题与在之前指定\firstname和有关。可能是这样吗?我该如何解决这个问题?\lastname\documentclass

答案1

\RequirePackage[utf8]{inputenc}
\newcommand{\firstname}{Jöhn}
\newcommand{\lastname}{Jäne }
\input{thedocument.tex}

其中utf8必须与使用的编码相匹配。latin1如果文件采用 ISO-8859-1 编码,请使用。

那么不要\usepackage{inputenc}在主文档中加载,或者用相同的选项加载。

相关内容