Appearance
代码块插入
Liii STEM 提供了使用代码块排版计算机程序源代码的功能。本指南将帮助您实现下图所示的程序代码规范排版。

如图所示,这是一段在 Python code 环境中的 Python 代码。Liii STEM 会自动处理代码排版中的字体、颜色和缩进。
静态代码块
进入静态代码块环境
您可以通过以下方式进入静态代码块环境
- 在模式工具栏中点击
</>(插入计算机程序)->代码块,可以选择纯文本进入名为 verbatim code 的环境。如果需要排版的是 C++、Scheme 或 Shell 代码,也可以直接选择对应的选项进入相应的 cpp code、scm code 和 shell code 环境。

下图中的焦点(当前环境)工具栏和光标表明我们正处在 verbatim code 环境中。

- 在添加了 Python、Scala 或 Goldfish 宏包后,也可以点击如下图所示的
代码块选项直接进入对应的 python code、scala code 和 goldfish code 环境。

如果没有添加对应的宏包,会出现下图中显示的情况。此时也可以点击
激活来直接添加对应的宏包。
调整代码块环境
进入代码块环境后,可以点击焦点(当前环境)工具栏中的 结构变体 选项切换不同语言对应的代码块环境。若代码块中已经输入了内容,排版会有所变化。


排版代码
将代码块环境设置好后,您可以在代码块中对代码内容进行排版。Liii STEM 会自动处理代码排版中的字体、颜色和缩进。
可执行代码块 (Python)
在 Liii STEM 中,您也可以通过插入可执行代码块的方式运行想要的代码。下面以 Python 为例介绍该功能。
进入可执行代码块环境
使用该功能首先需要在您的计算机上安装 python。之后点击模式工具栏上的 插入会话 -> Python 进入可执行代码块环境。

首次进入后,页面上会出现如下图所示的变化。

运行代码
将代码输入到代码块中,即可运行。

Liii STEM 支持导入所有 conda 的代码环境。
Python 插件的使用说明
您可以在 帮助 -> 插件 -> Python 中查看 Python 插件的详细使用指南。

以下是对于插件使用的简单介绍。
语句输入
使用 shift + Return/Enter 键分隔语句。

当您准备好让 Python 评估您输入的程序时,请点击 Enter 键或 Return 键。

如果想要一次性输入多行内容,请选择 焦点 -> 输入选项 -> 多行输入 ,之后可直接点击 Enter 键或 Return 键进行换行。需要运行时,再次点击 多行输入 关闭该选项,点击 Enter 键或 Return 键。


出现上图的情况说明
多行输入已开启。
命令自动补全
您可以键入内置命令或先前定义的命令的第一个字母,然后按 Tab 键,直到找到您想要的补全选项。

为代码行编号
想要为代码行编号,首先需要使用命令 \numbered 进入编号环境。

之后可在编号环境下插入静态代码块,实现代码行的自动编号

PostScript 输出和 matplotlib 支持
使用函数 ps_out(data)将 PostScript 数据直接输出到 TeXmacs:
- 如果 data 是字符串并且有多个行,则它将作为原始 PostScript 数据进行处理。
- 如果 data 是一个简单的字符串,则假定它包含将被读取的 PostScript 文件的文件名(如果文件没有扩展名,则默认值将按该顺序尝试.eps 和.ps)。
- 如果 data 是
matplotlib.pyplot.Figure的实例,并且仅当另外使用支持输出到(封装的)PostScript 的后端时,插件将调用data.savefig()将绘图保存为字符串并将其复制到 TeXmacs 文档中。 - 如果 data 是提供“读取”方法的文件或其他对象,则将通过调用该方法获取 PostScript 数据。
帮助窗口
如果一个对象的源代码可通过 inspect.getsource() 获得,那么您可以键入该对象并附带一个问号 ? 来得到一个内容为相关的 help() 和代码的弹出窗口。
用作脚本语言
在菜单栏中点击 插入 -> 折叠 -> 可运行 -> Python,将生成以下输出:

您可以在黄色框中输入任何 Python 表达式或语句,例如:
在框内按 Return 键或 Enter 键将在未评估的输入和评估的输出之间切换。

同样地,对于更复杂的代码,您可以使用 Shift+Return\Enter 启用多行输入。
但请注意,表达式(例如 1+2)使用 eval() 进行计算,并将结果值发送到 TeXmacs,而语句(例如 print "hi there",或 a=1;a=a+2) 被发送到 compile(),在此过程中,最后一个语句的返回值丢失。因此,如果您有多个表达式,则需要写入 os.sys.stdout 才能查看内联输出。
此限制将来可能会得到修复
此外,选择 文档 -> 脚本 -> Python 后,您还可以使用 \ + ! 或 插入 -> 链接 -> Evaluable field。


同样,按下 Return/Enter 键可在已计算和未计算的输入之间切换。如下图所示,注意到此时的环境在 calc input 和 calc output 间切换。

对于具有关联的标识符,可以通过使用 \ + ? 或 插入 -> 链接 -> Field reference 插入字段引用来在其他字段中引用这些标识符。也可以通过 \ + \ 或 插入 -> 链接 -> Input field 使用纯输入字段。这允许动态文档在更改引用字段后自动运行脚本。有关此主题的更多信息,请参阅 TeXmacs 文档中的“插件作为脚本语言”。
