Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

docxをmdで書こう

10,807 views

Published on

pandocを使ってdocxをmdで書く話

Published in: Technology

docxをmdで書こう

  1. 1. 「安心・安全・安定・信頼」できるインターネットサービスを 株式会社クルウィット 井澤 志充 docxをmdで書こう 2015/12/12 (Sat) Kanazawa.rb #40 @ITBP武蔵
  2. 2. 「安心・安全・安定・信頼」できるインターネットサービスを じこしょうかい • (株)クルウィットの取締役  兼  北北陸陸⽀支社⻑⾧長   • 博⼠士(情報科学)   • ネットワーク関連の委託研究・⾃自社サービス開発など 2 • 井澤  志充  (いざわゆきみつ) @Yukimitsu_Izawa
  3. 3. 「安心・安全・安定・信頼」できるインターネットサービスを docxを簡単に書きたい • wordを⽴立立ち上げて、カーソルとマウスぽちぽちするのが ツライ。   • TeXみたいに、テキストをコンパイルして出来上がった ら楽かもしれないなー。   • どうせなら、MarkDownで書き下すぐらいが丁度度いい。 3
  4. 4. 「安心・安全・安定・信頼」できるインターネットサービスを それ、pandoc  でできるよ!! 4
  5. 5. 「安心・安全・安定・信頼」できるインターネットサービスを pandocとは 5
  6. 6. 「安心・安全・安定・信頼」できるインターネットサービスを pandocとは • Haskelで書かれたフィルターソフト   • ⼊入⼒力力フォーマット  (Pandocユーザーズガイド⽇日本語版より)   •        markdown   •        Textile  (のサブセット、以下同様)   •        reStructuredText   •        HTML   •        LaTeX   •        MediaWiki  markup   •        Haddock  markup   •        OPML   •        Emacs  Org-‐‑‒mode   •        DocBook 6
  7. 7. 「安心・安全・安定・信頼」できるインターネットサービスを pandocとは • 出⼒力力フォーマット(抜粋)   •  プレーンテキスト   •        markdown   •        reStructuredText   •        XHTML   •        HTML  5   •        LaTeX  (beamerスライドショーを含む)   •        RTF   •        OPML   •        OpenDocument   •        ODT   •        Word  docx   •        GNU  Texinfo   •        MediaWiki  markup   •        EPUB  (v2またはv3)   •        Emacs  Org-‐‑‒Mode   •        InDesign  ICML   •        HTMLスライドショー:Slidy、Slideous、DZSlides、reveal.js、S5 7
  8. 8. 「安心・安全・安定・信頼」できるインターネットサービスを 使ってみよう 8 入力: pan.md # はじめに この文章では、pandocの使い方およびdocxを簡易に生成する方法について述べる。 # pandocとは Pandocは Haskell で書かれたライブラリおよびコマンドラインツールであり、 あるマークアッ プ形式で書かれた文書を別の形式へ変換するものです。 # インストール方法 ## ソースをコンパイルする OS Xの場合には、brewを使ってコンパイルする。 ~~~~ % brew install pandoc ~~~~ Windowsの場合には、おググりください。 # 使い方 入力は、Markdown を使って普通に書けば、普通に使えますよ。 # ほげげほげげ げほほほげげ
  9. 9. 「安心・安全・安定・信頼」できるインターネットサービスを docxに変換する。 9 % pandoc pan.md -o pan.docx
  10. 10. 「安心・安全・安定・信頼」できるインターネットサービスを 出力されたdocx 10
  11. 11. 「安心・安全・安定・信頼」できるインターネットサービスを もう少し使いこなす • mdからdocxが⽣生成できたのは嬉しい!   • でも、ギョーミーな⽤用途だと、会社の標準docxみたいな のがありますよね。   • スタイルを指定したい。 11
  12. 12. 「安心・安全・安定・信頼」できるインターネットサービスを docxのstyle指定の仕方 • 元となるdocxを準備する。   •  --reference-docx  オプションでそのファイルを指定す る。 12
  13. 13. 「安心・安全・安定・信頼」できるインターネットサービスを docxに変換する。 13 % pandoc pan.md —--reference-docx=standard.docx -o pan.docx
  14. 14. 「安心・安全・安定・信頼」できるインターネットサービスを docxにstyleをかけた結果 14
  15. 15. 「安心・安全・安定・信頼」できるインターネットサービスを docxにstyleをかけた結果 15
  16. 16. 「安心・安全・安定・信頼」できるインターネットサービスを docxのプロパティをいじりたい • docxには⼆二種類のプロパティ   • 標準プロパティ   • タイトル   • 著者名など   • ユーザ設定プロパティ   • なんでも定義できる 16
  17. 17. 「安心・安全・安定・信頼」できるインターネットサービスを 標準プロパティ • タイトル、著者名、⽇日時だけは、mdの先頭に記述できる らしい。   • mdの先頭に、タイトル、著者名、⽇日時を  %  につづけて ⼀一⾏行行ずつ記述する。 17
  18. 18. 「安心・安全・安定・信頼」できるインターネットサービスを ユーザ設定プロパティ • pandocでは扱えないみたい。 18
  19. 19. 「安心・安全・安定・信頼」できるインターネットサービスを じゃぁ作るか! • ⼊入⼒力力は、md  ⼀一枚。   • pandoc(%記述付き)  +  style⽤用docx  =  style+タイトル 付きdocx   • md内にyaml形式で記述しておいたユーザ設定プロパ ティを読みだす。   • pandocで⽣生成したdocx  を解析して、プロパティ情報 を埋め込む。 19
  20. 20. 「安心・安全・安定・信頼」できるインターネットサービスを mdのサンプル 20 % pandocの例題 % いざわゆきみつ % 2015年12月11日 --- docx_custom_props: 文書番号: S-MC0212-SD8 バージョン: 1.0 発行年: 2015 発行月: 12 発行日: 11 著作権: Clwit Inc. All rights reserved. ... # はじめに この文章では、pandocの使い方およびdocxを簡易に生成する方法について述べ る。 # pandocとは Pandocは Haskell で書かれたライブラリおよびコマンドラインツールであり、 あるマークアップ形式で書かれた文書を別の形式へ変換するものです。 # インストール方法 ## ソースをコンパイルする
  21. 21. 「安心・安全・安定・信頼」できるインターネットサービスを docxのファイル構造 21 [Content_Types].xml _rels/.rels word/document.xml word/_rels/document.xml.rels word/_rels/footnotes.xml.rels word/numbering.xml word/styles.xml word/footnotes.xml docProps/core.xml docProps/app.xml word/theme/theme1.xml word/fontTable.xml word/settings.xml word/webSettings.xml word/header1.xml word/footer2.xml word/footer1.xml word/_rels/footer2.xml.rels word/_rels/footer1.xml.rels word/_rels/settings.xml.rels word/media/image1.wmf word/media/image2.png
  22. 22. 「安心・安全・安定・信頼」できるインターネットサービスを 実現方法 1. [Content_̲Types].xml  に以下を追加
 <Override  PartName="/docProps/custom.xml"   ContentType=“application/vnd.openxmlformats-‐‑‒ officedocument.custom-‐‑‒properties+xml”/>
 2. _̲rels/.rels  に以下を追加
 <Relationship  Id="rId99"  Type=“http:// schemas.openxmlformats.org/officeDocument/2006/ relationships/custom-‐‑‒properties"  Target=“docProps/ custom.xml"/>
 3. docProps/custom.xml  を新規作成
 22
  23. 23. 「安心・安全・安定・信頼」できるインターネットサービスを 結果 23
  24. 24. 「安心・安全・安定・信頼」できるインターネットサービスを 結果 24
  25. 25. 「安心・安全・安定・信頼」できるインターネットサービスを まとめ • pandocを使えば  docx  ファイルは  md  で書ける。   • docxのタイトルぐらいならpandocで書ける。   • docxのファイル構造は公開されているので、⾃自分で書き 換えれるよ。 25
  26. 26. 「安心・安全・安定・信頼」できるインターネットサービスを References • 実務に使うプレーンテキスト→Microsoft  Word変換、あるいはPandocを使 い始めた話   • http://nenono.hatenablog.com/entry/2015/02/10/173516   • Word  Document  (DOCX)   • http://forensicswiki.org/wiki/Word_̲Document_̲%28DOCX %29#Relationships   • Anatomy  of  a  WordProcessingML  File   • http://officeopenxml.com/anatomyofOOXML.php   • Predefined  Property  Set  Format  Identifiers   • https://msdn.microsoft.com/en-‐‑‒us/library/windows/desktop/ aa380060%28v=vs.85%29.aspx 26
  27. 27. 「安心・安全・安定・信頼」できるインターネットサービスを • Thank  You!   • If  you  have  any  comments,   • please  send  to:   • Mail:  izawa@izawa.org  /  izawa@clwit.co.jp   • Twitter:  @Yukimitsu_̲Izawa 27

×