修正中文 gitbook pdf 书籍字体大小不一的问题

第二次用了,记录下来,下次就不用在查资料了。

gitbook 网站生成的 pdf 中文字体非常难看,字体大小不一。

解决办法是手工指定中文字体,指定 pdf 文字大小。

book.json 例子:

 
{
  "gitbook": "2.x.x",
  "title": "Go语言圣经",
  "description": "中文版",
  "language": "zh",
  "structure": {
    "readme": "preface.md"
  },
  "pluginsConfig": {
    "fontSettings": {
      "theme": "white",
      "family": "msyh",
      "size": 2
    },
    "plugins": [
      "yahei",
      "katex",
      "-search"
    ]
  },
  "pdf": {
    "pageNumbers": true,
    "fontSize": 18,
    "paperSize": "a4",
    "margin": {
      "right": 30,
      "left": 30,
      "top": 30,
      "bottom": 50
    }
  }
}

例子使用的 微软雅黑 字体,默认linux下没有这个字体,需要手工将字体拷贝到 /usr/share/fonts/truetype 目录。

可以通过 travis 自动生成 pdf 文件,.travis.yml 例子是:

 
language: node_js

node_js:
  - "stable"

script:
  - echo pass

before_deploy:
  - sudo apt-get update -qq
  # install Chinese fonts
  - sudo apt-get install -y fonts-arphic-gbsn00lp golang
  # Install Gitbook
  - npm install gitbook-cli -g
  - npm install svgexport -g
  - npm install gitbook-plugin-yahei
  # Clone the repository
  - sudo -v && wget --no-check-certificate -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

  - sudo cp tools/*.ttc /usr/share/fonts/truetype

  - go run zh2tw.go . .md$ tw2zh

  - gitbook install
  - gitbook build ./ --format=json
  - gitbook build ./
  - gitbook pdf ./ ./gopl-ch.pdf
  - gitbook epub ./ ./gopl-ch.epub
  - gitbook mobi ./ ./gopl-ch.mobi


deploy:
  provider: releases
  api_key: $CI_USER_TOKEN
  skip_cleanup: true
  file:
    - gopl-ch.pdf
    - gopl-ch.epub
    - gopl-ch.mobi
  on:
    tags: true
    all_branches: true

这个例子会在每次 git tag 时自动生成 pdf 文件,并发布到 github 。需要将 github token 设在到 CI_USER_TOKEN 环境变量。

  WordPress › 错误