//執筆環境と入力フォーマットから組版技術や出力フォーマットまでを含めた「文書作成環境」としての
//LaTeX環境と他の環境の比較検討を中心に書いて行きます。
//ネタ的なものも含まれますがご自由に追加・削除ください。

*文書作成環境の比較 [#f26cfd56]

TeX Wiki にたどり着く方は当然のことながら、TeX/LaTeX についての情報を求めて来たのでしょう。
ここでは、TeX/LaTeX とは何かあまりよく知らないが、何か文書を作成する必要に迫られて、TeX/LaTeX に行き当たった方、あるいは、TeX/LaTeX を使って文書を作成しているが、他の文書作成環境との比較検討はあまりされていない方に対して、今後の参考のために情報を提供・集約したいと考えます。

それぞれの文書作成環境には利点と欠点があります。
どのような種類の文書を作成するのかによっても、どれを選ぶべきかは異なってきます。
このことをまず、しっかり意識しましょう。

----
#contents
----


**文書作成環境とは? [#i23212be]

紙と鉛筆の時代には、文書は原稿用紙やレポート用紙などに書かれ、保存されてきました。
その時代には、筆記用具、デスクや椅子、書斎などの執筆環境が文書作成の際に選ばれてきたことでしょう。
電子文書が普及した現代では、通常、文書作成の際の「環境」として挙げられる要素は様変わりしています。
文書作成ソフトそのもの、MS-IME、ATOK など日本語入力システム、入力フォーマットと表示・出力環境、最終保存形式など、さまざまな要素が絡んできます。
ここで議論する「文書作成環境」とは、文章の入力からプレビュー、最終版の生成出力までの総合的なシステムを指します。
(日本語入力システムまで含めてしまうと、あまりにも広範な題材となってしまうためここでは議論しません)

**どのような文書作成環境があるのか? [#x267b3c9]

いろいろあります。

***マークアップ言語と WYSIWYG [#sbc858be]

WYSIWYG -- What You See Is What You Get

**比較検討する際のポイント [#ca7edaea]

***目的との相性 [#w39df64e]

どのような文書作成環境が良いかは、どのような文書を作成するかに大きく依存します。

例えば、学術論文では引用文献や図表の参照などを含み、これらのラベル付とラベル参照などがスムーズにできるほうが望ましいでしょう。また、分野によっては、数式・化学式・チャート図など含むことがあったり、外国語の利用や特殊記号を使用することも想定されます。技術文書でもこれらの点はいくつかあてはまります。ビジネスの場面においては、時候のあいさつなどの定型文を簡単に選択挿入できたり、毎回決まったスタイルを選択できたりできるほうが便利です。まとまった分量の文書を作成する際には、一貫性のあるスタイルやレイアウトに注意する必要があります。

***学習コスト [#j61e7b89]

使用するソフトウェアの使い方の習得にばかり時間がかかって、肝心の文書作成は一向に進まないなんてことは避けたいものです。一概に学習コストと言っても、初期コストは高いが、慣れてくると楽なものもあれば、難易度が上がるにつれ、学習コストも跳ね上がるという状況も考えられます。まれに文書作成の必要に迫られるだけなのに、初期コストの高い環境を選ぶのは損です。将来的に長く文書作成に関わっていくのであれば、初期コストがすべてではありません。

***ユーザコミュニティとサポート環境 [#w54dc9a5]

何か問題が生じたとき、分からないことがあったときなど、頼る先があることは重要なことです。近くにいる詳しい人、多数のユーザによる相互扶助、開発元によるサポートなど様々な形でのサポートがあります。

***関連ツールの豊富さ [#n7f22cb2]

文書作成環境には通常、 LaTeX や Microsoft Word など、中心となるソフトがありますが、それらのソフトの機能では補えないことをやろうとした際に、別途開発された関連ツールが必要となります。関連ツールの豊富さや、開発のしやすさはその環境における可能性を広げます。

***オワコン度と将来性 [#yd0adbbd]

作成した文書が5年後・10年度には開くことすらできないなんて状況は避けたいものです。
作成した文書が5年後・10年後には開くことすらできないなんて状況は避けたいものです。
その文書作成環境が将来に渡って広く利用されるものかも考慮に入れましょう。
ユーザコミュニティの活発さやサポート環境の充実度もその環境の人気に大きく関係します。

**LaTeX 関連 [#v63ceabb]

LaTeX は、文書処理システムとして、文書作成環境の一部をなすものであり、HTML や軽量マークアップなどの文書を整形するためのバックエンドとして利用されることもあります。ここでは、伝統的なテキストエディタと LaTeX を中心とした文書作成環境について述べます。

LaTeX そのものは文書処理システムで、LaTeX を利用して文書作成を行うには、テキストエディタで LaTeX 文書を編集する必要があります。多くのテキストエディタでは LaTeX 用のシンタックスハイライトを行うプラグインなどが用意されています。また、近年は [[TeXShop]] や [[TeXworks]] などの統合環境も開発されており、文章の入力から、プレビュー、最終出力までひとつのソフトウェアで一貫して文書の作成を行うことができます。
LaTeX は特定の入力形式 (LaTeX 文書) から文書を整形し、出力するシステムです。LaTeX を利用して文書作成を行うには、まずテキストエディタなどで LaTeX 文書を編集する必要があります。LaTeX による文書作成の流れは、

+エディタによるソース文書の編集
+LaTeX による文書整形
+プレビューによる確認
+問題があれば修正などを行うため 1. に戻る
+そして最終版の出力

といったものになります。伝統的にはそれぞれの過程で、それぞれ異なるソフトウェアが用いられてきました。Emacs などのテキストエディタ、(p)LaTeX、xdvi や dviout などのプレビュアー、dvips や dvipdfmx などの出力ドライバなどです。これらのソフトウェア群により、文書作成環境が構築されます。近年は [[TeXShop]] や [[TeXworks]] などの統合環境も開発されており、文章の編集から、プレビュー、最終出力までひとつのソフトウェアから一貫して文書の作成を行うことができます。

***総評 [#b0a702c1]

[[LaTeX]] で文書を作成する際の目的で代表的なものとして、特に数式を豊富に含む学術文書が挙げられます。
数式の出力に関しては定評があり、このことで LaTeX を支持する方も多いです。
また、参考文献や式と図表などの相互参照などの処理にも秀でており、プログラミングを施すことにより、様々な処理を行うことができます。
数式の出力に関しては定評があり、このことで LaTeX を支持する方も多くいます。
また、参考文献や式と図表などの相互参照などの処理にも秀でており、プログラミングを施すことにより、様々な処理を行うことができます。拡張可能性も LaTeX のひとつの大きな特徴です。

学習コストに関しては、予備知識としてどのようなものを備えているかにも大きく依存しますが、高いほうであると考えられているようです。
入力を処理して文書を生成する際のエラーメッセージのわかりにくさ、複雑なことをやり始めるとデバッギングに膨大な時間を費やすこともあるなど、障害となる部分も多いです。
学習コストに関しては、予備知識としてどのようなものを備えているかにも大きく依存しますが、
高いほうであると考えられています。
入力を処理して文書を生成する際のエラーメッセージのわかりにくさ、
複雑なことをやり始めるとデバッギングに膨大な時間を費やすこともあるなど、
障害となる部分も多く、敷居が高いと考えられています。

ユーザコミュニティには歴史があり、インターネットなどで収集できる情報も豊富です。
しかしながら、コミュニティで初心者がナイーブな質問をすると説教を喰らうなどの現象が起こったり、情報がやたらと難解であったりなど、ユーザコミュニティによるサポートには悪評がつきまといます。

関連ツールは豊富にあります。
PDF、PostScript、SVG、PNG などへの出力が可能で、PDF を最終保存形式として選択するのが主流です。
HTML や ePub への変換には難があります。
HTML や EPUB への変換には多少難があります。

オワコン度と将来性については暗い意見がしばし提示されます:
オワコン度と将来性については暗い意見が提示されています:

-[[TeX はオワコンなのか?:http://www.slideshare.net/iesli/20141108-senooken-tex]]

[[Google トレンドによる人気度の動向:https://www.google.co.jp/trends/explore#q=%2Fm%2F04mdr&cmpt=q&tz=Etc%2FGMT-9]]からは、ユーザは10年前よりも大幅に減少している可能性が示唆されます。はっきりとした根拠となるデータはありませんが、ユーザ層の縮小と高齢化などもささやかれており、将来が危惧されております。

**HTML と Web 関連技術 [#s5a23b11]

HTML は文書を記述するためのマークアップ言語で、構造化された文書を記述するものとして、広く利用されています。HTML 文書の作成にはテキストエディタや専用のエディタ、ウェブページ作成ソフトなどを使います。文書を表示・印刷するには[[Google Chrome]] などの Web ブラウザにより、HTML 文書を整形表示させたりする必要があります。近年では、ブラウザにより画面に表示させずに、文書整形を行い PDF などに出力する枠組みが開発されてきています。
HTML は文書を記述するためのマークアップ言語で、構造化された文書を記述するものとして、広く利用されています。HTML 文書の作成にはテキストエディタや専用のエディタ、ウェブページ作成ソフトなどを使います。文書を表示・印刷するには[[Google Chrome]] などの Web ブラウザにより、文書を整形表示する必要があります。近年では、ブラウザにより画面に表示させずに、文書整形を行い PDF などに出力する枠組みが開発されてきています。HTML 文書を整形し、PDF などに出力するシステムとして、[[WeasyPrint:http://weasyprint.org/]]、[[Prince:http://www.princexml.com/]] や[[Vivliostyle-formatter:http://vivliostyle.com/ja/]] があります。

HTML を中心とした文書作成の流れは、

+エディタによる HTML 文書や CSS などの作成
+ブラウザなどで表示し確認・修正
+そのまま HTML文書として、あるいは EPUB や PDF などに変換して公開

ということになるでしょう。PDF への変換の過程では、一旦 LaTeX 文書へ変換して、
LaTeX を文書整形のために用いることもあります。


***総評 [#a32e275e]

HTML はインターネット上で文書を公開する際の標準形式で、膨大な量の HTML 文書がすでに存在します。HTML は、文書の記述方法でしかないので、それ自体は様々な用途に利用可能ですが、何でもできるというわけではありません。MathML の登場まで数式を記述する標準的な方法はありませんでしたし、ルビなどの機能も比較的最近追加されたものです。
HTML はインターネット上で文書を公開する際の標準形式で、膨大な量の HTML 文書がすでに存在します。HTML は、それ自体は様々な用途に利用可能ですが、何でもできるというわけではありません。MathML の登場まで数式を記述する標準的な方法はありませんでしたし、ルビなどの機能も比較的最近追加されたものです。

HTML には、構造化文書であること、見栄えと構造の分離といった方針など、技術系の方面には非常に好まれる要素があります。数式など特殊な記法が要求されない、通常の文書では非常に優れた文書保存形式であると考えられます。しかしながら、HTML 文書は、ブラウザなどの表示環境によって見栄えが大きく異なるなどの問題もあって、いくつかの分野では、最終的な文書形式としては好まれません。
HTML には、構造化文書であること、見栄えと構造の分離といった方針など、技術系の方面には非常に好まれる要素があります。これらは情報としての文書の保存という観点からは非常に好ましいことです。数式など特殊な記法が要求されない、通常の文書では非常に優れた文書保存形式であると考えられます。しかしながら、HTML 文書は、ブラウザなどの表示環境によって見栄えが大きく異なるなどの問題もあって、いくつかの分野では、最終的な文書形式としては好まれません。

文字の正確な配置や文書全体のレイアウトなどに神経質になる必要のない、一般的な「読み物」の場合は、HTML で文書を書いて、そのまま公開するという方法でもよいでしょう。
文字の正確な配置や文書全体のレイアウトなどに神経質になる必要のない、一般的な「読み物」の場合は、HTML で文書を書いて、そのまま公開するという方法でもよいでしょう。そうでなければ、好みのブラウザやレンダリングエンジンを用いて整形し、 PDF などに出力して公開するという形となるかもしれません。

学習コストに関していえば、テキストエディタで HTML を直書きする場合の初期コストはそれほど低くなく、CSS も含めた仕様も複雑なため、習得は容易とは言えません。

文書が構造化されていることは、プログラムで文書を処理、加工するのに有利です。標準仕様であることもあり、関連ツールの開発に対し開かれており、発展が見込めます。

HTML の勢いはとどまることなく、今後も世に出回る HTML 文書の数は増えていくことでしょう。しかしながら、HTML の学習者自体の数は減っている可能性もあり、LaTeX 並のオワコンっぷりです:

-[[Google トレンドによる人気度の動向:https://www.google.co.jp/trends/explore#q=%2Fm%2F03g20&cmpt=q&tz=Etc%2FGMT-9]]

かつては、インターネット上で何かを発信するには HTML の学習は必須でしたが、ブログや twitter やその他 SNS で簡単に何かを発信できる現代では、HTML そのものを学ぼうとするものは少ないのでしょう…
かつては、インターネット上で何かを発信するには HTML の学習は必須でしたが、ブログや twitter やその他 SNS で簡単に何かを発信できる現代では、HTML そのものを学ぼうとするものは少ないのでしょうか。

しかしながら、Web 関連技術の進歩は目覚ましいものがあり、ブラウザのレンダリング能力も向上してきているため、HTML で文書を書いて、保存、そのまま公開といった方法も有望です。W3C も電子出版関連技術の開発や仕様策定に取り組んでおり、期待が持てます:

-[[W3C Digital Publishing Activity:http://www.w3.org/dpub/]]
-[[CSS Paged Media Module Level 3:http://www.w3.org/TR/2013/WD-css3-page-20130314/]]
-[[CSS Generated Content  for Paged Media Module:http://www.w3.org/TR/css-gcpm-3/]]


**軽量マークアップ周辺 [#z307fe11]

軽量マークアップ言語とは、テキストエディタなどを使って簡単に記述できるように設計された、簡潔な文法をもつマークアップ言語です。特に、文書の可読性や記述の容易さに重点が置かれています。
軽量マークアップそのものは文書を記述する方式にすぎません。実際に公開するために文書を整形・生成するために、様々なシステムが存在します。ブラウザなどの Web 関連技術や FOP や LaTeX などのシステムが利用されることがあります。

HTML や XML などの本格的なマークアップ言語で書かれた文書は、人間にとっては非常に可読性が低く、またこれらの言語は、複雑で学習コストが高くなる傾向にあります。これらのマークアップ言語の問題点を補う手段として、軽量マークアップ言語はよく利用されます。代表的な使用場面としては、ブログやウィキなどの記事を Web ブラウザのテキストボックスから入力する、などがあります。通常はコンピュータ・プログラムによって、HTML などに変換されます。

軽量マークアップ言語で文書作成をするには、まずテキストエディタなどでソースとなる文書を記述し、場合によっては他の形式に変換した後、適切なプログラムで整形の処理を行い出力します。文書の整形処理には、TeX (LaTeX) やブラウザなどが用いられることがあります。軽量マークアップ言語自体には様々な種類があり、それを処理するシステムも複数あります。Web ベースのシステムでは、ブラウザから入力を行い、XML や HTML に変換して文書を保管し、HTML 文書としてブラウザで表示したり、印刷用に整形して PDF を生成するといったことが考えられます。

***総評 [#df1271e7]

***Markdown と Atom [#k653c38a]
HTML のような人間可読性と機械可読性のどっちつかずの中途半端な言語は、時として非常に扱い辛く、見苦しくなります。Web サイトのデザインをするわけではなく、文書を書きたいだけの場合、HTML を覚えるくらいなら、Markdown などでサクッと文書を書いて、それから HTML へ変換したほうがいいかもしれません。

[[Markdown]] は学習コストの低さと、文書ファイルの見やすさが大きな利点です。機能面では不足を感じることもあるのではないでしょうか。軽量マークアップ言語の中では最も利用者が多いのではないかと思われます。Markdown 文書編集に向いたエディタは様々あり、Markdown から PDF や HTML などの生成も可能です。
例えば、図表を多様しないような、コマンドラインプログラムのマニュアル作成などにはかなり便利でしょう。README などの、プレインテキストにちょっと味付けしたいだけのような文書には最適です。
ちょっとしたメモから文書を起こしたい場合などにも向いています。

[[Atom]] エディタは Markdown での文書作成の統合環境とみなすこともできます。
Atom は Markdown のプレビュー機能を備えており、標準で HTML への出力が可能です。
また、markdown-pdf という追加パッケージで PDF への出力もできます。Git との連携によりバージョンコントロールなどを考える場合、Atom は非常に簡便な選択肢と言えます。
学習コストは総じて低いと考えられますが、機能は限定的です。プレインテキストでの文章装飾に馴染みがある古参には取得が極めて楽です。軽量マークアップ言語による文書の記述そのものは楽ですが、PDF などの、最終的な文書公開のためのフォーマットへの変換・生成には、結局、LaTeX などの様々なツールが必要となる場合が多く、その設定にはかなり苦労すると思われます。

***Asciidoc [#x5327fc1]
ユーザはプログラマをはじめとした、人類の中ではごく一部の人間に限られているかもしれません。それほど充実したサポートは望めないかもしれません。

軽量マークアップ言語を入力形式として採用するシステムの開発は、かなり活発のようです。扱いが比較的容易で、仕様も公開されているため、変換ソフトなどの開発も盛んに行われています。

***Markdown [#k653c38a]

[[Markdown]] は学習コストの低さと、文書ファイルの見やすさが大きな利点です。機能面では不足を感じることもあるのではないでしょうか。軽量マークアップ言語の中では比較的利用者が多いのではないかと思われます。Markdown 文書編集に向いたエディタは様々あり、Markdown から PDF や HTML などの生成も可能です。

[[Visual Studio Code]] エディタは Markdown での文書作成の統合環境とみなすこともできます。
Visual Studio Code は Markdown のプレビュー機能を備えており、標準で HTML への出力が可能です。
また、Visual Studio Code の場合は [[Markdown PDF:https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf]] という追加パッケージで PDF への出力もできます。
Git との連携によりバージョンコントロールなどを考える場合、Visual Studio Code は非常に簡便な選択肢と言えます。

[[GitBook:https://www.gitbook.com/]] は Markdown や AsciiDoc で文書
を作成する文書作成環境です。

***AsciiDoc [#x5327fc1]

[[AsciiDoc:http://www.methods.co.nz/asciidoc/]] も、独自の軽量マークアップ言語を用いた文書生成システムです。
AsciiDoc 形式のファイルから、HTML、XHTML、Docbook が生成でき、Docbook からさらに補助ツールを使って、EPUB や PDF などの形式で文書を作成できます。PDF への変換には、[[dblatex:http://dblatex.sourceforge.net/]] あるいは [[Apache FOP:http://xmlgraphics.apache.org/fop/]] などの自動組版ソフトが必要です。(もちろん、HTML から PDF を生成しても構いません) Markdown に比べて、表などのサポートがあり、より高度な文書の作成が可能です。

AsciiDoc で文書を作成するには、通常は一般的なテキストエディタを使い AsciiDoc 形式の文書を作成します。Visual Studio Code にはプレビュープラグインが存在します。それから asciidoc や a2x コマンドなどを経て、HTML や PDF などの文書を生成します。

外部ファイルの取り込み、フィルタ機能、外部コマンドの実行結果の取り込みなどの機能もあり、可能性が広がります。

日本語での情報が少ないことが難点です。

python で書かれたオリジナルの AsciiDoc の他に、Ruby による実装である、[[Asciidoctor:http://asciidoctor.org/]] もあり、活発に開発が行われています。

[[Asciidoc FX:http://www.asciidocfx.com/]] のような統合環境もあります。まだスタイル付などの細かなカスタマイズを行う枠組みがないようですが、よくできています。リアルタイムプレビュー機能を備え、HTML、PDF、EPUB などへの変換が可能です。日本語での利用に関しては、PDF 出力などで問題があります。

-[[テクニカルライティングの将来 ー GitHub上のAsciidocで技術書Pro Gitを協働執筆:http://postd.cc/living-the-future-of-technical-writing/]]
-AsciiDoc で書かれた本:[[JavaScript Promiseの本:http://azu.github.io/promises-book/]]

O'Reilly が開発中(?)の出版プラットフォームである [[Atlas:http://chimera.labs.oreilly.com/]] は、Web インターフェイスでの入力形式として AsciiDoc を採用しているようです。

***SATySFi [#e8181e71]

[[SATySFi:https://github.com/gfngfn/SATySFi]] は、静的型付けの独自の軽量マークアップ言語を用いた文書生成システムです。
SATySFi 形式で書かれたソースファイルを SATySFi 処理系で処理することで、PDF を出力することができます。

Markdown などの既存の軽量マークアップ言語との違いは、その表現力の違いが挙げられます。
Markdown など既存の軽量マークアップ言語は、入力法が簡潔である一方、その表現力は乏しく、簡単な Web ページの作成には便利ですが、出版に耐える品質の PDF の作成に用いるのは困難でした。

SATySFi は、ユーザがその表現力を自在に拡張できるという点が挙げられます。
LaTeX に似た入力記法を採用しており、ユーザがマクロを定義する機能も備わっているため、HTML + CSS や LaTeX への変換マクロを定義することで、それらの表現力を自在に引き出すことができます。

SATySFi 処理系は関数型言語 OCaml で実装されており、SATySFi 言語自体も関数型言語の特徴を色濃く持っています。
そのため、TeX on LaTeX のような超絶技巧的なプログラミングをすることなく、意味論的綺麗さを保ったまま LaTeX 的なマクロを用いた機能拡張を行うことが可能となっています。

***Re:VIEW [#dd595ec5]

詳しくは、[[Re:VIEW>ReVIEW]] の項目を参照してください。

***Sphinx [#y46c41d9]

[[Sphinx]] は [[Python]] 製の文書生成ツールです。
詳しくは [[Sphinx ドキュメント:http://docs.sphinx-users.jp/]]などを参照してください。




**Microsoft Word とワープロソフト [#w6d0f80d]

***総評 [#x55661ff]

数ページ程度のビジネス文書ではおそらく最も手軽で使い勝手のよいものでしょう。
Microsoft Word など、多くのワープロソフトは豊富な機能を備えています。目次や索引の自動生成、相互参照などの長大な文書作成に必須の機能も備えており、幅広い種類の文書に対応できます。
WYSIWYG で操作は直観的です。
WYSIWYG で操作は直観的です。通常は文書の入力から最終版の出力まで、ひとつのソフトウェアで行います。

学習コストに関しては、単純な文書の作成ではかなり低いと考えられます。
ただし、複雑なことをやろうとすると困難であることには変わりありません。
びっしりとつまったメニューから目的の機能を探すのには苦労します。
学習コストは UI の出来にも大きく依存します。

Microsoft Word に関していえば、インターネット上には入門から上級まで様々な情報であふれています。
書籍も非常に多く、学習するには困らないでしょう。
利用者が多いこともあって、分からないことがあってもしかるべき場所で質問すれば、答えてもらえる可能性は高いです。

ワープロソフトの多くはこれまで、非公開の独自フォーマットを文書保存形式として採用することがありました。このため文書交換や互換性等で問題を引き起こすことが多かったのですが、今後は
国際規格として採用されたフォーマットへの移行もあり、このような不安も軽減されるでしょう。しかしながら、使っているソフトの種類やバージョンによって文書の表示が微妙に異なるなどの、再現性の問題には今後も悩まされるでしょう。

ワープロソフトの需要はビジネス文書などで多く、今後も継続して利用され続けることでしょう。

**その他 [#m7f306ea]

[[InDesign:http://www.adobe.com/jp/products/indesign.html]] などのページレイアウトソフトがあります。

**結論 [#ve7acec1]

まあ好きなもの使いましょう。

**参考 [#pcb1def7]
-[[ドキュメントシステムはこれを使え2015年版:https://www.slideshare.net/k16shikano/2015-55455604]]
-Building Book Production Platforms:[[p1.:http://www.adamhyde.net/building-book-production-platforms/]],[[p2.:http://www.adamhyde.net/building-book-production-platforms-p2/]],[[p3.:http://www.adamhyde.net/building-book-production-platforms-p3/]],[[p4.:http://www.adamhyde.net/building-book-production-platforms-p4/]],[[p5.:http://www.adamhyde.net/building-book-production-platforms-p5/]]
-[[HTMLBook:http://oreillymedia.github.io/HTMLBook/]]

----

% 以下、関連しそうな Wiki 内項目の物置。整理の参考に。

-[[はじめての方へ]]
-[[TeX 以外の組版・レイアウトシステム]]
-[[Markdown]]
-[[Pandoc]]
-[[reStructuredText]]
-[[Sphinx]]
-[[Re:VIEW>ReVIEW]]
-[[PukiWiki]]
-[[LibreOffice/Apache OpenOffice>LibreOffice]]
-[[Microsoft Office]]
-[[AsciiDoc:http://www.methods.co.nz/asciidoc/]]