Org-modeでODTファイルを出力する方法

1 ODTファイルとは

ODTファイルとはOpenDocument Textファイルのことで、LibreOffice、Apache OpenOfficeなどで使われるワープロソフトのファイル形式と言えば分かりやすいと思います。
これはODF(OpenDocument Format)という仕様で規格化されているので、仕様通りに記述すればやろうと思えばメモ帳で書いてZIP圧縮出来さえすれば作れると思います(たぶん)。
まぁそれには仕様を把握する必要があるので、普通はオフィスソフト使って書きます。

そして仕様が公開されているので、その他のファイル形式から変換するツールがいろいろと出ています。今回紹介するOrg-modeからの変換もその一つです。
(その他にHTML、LaTeX、Markdownなど軽量マークアップ言語から変換するツールがいろいろと出ています)

2 なぜOrg-modeから変換するのか

さて、Wordファイルを書くなら最初からLibreOfficeなどオフィスソフトを使って書けばいいです。特に理由がなければわざわざOrg-modeで書いてから変換して作るとかまどろっこしいことをする必要はないでしょう。その疑問に答えるとしたら

Q: なぜOrg-modeからODTファイルを作るのか?
A: そこにOrg-modeがあるから

まぁ「何言ってんだ?」と思われるでしょうけど、個人的には理由としてはこれに尽きると思います。
それだけではなんなので具体的に理由を書いていくと

  • Org-modeで書いていったのをそのままODTファイルに出来る
  • ODTやHTMLなど各種ファイルを複数出力する場合に便利
    • Webサイト用ファイルに合わせて配布用ファイルを作るときなど
  • Emacsによる編集機能が使える
  • Org-modeの簡易記述表記が使える
  • 執筆作業の取っ掛かりをテキストファイルベースに出来る

あたり。
まったくデメリットが無いというわけでもなくて、

  • 変換後にODTファイルに編集すると、元のテキストファイルとは別の内容になっていく

というのはあります。つまりODTファイルに手を加えていくと、元のテキストファイルで執筆を続けてもそれを反映させるのに手間が出てきます。このへんはあらかじめ作業手順を決めておいてめんどうなことにならないようにする必要はあります。Org-modeから変換出来るとは言ってもそれで作業が複雑化したり手間が増えたりするのは本末転倒ですから。


3 あらかじめ必要な設定

さて、そのへんを踏まえた上で、実際にODTファイルへの変換について説明していきます。
まず、Org-modeの初期設定ではODTファイルへの変換は出来ないようです。そこでまずEmacsに必要なパッケージを読み込んで設定します(htmlなどへの変換は初期設定で可能となっています)。
Emacsの設定ファイルに

(require 'ox-odt)

を追加します。これでOrg-modeから各種変換へのメニューにODTファイルが追加されます(どうも必要なパッケージ自体はOrg-modeに初めから含まれていて単に有効化されてないだけのようです)。
その他にzipコマンドへのパスが通っている必要があるそうですが、UbuntuなどのLinux環境なら初めから大丈夫だとは思います。

4 変換するときの操作方法

変換するときのEmacsでのキー操作は

C-c C-e o o

です。これでテキストファイルと同じフォルダにODTファイルが生成されます。また

C-c C-e o O

でODTファイル作成と同時にLibreOfficeなど関連付けされたソフトで開かれます。
ここで注意点としては、変換してODTファイルを出力すると、それ以前に出力していた場合には警告なしでファイルが上書きされます。うっかり上書きしないように別のファイル名にするか、別フォルダに避難させればいでしょう。

5 その他のツール

またその他にPandocという変換ツールでもorg-modeのフォーマットで記述したファイルからODTファイルを作成出来るようです。Pandoc自体は様々なドキュメントファイルの変換ツールです。

6 最後に

今回はとりあえずODTファイルへの変換方法の紹介までにしておきます。Org-modeの簡易記述表記がどう変換されるのかや、ODTファイル自体の機能を使うにはどうすればよいかなどは、また使っているうちに分かった範囲でブログに書いていこうと思います。

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

gnuplot : グラフにグリッド線を描く方法(set grid)