背景介绍

作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 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. 图片

## 图片

![图片](image.png "图片")

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 文档的更多相关文章

  1. 基于 Markdown 编写接口文档

    最近公司开发项目需要前后端分离,这样话就设计到后端接口设计.复杂功能需要提供各种各样的接口供前端调用,因此编写API文档非常有必要了 网上查了很多资料,发现基于Markdown编写文档是一种比较流行而 ...

  2. 使用Spec Markdown 编写手册文档

    Spec Markdown 是一个基于markdown 的文档编写工具,安装简单,可以让我们编写出专业的文档 参考项目 https://github.com/rongfengliang/spec-md ...

  3. Markdown编写接口文档模版

    接口名称 1) 请求地址 https://apis.cnblogs.com/user/info?a=xx&b=xx 2) 调用方式:HTTP GET 3) 接口描述: 接口描述详情 4) 请求 ...

  4. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  5. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

  6. C#生成PDF文档,读取TXT文件内容

    using System.IO;using iTextSharp.text;using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZipLib.d ...

  7. 将w3cplus网站中的文章页面提取并导出为pdf文档

    最近在看一些关于CSS3方面的知识,主要是平时看到网页中有很多用CSS3实现的很炫的效果,所以就打算系统的学习一下.在网上找到很多的文章,但都没有一个好的整理性,比较凌乱.昨天看到w3cplus网站中 ...

  8. 常用PDF文档开发库

    C++库: 1,PDF类库 PoDoFo   http://podofo.sourceforge.net/  PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...

  9. 如何从Windows Phone 生成PDF文档

    我需要从我的Windows Phone应用程序生成PDF. 遗憾的是没有标准的免费的PDF生成库在Windows Phone上运行. 我不得不自己生成PDF,通过直接写入到文件格式. 这竟然是真的很容 ...

随机推荐

  1. BMZCTF 2020祥云杯到点了

    2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...

  2. 10分钟go crawler colly从入门到精通

    Introduction 本文对colly如何使用,整个代码架构设计,以及一些使用实例的收集. Colly是Go语言开发的Crawler Framework,并不是一个完整的产品,Colly提供了类似 ...

  3. Web最佳实践阅读总结(1)

    介绍 最近开始刷一些书和题,此系列是介绍在读Web最佳实践的一些收获和体会. web前端发展现状 存在问题: 代码组织混乱 代码格式的问题突出 页面布局随意 网站整体性能差,没有意识到应用诸如缓存,动 ...

  4. js 中的submit 回调函数

    1.submit.php <?php $arr = $_POST; $arr['msg']=1; //echo $_POST['uname']; echo json_encode($arr); ...

  5. 判断页面环境是否在小程序的webview中

    最近公司需要做小程序项目,但是又希望能够快速开发,就想着把web端的响应式页面放到webview里快速开发.但在判断页面环境的时候出现一些问题. 环境问题 用小程序提供的wx.miniProgram. ...

  6. 大数据学习之路之sqoop导入

    按照网上的代码导入 hadoop(十九)-Sqoop数据清洗 - 简书 (jianshu.com) ./sqoop import --connect "jdbc:mysql://192.16 ...

  7. 安装PLSQLDeveloper

    1.点击.exe开始安装 2.选择安装路径点击下一步 3.点击finish 4.注册  ,打开新安装的plsql 如下: 点击关闭(现在是登录不上的) 点击help->Register 如下: ...

  8. 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 ...

  9. Java实现单链表的逆序打印

    思路1:可以将链表进行反转,然后进行数据的输出即可,单链表反转地址如下https://blog.csdn.net/Kevinnsm/article/details/113763272 这个思路1肯定有 ...

  10. Spring Boot-自动配置之底层原理

    一.SpringBoot启动的时候加载主配置类,开启了自动配置的功能 @SpringBootApplication public class SpringBoot02Application { pub ...