LuaTeX 错误:“无法读取环境区域设置:立即退出。”

LuaTeX 错误:“无法读取环境区域设置:立即退出。”

这是 LaTeX 的输出(MWE 位于本文末尾):

使用“lualatex --jobname=luatex_test -file-line-error -interaction=nonstopmode "\input" luatex_test.tex”运行LaTeX' onluatex_test'现在无法读取环境语言环境:exit。

如果我在 Emacs 中将 TeX 引擎设置为latex而不是(我使用的是 25.1 (9.0) 版本),它会完成编译。此外,如果我从终端lualatex调用,编译也会完成。lualatex

locale在 Emacs 的 shell 中运行得到:

LANG="en_DE.UTF-8" LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL=

我的 MWE:

\documentclass{article}
\begin{document}
Test compilation with luatex.
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: t
%%% End:

我需要自定义 Emacs 中的哪个变量?

答案1

我可以使用 cygwin texlive 2017 来确认这一点,只需设置即可

export LANG="en_DE.UTF-8" 


lualatex testfile

要得到

Unable to read environment locale:exit now.

您应该在 luatex 列表中提出这个问题,或者我可以,尽管这en_DE似乎是一个奇怪的语言环境。德语英语?

将 LANG 设置为(比如说)en_US可以使其再次工作。

已在 luatex 列表上的线程中确认

http://tug.org/pipermail/luatex/2017-June/006576.html

这是设计使 luatex 在未知区域设置下退出,尽管他们可能会尝试使错误消息更有帮助。

en_DE似乎是一个奇怪的值,取决于你的操作系统,你可能可以使用

locale -a

列出所有已知值。

在我的系统上

locale -a | grep en_

列出了 37en_种变体,但en_DE不是其中之一。

因此,我不会在 emacs 编辑器设置中修复此问题,而是将您的语言环境设置为en_DEshell 以外的其他语言环境。

答案2

更改 shell 配置文件中的语言环境并不能解决问题。我在这里找到了原因:在 OS X 上启动 Emacs.app 时的语言环境

解决问题的方法是要么添加%%% eval: (setenv "LANG" "de_DE.UTF-8")到我的源文件(如评论中所建议的那样),要么将这一行添加到.emacs文件:(setenv "LANG" "en_US.UTF-8")

答案3

在我的系统上,我已en_DK.utf8设置区域设置(除了LC_TIME,显然已设置为da_DK.utf8)。我也遇到了这个错误。

这里的其他答案暗示,这是所选语言环境的“奇怪”形式——即实际上没有丹麦语/德语英语——这是问题的原因。这是不正确的,因为在我的情况下,更改en_DKen_GB并没有解决问题。

问题在于,设置的区域设置之一未安装。就我而言,实际上是da_DK.utf8未安装的区域设置!您可以使用 检查当前设置的区域设置,locale并使用 列出已安装的区域设置locale -a。通过运行安装缺失的区域设置

sudo locale-gen da_DK.utf8
sudo update-locale

正如所述此链接en_DK。只要安装了Lualatex,它就能正常工作,即使在像 这样的“奇怪”语言环境中也能正常工作。

相关内容