如何通过函数实现Julia REPL中[TAB]键的LaTeX符号补全功能
实现方案
Julia的REPL本身内置了完整的LaTeX符号到Unicode字符的映射表,不需要手动维护上千个符号的对应关系,直接调用内置接口就能实现需求,代码如下:
using REPL function tab_function(latex_str::AbstractString) return REPL.REPLCompletions.latex_symbols[latex_str] end
直接测试即可得到预期结果:
julia> tab_function(raw"\alpha") 'α': Unicode U+03B1 (category Ll: Letter, lowercase)
补充说明
- 这个实现和REPL里按Tab触发补全的逻辑共用同一份映射表,返回结果和手动按Tab的输出完全一致,支持所有REPL原生可补全的LaTeX符号,包括希腊字母、数学运算符、特殊箭头等
- 传入参数需要和REPL里的输入格式保持一致,必须带开头的反斜杠,比如要获取无穷大符号就传
raw"\infty",对应返回'∞' - 如果传入不存在的LaTeX符号串,函数会抛出
KeyError,和REPL里输入错误符号名按Tab无补全的行为对应
内容的提问来源于stack exchange,提问作者AGawish
相关产品推荐
相关产品推荐

