如何动态地将 UTF-8 转换为 latin-1?

如何动态地将 UTF-8 转换为 latin-1?

我有整个 latex 文档,该文档以 latin-1 编码。此外,我的机构提供的 documentclass 旨在使用 latin-1。我用法语书写。

我希望使用 Mendeley 创建的以 UTF-8 编码的 .bib 文件。当我尝试编译时,latex 给出了一个错误:

inputenc:在输入编码“latin1”中,使用的键盘字符未定义(inputenc)。

有没有办法用一个简单的命令来动态转换编码?这是我的设置:

Windows 7的

MiKTeX 2.9

TexStudio 2.3

Mendeley 导出我的 .bib

这只是一个更改编码的问题,因为如果我只是将 .bib 文件的内容复制到新文件中(在 TexStudio 中设置正确的编码),一切都会正常工作。我不想这样做,因为它会破坏我的工作流程。我正在考虑在执行 pdflatex 之前添加一个命令。

答案1

您不需要重新编码文件。LaTeX 完全能够在 ansinew/latin1 编码的主文件中输入 utf8 编码的文件:

....
\inputencoding{utf8}
\input{utf8file}
\inputencoding{ansinew} %back to ansinew
....

但是如果你正在使用,biblatex/biber你可能根本不必担心:如果你的 bib 文件只包含 也涵盖的字符ansinew,那么在生成 时biber会将 转换utf8为。这对我来说没有问题:(bib 包含德语变音符号。)ansinewbbl

\documentclass[12pt]{article}
\usepackage[ansinew]{inputenc}
\usepackage[bibencoding=utf8]{biblatex}
\addbibresource{examples-utf8.bib}
\begin{document}
öäü
\cite{utf8test}
\printbibliography
\end{document}

顺便说一句:在 Windows 上,您通常应该使用ansinew而不是latin1,这样例如 € 也能正确处理。

答案2

为此,我通常使用文本编辑器,例如升华。它允许以所需的编码加载或保存文本文件(当然也可以是 .tex 文件)。

Sublime 中的 Latin1 编码使用ISO/IEC 名称ISO 8859-1。

根据您的问题,您可能需要使用自动识别字体编码的 LaTeX 编辑器,例如纺织机械商, 例如

答案3

由于您的整个工作流程似乎都是为与 Latin1 配合而设计的,因此问题就是如何在工作流程中摆脱 UTF-8(尽管这样做很可悲)。

然后我认为既然 .bib 文件都是一样的,也许你只想简单地将你的参考文献管理器更改为支持更改输出编码并且仍然适合你的东西(而不是更改当前管理器的输出编码,这似乎并不明显)。

对于参考文献管理,我自己使用 JabRef。它能够非常轻松地更改输出编码,并且非常易于使用,并且支持多平台。

也许这值得一试?

相关内容