markdown转换为latex, 一行命令生成pdf

你们可能说, 为啥不用pandoc呢? 几年前我试过pandoc, 效果差得令人发指. 留下了心灵阴影. 其实当时我非常菜(当然现在也是, 只是比几年前好一点), 可能我根本没用对. 因此如果你告诉我pandoc现在效果非常好的话, 我可以补充, 但很可能不会修改我的做法, 因为现在的效果我已经很满意了, 而且哪里不满意再修改模板就是了.

贴个图吧(泄漏了作业):

从这个图片来看, 行内代码, 代码块都不错, 也是我最喜欢的英文字体.

这是章节和图片的处理.
目录当然也保持了:

支持5级标题.

一行条命令即可. 缺点就是, 我前期配置了太长时间(快1天吧).
MarkTex, 这个项目就做得非常好. 包括行内代码和图片都有处理.
但是部分效果我不满意, 因此花了非常长重新配置, 得到了辅助脚本修改后的仓库.
简单说说辅助脚本干了什么:
预处理脚本:

  • 重排标题级别, 比如如果原来只有4级标题和6级标题, 就会重排为1级标题和2级标题. 其实这是个人习惯问题, 我从不用1级标题, 通常都用5, 6级标题.
  • 预处理obsidian的wikilink, 因为我用obsidian格式来写, 图片会是wikilink的形式, MarkTex处理不了.

后处理脚本:

  • MarkTex有个bug, 不过不是它的问题, 是pylatex这个包, 每一行传给pylatex都会追加%, 如果非代码块还无所谓, 代码块就会显示%. 你可以看看原来的MarkTex repo给的例子, pdf中代码块后面都有%.

模板我改了不少, 主要修改包括:

  • 调整代码块的显示, 包括字体
  • 去除原来的章节号自定义, 不再显示章节号, 因为markdown有自己的标题
  • 去除页眉
  • 调整行内代码的显示.

zsh脚本: 集成执行preprocess, postprocess, marktex, 这样就可以一行命令搞定.
目前这个脚本我还想追加个clean功能. 没做是因为昨天花了太多时间在这个上面, 不想再花时间了.

不过这些脚本都没法直接用, 因为路径都是我的目录, 如果要用的话, 需要修改. 还有依赖之类的需要处理.

posted @ 2022-03-14 11:05  Tokubara  阅读(612)  评论(0编辑  收藏  举报