我是一个物理工作者,MS Word/WPS 什么的很早就扔掉了。LaTeX 才是我们的家常便饭。本科时候在课堂上我就喜欢拿着 LaTeX 编辑器做笔记,当时就盼望着哪天 Evernote 能够支持 LaTeX 语法。在 macOS 下配置 LaTeX 编译环境十分简单,只要下载一个 MacTeX,它自带 TeXShop,然后一切就都搞定了。
后来知道了 Markdown 语法,这样一个花 2 分钟就能学会的「标记语言」直接戳中我这样一个极简主义者的 G 点。与 LaTeX 最大的不同在于,它不会像大多数 LaTeX 编辑器一样在仅修改了一个标点之后,都要求重新编译。
然而要同时实现 Markdown 的极「简」,和 LaTeX 的「效」能是非常艰难的。虽然在静态博客里可以使用 MathJax 显示公式,但在 macOS 端编辑博文时没有 LaTeX 预览也是很难过的一件事。
MWeb
你可能会说 MWeb 就支持 LaTeX 的编辑和预览呀!的确,我尝试过它,但这里提出两点我后来放弃它的原因:
Typora
还有声名鹊起的 Typora,我觉得它单作为 Markdown+LaTeX 编辑器可谓最优选:插入公式的方式不能再漂亮、默认的主题也简单优雅。
但它不能对文档进行管理,没有所谓的「外部文件夹」。而且,它也没有 iOS 版。
综上,我的要求其实很苛刻——优秀的编辑环境、Markdown、LaTeX预览、多设备同步集合为一体。于是我开始在 Ulysses 和 iA Writer 上寻求出路,因为这两个软件首先就符合我对「优秀的编辑环境」的要求。最终我找到了我的解决方案。
Ulysses 是支持 HTML 预览的,所以我们在 Markdown 文档里插入一些 HTML 语言也没有关系。前天我就在 @ulysses 官推上看到了这个在 Ulysses 下实现公式预览的方案。
只需要在文档开头加入这四行 Raw Source Block 即可
~~ <script type="text/x-mathjax-config">
~~ MathJax.Hub.Config({tex2jax: {inlineMath:[['$','$']]}});
~~ </script>
~~ <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>其实这就是 HTML 下的 MathJax 相关设置。不用担心那些小波浪号,它们是 Ulysses 用来标记 Raw Source 的符号,无论是导出还是发布到你的的静态博客上都不会影响。
之后只要将正常 LaTeX 语法包裹进 Raw Source 格式中即可,比如
神奇公式:
~~ $$\left(iD\!\!\!/+m\right)\psi = 0$$
~$\dfrac{1}{2}$~,这就是二分之一,想不到吧!然后调整 Ulysses 的导出格式为 HTML,使用 ⌘+⇧+P 就可以预览文档里的公式了!

原文链接:Writing Mathematical Equations in Ulysses
我们也可以利用 iA Writer 实现 Markdown + LaTeX。
同样是解决 LaTeX 公式预览问题,我发现了这样一个系统服务——Export Markdown to PDF。它是基于 pandoc 命令,在 iA Writer 下将文档转换为 PDF,并在默认 PDF 应用程序下预览。虽然不像 iA Writer 自带的预览那样高效,但如果只是插入几行公式,对我来说这已经最佳方案了。况且近日发布的 iA Writer 4 支持多文件、模块化编辑,对于每个子文件而言 pandoc 的编译效率也十分高了。

遗憾的是,这个 Export Markdown to PDF 已多年没有维护了,它环境变量设置已经因为新版本路径更改无法使用,而且最致命的是它不支持中文文档。于是我将它 Fork 了一下,修改成为了支持中文的 LaTeX 编译服务,下面我用四步教大家如何配置它:
首先,毋庸置疑你的电脑里必须安装有 MacTeX,并且我建议安装最新的 2016 版,否则环境设置可能会略有不同,导致不必要的麻烦。
以及,转换 pdf 所需的 pandoc(在终端下用 brew install pandoc 命令安装)。
配置 xelatex 中文编译模板
mkdir ~/Templates
cd ~/Templates
pandoc -D latex > template.tex %导出pandoc默认模板文件然后我们在导出的默认模板文件 template.tex 上进行修改。定位到 「% if luatex or xelatex」,在下图白色箭头处( \fi 的下一行)插入如下语句:
% SUPPORT for Chinese
\usepackage[boldfont,slantfont,CJKchecksingle]{xeCJK}
\usepackage{fontspec,xltxtra,xunicode}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\punctstyle{quanjiao}
\setCJKmainfont{WenQuanYi Micro Hei}
\setCJKsansfont{KaiTi}
\setCJKmonofont{SimSun}
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
其中\setCJKmainfont{WenQuanYi Micro Hei}可以自定义主字体(LaTeX 老司机也可以尝试修改其他内容),我测试时用的是「文泉驿微米黑」字体,大家可自行修改。但最好像我一样使用字体的英文名称。什么?你不知道怎么查看字体的英文名称?到终端使用下面这条命令查阅系统内的字体英文名吧。
fc-list :outline -f "%{family}\n"下载我 Fork 的 Export Markdown to PDF,把 workflow 文件放到 ~/Library/Services 路径下
在 iA Writer 下使用:iA Writer → 服务(Services) → Export Markdown to PDF 即可。编译的时候可以看到右上菜单栏会有个旋转的小齿轮⚙️,特别可爱。如果 LaTeX 语法有错误,错误信息会以弹窗的形式出现,方便你 debug。

用 Automator 打开 Export Markdown to PDF.workflow 你可以看到下面这些内容:
祝大家 LaTeX 愉快!
原网址: 访问
创建于: 2023-05-23 14:48:12
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论