Skip to content

msntts/pandoc-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

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参照とかの番号は適宜振ってくれるけど、参照はない)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published