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
来指定相关作者
- 可以用dueto,也就是
- 其他常用的,但是不对其环绕文本进行强调的是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来作为替代了。
- 击键的活动前缀依赖于当前的“look and feel”,可以通过Edit -> Preferences设定:
- General prefix rules
- Keyboard shortcuts for text mode
- 列集了一些快捷键用于输入特殊字符
- 除了上面列集的快捷键,也可以使用Shift+F5作为快捷键
- Hybrid commands and LaTeX simulation
- 可以直接从键盘输入LATEX命令,以
\
进入混合模式,然后键入LATEX命令,比如\FRACReturn
。要键入\
本身,需要使用Shift+F5\
。 \
会搜索所输入命令是否是latex复集、函数,或者环境的做用。\
等同于下列命令之一:Meta+I L
、Meta+I E
、Meta+I A
、Meta+I #
、Meta+I V
。
- 可以直接从键盘输入LATEX命令,以
- 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
,插入一小段严格文本,不能被分行SpaceTabTab
、Meta+Space
、Meta+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搭配方向键来插入行或者列。敲回车也能开始新行。
- 例如可使用Insert->Mathematics->Equations或者
- Table editing mode
- 默认情况下,格式操作在单元格生效,可以通过Table->Cell修改操作模式:
Meta``M``C
,操作于单元格Meta``M``H
,操作于表行Meta``M``V
,操作于表列Meta``M``T
,操作于整表
- 默认情况下,格式操作在单元格生效,可以通过Table->Cell修改操作模式:
- Alignment
- 可用
Meta+Ctrl
和方向键快速对齐 - 可选择Table->Horizontal/Vertical cell alignment来对齐
- 或者使用
Meta+T``H``X
或Meta+T``V``X
- 或者使用
- 要选择表格与周遭的对齐方式,可以采用
Table->Horizontal/Vertical table alignment
- 或者使用
Meta+T``Shift+H``X
和Meta+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``x
、Meta+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
来抽取现有表格的样式
Links and automatically generated content
- Creating labels, links and references
Meta+!
或Insert->Link->label
可以创建一个非活动label- 通过
Meta+?``Tab
或Insert->Link->Reference
可以创建到label的引用 - 输入完后记得使用Return来激活它
- 通过
- 对分节加label时,最好放在分节符后面
- 给数学等式(Insert->Mathematics->Equation)加label的时候,最好放在等式内的开始处
- 有多个等式的时候,最好把标签放在等式编号后面,
Ctrl+#
可以加编号
- 通过
Meta+T
或Insert->Link->Hyperlink可以创建到其他文档的超链接#label
指向当前文档的某个labelurl#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来生成章节目录,可能要做多次,因为页面编号会随着章节目录的变动而变动
- 通过Insert->Automatic->Table可以在当前位置出入章节目录
- 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再分页的时候有不同的表现
- 主文本,脚注,以及分栏
- 复杂页面区分不同的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标签
- 在搜索对话框中敲
- Edit->Search或
- Spell checking
- 附带安装的ispell可以用来做拼写检查
- 拼写检查的快捷键时
Meta+$
或Edit->Spell - 要确保对应语言的字典文件已经安装
- Undoing and redoing changes
- Edit->Undo或
Ctrl+z
可以撤销操作 - Edit->Redo或
Ctrl+y
可以重复撤销的操作 - TeXmacs保存整颗记录树,可以通过Edit->Redo选择合适的分支
- 不是所有的操作都可以被撤销
- 一些全局设置不可以被撤销
- 有外部程序造成的修改也不可以被撤销
- Edit->Undo或
- 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
有多种扩展方式
- 自定义其样式文件
- 自定义用户界面
- 自定义与外部程序的连接
其他
(草草收尾)