- LSR 编号 003
- 标题 Lamina的LaTeXShow模块
- 作者 CGrakeski
- 状态 草案
- 类型 标准规范类
- 创建日期 08-07-2025
- Lamina 版本 不适用
本LSR描述了Lamina为支持LaTeX显示而添加的标准库,包含了对库中函数的描述。
在LaTeXShow标准库中,有如下函数:
| 名称 | 参数 | 效果 |
|---|---|---|
| latex_dbinit | / | 打开LaTeX展示板窗口 |
| latex_dbbye | save_content,save_path | 关闭LaTeX展示板窗口 |
| main_on | / | 打开原生窗口 |
| main_off | save_content(true/false)=true,save_path | 关闭原生窗口 |
| showlatex | latex | 将LaTeX公式渲染到LaTeX展示板窗口 |
| showtxt | txt | 将文本渲染到LaTeX展示板窗口 |
| db_ifinteract | ifcan(true/false)=false | 用户是否可以写代码交互(仅在REPL模式下有效) |
| db_ifcopy | ifcan(true/false)=true | 用户是否可复制公式或文本 |
若需要渲染LaTeX公式,需要先导入LaTeXShow标准库再进行操作
include "LaTeXShow";
latex_dbinit() //使LaTeX展示板窗口初始化
showlatex("\text{公式1:}\frac{-b\pm\sqrt{b^2-4ac}}{2a}") //输出如下画面
showtxt("\frac{1}{2}") //输出如下画面
使用
latex_dbbye()
退出窗口。
LaTeX展示板窗口是渲染LaTeX公式的载体。
执行latex_dbinit()函数相当于初始化了一个独立的渲染环境,该环境具有以下特性:
-
窗口属性:
- 默认尺寸为800x600像素
- 采用无边框设计
- 支持动态调整窗口大小
-
渲染引擎:
- 基于MathJax 3.2.2核心
- 支持LaTeX 2024标准
- 实时渲染延迟<50ms
- 支持CMYK和sRGB色彩空间
-
交互模式:
Lamina
db_ifinteract(true) // 启用交互模式后:允许写入代码,并通过快捷键操作:
- Ctrl+C 复制源码
- Ctrl+滚轮,+- 调整字体大小
-
错误处理:
无效LaTeX语法会报错InvalidLaTeXEror,给出LaTeX展示板窗口的错误定位(行号标记)
-
高级配置:
Lamina
// 初始化时可指定参数 latex_dbinit( size=(1200,800), theme="dark", )
终止 LaTeX 展示板窗口,支持保存内容到指定路径。
latex_dbbye(
save_content=true, // 是否自动保存内容(默认true)
// 保存路径默认为~/Lamina/log/LaTeXLog/)
)
| 操作类型 | 详细说明 |
|---|---|
| 窗口关闭 | 立即终止窗口,若save_content=true,记录当前显示内容到日志 |
| 内容保存 | 当 save_content=true 时: - 自动生成 latexdb_[timestamp].ldl(LaTeXDisplayBoardLog文件),保存当前显示内容 |
| 异常处理 | 尝试在LaTeX展示板窗口打开前关闭会抛出 SessionNotFoundError 。 |
生成的XML文件格式为:
<dialog>
<ComputerLaTeX>
<!--电脑输出的LaTeX公式-->
</ComputerLaTeX>
<ComputerText>
<!--电脑输出的文本-->
</ComputerText>
<UserInput>
<!--用户的输入-->
</UserInput>
<!--等等……-->
</dialog>终止原生窗口,支持保存内容到指定路径。
main_off(
save_content=true, // 是否自动保存内容(默认true)
// 保存路径默认为~/Lamina/log/MainWinLog/)
)
| 操作类型 | 详细说明 |
|---|---|
| 窗口关闭 | 立即终止窗口,若save_content=true,记录当前显示内容到日志 |
| 内容保存 | 当 save_content=true 时: - 自动生成 latexdb_[timestamp].ldl(LaTeXDisplayBoardLog文件),保存当前显示内容 |
| 异常处理 | 尝试在原生窗口打开前关闭会抛出 SessionNotFoundError 。 |
生成的XML文件格式为:
<dialog>
<Computer>
<!--电脑输出的文本-->
</Computer>
<UserInput>
<!--用户的输入-->
</UserInput>
<!--等等……-->
</dialog>