- 本文重点讲
markdown; 会提及:html,typst,latex.
标记语言
标记语言是一种文本格式, 负责将各种内容(文字, 图片, 视频等)统一编码.
常见的标记语言分为三类:
- 描述性语言:
HTML,XML-> 直接描述了一个页面布局. - 可以被转换为
HTML的, 简化后的标记语言:markdown,ebook等. - 用于保存程序所需的配置文件:
json,toml,yaml等.
为什么要有标记语言
- 为了把你见到的内容更好的传递给别人
pdf 格式可以保证所有人在所有设备上看到的内容都是完全一样的, 这固然是好的, 但是有的时候, 我们希望自己编写的内容能适应各种设备: 在 pc 的 16:9 的横屏上 和 手机的竖屏上都能比较好的显示.
HTML 等标记语言不直接显示内容, 而是会通过着色器, 指导着色器如何显示内容. 这样在标记语言中, 我们就可以指定图片的相对屏幕宽度, 字体的大小也可以适配系统的大小(例如: 浏览器的字体设置和HTML的字体大小共同影响实际显示效果).
Markdown
html 有着众多优势, 但是直接编写 html 费时费力, 并且许多情况下, 我们并不需要 html 的高级功能. 例如: 文档编写, 博客, 笔记等 -> markdown 应运而生, 并迅速被计算机工作者广泛接受.
markdown 的特点是:
- 使用
markdown编写文档时, 用户不需要关注排版问题, 可以专注与内容的编写 - 纯文本格式, 方便纳入
git管理 markdown的具体显示效果取决于目标平台的模板, 一份markdown可以无需修改, 在多个平台上渲染. 一个平台下的多个markdown只需要修改模板即可实现更改排版.
- 大部分排版语言都遵循 内容与排版 分离的设计模式, 文本分为多级标题, 正文内容, 列表, (各种)表格, 引用, 加粗, 斜体, 公式等, 对于这些类别具体如何显示(标题字号, 位置, 颜色等) 都不需要在编写内容的时候思考.
- 但是一个叫
word的软件, 并没有将这一设计模式放在关键位置. 并且非纯文本, 输入公式非常麻烦.
markdown 语法
blog 内查看.
- 插入普通图片:
 - 插入base64图片:
![替代文本][base64标签] [base64标签]:data:image/png;base64,base64_code
什么地方会使用 markdown
得益于 markdown 极低的学习成本和顶级的实用性, 现在 markdown 已经几乎成为了程序员界的通用笔记语言
- 在线教程, 文档, 笔记, 非正式手册.
- 各类博客, 评论(b站笔记评论支持markdown), qq(需要插件)等聊天软件.
markdown元数据的特点也可以用来制作简单的slides(演示文稿).
排版语言
用于出版物的发行, 要保证的是所有设备的一致性.
latex
老牌排版语言, 宏语言, 被广泛用于论文撰写, 专著发表等地方, latex 遵循内容与格式分离的特点, 想学精通 latex 难度较大, 但是, 不需要详细学习也可以在给定模板的情况下, 快速上手撰写内容.
latex 可以根据模板灵活配置, 因此也广泛用于学术 slides 制作(beamer包).
缺点: 宏语言, 语法过于抽象, 学习难度大, 编译速度慢(无法即时查看).
typst
由 rust 语言开发的一个现代排版系统. 非宏语言, 支持内嵌代码脚本. 兼容 latex 公式语法, 自动化包管理, 有完整构建系统(速度比 latex 快几十倍).
在逐步替代 latex 的使用场景, 有的大学的毕业论文模板已经切换到了 typst.