![强制 overleaf 刷新 docker 文件系统上更改的文件](https://linux22.com/image/452755/%E5%BC%BA%E5%88%B6%20overleaf%20%E5%88%B7%E6%96%B0%20docker%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E6%9B%B4%E6%94%B9%E7%9A%84%E6%96%87%E4%BB%B6.png)
overleaf 的一个著名扩展是写满。还有一些插件可以使 grammarly 用于 overleaf:Grammarly 和 Overleaf:detex 中是否有某个版本或选项可以在乳胶标记之间留下一些内容?
也可以从 API 内部运行命令行参数:还有一个API通过网络使用 overleaf,但其功能相当有限。
\write18
我正在寻找的是通过/Lua使用 docker 命令行界面的方法。
具体来说,我想编写一个小程序来处理文件,例如,用 替换所有形式Let $i$
为的序列Let~$i$
,或者更好的是,用 Unicode 对应项替换 LaTeX 符号(例如 $\alpha$)。
问题在于 IDE 编辑器无法察觉 docker 中的文件更新。我们需要一种手段来告诉 IDE 文件系统上的文件已发生更改。
一种方法是在另一个窗口中打开另一个编辑器,从而让 overleaf 认为它应该同步文件。可能还有其他方法,比如在 docker 中执行某些操作。也许可以删除 PDF 从而强制重新编译。
另一个可能有助于应对挑战的资源是:如何设置 Overleaf 使用 `lualatex --shell-escape <file>` 进行编译?。
如果可能的话,我尽量避免编写浏览器扩展。
答案1
(我是 Overleaf 的支持人员。)
您对编译容器内的文件所做的任何更改都是短暂的,并且不会保留到您在 Web 编辑器中看到的项目输入文件中。
您提到的扩展程序不会对编译容器中的文件进行更改,而是在客户端进行操作。因此,从 Overleaf 的角度来看,浏览器扩展程序所做的编辑看起来就像您在 Web 编辑器中键入内容一样。这就是这些扩展程序能够以持久方式修改项目文件的原因。
如果你想要在某些 .tex 文件上运行脚本/程序来进行编辑,我们建议你通过我们的同步集成功能离线执行此操作,例如Dropbox、Git 或 GitHub。您可以离线运行您的脚本/程序并将更改同步回 Overleaf 项目。
如果您无法访问任何自动同步集成,您可以通过下载 .tex 文件、在本地运行脚本/程序以及将修改后的 .tex 文件手动上传回您的 Overleaf 项目来执行此操作。