![如何使用 scintillua 词法分析器将 minted 或 listings 替换为 luatex?](https://linux22.com/image/339224/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20scintillua%20%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90%E5%99%A8%E5%B0%86%20minted%20%E6%88%96%20listings%20%E6%9B%BF%E6%8D%A2%E4%B8%BA%20luatex%EF%BC%9F.png)
闪烁是一个文本编辑器。闪烁藻为 Scintilla 添加动态 Lua LPeg 词法分析器多种语言。根据文档,Scintillua可以作为库使用:
使用 Scintillua 作为 Lua 库
为了将 Scintillua 用作 Lua 库,只需将 lexers/ 目录放在 Lua 路径中(或相应地修改 Lua 的 package.path),require() 库并 load() 词法分析器,然后调用该词法分析器的 lex() 函数。以下是执行此操作的一个示例交互式 Lua 会话:
$> lua Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > lexer_path = '/home/mitchell/code/scintillua/lexers/?.lua' > package.path = package.path..';'..lexer_path > c = require('lexer').load('ansi_c') > tokens = c:lex('int void main() { return 0; }') > for i = 1, #tokens, 2 do print(tokens[i], tokens[i+1]) end type 4 ansi_c_whitespace 5 type 9 ansi_c_whitespace 10 identifier 14 operator 15 operator 16 ansi_c_whitespace 17 operator 18 ansi_c_whitespace 19 keyword 25 ansi_c_whitespace 26 number 27 operator 28 ansi_c_whitespace 29 operator 30
我想知道是否可以使用这些词法分析器作为minted
或的lua 替代品listings
?此外,Scintillua 似乎支持代码折叠,可用于在代码结构下划线,就像我的老问题。 和 lua 之间交互的基本代码是什么TeX
(catcodes 等)?