Zopfcode

かつてない好奇心をあなたに。

Cloud LaTeXとShareLaTeX、どっちがいい?

ローカルにTeX環境を入れる必要がなく、オンラインでTeXが書ける便利サイトとして代表的なものに、

の2つがある。

私は去年吟味した結果ShareLaTeXを使っていて、卒業論文は「すべて」このShareLaTeXで書きあげたのだが、先日kosen10sのLT会に行った時にまるさ君が「Cloud LaTeX使ってる人いない?」と言っていたので、ShareとCloudの比較をしてみることにした。

機能の比較をするだけなら他サイトがやっているし、本当に必要なのは「ちゃんとしっかり使えるのか」というところだから、今日は両方使ってみてなぜShareLaTeXに軍配が上がったかを詳細に書きたいと思う。

あとお断りとして、私は普段XeLaTeXの方のみを使っているため、基本的にXeLaTeXベースの比較になる。より一般的なpLaTeXとは比較結果が異なる可能性もあるので注意してほしい。

バージョン

CloudとShareは両方とも内部でTeX Liveを使っている。違うのはバージョンだ。

Cloud

CloudではVersion 3.1415926 (TeX Live 2013)を使っている。

Share

ShareではVersion 3.14159265 (TeX Live 2014)を使っている。

TeXのバージョンは1つ上がるごとに円周率に1ケタずつ近似していくので、メジャーリリース1回分の差があることになる。つまり、Shareの方が新しいものを使っていることがわかる。

日本語

LaTeX (pLaTeX)

CloudLaTeXは日本語対応をウリにしていた。実際、jsarticleが使えるし表示も特に問題ない。一方でShareはいわゆる日本の文書向けクラスであるa4jが使えない。\documentclass[a4j]{jsarticle}と指定すると

LaTeX Error: This file needs format 'pLaTeX2e' but this is 'LaTeX2e'.

と怒られてしまい使えない。jjsを取って無理やり日本語のままコンパイルしても、日本語グリフは全部スッ飛んでしまい意味が無い。

XeLaTeX

LaTeXではShareはjarticle使えねーという感じだったが、XeLaTeXでは一転しShareが本領を発揮する。というのも、CloudではXeLaTeXのコンパイル根本的にうまくできないからだ。

具体的な理由は以下のようになっている:

  1. XeLaTeXで日本語文書をマトモに書くにはZXjatypeが必要不可欠
  2. ZXjatypeはCJK言語のためのパッケージxeCJKに依存している
  3. xeCJKusepackageで入れるとUndefined control sequenceエラーが発生する

「ならZXjatypeを使わなければいいじゃないか」と思ったそこのあなた。ZXjatypeがないと「文字の大きさが揃わない」・「句読点など約物がガッツリ全角1文字分空く」などメチャクチャな文書になってしまうのだ。 XeLaTeXで日本語を書くためには上に挙げたZXjatypexeCJKのほかにBXjsclsも必要になってくるが、これらはすべてTeX Liveに含まれていることから本来コンパイルが通らないとおかしいことは明らかだ。

ところで、Shareでは上に挙げたパッケージ・スタイルはすべてちゃんと使える。XeLaTeXを使うそもそもの理由は大体が「フォントを自由に変えたい」というところなので、フォントファイルをアップロードして\setCJKmainfontで指定すればLaTeXで露呈していた日本語グリフ欠落問題も一挙に解決する。

ShareLaTeX・XeTeXに関する勘違い

時々「ShareではXeTeXで無理やり日本語を出す必要がある」といった書き方をしているサイトがあるがこれは大きな思い違いである。

XeTeXではすべての文字は平たくUTF-8で扱われるため、日本語を扱うことそのものは無理やりでもなんでもない。上に書いたように素のXeLaTeXでは日本語グリフのタイポグラフィが少しおかしいが、プリアンブルで

\documentclass[a4paper]{bxjsarticle}
\usepackage{zxjatype}

と書くだけで日本語文書への対応は完了する。つまりLaTeXと比較しても手間はほぼ変わらないのだ。日本語に必要なクラスやパッケージが全部TeX Liveに含まれていることに感謝したい。

エラー表示

わざと\begin\begainと間違えた時のエラーメッセージを例に比較する。

Cloud

あまり表示は親切ではない。エラーメッセージの詳細は早々と省略され、いざ素のログを読みに行ってもカラーリングされていないのでとても読みづらい。

実際の表示は以下。

f:id:puhitaku:20150510030602p:plain

Share

行が強調表示されるなど、比較的表示が親切。実際の表示は以下。

f:id:puhitaku:20150510030609p:plain

エディタ

Cloud

何の変哲もない入力欄があるのみで特筆するような要素はないが、入力が止まると自動コンパイルが作動するので便利。機能は過度にシンプルで、フォントの大きさすら変えることが出来ないほか、自動補完もない。

Share

Cloudは機能がシンプルすぎて不満があったが、こちらはフォントの大きさ調節・スペルチェック・自動補完・VimEmacsキーバインドが使える。PDFの表示の有無も切り替えられる。

また、ShareではSublime Textに似た便利なホットキーが使える。これは公式のホットキー一覧にも書かれていないので隠れた特徴なのだが、なんとCtrl+Alt+矢印上下キー複数行を一気に編集するなどといった機能がShareでは使える。VimEmacsキーバインドに加え、ここはCloudとShareで大きな差をつける部分だと思う。

ただし、本来サポートされている自動コンパイルはなぜか正しく動作しない。Ctrl+Enterコンパイルができるのは不幸中の幸いだ。

デザイン・カラーリング・フォント

両方とも背景色は白でまぶしく、長時間文書を書くには少々つらい。フォントを変えるには、StylishなどのCSS書き換え系エクステンションを使う必要がある。

Cloud

編集するページ全体が白でデザインも洗練されている。だがフラットぽさを推している割には一部で角丸四角形を使うなど釈然としない部分がある。

Share

めっちゃBootstrap臭がある。編集するページは背景色が白いが、エディタ本体の背景は暗いのが嬉しい。前述のホットキーがSublimeに似ているのと同じようにカラースキームは標準でMonokaiになっているほか、多種多様なスキームに切り替えられる。

フォントはConsolasを標準で使うらしくアルファベットは美しく表示されるが、日本語グリフは忌まわしきMSゴシックのまま。このフォント問題に関してはStylish用のCSSを書いたので、以下から是非使ってみて欲しい。このCSSでは以下の修正を加える:

  • フォントをConsolas + メイリオに変更
  • ページ全体を目にやさしい暗い色にする
  • 赤茶色の部分を全部灰色にする
  • スクロールバーをスリムでフラットなものに変える

ShareLaTeX.com - Stylish CSS · GitHub

その他

Cloud

  • Dropboxとの連携ができる
  • だが単体でのファイル管理は×

ファイル管理機能は極端に乏しい。マイページ = 編集ページなので無理もない。

  • いつまで経ってもBetaを抜けない

Share

  • Dropboxとの連携が無料でできない
  • ファイル管理が微妙
  • LuaTeXが使える

プロジェクトのタグによる管理などCloudよりかマシなファイル管理ができるが、編集画面へのドラッグドロップでファイルが上げられない・編集画面でのファイル管理がなんか変など少し惜しい。

Dropboxの連携については有料サブスクリプションをすれば利用可能になる。でもお金を払わなくとも6人ShareLaTeXに招待すればボーナスとしてDropbox連携が利用できるので、6人協力してくれる人を探せばお金はいらない。

まとめ

基本的にCloudをdisってShareを褒め称える内容になってしまったが、いかがだろうか。LaTeXで文書を書くならどちらもアリだが、全体的なことを考えると個人的にはShareLaTeXに軍配が上がる。もっとも、フォントをあれこれするならXeLaTeXを使うことになるのでShareLaTeX一択だが…。

もしShareLaTeXに登録するなら、下の招待リンクからShareLaTeXに登録してもらえたらうれしい。

www.sharelatex.com