Texmacs是一个所见即所得的排版工具,即有点类似Word,又有LaTex的排版效果。

但是它不怎么流行,可能名字取得不好,叫Texmacs,可是既不是TeX,也不是emacs,容易让人误解。

Getting started with TeXmacs

这是Texmacs自带的教程。

1. Document structure

  • tag是Texmacs文档的一种结构,鼠标移到tag区域时会出现水蓝色的框。tag给区域内文本赋予特殊意义,比如strong tag可以给文本加粗。
  • 共有三位数的tag可供选用。tag描述的往往是目的,而不是布局。后者是通过样式文件来定义的。
  • tag可以嵌套,事实上,Texmacs文档就是一堆嵌套的tag。

2. Navigation

  • 右下角状态栏提供当前光标所在位置的一些信息
  • 对于数学公式中的乘法,虽然看上去乘号省略了,但是实际在文档中还是要书写的

3. Toolbars

工具栏大部分是上下文相关的。

  • 主工具栏:非上下文相关
  • 模式相关工具栏:根据编辑模式(文本、公式、图形、其他)不同而变化,分为四个子区域
    • 区域一:图标用于插入顶层文档结构
    • 区域二:图标用于文本格式
    • 区域三:图标用于特定的tmdoc样式
    • 区域四:图标用于插入表格、图像等特殊标记
  • 焦点工具栏:提供当前焦点下,即水蓝色框中内容相关的操作

4. Mathematical formulas

教如何书写一个公式。

5. Mathematical symbols

  • 有一些快捷方式可用于输入数学符号,比如->会被转化为→
  • 使用tab可以在字母变体之间切换,比如在a后面敲tab,可以将其转化为希腊字母alpha

The GNU TeXmacs manual

Getting started

  • Conventions for this manual
    • Windows上的Meta键是Win键,但是此键已然绑定了很多快捷方式,可以用Escape代替
  • Configuring TeXmacs 【略】
  • Creating, saving and loading documents
    • 创建一个新文档时,可以在焦点工具栏修改其设置,也可以在Document菜单修改其设置
  • Printing documents 【略】

Writing simple documents

  • Generalities
    • Meta+'E可以插入带音标的e
    • 会自动插入连字符(hyphen)
    • 状态栏左边显示文本标的信息,右边显示字符标的信息
  • Structured text
    • 长文档可以组织成章、节和小节。通过选择Docuemnt -> Style来告诉TeXmacs所需布局。
    • 默认文档样式:generic, article, book, letter, exam, beamer, seminar source
    • 确定文档样式之后,可以插入分节,然后插入环境(也就是tags),比如定理、命题、评议、列表等等。 可以自定义tag。
    • 当前编辑模式是一个重要的概念,共有五种:文本、公式、程序、图形、以及代码。
  • Content-based tags
    • 是最简单的用于文本的结构, Insert -> Content tag
    • 常用的基于内容的tag
      • strong, em (emphasis), dfn (definition), name (the name of a particular thing)
      • person (the name of a person), cite* (bibliographic), abbr (abbreviation)
      • acronym, verbatim (like computer program output), kdb (text which should be entered on a keyboard)
      • code* (code of a computer program), var (variables in a computer program)
  • Lists
    • Insert -> Itemize,插入普通列表,可以是bullets, dashes后者arrows
    • Insert -> Enumerate,插入编号列表
    • Insert -> Description,插入慨念定义列表
  • Environments
    • Insert -> Environment
    • 粒度比content-based tag更大一些
    • 公式中常见的比如theorem和proof,还有proposition、lemma、corollary、axiom、definition
      • 可以用dueto,也就是\DUETOReturn来指定相关作者
    • 其他常用的,但是不对其环绕文本进行强调的是remark、note、example、warning、exercise以及problem
    • 剩下的诸如verbatim、code、quote、quotation以及verse可用来键入多段文本
  • Layout issues
    • 不推荐手动布局,比如空白最好使用Insert -> Space来插入(好像没有找到)
    • 默认提供多重空白命令,既可以插入严格长度或者高度的空白,也可以插入制表符空白
    • 对于段落排布,可以justified(两侧对齐),left ragged(左对齐),centered(剧中),right ragged(右对齐)。
    • 可以通过Document -> Page来指定页面布局,比如当选择paper作为页面类型时,可以显示设置分页符;当设置成papyrus时,须避免设置分页符;automatic页面类型假设纸张大小等同于窗口大小。页面边距和文本宽度可以通过Document -> Page -> Layout指定。Document -> Page -> Screen布局可以减少边距。
  • The font selection system
    • 全局性文档字体可以通过Document -> Font,局部可以用Format -> Font设置文本。
    • 下列字体特征可供设置
      • Family, Shape (bold, italic, small capitals, etc.),size
      • 字体浏览器允许按照规则过滤字体:weight,Slant(决定字体的倾斜度),stretch(水平拉长),case,spacing(比如等宽字体),Device(模拟各种手写或者机打字体),category(门类)。
    • 若系统中没有找到指定的字体,字体浏览框中会给出近似字体
    • 如果没有选中任何字体,就点击ok,那么当前的设定的字体属性会插入作为TeXmacs标记,并且作为渲染的指引。
    • TeXmacs自带一些字体,比如Stix字体,以及其他许多以TeXMACS。使用这些字体可以在不同平台获得一致表现。
  • Mastering the keyboard
    • General prefix rules
      • 击键的活动前缀依赖于当前的“look and feel”,可以通过Edit -> Preferences设定:
        • Ctrl+,在各种程序中常见的快捷键
          • 文中竟然举了一个shift-insert的例子
        • Alt+,跟当前编辑模式相关的快捷俺就,比如alt+s对字体进行强化
        • meta+.,复合的TeXmacs快捷方式,一般先表明输入标记类型,然后再表明具体输入。如Meta+E后跟+会输入一个加法符号
        • Meta+Ctrl+,和方向键组合使用来定位或者缩放标的
        • Meta+Alt+,和方向键组合使用来来进行结构化的鼠标移动
        • Alt+Ctrl+,有时候用来创建额外的快捷键
        • Shift+F5,可以用于插入特殊字符,Shift+F5s插入ß。但是Shift+F5\会插入\本身,因为\被用来输入混合命令
      • 但是操作系统往往把Meta+用作系统快捷键,这时候就需要使用ESC来作为替代了。
  • Keyboard shortcuts for text mode
    • 列集了一些快捷键用于输入特殊字符
    • 除了上面列集的快捷键,也可以使用Shift+F5作为快捷键
  • Hybrid commands and LaTeX simulation
    • 可以直接从键盘输入LATEX命令,以\进入混合模式,然后键入LATEX命令,比如\FRACReturn。要键入\本身,需要使用Shift+F5\
    • \会搜索所输入命令是否是latex复集、函数,或者环境的做用。\等同于下列命令之一:Meta+I LMeta+I EMeta+I AMeta+I #Meta+I V
  • Dynamic objects
    • 动态标的会有多重状态,因为其状态会在运行的时候变更
    • 一个例子是使用Meta+!插入的label标的,默认是inactive,此状态下可以输入label的相关信息,比如其名字。有些label需要更多参数,可以使用tab来输入。
  • Various useful keyboard shortcuts
    • Ctrl+Backspace,移除上层元素
    • SpaceTab,插入一个非断行空白
    • SpaceTabTab,插入一个四分空白
    • Meta+Space,插入一个小空白
    • Meta+Shift+Space,插入一个小的逆向空白
    • Ctrl+Home,跳到文档开头
    • Ctrl+End,跳到文档结尾
    • Meta+:,插入一个断行
    • Meta+Shift+R,插入一小段严格文本,不能被分行
    • SpaceTabTabMeta+SpaceMeta+Shift+Space插入的空白可以用Meta+Ctrl+<-或者Meta+Ctrl+->来缩放。这样可能比Format->Space插入的空白更有通用性。

Mathematical formulas

略。

Tabular material

  • Creating a table
    • Meta+T``Shift+N``T创建一个空白表格
    • Meta+T``Shift+N``Shift+T创建一个内容剧中的空白表格
    • Meta+T``Shift+N``B创建一个区块,其中小区有更小的边框
    • Meta+T``Shift+N``Shift+B
    • 在公式模式,可以有以下额外的命令
      • Meta+T``Shift+N``M,创建一个矩阵
      • Meta+T``Shift+N``D,创建一个行列式
      • Meta+T``Shift+N``C,创建一个选项表
    • 可以通过Inser->Table->Small table/Big table来创建小、大表格
    • 有其他类似表格的营房(environment),用户也可以自定义新的
      • 例如可使用Insert->Mathematics->Equations或者Alt+&来插入一个eqnarray*营房,可以允许数学公式跨越多行。
      • 空白的表格大小只有1x1,其单元格为空。可以使用Meta搭配方向键来插入行或者列。敲回车也能开始新行。
  • Table editing mode
    • 默认情况下,格式操作在单元格生效,可以通过Table->Cell修改操作模式:
      • Meta``M``C,操作于单元格
      • Meta``M``H,操作于表行
      • Meta``M``V,操作于表列
      • Meta``M``T,操作于整表
  • Alignment
    • 可用Meta+Ctrl和方向键快速对齐
    • 可选择Table->Horizontal/Vertical cell alignment来对齐
      • 或者使用Meta+T``H``XMeta+T``V``X
    • 要选择表格与周遭的对齐方式,可以采用Table->Horizontal/Vertical table alignment
      • 或者使用Meta+T``Shift+H``XMeta+T``Shift+V``X
  • Size
    • 通过Table->Cell width->Set width resp.``Table->Cell height-Set height可以设置单元格的宽度或者高度,可以有几种控制方式
      • 最小模式,指定值和内容,两者取小
      • 确切模式,按指定值
      • 最大模式,指定值和内容,两者取大
    • 边框大小和单元格填充被计入单元格箱体的尺寸
    • 可以通过Table->Special table properties来指定整张表格的的大小
      • 可以通过Table->Special cell properties->Distribute unused space来分配剩余
  • Border and background color
    • 各个方向上都可以指定边框大小和单元格填充
      • 可以使用快捷键Meta+T``B``xMeta+T``P``x
      • 在块部环境下,
        • 默认边框时1ln,也就是当前字体的标准行宽
        • 默认水平单元格填充是1spc,也就是当前字体中单个空白的宽度
        • 默认垂直单元格填充是1sep,两箱体间的最小间距
      • 通过Table -> Cell background color可以设置单元格背景
      • 整表也可以有变宽和表格填充,通过Table->Special table properties->Border设置,比情形下,填充是发生在边框外部
  • Advanced features
    • 可以改变单元格的span,让其捅进右边或者下边相邻的单元格
    • 可以在单元格里面创建子表格
    • 可以修改文本的高度和深度,以便让基线匹配
    • 单元格内容支持水平连字符,整表支持垂直连字符
    • 粘连多个表行或者表列
    • 去激活表格,从而看见它的源代码
    • 设置表格的扩展中心,一个单元格上的属性可以用于四周的单元格上
    • 指定表格的最小和最大尺寸
    • 当前所欲表格均在营区tabuler、block、matrixneir,创建自定义表格阔集时,可以Table->Special table properties->Extract format来抽取现有表格的样式
  • Creating labels, links and references
    • Meta+!Insert->Link->label可以创建一个非活动label
      • 通过Meta+?``TabInsert->Link->Reference可以创建到label的引用
      • 输入完后记得使用Return来激活它
    • 对分节加label时,最好放在分节符后面
      • 给数学等式(Insert->Mathematics->Equation)加label的时候,最好放在等式内的开始处
      • 有多个等式的时候,最好把标签放在等式编号后面,Ctrl+#可以加编号
    • 通过Meta+T或Insert->Link->Hyperlink可以创建到其他文档的超链接
      • #label指向当前文档的某个label
      • url#label指向url位置的文档的某个label
    • Meta+I``*或Insert->Link->Action,可以关联一个动作
      • 第二个字段包含Guile/Scheme脚本命令
      • 默认安全设置下,需要用户同意才会执行脚本,但是可以通过Options->Security修改
    • Meta+I``I或Insert->Link->Include可以包含其他文档
  • Inserting images
    • 受支持的文件包括ps,eps,tif,pdf,pdm,gif,ppm,xpm,fig等
    • 图像按原设计尺寸展示,并且按照下边界对齐
      • 但是在图像选取对话框中可以修改宽度,高度,对齐方式等等
      • 若指定width却没有指定height,那么图像被缩放时会保留原始比例
        • 以1par为width可以让图像跨越整个段落,同时高度也会被按比例缩放
      • 可以用w和h作为单位来表示原图中的宽度和高度
    • 一个自带的脚本可以用来将带LATEX公式的XFIG图片转化为受封装的postscript。
    • 对于某些格式,TeXmacs会使用外部转换器,比如Ghostscript,ImageMagick,NETPBM
  • Generating a table of contents
    • 通过Insert->Automatic->Table可以在当前位置出入章节目录
      • 但是必须在分页符可见的模式下(在Document->Page的Format选项卡中选paper作为Screen rendering option),这样才可以准确计算页面编号
      • 使用Document->Update->Table of content/All来生成章节目录,可能要做多次,因为页面编号会随着章节目录的变动而变动
  • Compiling a bibliography
  • Generating an index
  • Compiling a glossary
  • Multiple extractions
  • Books and multifile documents

Creating technical pictures

介绍Texmacs自带的图片编辑器,或许功能不够强大,但是优点是与TeXmacs整合紧密,可以方便插入文本,公式和超链接。

Advanced layout features

  • Flows
    • 复杂页面区分不同的flow:
      • 主文本,脚注,以及分栏
        • 插入脚注可以通过Format->Page insertion->Footnote
        • 插入分类可以通过Paragraph->Number of columns
      • 不同的flow再分页的时候有不同的表现
  • Floating objects
    • 浮动标的可以在主文本之外自由移动,通常用于盛放那些太大的图示或者表格。
      • 通过Insert->Note->Floating object
      • 也可以Insert->Note->Floating figure resp.然后Insert->NOte->Floating table
      • 如果要在浮动标的中插入多个更小的图示或者表格,可以Insert→Image→Small figure resp. Insert→Table→Small table
    • 在浮动标的里面可以通过Focus->Allowed positions来控制其位置
      • 浮动标的不会出现在主文本中,除非文本与上底或者下底的距离不超过3行
  • Page breaking
    • 通过Docuemnt->Page->Breaking可以准确控制分页

Editing tools

  • Cut and paste
    • 可以用鼠标左键的单击和拖曳来选中的区域
      • 也可以按住Shift,然后通过左右方向键
      • 也可以通过Ctrl+Space来开启一个选取区域
        • 通过Ctrl+G可以消除选取
      • Ctrl+Space可以不断扩大选取区域的范围,达到最大范围的时候则取消选取
    • 可以通过Edit->Cut或者Shift+Delete来删除
    • 对于拷贝操作,可以通过Edit->Copy或者Ctrl+insert
    • 对于粘贴操作,可以通过Edit->Paste或者Shift+insert
    • 改变颜色通过Format->Color->红色
    • 如果选中公式,可以通过Insert->Fraction可以将其转化为分数的分子
    • 复制粘贴到其他程序的时候,采用的时TeXmacs数据格式,可以通过下列命令修改
      • Tools->Miscellaneous->Import selections as resp
      • Tools->Miscellaneous->Expor selections as
    • 也可以在菜单Edit->Copy to以及Edit->Paste from子菜单中操作
    • 默认情况下,复制和粘贴使用首要剪贴板,在上一项中列举的子菜单操作中也可以选取其他剪贴板
  • Search and replace
    • Edit->Search或Ctrl+S开启搜索
      • 通过PageUp和PageDown(或上下方向键、或Return)可以在候选词之间切换
    • 搜索过程会只查看与和前光标相同模式和语言下的内容
      • 也就是说在公式模式下搜索x不会找到在主文本中的x
    • Edit->Replace或Ctrl+=来打开替换工具栏
      • 使用Shift+Return可以撤销上次替换
      • 使用Ctrl+Return可以完成所有替换
    • 在搜索和替换工具栏上有按键可以打开搜索和替换对话框,用于输入更复杂的文本或者符号
    • 当搜索非文本内容时
      • 在搜索对话框中敲F6插入一个strong标签,会搜索所有的strong标记
      • 通过Ctrl+?似乎不能键入select-region标签
  • Spell checking
    • 附带安装的ispell可以用来做拼写检查
    • 拼写检查的快捷键时Meta+$或Edit->Spell
    • 要确保对应语言的字典文件已经安装
  • Undoing and redoing changes
    • Edit->Undo或Ctrl+z可以撤销操作
    • Edit->Redo或Ctrl+y可以重复撤销的操作
    • TeXmacs保存整颗记录树,可以通过Edit->Redo选择合适的分支
    • 不是所有的操作都可以被撤销
      • 一些全局设置不可以被撤销
      • 有外部程序造成的修改也不可以被撤销
  • Structured editing
    • 默认情况下,当前焦点时包含光标的最内层的标签
    • 举了编辑数学公式中的矩阵的例子,还是略过吧
  • Structured cursor movement
    • 有以下几种结构化的光标移动
      • 遍历文档的所有结构
        • Ctrl+方向键
      • 遍历与某最内层标签相同的标签
        • Ctrl+翻页键
      • 在当前最内层标签中移动
        • Meta+Alt+方向键、Home、End、Delete、Backspace、翻页键
    • 大部分此类快捷键搭配Shift+可以用于选取内容
  • Structured variants
    • 当创建定理、等式、列表等营区后,若想改变其类型,可以使用Ctrl+Tab以及Ctrl+Shift+Tab快捷键
    • 通过Ctrl+#可以给营区增加或者删除编号
  • Positioning and resizing objects
    • 通过Meta+Ctrl+开头的快捷键
    • 应用于以下标签
      • 空白(通过Format->Space插入,需要把光标放在空白之后此类快捷键才会生效
      • 箱体修改器(通过Format->Adjust插入的move, shift等等)
      • 动画(其时长可以通过Meta+Ctrl+搭配左右方向键修改)
      • 图像(其尺寸和对齐可以被修改)
  • Versioning tools
    • 可以通过Tools->Versioning tool开启一个Version菜单
    • 默认提供对Git, Subversion的支持
    • 对比两个版本要先,加载新版本然后,Versin->Compare->With older version
      • 也有Versin->Compare->With newer version
      • Version->Move或者Ctrl+移位键来在版本改动中移动
    • 差异可以显示为三种方式:
      • 只显示旧的
      • 只显示新的
      • 同时显示新旧
    • 对于每个差异都可以指定显示方式
      • Ctrl+<-旧版本
      • Ctrl+->新版本
      • Ctrl+|显示新旧
      • Ctrl+Tab来循环切换
    • 选定版本可以通过Version->Retain,或者使用Ctrl+1/2/Return
      • 如果过完每个差异,可以通过Version->Retain->Current version来选定所有差异
    • Version->Gain可以选择差异粒度
      • 可以比较开始时设置,也可以选中某个部分修改其差异粒度

Laptop presentations

为笔记本设计的展示模式。可以通过View->Presentation或Ctrl-F9开启。

Using GNU TeXmacs as an interface

如何与外部系统够同,比如计算机代数系统。

Writing TeXmacs style files

样式文件可以用于:

  • 可以对重复性的元素,比如分节、定理、枚举进行抽象
  • 一种对文本进行结构化的机制
  • 标准文档样式可以让你的写作看起来更像是专业文档

Docuemnt->Style可以选择一个主样式,用于反映所需的文档类型比如新建,文章、书籍等。 样式包则用来对主样式进行更深入的定制,比如number-europe会启用欧洲样式的定理编号;maxima包则提供了用于MAXIMA计算机代数系统的一个阔集。多个样式包可以共同使用。

当你想增加标记或者自定义布局,有两个选择,要么写一个主样式,要么写一个样式包。大多数情况下,写一个样式包足矣。

Customizing TeXmacs

程序的大部分可以通过Edit->Preferences来配置。其他部分则可以通过Guile/Scheme来扩展。

The TeXmacs plug-in system

有多种扩展方式

  • 自定义其样式文件
  • 自定义用户界面
  • 自定义与外部程序的连接

其他

(草草收尾)