Giter Club home page Giter Club logo

pandoc-setup's Introduction

Pandoc+VSCodeを使ってMarkdown(Pandoc拡張)からDocxを生成する

必要なもの(for windows)

*がついてるのは、なくてもいい

名前 備考
Pandoc
Pandoc-crossref Pandocのfilter
VSCode
Markdown Preview Enhanced VSCodeのExtension。インストールはVSCodeからしたほうが楽
*PlantUML MarkdownでUMLを書くために必要 markdown preview enhancedに内包
*GraphBiz PlantUMLを動かすのに必要
*Java PlantUMLを動かすのに必要
*Image Magick PlantUMLで書いたUMLをWordに出力するため(画像化する)に必要

!!!注意!!!!
Pandoc-crossrefはビルドした時のPandocのバージョンが一致していないと動かない。
Pandocインストール後、コマンドプロンプトで以下を実行し、バージョンを確認してからPandoc-crossrefの該当モジュールをDLする。

pandoc --version

動作確認した組み合わせは

  • Pandoc v2.9.2.1
  • Pandoc-crossref v0.3.6.2a
    • v0.4.0.0-alpha6dもPandoc v2.9.2.1とビルドしてると書いていたけど、うまく動かなかった(◞‸◟)。。(2020/05/01時点)

事前準備

Pandoc、VSCode、(PlantUML、GraphBiz、Java、Image Magick)をDL&インストールする。
Pandoc-crossrefはDL後、zip展開しておく。

Pandoc

  • Pandocインストール後(デフォルトだと%USERPROFILE%\AppData\Local\Pandoc)にDLしたPandoc-crossref(ファイル名はpandoc-crossref.exe)をコピー
  • Java(JAVA_HOMEとbin)、GraphBiz、ImageMagickのPATHを通す
  • 出力するWordスタイルのテンプレートを出力し、編集
    • Powershellでやったらdocxが壊れていたので、コマンドプロンプトから実行したほうがいい
pandoc --print-default-data-file reference.docx > reference.docx

VSCode

  • Extensionから"Markdown Preview Enhanced"を検索し、インストール
    • VSCodeデフォルトのMarkdown Previewのショートカット(Ctrl-K V、Ctrl-Shift-V)が上書きされるので、Pandocと心中する気がないなら設定を変えておいたほうがいい
  • (AA的な要素が多いので)等幅フォントを使用するよう設定
    • Flie->Preferences->Settings->Editor: Font Fammily->先頭に等幅フォントを設定
    • Windowsにデフォルトでインストールされている等幅フォントは'MS ゴシック'

Markdown Preview Enhanced

  • Extensionの設定をデフォルトから以下の項目を変更(注:以下の設定はPreview用の設定。Word変換はまた別のところで)
    • Markdown-preview-enhanced: Pandoc Arguments
      • --filter=pandoc-crossref
    • Markdown-preview-enhanced: Pandoc Markdown Flavor
      • markdown
    • Markdown-preview-enhanced: Use Pandoc Parser
      • Enable

settings.jsonだとこんな感じ

    "markdown-preview-enhanced.pandocMarkdownFlavor": "markdown",
    "markdown-preview-enhanced.usePandocParser": true,
    "markdown-preview-enhanced.pandocArguments": "--filter=pandoc-crossref",

執筆

markdownの先頭にPandocでWordを出力するための設定と、表とか図のキャプションをMarkdownの先頭に記述しておく。そこからは好きに書く。Pandocの拡張markdownについてはPandocユーザーズガイドに詳しく書いてある。どんな見た目になってるかは、Markdown Preview Enhancedから確認。

---
output:
  word_document:
    pandoc_args: ['--filter=pandoc-crossref',"--reference-doc=reference.docx"]
figureTitle: ""
tableTitle: ""
listingTitle: "コード "
figPrefix: "図."
eqnPrefix: "式."
tblPrefix: "表."
lstPrefix: "コード."
---

Wordにする

reference.docxを編集中のmarkdownファイルと同じフォルダにコピー(それか、pandoc_argsに書いてるパスを絶対パスにする)して、「Markdown Preview Enhancedの表示画面をクリック->コンテキストメニューのPandocを選択」するとWordファイルが生成。表示がちょっとアレなところもあると思うので、微調整して完成。

サンプル

ここにmarkdown(Pandoc拡張)とwordスタイルテンプレートのサンプルを置きました。

よくわからなかったこと

  • Wordのスタイルテンプレートって、リスト表示(見出しのレベルに応じて1.とか1.1を付ける)の設定は保存されない? c3bbf36にて解決
  • 図表の参照の仕方はわかったけど、章節の参照の方法がよくわからなかった
  • 相互参照の設定はされないっぽい(表1参照とかの番号は適宜振ってくれるけど、参照はない)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.