Skip to content

代码块插入

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)。
  • 如果 datamatplotlib.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 文档中的“插件作为脚本语言”。