一个适用于pandoc的latex模板(支持中文)

用于pandoc将Markdown转为Latex的模板文件。

主要修复内容:下划线转换、中文支持,人性化标题级次对齐等。

模板yeliqin666.latex下载


1 一级标题对应chapter

1.1 二级标题实际对应section

1.1.1 三级标题对应subsection

四级对应subsubsection

五级对应para
六级对应subpara

Important

本pandoc模板用于将markdown等格式转为latex的ctexbook文档。

基于默认模板default.latex修改。添加了一些中文支持。

Tip

使用xelatex编译,对中文支持较好;

搭配typora食用更佳!

效果图:

md图

转换后

pdf图

2 配置教程

2.1 安装pandoc与typora

2.2 在typora的文件-偏好设置-导出-latex中添加自定义参数

1
--template=path\to\this\yeliqin666.latex --top-level-division=chapter

2.3 在markdown文件的导言区添加一些参数

1
2
3
4
5
6
7
8
9
10
---
title: "文档标题"
author:
- yeliqin666
- 叶利钦小号
date: "2025-02-04"
numbersections: true
secnumdepth: 3
toc: true #是否包含目录
---

十分简单,现在可以使用typora的保存为latex了。

3 说明

3.1 对于文件转换

并非十全十美,尤其对于中文文档。已经修复了删除线、下划线等样式的中文支持,公式中仍需以\text{}包裹中文。

格式也并非一一对应,如md的*斜体*对应于latex的emph,latex的emph则会根据段落情况自动选择斜体或下划线以突出强调。

3.2 对于latex模板

基于原始ctexbook修改,有很好的中文支持。

照搬仲英学辅 大学物理tex模板,添加了一些数学、物理公式的包,按照中文习惯调整了前言、后记、章节编号等等。

3.3 一些乱七八糟的样式测试

段内可以可以输入符号如 。

环境应如下设置,其余环境同理。

若不需要编号,则

转换时默认不会含有图/表名和label。

表格

大纲级别 英,中字体 样式 中文字号 磅/pt
封面标题 Times New Roman,华文中宋 加粗 一号 26
封面表格内容 Times New Roman,思源宋体 加粗 四号 14
论文总标题 Times New Roman,华文中宋 加粗 二号 加粗 22
学校专业姓名 Times New Roman,楷体 无 四号 14
摘要/关键字 Times New Roman,楷体 加粗 小五 9
摘要/关键字的内容 Times New Roman,楷体 无 小五 9
一级标题/h1 Times New Roman,华文中宋 加粗 小三 15
二级标题/h2 Times New Roman,华文中宋 加粗 四号 14
三级标题/h3 Times New Roman,华文中宋 加粗 小四 12
四、五、六级标题/h4,h5,h6 Times New Roman,楷体 加粗 小四 12
正文 Times New Roman,思源宋体 无,行间距1.5倍 小四 12
表格标题 Times New Roman,楷体 加粗 小四 12
表格内容 Times New Roman,楷体 无 五号 10.5
引用块 Times New Roman,楷体 无 小四 12
行内代码/代码块 Cantarell,思源宋体 无 小四 12

项目列表

有序列表:

  1. 项目1
  2. 项目2
    1. 项目2.1
    2. 项目2.2
      1. 项目2.2.1
      2. 项目2.2.2

无序列表:

  • 项目1
  • 项目2
    • 项目2.1
    • 项目2.2
      • 项目2.2.1
      • 项目2.2.2

任务列表

  • 吃饭
  • 睡觉
  • 学习
  • 玩原神

分割线


引用块

仰天大笑出门去,我辈岂是蓬蒿人。

代码块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import random
answer = random.sample(range(1,10),4)
print(answer)
a = b = n =0 #
while a!=4 :
a = b = n = 0
user = list(input('請輸入四個數字:'))
for i in user:
if int(user[n]) == answer[n]:
a += 1
else:
if int(i) in answer:
b += 1
n += 1
output = ','.join(user).replace(',','') #重點:將串列轉換為字串的方法
print(f'{output}:{a}A{b}B')
print('答對了!')
上一篇从经典物理到量子物理——原子物理学笔记(1)下一篇 新年快乐!
DISCUSSION评论与交流以上 · 欢迎留下你的想法
评论区加载中