在 emacs 中编辑 LuaLaTeX 文件

在 emacs 中编辑 LuaLaTeX 文件

(后续问题哪个是 LuaTeX 最好的编辑器?

Emacs 在 AUCTeX 中提供了 LaTeX 模式来编辑 LaTeX 文件,同时还提供了 Lua 模式来编辑 Lua 文件。

考虑以下代码:

\documentclass{article}
\usepackage{luacode}
\begin{document}
\begin{luacode*}
for i=1,2,3 do
for j=1,2,3 do
tex.sprint("Test");
end
end
\end{luacode*}
\end{document}

在 Emacs latex 模式下我得到以下截图:

但是无法使用 tab 键缩进 lua 代码或突出显示 Lua 代码关键字。如果我在 emacs 中打开 lua 模式,我会获得 Lua 代码的编辑功能,但不会获得 latex 代码的编辑功能,例如:

两种模式可以一起工作吗?(我看过这个页面:http://emacswiki.org/emacs/MultipleModes但我不确定要使用哪种模式以及如何设置)

答案1

有可能可能的让 Emacs 根据点的位置切换主要模式,但这很快就会变得计算密集,并可能破坏工作流程(尤其是那些大量使用临时变量的工作流程)。最好采用 Org 源代码编辑模型:将有趣的部分发送到单独的缓冲区,然后更改模式缓冲区。(据记录,我尝试使用间接缓冲区,但在同一缓冲区的两个视图上使用不同的字体锁似乎会让 Emacs 有点绊倒。)

绑定LaTeX-edit-Lua-code-start到您最喜欢的键。但请注意;编辑是异步的。您必须保存它才能将其重新插入到父级中。关闭缓冲区,您的更改将丢失。

更新:

我已将代码上传至GitHub 并以 的名义向 MELPA 提交了拉取请求auctex-lua,可以通过该软件包存储库下载。如果你还没有这样做,你必须‘安装’ MELPA.emacs通过在调用之前将其添加到您的任何地方package-initialize

(add-to-list 'package-archives
  '("melpa" . "http://melpa.milkbox.net/packages/") t)

我可以确认安装过程非常顺利!有关代码,请参阅GitHub。在这里维持下去是不可能的。:-)

截屏

相关内容