-[一键制作CheatingPaper!]:从Markdown到Latex[未完成]
相较于从Word到Markdown,从Markdown到Latex的转换就简单多了,因为Markdown的语法本身就是Latex的子集,所以只需要将Markdown的语法转换为Latex的语法即可。
为什么使用Latex?
因为Latex的排版及其自由且高度自动化!用来制作CheatingPaper再合适不过了!(之前我用的是Adobe Illustrator,对于大量内容操作繁琐,排版复杂)
在这种情况下,我制作了一个简单的Python脚本,可以将Markdown转换为Latex。
Markdown转Latex
Latex设置
我们首先看看怎么样才能搞一个好的Latex模板,用来生成CheatingPaper。
别废话,直接上代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67\documentclass{ctexart} % 使用ctexart文档类,支持中文
\usepackage{amsmath} % 使用amsmath宏包,支持数学公式
\usepackage{multicol} % 用于多列布局
\usepackage[most]{tcolorbox} % 引入 tcolorbox 的 most 库以获得额外功能
\usepackage[ % 设置页面边距
a4paper, % 纸张大小
top=1mm,
bottom=1mm,
left=1mm,
right=1mm
marginparwidth=0mm,
marginparsep=0mm,
centering,
includefoot]{geometry}
% 设置 section 的样式
\usepackage{titlesec}
\titleformat{\section}
{\normalfont\large\bfseries\centering}{\thesection}{1em}{}
\titlespacing{\section}{0pt}{*1.5}{*1.5}
% 创建一个自定义的 box
\newtcolorbox{mybox}[2][]{
colback=white, % 盒子背景颜色
colframe=black, % 盒子边框颜色
coltitle=black, % 标题文本颜色
boxsep=1px, % 内部与边框的空间
top=1px, % 盒子顶部的空间
bottom=1px, % 盒子底部的空间
left=1px, % 盒子左边的空间
right=1px, % 盒子右边的空间
boxrule=0.5pt, % 边框宽度
sharp corners, % 设置为直角边框
fonttitle=\bfseries\scriptsize, % 标题字体加粗和大小
title={#2}, % 标题文本
attach title to upper, % 将标题文本放在盒子上方的内容顶部
% before=\vspace{-0.2px}, % 减小盒子前的垂直间距
after=\vspace{-8pt}, % 减小盒子后的垂直间距
#1
}
\begin{document}
\begin{multicols*}{3} % 创建一个三列的布局
% 第一个 section
\section*{Section 1}
\begin{mybox}{Box 1 Title}
\scriptsize % 设置最小字号
Box 1 content goes here.
\end{mybox}
\begin{mybox}{Box 2 Title}
\scriptsize % 设置最小字号
Box 2 content goes here.
\end{mybox}
% 第二个 section
\section*{Section 2}
\begin{mybox}{Box 3 Title}
\scriptsize % 设置最小字号
Box 3 content goes here.
\end{mybox}
% ... 更多 sections 和 boxes ...
\end{multicols*}
\end{document}
转换规则
- Markdown的一级标题转换为Latex的section
- Markdown的二级标题转换为Latex的box的标题
- Markdown二级标题下的内容转换为box中的内容
完整代码
1 | import os |