Featured image of post Markdown to PDF

Markdown to PDF

Markdown to PDF

安裝環境

pandoc 你想得到的文件之間轉擋 官方精美的圖

如果說你沒有中文的需求,現在就可以用 pandoc index.md -o out.pdf 產生 PDF 檔了

中文

Warning 我後來不知道搞砸了什麼,反正目前中文是壞的,找到一個用網頁排版再用瀏覽器內建列印功能輸出成 PDF 的網頁:https://github.com/realdennis/md2pdf 已解決

安裝字型

1
 $ sudo apt-get install texlive-fonts-recommended texlive-fonts-extra texlive-lang-chinese

字型設定

檔案內

在 md 開頭設定一個包含中文的字型

1
2
3
---
CJKmainfont: 'Noto Serif TC'
---

參數

1
 $ pandoc index.md -o out.pdf -V CJKmainfont='Noto Serif TC' --pdf-engine xelatex

2023/02/24 新增:要加上 --pdf-engine xelatex 才能正確輸出中文,原因是下面用的範本,他只有在使用 xelatex 和 lualatex 時才會把 CJKmainfont 傳遞下去

範本

pandoc 有預設的 LaTeX 範本,但是不怎麼好看,可以用網路上開源的範本,或是花時間自己刻出最適合自己的

Eisvogel

GitHub 頁面Release 下載,解壓縮到 ~/.local/share/pandoc/templates。在編譯時加上 --template eisvogel 就可以套用模板了。

範例

以下是一段測試的 markdown 產生出來的 pdf,你可以用 這個連結 下載來看

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
title: Test pandoc convert md to pdf
author: SimbaFs
---

# 測試

這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。 這是一段中文的測試,這句話很長,用來測試斷行。

---

## list

-   a
-   b
-   c
    -   d
    -   e
        -   f
            -   g

1. apple
2. book
3. cookie

---

## link

[SimbaFs' Blog](https://blog.simbafs.cc)

---

## check list

-   [ ] check 1
-   [x] check 2

## code block

```go
package main

import (
	"fmt"
)

func main(){
	fmt.Println("hello world!")
	return
}
```

## image

![](./blog.png)

Info 關於如何在 codeblock 中印出反單引號:stackoverflow 簡單來說如果裡面要印 n 個反單引號,外面就要用 n+1 個反單引號括起來

然後這是截圖:

page 1 of out.pdf

page 2 of out.pdf

可以看到大部分的語法都可以轉換,甚至是程式碼區塊都有語法提示(syntax highlight)

其他

列出安裝的中文字型

1
 $ fc-list :lang=zh

參考連結

好想養貓阿~~
使用 Hugo 建立
主題 StackJimmy 設計