使用 VS Code + Markdown 编写 PDF 文档
背景介绍
作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如何使用 VS Code + Markdown 来编写 PDF 文档
效果演示



环境准备
[必须]安装 Visual Studio Code

[必须]安装 Extension - Markdown PDF,主要用于生成 PDF

[可选]安装 Extension - markdownlint,用于 markdown 语法提示

使用指引
1. 打开预览
使用 Ctrl+Shift+V 热键打开文档 Preview:

2. 文本内容
## 文本内容 - 字体 我是普通字体 - 斜体 *我是斜体* - 粗体 **我是粗体** - 粗斜体 ***我是粗斜体*** - 删除线 ~~我是删除线~~

3. 超链接
## 超链接 - [GitHub](https://github.com/) - <https://github.com/>

4. 图片
## 图片 

5. 代码块
## 代码块 - 行内式 演示各种编程语言的 `Hello World` 程序 - Java ```java
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}
``` - C ```c
#include <stdio.h>
int main()
{
printf("Hello,World!");
return 1;
}
``` - C++ ```cpp
#include <iostream>
#include <stdio.h> int main()
{
printf("Hello,World!--Way 1\n");
puts("Hello,World!--Way 2");
puts("Hello," " " "World!--Way 3");
std::cout << "Hello,World!--Way 4" << std::endl;
return 1;
}
``` - Python ```python
print "Hello,World!" #Python 2.x
print("Hello,World!") #Python 3.x
``` - C# ```csharp
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("Hello,World!");
Console.ReadKey();
}
}
``` - Shell ```bash
echo "Hello,World!"
```

6. 列表
## 列表 ### 无序列表 - 第一项
- 第二项
- 第三项 ### 有序列表 1. 第一项
2. 第二项
3. 第三项 ### 任务列表 - [x] 吃饭
- [x] 睡觉
- [ ] 写代码

7. 引用
## 引用 ### 并列 > 引用1
> 引用2
> 引用3 ### 嵌套 > 第一层嵌套
>> 第二层嵌套
>>>>> 第五层嵌套 ### 引用中使用列表 > 引用
>
> 1. 第一项
> 2. 第二项
>
> - 第一项
> - 第二项
> - 第三项 ### 列表中使用引用 - 第一项
> 引用1
> 引用2
- 第二项

8. 表格
## 表格 | 默认对齐 | 居左对齐 | 居右对齐 | 居中对齐 |
| ------- | :------- | ------: | :-----: |
| 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 |

9. UML
## UML - markdown-it-plantuml 无法预览,项目地址:<https://github.com/gmunguia/markdown-it-plantuml> @startuml
Bob -[#red]> Alice : hello
Alice -[#0000FF]->Bob : ok
@enduml - mermaid 无法预览,项目地址:<https://mermaid-js.github.io/mermaid/#/> ```mermaid
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```


10. 公式
## 公式
使用 LaTeX 语法,仅支持预览,不支持 pdf,需要先手动转换成图片或文本。
- 梯度下降的数学公式
$$\theta_{n+1} = \theta_{n} - \eta \cdot \nabla J(\theta) \tag{1}$$
其中:
$\theta_{n+1}$:下一个值
$\theta_n$:当前值
$-$:减号,梯度的反向
$\eta$:学习率或步长,控制每一步走的距离,不要太快以免错过了最佳景点,不要太慢以免时间太长
$\nabla$:梯度,函数当前位置的最快上升点
$J(\theta)$:函数
- 均方差函数
$$ loss = {1 \over 2}(z-y)^2 \tag{单样本} $$
$$ J=\frac{1}{2m} \sum_{i=1}^m (z_i-y_i)^2 \tag{多样本} $$

11. 强制换页
使用自动换页有时会不合理低把内容分到不同的页码,使用以下代码可以强制换页,美化 PDF 排版。
<div style="page-break-after: always"></div>
生成文档
在 markdown 文件窗口右键选择 Markdown PDF: Export {pdf} 生成 PDF

参考总结
使用 VS Code + Markdown 编写 PDF 文档的更多相关文章
- 基于 Markdown 编写接口文档
最近公司开发项目需要前后端分离,这样话就设计到后端接口设计.复杂功能需要提供各种各样的接口供前端调用,因此编写API文档非常有必要了 网上查了很多资料,发现基于Markdown编写文档是一种比较流行而 ...
- 使用Spec Markdown 编写手册文档
Spec Markdown 是一个基于markdown 的文档编写工具,安装简单,可以让我们编写出专业的文档 参考项目 https://github.com/rongfengliang/spec-md ...
- Markdown编写接口文档模版
接口名称 1) 请求地址 https://apis.cnblogs.com/user/info?a=xx&b=xx 2) 调用方式:HTTP GET 3) 接口描述: 接口描述详情 4) 请求 ...
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- 利用Java动态生成 PDF 文档
利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...
- C#生成PDF文档,读取TXT文件内容
using System.IO;using iTextSharp.text;using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZipLib.d ...
- 将w3cplus网站中的文章页面提取并导出为pdf文档
最近在看一些关于CSS3方面的知识,主要是平时看到网页中有很多用CSS3实现的很炫的效果,所以就打算系统的学习一下.在网上找到很多的文章,但都没有一个好的整理性,比较凌乱.昨天看到w3cplus网站中 ...
- 常用PDF文档开发库
C++库: 1,PDF类库 PoDoFo http://podofo.sourceforge.net/ PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...
- 如何从Windows Phone 生成PDF文档
我需要从我的Windows Phone应用程序生成PDF. 遗憾的是没有标准的免费的PDF生成库在Windows Phone上运行. 我不得不自己生成PDF,通过直接写入到文件格式. 这竟然是真的很容 ...
随机推荐
- BMZCTF 2020祥云杯到点了
2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...
- 10分钟go crawler colly从入门到精通
Introduction 本文对colly如何使用,整个代码架构设计,以及一些使用实例的收集. Colly是Go语言开发的Crawler Framework,并不是一个完整的产品,Colly提供了类似 ...
- Web最佳实践阅读总结(1)
介绍 最近开始刷一些书和题,此系列是介绍在读Web最佳实践的一些收获和体会. web前端发展现状 存在问题: 代码组织混乱 代码格式的问题突出 页面布局随意 网站整体性能差,没有意识到应用诸如缓存,动 ...
- js 中的submit 回调函数
1.submit.php <?php $arr = $_POST; $arr['msg']=1; //echo $_POST['uname']; echo json_encode($arr); ...
- 判断页面环境是否在小程序的webview中
最近公司需要做小程序项目,但是又希望能够快速开发,就想着把web端的响应式页面放到webview里快速开发.但在判断页面环境的时候出现一些问题. 环境问题 用小程序提供的wx.miniProgram. ...
- 大数据学习之路之sqoop导入
按照网上的代码导入 hadoop(十九)-Sqoop数据清洗 - 简书 (jianshu.com) ./sqoop import --connect "jdbc:mysql://192.16 ...
- 安装PLSQLDeveloper
1.点击.exe开始安装 2.选择安装路径点击下一步 3.点击finish 4.注册 ,打开新安装的plsql 如下: 点击关闭(现在是登录不上的) 点击help->Register 如下: ...
- Java报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sirifeng.babytun.dao.GoodsDAO.findById
前言 最近学vue学得差不多了,想来搭个项目实战一下,结果刚开始搭建SSM框架的时候就来到了我们最喜欢的debug环节 org.apache.ibatis.binding.BindingExcepti ...
- Java实现单链表的逆序打印
思路1:可以将链表进行反转,然后进行数据的输出即可,单链表反转地址如下https://blog.csdn.net/Kevinnsm/article/details/113763272 这个思路1肯定有 ...
- Spring Boot-自动配置之底层原理
一.SpringBoot启动的时候加载主配置类,开启了自动配置的功能 @SpringBootApplication public class SpringBoot02Application { pub ...