这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
others:markdown [2019/08/28 13:51] jinlong [安装后的设置及写作要求] |
others:markdown [2020/07/12 12:07] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 使用markdown写作并生成技术文档 ====== | + | ====== 使用markdown编辑生成技术文档 ====== |
===== markdown概述 ===== | ===== markdown概述 ===== | ||
行 50: | 行 50: | ||
latex工具,在windows下建议安装miktex,Linux和MacOS下建议安装texlive | latex工具,在windows下建议安装miktex,Linux和MacOS下建议安装texlive | ||
- | * windows环境:下载安装[[https://miktex.org/download|miktex]] | + | * windows环境:下载安装[[https://miktex.org/download|miktex]],注意安装后需要再安装cjk,cjk-fonts等相关package |
* Linux环境:使用apt/dnf/yum/pacman等安装工具安装texlive、texlive-latex等相关软件包即 | * Linux环境:使用apt/dnf/yum/pacman等安装工具安装texlive、texlive-latex等相关软件包即 | ||
* MacOS:使用HomeBrew安装texlive即可 | * MacOS:使用HomeBrew安装texlive即可 | ||
行 66: | 行 66: | ||
- | ==== 写作要求 ==== | + | ==== PDF文件生成 ==== |
+ | 配置完成后即可在通过pandoc命令生成pdf文件: | ||
+ | * windows: pandoc -N -s %%--%%toc %%--%%pdf-engine=xelatex -V CJKmainfont=NSimSun -V geometry:margin=1in %%--%%template eisvogel %%--%%listings a.md -o a.pdf | ||
+ | * Linux/MacOS: pandoc -N -s %%--%%toc %%--%%pdf-engine=xelatex -V CJKmainfont='WenQuanYi Micro Hei' -V mainfont='WenQuanYi Micro Hei' -V geometry:margin=1in %%--%%template eisvogel %%--%%listings a.md -o a.pdf | ||
+ | |||
+ | 上述命令中各个参数的说明: | ||
+ | |||
+ | * -N 给各个章节编码 | ||
+ | * -s 添加页眉页脚 | ||
+ | * %%--%%toc 包含目录 | ||
+ | * %%--%%pdf-engine=xelatex 指定处理pdf的latex引擎 | ||
+ | * -V CJKmainfont=“WenQuanYi Micro Hei” 指定亚洲字体为文泉驿微米黑 | ||
+ | * -V mainfont=“WenQuanYi Micro Hei” 指定主要字体为文泉驿微米黑 | ||
+ | * -V geometry:margin=1in 指定页边距 | ||
+ | * %%--%%listings 对于code增加增加行号 | ||
+ | * a.md 指输入文档为a.md文件 | ||
+ | * -o a.df 指输出文件为a.pdf | ||
+ | |||
+ | > 注:考虑到上述命令过长,在Linux、MacOS下可以分别通过修改~/.bashrc、~/.bash_profile文件来设置alias,即可减少每次的输入 | ||
+ | |||
+ | |||
+ | |||
+ | ===== markdown编写要求 ===== | ||
+ | |||
+ | ==== 指定Metadata信息 ==== | ||
+ | |||
+ | 在每个markdown最前面增加metadata信息,metadata内容开始行内容为三个“-”,结束行为三个“.”,示例如下: | ||
+ | |||
+ | <code> | ||
+ | --- | ||
+ | title: "示例文档" | ||
+ | subtitle: "示例文档子标题" | ||
+ | author: [jinlong.hao] | ||
+ | date: "2019-08" | ||
+ | titlepage: true | ||
+ | toc-own-page: true | ||
+ | secnumdepth: 5 | ||
+ | header-left: "示例文档子标题" | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | 上述文档设置说明: | ||
+ | |||
+ | * title: 文档的标题 | ||
+ | * subtitle:文档的子标题 | ||
+ | * author:作者 | ||
+ | * date: 创建日期 | ||
+ | * titlepage: 是否创建封面页 | ||
+ | * toc-own-page: 目录是否单独分页 | ||
+ | * secnumdepth:目录编号深度 | ||
+ | * header-left:页眉左边显示内容,默认为title,此处设置为了修改为子标题 | ||
+ | |||
+ | > 更多设置参见[[https://pandoc.org/MANUAL.html#metadata-variables|pandoc官方文档]]和[[https://github.com/Wandmalfarbe/pandoc-latex-template|eipsvogel说明]] | ||
+ | |||
+ | ==== 其他写作要求 ==== | ||
+ | |||
+ | 为保证markdown转pdf不报错,在编写markdown的时候有几个原则要求: | ||
+ | |||
+ | * 每个标题前后都必须有空行 | ||
+ | * 每个表格前后都必须有空行 | ||
+ | * 每个代码块前后收必须有空行 | ||
+ | * 每个列表前后必须有空行 | ||
+ | |||
+ | > 总而言之,每个不同的格式和内容前后都需要有空行 | ||
===== 示例 ===== | ===== 示例 ===== | ||
- | * 源文件 | + | ==== markdown源文件 ==== |
- | * 生成的PDF文件 | + | |
+ | <file markdown sample.md> | ||
+ | --- | ||
+ | title: "示例文档" | ||
+ | subtitle: "示例文档子目录" | ||
+ | author: "jinlong.hao" | ||
+ | date: "2019-08" | ||
+ | titlepage: true | ||
+ | toc-own-page: true | ||
+ | secnumdepth: 5 | ||
+ | ... | ||
+ | |||
+ | |||
+ | # 文档概述 | ||
+ | |||
+ | ## 本文说明 | ||
+ | |||
+ | 本文是markdown转换为pdf的示例文件,主要用于演示如何通过markdown转换为pdf文件 | ||
+ | |||
+ | ## 文档保密要求 | ||
+ | |||
+ | 本文无任何保密要求,任何和均可自由使用 | ||
+ | |||
+ | |||
+ | |||
+ | # 内容示例 | ||
+ | |||
+ | ## 这是正文内容 | ||
+ | |||
+ | 这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文 | ||
+ | 这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文 | ||
+ | 这是正文 | ||
+ | |||
+ | 这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文 | ||
+ | 这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文这是正文 | ||
+ | 这是正文这是正文 | ||
+ | |||
+ | |||
+ | ## 基本格式 | ||
+ | |||
+ | **加粗字体** | ||
+ | |||
+ | *斜体* | ||
+ | |||
+ | ~~删除线~~ | ||
+ | |||
+ | > 这是引用 | ||
+ | |||
+ | ## 分割线 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 超链接 | ||
+ | |||
+ | [百度](http://www.baidu.com) | ||
+ | |||
+ | ## 列表 | ||
+ | |||
+ | ### 有编码列表 | ||
+ | |||
+ | 1. 列表 | ||
+ | 2. 列表 | ||
+ | 1. 列表 | ||
+ | 2. 列表 | ||
+ | 1. 列表 | ||
+ | |||
+ | ### 无编号列表 | ||
+ | |||
+ | * 编号 | ||
+ | * 编号 | ||
+ | * 编号 | ||
+ | * 编号 | ||
+ | * 编号 | ||
+ | * 编号 | ||
+ | |||
+ | ## 表格 | ||
+ | |||
+ | | 标题1 | 标题2 | 标题3 | | ||
+ | | ------ | ----- | ----- | | ||
+ | | 1 | aaa | aaaaa | | ||
+ | | 2 | bbb | bbbbb | | ||
+ | |||
+ | |||
+ | ## 代码 | ||
+ | |||
+ | ~~~ java | ||
+ | public static void main(){ | ||
+ | System.out.println("Hello, world!"); | ||
+ | } | ||
+ | ~~~ | ||
+ | |||
+ | </file> | ||
+ | |||
+ | |||
+ | ==== 生成的pdf文件 ==== | ||
+ | |||
+ | 生成的PDF文件为:[[https://wiki.eppdev.cn/lib/exe/fetch.php?media=others:markdown_sample.pdf|sample.pdf]] |