这是 LaTeX 的输出(MWE 位于本文末尾):
使用“lualatex --jobname=luatex_test -file-line-error -interaction=nonstopmode "\input" luatex_test.tex”运行
LaTeX' on
luatex_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_DE
shell 以外的其他语言环境。
答案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_DK
为en_GB
并没有解决问题。
问题在于,设置的区域设置之一未安装。就我而言,实际上是da_DK.utf8
未安装的区域设置!您可以使用 检查当前设置的区域设置,locale
并使用 列出已安装的区域设置locale -a
。通过运行安装缺失的区域设置
sudo locale-gen da_DK.utf8
sudo update-locale
正如所述此链接en_DK
。只要安装了Lualatex,它就能正常工作,即使在像 这样的“奇怪”语言环境中也能正常工作。