LaTeX 环境配置
最后更新时间:
相比大家都听过
其准确的格式描述解决了 WYSIWYG 的很多兼容性问题, 但也因其繁琐导致书写体验奇差, 不得不依靠各类写作环境
本文简单记录一下笔者如何在自己的设备(M1 MacBook Pro)上配置
当然, 笔者也懂得非常少, 所以也就算学习笔记了
本文还在更新中
参考资料:
前期考察
笔者干什么事都喜欢有备而来, 实际上笔者上学期手写过很多
这里贴一段
LaTeX is intended to provide a high-level, descriptive markup language that accesses the power of TeX in an easier way for writers. In essence, TeX handles the layout side, while LaTeX handles the content side for document processing. 来源
再加上笔者爱好收集各类信息, 早先调查过一些常用的
都有各种各样的小毛病, 要不就是要钱, 要说的话感觉 TeXMaker 稍微好一些,
但作为一个爱折腾(有病)的笨比, 必然想要自己高度自定义,
于是傻乎乎拿 VS Code 写了很多
VS Code 的 LaTeX 初体验
VS Code 是好东西, 但万物皆有优缺点, 其轻便性的另一面就是作为工具的普适性, 这导致在完成特定繁杂任务时需要进行的调整(例如配置环境和习惯操作逻辑等)会多得难以想象
简单列一下吧, 常见的需求是生成 PDF
文件,
所以需要装渲染引擎, 但很难做到所见即所得(被自己的自负回旋镖击毙),
因此效率不高使用体验不佳
还得是 WYSIWYG 吧
同时由于各种操作常常需要大量配置(至少当时还比较年轻, 配置这些相当折磨且缓慢)
不过说起来现在有了 Copilot 好像竞争力有所回升, 主要就是一些写代码习惯的操作很舒适, 例如注释快捷键, 大括号换行等
写 LaTeX 的注意事项
心理准备
感觉最大的挑战就是在自己想写什么东西之前需要先搞懂这个东西到底是怎么回事,
在
不过着对于
来说好像也不那么奇怪, 毕竟是出了名的历史悠久的庞大 粪坑项目
模板
这是在手写了大量
笔者第一次大量需要用到
比较好的方法是针对自己的需求写一套 class
虽然写起来很难受, 但是万事从抄起步, 找好 Reference
随便找几个自己看得过去的就开始做赛博裁缝
LaTeX 的相关术语
放个图在这吧, 图里有 PostScript 是因为
TeX
其实我也不太清楚, 看了下百科, 大概是一个图灵完备的, 设计来解决排版问题的语言, 还是把 Wiki 留在这吧
重点的话,
LaTeX
同样, 写着一篇也不打算细讲这些, 还是丢个 Wiki 省事
我感觉 macro
写的诶,
所以原理上讲任何
XeTeX
小趣事: 笔者在使用 MacBook, 而 XeTeX 最初就是为 Mac OS X 开发的
比较重要的是支持了 Unicode 并且输入默认 UTF-8
个人感觉像一个拿别的语言重写的 C compiler, 是一个用来编译
安装 LaTeX 环境
笔者使用的是 Mac, 然后本来安装了 TeX Live, 但因为版本问题无法使用 tlmgr(TeX Live Manager) 安装宏包, 遂跟随指引前去下载 MacTeX 但环境乱七八糟, 总之先把原来的 TeX Live 通通删掉然后重新安装 MacTeX, 因为按照他的说法这会一并安装 TeX Live
CTAN 记得换源, 我是 TUNA 死忠粉
然后按理说会安装 xelatex, 然后我需要引入自己的 .cls
文件, 还要在 VSCode 里面配置好 env
, 的
TEXINPUT
项
装完了, 我宣布这是完全的欺骗, 怎么删完了之后 MacTeX 给我装了个 2022 版本回来啊, 这样安装会报错
即刻转向 不推荐的 方式来更新, 有点难以接受这种文档什么也不写的东西
哈哈, 效果见下图
LaTeX 语法基础
style
和 macro
,
也就是别人的劳动成果, 并且改善了公式编辑
本节内容参考了 wikibooks 上的内容, 根据协议 CC BY-SA 4.0 获得授权
空格, 换行和段落
任何数量的连续空白字符, 单个换行, 空格, 制表符等, 会被处理为一个
space
, 也就是看起来只空一格
但单独的一行或多行空行(内容只有空白字符)会被处理为一个段落分割, 后面的内容会新起一个段落
换行不会新起段落, 也就意味着不会有段首缩进, 可以用以下指令来实现
\\
\newline
\hfill \break
分组
程序员爱用大括号, 但在一篇文档中大括号通常不是到处都能用, 可以用
\bgroup{group_name}
和 \egroup{group_name}
来当带名字的大括号用
环境和指令
\
开头, 具体的结构如下
环境:
1 |
|
其中环境本身相当于提供了一对带作用的大括号, 也就是内部形成了一个类似 分组 的结构, 称为语境 (scope, 这个翻译是我自己翻的, 可能不太准确哈), 同时环境并不常传递参数, 但传参形式与指令无异
指令 :
1 |
|
在
- 文字参数指令: 将指令的目标文字作为参数传递
- 语境指令: 又称切换指令, 作用于语境(分组或者环境)的剩余部分, 不建议到处乱用(尤其是没分好组/环境的情况下)
比如
1 |
|
注释
写代码怎么能不知道注释怎么写呢?
但是这个注释会忽略掉这一行接下来的全部内容, 以及后面跟的换行符, 和换行符后面的空白字符
1 |
|
LaTeX 速查手册
Reserved Characters - 保留字符
带特殊含义的字符
1 |
|
部分情况下还有 [
和 ]
需要在文档里面使用时需要进行转义
1 |
|
其中反斜杠 \
在数学模式下转义应当使用
\backslash
同时可能产生问题的 ASCII 字符还有 <
和
>
, 在部分字体编码中会显示为 ¡
和
¿
可以使用 \textless
和 \textgreater
来转义
文档结构
一个典型的 .tex
文件的结构
1 |
|
内置文档类
document class
),
如下(我抄的 wikibook):
article
: 文章, 发刊物, 小型报告/pre, 项目文档, 请柬(?)等IEEEtran
:IEEE 破事就是多proc
: 大约是程序记录(比如会议记录什么的? 笔者也不太懂)minimal
: 一般是用来测试的, 如字面意思一般, 只设置页面大小和提供一个基础字体report
: 比article
长, 比book
短book
: 大部头slides
: 幻灯片, 字体是大号无衬线字体(有点像黑体)memoir
: 花里胡哨的book
[ref]letter
: 手纸(てがみ)beamer
: pre 用的 (参考 LaTeX/Presentations).
大表在此处
文档参数
10pt
,11pt
,12pt
: 主字体大小设置, 默认10pt
a4paper
,letterpaper
,...: 纸张大小. 原理上讲默认letterpaper
, 但很多欧洲的引擎, 以及 pdfLaTeX 默认 A4. 还可以指定 a5paper
,b5paper
,executivepaper
,legalpaper
fleqn
: 公式左对齐(默认居中)leqno
: 公式编号放在左边(默认右边)titlepage
,notitlepage
: 标题是否单独成页,article
默认否,report
,book
默认是twocolumn
: 两列排版(就是刊物上最常见的那种), 当然可以选onecolumn
, 不过这是默认的twoside
,oneside
: 单双面设置, 这只是文档的格式, 打印的时候还得另外设置.article
和report
默认单面,book
默认双面landscape
: 改变为横向列印openright
,openany
: 控制章节首页出现的位置. 对article
无效, 章节都没有的东西.report
默认是openany
, 也就是找到下一个可用页面就放,book
则默认为openright
, 要在右手侧draft
,final
: 默认final
.draft
会让指出连字符和排版问题(输出之后有问题的行的右侧边上会有个小正方形), 而且还偷懒了图片, 画个框不画内容省事 , 很符合我对 draft 的想象
TBD2023-09-16 07:56:062023-09-16 08:07:43