-
#摄友基地#用 Markdown 写作,用什么文本编辑器?
顶 顶 热2026/10/19 19:37:58 发布5 浏览0 回复0 点赞
帖子:1
精华:0
注册:2026/10/19 10:07:54
IP属地:未知
如果你心情好到想用 Markdown 写论文、出幻灯片的话,那就试试 MS Research 开源的
Madoko
在线 IDE 吧。
Madoko 除了提供一套强大且系统的 Markdown 语法拓展之外,其输出部分也是很有意思。Madoko 的输出提供 HTML 和 PDF,其中 PDF 部分交给 LaTeX(官方默认配置是 TeXLive XeLaTeX)处理。
Madoko 的 PDF 输出长这样(
http://research.microsoft.com/en-us/um/people/daan/madoko/samples/esop15/out/esop15.pdf
):
相比之下
http://research.microsoft.com/pubs/210640/paper.pdf
的正经版本丑多了,毕竟没高亮没对齐(。
网页可以拖拽上传 Document Class 定义(*.cls),这些 http://madoko.net 上面都有。还有个差不多大的文档的例子:
From Monads to Effects and Back
Madoko 的幻灯片输出可以用 Reveal.js 做 HTML,同时 PDF 使用 Beamer:
(删掉目录去掉 INCLUDE 就可以拉扁成普通文档…)
这块实现是和 madoko 核心解耦合的:
madoko: styles/presentation.mdk
自带模板:
嗯 Presentation 是那堆模板之一。
可以在浏览器中带语法高亮地编辑 TeX、BiB、CSS、JS(包括 MDK 里面用 TeXRaw Block 以及 script/style tag 内嵌的),当然还有 MaDoKo:
这东西还提供 HTML/mdk 实体、引用标识符自动补全,和 Visual Studio online 一样用的是作者 daan 自己写的 monaco-editor。
另外还有诸如编程语言语法高亮可以自定义 Tokenizer 规则拓展(当然你也可以用 Prettify 之类的东西)、使用非等宽字体打印代码时支持对齐之类的特性。和这玩意比起来,StackEdit 之流的 Markdown Extra 彻底成了小打小闹。网盘同步也是有的(包括 Dropbox 和 GitHub 的三路合并和实时队友位置显示),还有 ReStructuredText 里面的手绘复杂表格也有。要注意这些都是一式两份同时给 HTML 和 TeXLive PDF 输出的哟。
详细的手册页可以看
Madoko Reference
。你问作者是谁?
Daan Leijen
。嗯,Parsec 那个。daan 自己搞了个带副作用的面向函数编程语言
Koka
,然后就造了个 Markdown in Koka。
对了,这玩意支持文件头定义导入任意 TeXLive 包(例如 ctex),并且还能导入 LaTeX 文档,同时支持用 Snippet Block 插入任何 LaTeX 片段的渲染结果(DVI -> SVG)。TiKZ/pgf、tikz-uml、graphviz,爱用啥用啥。如果你要贯彻落实 Madoko 自定义 Block 的精神,自己加上 WebGraphViz、flowchart.js、js-sequence-diagrams 之类的东西,那也行,以后写在哪个文件里面当模板 INCLUDE 就好了。
我看到这玩意的各种框支持“写作……读作……”那样处理,这样可以高亮器接受到的是一般源码,最终输出的结果可以接受一大堆变换。bhuztez 的 J 语言可以自动转写成人话了。另外 tests 目录里面有一个用这玩意写成的
SKI combinator expander
。
* * *
CJK 处理指南
要优化 Madoko 的 CJK 输出其实很简单。
对于 HTML 输出,使用 html-lang 属性定义 DOM 节点的 html 'lang=' attribute:
.madoko { html-lang: zh-Hans-CN; } <!-- 全文定义,头上来一行就够 -->
<!-- 可以写成 class:-->
.cn { html-lang: zh-Hans-CN } <!-- 谁给个日语版的 CN block 那一段,我好改成 ja? -->
.tw { html-lang: zh-Hans-TW }
……一点示例文字,那么给你们作为一个示范。
我一篇安利 MSR Redmond 大法的文章,怎麼就被选進日報去了?
{.tw} <!-- 一段紧接一行加类 CSS 定义就是整段定义 -->
<!-- 或者这样: -->
He then said, [苟利国家生死以]{html-lang: zh-Hans-CN} <!-- 对方括号部分定义 -->
~ CN <!-- 定义 class 就是定义了一个 block -->
这篇文章呢,一共就做了三件事:
1.
2.
3.
还有呢,就是为开 [MadokoCJK] 这个坑打下了理论基础,这个对……
~
[MadokoCJK]: https://github.com/Arthur2e5/MadokoCJK
稍微配合一点点 before after 以及 TexRaw 魔法的话也可以让 CTeX 有意思起来。
这样浏览器会自己选择该用的字体和排版方式。
对于 XeLaTeX PDF 输出,我们可以用 ctex 宏包(
@郭昊
在评论区提到的):
Package: [UTF8]ctex
<!-- 类似于:
~ TexRaw
\usepackage[UTF8]{ctex}
~
-->
要用 xecjk 也是一个道理,当然你也可以像 madoko 自己那样手撸 fontspec。咦,怎么谈 LaTeX 了?
* * *
在
https://v2ex.com/t/249268
处也有一些讨论。

楼主其他帖子
新帖速递
-
洛天依歌曲《女孩你为何踮脚尖》的含义是什么?#话题讨论#
2026/10/19 19:39:496浏览 -
用 Markdown 写作,用什么文本编辑器?#摄友基地#
2026/10/19 19:37:585浏览 -
12348法律咨询热线是什么?怎么正确使用?#法律热线#
2026/09/25 17:43:1464浏览
-
结婚到底需要彩礼嘛,大家一起来谈谈自己的看法和身边的关于彩礼的故事吧#话题讨论#
2019/12/19 09:16:41301浏览
-
夫妻之间,提升感情的几个技巧,红着脸也要看完#其他#
2019/12/18 20:08:28284浏览
-
三个挽回感情的技巧,教你如何在失恋后,挽回自己的爱情#情感求助#
2019/12/18 19:55:15280浏览
精华好贴
-
单身生活怎么过充实?靠自己永远不会被嘲笑!#单身生活#
2019/12/18 16:44:28195浏览 -
晒晒今天妈妈为我包的馄饨,煮的吃煎着吃都不错,吃完继续躺#聊天灌水#
2019/07/22 21:07:16254浏览
-
晒块老玉,据说是90岁外婆在小时候,她父亲送的!大家看看呢#新人报道#
2019/07/22 21:00:58208浏览
-
荷花盛开的季节,有知道这是哪个学校的荷花吗#精美贴图#
2019/07/22 20:58:06188浏览
-
7月20日这里月子餐免费教学+试吃,来还送爬爬垫!福利不止这些..#试吃试用#
2019/07/22 20:46:1324浏览
-
凤凰古城:对唱山歌,守一座城,等一个人#电信客服#
2019/07/22 20:43:25190浏览
微信公众号



