背景介绍

作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 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. 遇到的错误之"Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/velocity/context/Context at"

    问题 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/context/ ...

  2. (stm32学习总结)—GPIO位带操作

    本章参考资料:<STM32F10X-中文参考手册>存储器和总线构架章节.GPIO 章节,<CM3 权威指南 CnR2>存储器系统章节. 位带简介 位操作就是可以单独的对一个比特 ...

  3. Linux基础学习 | 目录及文件

    一.目录结构 Linux目录采用树形结构,以根目录/向下延伸呈一个倒置的树的形状. 每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在,就像一棵树的树枝分叉,所有的目录层次结构分明,每个目录 ...

  4. Flutter入门教程(四)第一个flutter项目解析

    一.创建一个Flutter工程 1.1 命令行创建 首先我们找一个空目录用来专门存放flutter项目,然后在路径中直接输入cmd: 使用 flutter create <projectname ...

  5. 基于腾讯开源的msec来进行php开发模块

    msecphp 毫秒服务引擎(Mass Service Engine in Cluster)是一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务. 毫秒服务引擎集RPC.名字发现服务. ...

  6. 移动端的vw px rem之间换算

    一.vw px rem em是什么 1.vw:就是相对视口宽度(Viewport Width).1vw = 1% * 视口宽度.也就是说,一个视口就是100vw. 2.px:px应该是在css中使用最 ...

  7. Unity中让Update中的方法执行一次

    Unity中让Update中的方法执行一次 Unity中,很多时候,代码需要放在Update中时刻监测状态,一旦状态符合,又只需要代码执行一次:其实可以通过设置控制量的方式,让代码只执行一次:方法:设 ...

  8. java中线程有什么用?

    线程有什么用? 通过引入线程技术,在浏览器中你可以浏览网页的同时,播放动画和声音效果,同时在后台打印一个页面.例如老板可以同时处理工程师,秘书和清洁人员的事,这 就是多线程处理机制.Within th ...

  9. hibernate数据源

      Hibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件.下面讲一下Hibernate.cfg.xml的配置.配置格式如下:1. 配置数据源 在Hibernate ...

  10. python——如何import包目录

    文件位置 文件所在位置包括 , 源根目录的位置 该文件位置(也可以叫相对位置). 导入包的时候会从文件位置进行查找,并导入. 导入包 1. 什么是包? pycharm中包的图片 其中文件夹上有个圆点的 ...