Skip to content

Liii STEM 作为统一接口:支持 Python,AI 及多语言计算环境

本文是 文本模式完全指南 第 7.3 节「会话」的拓展,详细介绍 Liii STEM 中 Python、AI 及多语言计算环境的完整用法。

前提条件:本文介绍的 Maxima、Gnuplot、Scheme、Elvish 等计算环境需要自行安装。Python 和 Gnuplot 的安装请参阅 Python 会话插件Gnuplot 绘图 教程。

Liii STEM 不仅是一个科技写作平台,更是一个统一的多语言计算接口。通过内置的会话系统和插件机制,Liii STEM 可以无缝集成 Python,Scheme,Elvish 以及各类计算机代数系统和 AI 工具,让用户在编辑文档的同时直接执行计算,绘图和数据分析,实现"写作即计算"的工作流。

1 会话系统

会话(Session)是 Liii STEM 中与外部计算环境交互的核心机制。通过插件系统,Liii STEM 可以启动不同类型的计算会话,在文档中直接执行代码并嵌入结果。

1.1 多语言计算环境概览

根据系统上安装的插件不同,用户可以启动不同类型的计算会话:

计算环境启动方式适用场景
Python插入会话Python数值计算,数据分析,机器学习
Scheme插入会话Scheme符号计算,宏扩展
Elvish插入会话Elvish系统命令,文件操作
计算机代数系统插入会话 子菜单符号微分,积分,方程求解
AI 工具模式工具栏 🦞识别图片,自动排版,解题,扩写文章

当前支持的 AI 工具:Kimi-VLM,DeepSeek-V4-Pro,DeepSeek-V4-Pro-Thinking。

Python Conda 环境:选择 插入会话Python 后,子菜单会列出所有可用的 Conda 环境(如 defaultconda_baseconda_stem 等),方便你在不同环境中切换。

启动新会话时,Liii STEM 会在后台自动启动对应的外部应用程序。同一类型的所有会话共享同一个物理进程,这意味着你可以在一个会话中定义变量,然后在另一个同类型会话中继续使用。

1.2 启动和管理会话

会话由一系列输入和输出字段以及它们之间的可选文本组成。在会话的输入字段内部按 Enter 时,输入文本会被求值,结果会显示在输出字段中。

操作快捷键/菜单说明
启动会话插入会话[语言]根据已安装插件选择
中断计算焦点中断执行软中断当前会话(部分插件支持)
关闭会话焦点关闭会话强制退出外部进程,环境丢失
重新启动在已关闭会话中按 Enter自动重新启动外部进程
全部求值焦点求值全部求值重新执行会话中所有字段
求上面各值焦点求值求上面各值执行当前字段上方的所有字段
求下面各值焦点求值求下面各值执行当前字段下方的所有字段

需要注意的是,不同插件的会话可以并行运行。如果需要同时运行同一插件的多个实例,可以使用 插入会话其他 指定不同的"会话名称",只有相同名称和类型的会话才会共享同一个物理进程。

1.3 编辑会话

操作快捷键效果
在前面添加区域Alt + 在当前字段上方插入新输入/输出对
在后面添加区域Alt + 在当前字段下方插入新输入/输出对
删除前一个区域Alt + Backspace移除前一个匹配字段
删除最后面区域Alt + Delete(macOS:Option + Fn + Backspace移除光标所在字段
创建子会话Alt + 将当前输入输出按主题分组

会话中的所有输入/输出字段都是可折叠的。单击输入提示符即可折叠或展开该条目。也可以使用 焦点会话折叠所有字段展开所有字段 来批量操作。

Alt + 方向键 是 Liii STEM 中通用的结构化插入快捷键,不仅适用于会话,也适用于矩阵、表格、列表等环境。更多细节请参阅 高效编辑指南

1.4 输入与输出选项

选项设置方式说明
多行输入Shift + Enter焦点输入选项多行输入允许输入多行代码
数学输入焦点输入选项数学输入以二维数学公式形式输入(部分插件支持)
显示时间焦点输出选项显示时间报告求值耗时
不拆分大型公式焦点首选项不拆分大型公式关闭输出换行重写机制

默认情况下,计算机代数系统生成的大型表达式会被重写以支持换行(如将分数 ab\frac{a}{b} 转换为 a/ba/b 形式)。如果对打印计算不感兴趣,可以关闭此机制以获得更自然的输出显示。

1.5 会话样式

Liii STEM 提供多种会话渲染样式,适用于不同的使用场景。

样式设置方式特点
默认样式标准输入输出布局
带框输入字段焦点首选项带框输入字段输入字段带边框高亮
活页夹笔记本样式焦点首选项活页夹笔记本样式模仿笔记本外观

1.6 其他功能

功能操作说明
Tab 补全键入前几个字符后按 Tab自动补全长指令,多次按 Tab 循环浏览候选
语法高亮自动启用对关键字,注释,函数,常量使用特殊颜色
可执行切换插入折叠可执行[语言]在文档任意位置插入可执行代码块

2 脚本语言与可执行切换

2.1 可执行切换

可执行切换(Executable Switch)是 Liii STEM 中嵌入计算的基本单元。与会话不同,可执行切换可以直接插入到文档正文中的任意位置,不需要单独启动一个会话环境。

在执行后源码会被隐藏,用户可以反复在源码和渲染效果之间切换修改直到满意为止。

插入方式

点击菜单 插入折叠可运行[语言],即可在光标位置插入一个可执行代码块。支持的插件语言包括 Python、Maxima、Scheme、Elvish、Gnuplot、Goldfish Scheme 等(取决于已安装的插件)。

使用方法

插入后会出现一个黄色的输入区域,你可以在其中输入该插件语言的表达式。例如,选择 Maxima 后输入 diff(x^x, x) 或者 选择 Gnuplot 后输入 plot y = 2 x

操作快捷键说明
求值/切换Ctrl + * 或 焦点工具栏点击在未求值的输入和求值后的输出之间来回切换
多行输入Shift + Enter启用多行输入模式,方便编写多行代码

可执行切换非常适合在正文中插入小型计算、图形生成或动态内容。例如,在讲解数学概念时,可以直接在段落中嵌入一个 Maxima 微分运算,读者可以交互式地修改参数并重新求值。

下图展示了 Gnuplot 可执行切换的效果。左侧是未求值的输入 plot y = 2 x,右侧是点击焦点工具栏的求值按钮(^*)后渲染出的二维图形。

可执行切换示例:左侧为 Gnuplot 输入,右侧为求值后的图形输出

图 1. 可执行切换。左: 输入状态 右: 求值后状态(源码会被隐藏)

2.2 用作脚本语言

某些插件(如 Python)可以设置为文档的脚本语言,有以下两种方式:

  • 全局设置编辑首选项...其它脚本语言(影响所有新文档)
  • 文档设置文档脚本[语言](仅影响当前文档)

设置为脚本语言后,该插件将在后台作为编辑器的助手运行。

功能操作效果
直接求值公式光标在公式内,按 Ctrl + Enter使用脚本语言求值并替换结果
菜单运算脚本语言菜单 中的子项简化,展开,微分等
保留求值表达式保留求值表达式显示求值前后的对比

可执行输入字段与字段引用

当文档中选择了脚本语言后,可以使用以下高级功能:

元素插入方式功能
可执行输入字段\!插入链接可执行输入字段输入被求值并替换为输出,支持标识符和引用
纯输入字段\\插入链接输入字段仅用于输入,按 Enter 重新计算依赖(于此字段的)字段
字段引用\?插入链接字段引用在其他字段中引用某个可执行输入字段的值

可执行输入字段可以通过焦点栏上的 Ref 字段附加标识符。其他字段通过字段引用 \? 来引用该标识符的值。当被引用的字段修改并重新求值后,所有依赖它的字段会自动重新求值。

示例. 可执行输入字段可用于教育目的,允许文档的某些部分被读者修改和重新计算。例如,(当脚本语言是 Maxima 的时候)求值

xxx^x 的一阶导数为 diff(function,x)

二阶导数为 diff(derivative,x)

产生

xxx^x 的一阶导数为 xx(log(x)+1)x^x (\log(x)+1)

二阶导数为 xx(log(x)+1)2+xx1x^x (\log(x)+1)^2 + x^x-1

3 选读:安装自定义插件

Liii STEM 的功能通过插件进行扩展。你可以从社区或官方渠道获取插件,然后将其安装到指定目录即可使用。

3.1 查看插件目录

首先启动一个 Goldfish Scheme 会话(插入会话Goldfish Scheme),然后输入以下命令查看 TEXMACS_HOME_PATH

scheme
(begin (import (liii os)) (getenv "TEXMACS_HOME_PATH"))

输出示例(macOS):

~/Library/Application Support/liiilabs

3.2 安装插件

将下载的插件文件夹放入以下路径即可:

$TEXMACS_HOME_PATH/plugins/

例如,将 python 插件文件夹复制到 ~/Library/Application Support/liiilabs/plugins/python

安装完成后,重启 Liii STEM,新插件即可在 插入会话 菜单中使用。