我用它pdflatex
来创建一堆个性化文档。根据姓名列表,我为每个 John 和 Jane Doe 生成以下格式的 tex 文件:
\newcommand{\firstname}{John}
\newcommand{\lastname}{Doe}
\input{thedocument.tex}
然后简单地pdflatex
在每个生成的 tex 文件上运行。
但是,如果人员例如是Jöhn
和,Jäne
并且他们的名字分别显示为Jhn
和Jne
,那么我在使用此方法时会遇到编码问题。
我不知道如何修复这个问题。
file johndoe.tex
说TeX document, ISO-8859 text, with no line terminators
file thedocument.tex
说LaTeX 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}
在主文档中加载,或者用相同的选项加载。