Markdown2LaTeX
Markdown2LaTeX copied to clipboard
将markdown转换为LaTeX的工具
title: Markdown转\LaTeX 工具\使用说明 author: 机智的超立方体
概述
这个工具可以简化编写日常的报告的工作量,避免繁重的键入\LaTeX 命令的工作(其实主要是嫌用文本编辑器插图太麻烦),代之以友好易读的Markdown格式。
它和pandoc或其他类似产品的区别在于,这个工具专注于让人更轻松地插入代码文件和带交叉引用的图片这两件事情(因为这两件事情是我个人使用LaTeX写报告时最常用的)。
- 它对Markdown的块代码做了一个扩展,允许直接插入一个外部的文件,避免维护外部代码和报告里的代码的一致性的困难;
-
它对Markdown的插图语法做了一些修改,一种语法允许直接插入一张图片,另一种语法则可以在文本中制造一个交叉引用,避免在Markdown中混杂
label
、ref
等代码的烦恼;
本README.md
和example.md
都是合法的输入文件,可以自行编译来观察效果。
这个工具基于mistune
库,通过为其编写新的Renderer实现了\LaTeX 代码输出。输出一般来说仅需C\TeX即可编译,其中所使用的纸张版式(a4paper, 12pt, margin=54pt
)、宏包、插图格式等为开发者个人偏好。如果你习惯的设置与我不同,可自行修改程序源码中内嵌的模板。
欢迎任何意见或建议~
特别声明:这个工具没有指望解决一切问题,仅仅是提供了一定程度的便利性。为了得到真正符合排版规则的文稿,必须在这个工具的输出的基础上进一步修改。开发者本人并不鼓励\LaTeX 新手随意使用这个工具进行转换,建议在明白它的工作原理和输出规则的情况下使用。
用法
md2LaTeX < <input file> > <output file>
cat <input file> | md2LaTeX | tee <output file>
懒得做命令行选项,就当个管道用就好了。
语法
头部信息
输入的文件开头必须有如下片段:
---
title: 标题
author: 作者
---
Markdown
与Markdown语法没什么区别的:
- 各级标题分别会生成对应的
section
,subsection
等标题; - 引用生成
quote
; - 水平线生成
hrule
; - 列表视是否有序生成
enumerate
或itemize
; -
强调生成
emph
,双重强调生成textbf
和emph
; - 行内代码生成
texttt
; - 链接生成
href
;
块代码
块代码有三种写法。
一段被框起来、无语法高亮、有编号的程序:
```
a = b + c;
```
一段被框起来、有语法高亮、有编号的程序:
```C
a = b + c;
```
引入一个外部文件,带语法高亮,以文件名作为程序片段的标题(注意中间的空行是必需的):
```C[program.c]
```
图
如果要直接在当前位置插入有编号和标题的图,用
或省略标题的
。这会产生带有[H]
参数的插图,它一定被固定在插入的位置。
而如果一段文字中需要提到某张图,用图
或省略标题的图
。这会产生带有[htbp]
参数的浮动图像,它将会出现在文字附近合适的地方,文字中则会产生交叉引用。这个例子最终排版结果将类似于“图3”“图4”。
其他
程序会对文本中出现的_
等符号进行转义,以确保它们正常显示。除非处于数学模式中---这种情况下转义会干扰数学公式的上标下标。
程序不会对反斜杠进行转义,以方便在文本中插入一些简单的\LaTeX 命令。
表格暂时不支持。