提问人:eretmochelys 提问时间:10/18/2023 更新时间:10/27/2023 访问量:50
如何在 Sublime Text 4 中自动缩进乳胶?
how to auto-indent latex in sublime text 4?
问:
崇高的文本自动缩进 (ctrl+shift+p “indentation: Reindention Lines”) 不适用于 latex 文件。我怀疑 sublime-text 无法识别/关联 .tex 文件的特定缩进规则集(适用于 python)。
我也无法在LatexTools插件中找到任何自动缩进的内容。这个古老的(2014 年)问题似乎也不适合我。
(如果相关,请在 Ubuntu 上运行 Sublime Text 4 22.04)
答:
3赞
eretmochelys
10/19/2023
#1
根据上面@samcarter的回答,安装 perl 脚本 ctan.org/pkg/latexindent 根据需要缩进。
我想与sublime-text集成一点,所以我写了一个小插件(主要是从这里偷来的)。要安装自己,只需创建一个新插件(Tools > Developer > New Plugin ...),然后将下面的代码粘贴为(如果您通过工具菜单创建此文件,则 sublime 应默认为该文件的正确位置,如上所述)。latexindent.py
import sublime
import sublime_plugin
import os
import subprocess
class LatexIndentOnSave(sublime_plugin.EventListener):
def on_post_save_async(self, view):
filename = view.file_name()
if filename.endswith('.tex'):
subprocess.run(['latexindent', filename, '-o', filename], cwd=os.path.dirname(filename))
请注意,此插件将在保存后在所有以 .tex 结尾的文件上运行,替换原始内容(如果 latexindent 无法正常工作,这可能会非常麻烦!如果您想在每次保存时都进行备份,请考虑按照下面的建议将交换机换@cmhughes。latexindent
-o
-w
评论
1赞
cmhughes
10/27/2023
做得很好:)仅供参考,像这样使用 -o 开关可以规避备份例程,所以也许可以考虑使用 -w 开关...?(CMHUGHES,《LaTexindent》作者)
0赞
eretmochelys
10/27/2023
嗨,@cmhughes,感谢您的建议(对于 latexindent,效果很好!我有点喜欢将 -o 切换到 -w,因为所有备份文件都会堆积在我的目录中,让它变得有点混乱。即便如此,这只是我的偏好,我会在上面的解决方案中添加更多内容,为其他人澄清这一点。
0赞
cmhughes
10/29/2023
不用担心,您并不是唯一一个发现并更喜欢它的人:)但是,我要在这里指出,我不建议这样做,而是建议调整备份例程(许多选项)。但是,每个人都应该随心所欲!
评论