要約
この回では、作業を失わず版を取り違えずに、複数の著者で一つの文書を書く方法を学ぶ。電子メールで版をやり取りする方法がなぜ破綻するのか、プレーンテキストのソースならなぜ変更を行単位で比較し統合できるのかを説明し、オンラインの共有エディタとして Overleaf を紹介する。プロジェクトへの招待、同時編集、コメント、変更履歴の記録、ラベル付きの版を含む履歴、LuaLaTeX の選択、ローカルのプロジェクトのアップロードを扱う。続いて LaTeX のプロジェクトで Git を使う最小限の作業の流れを、.gitignore ファイル、一行に一文を書く書き方、.tex ファイルでのコンフリクトの解消とともに、テスト用リポジトリの実際の出力を示しながら学ぶ。さらに Overleaf の Git 連携と GitHub との同期を説明し、チームで取り決めるべき約束事をまとめ、最後に二つの版の間の変更を印した PDF を作る latexdiff を扱う。
学習目標
- プレーンテキストのソースならなぜ複数の著者の作業を比較し統合できるのか、またワープロのファイルではなぜ同じようにはできないのかを説明できる。
- Overleaf のプロジェクトを適切な権限で共有し、コメントを付け、変更履歴を記録しながら校閲し、履歴から以前の版を復元できる。
- Git で LaTeX のプロジェクトを管理できる。すなわち、リポジトリを作り、変更をコミットし、履歴と差分を読み、リモートと同期できる。
- 文書に必要なものを除外せずに補助ファイルを除外する
.gitignoreを書ける。 - 二つの同時の変更がいつコンフリクトになるかを予測し、
.texファイルでそれを解消したうえで、文書がコンパイルでき、言うべきことを言っているかを確かめられる。 - 共通のプリアンブル、共通の文献データベース、ファイルの分割、ラベルの付け方をチームで取り決め、latexdiff で二つの版の間の変更を示す PDF を作れる。
複数で書くことはなぜ難しいのか
チームで書く最もありふれたやり方は、最も壊れやすいやり方でもある。ある著者がファイルを電子メールで送り、別の著者が手を入れて新しい名前で送り返す。数週間もすると、フォルダには 報告書_最終.docx、報告書_最終2.docx、報告書_最終_アナ修正.docx が並ぶ。二人の著者が同じ版に同時に手を入れていれば、誰かが一方の変更を他方のファイルへ手作業で移さなければならず、その際に漏れたものは誰にも気づかれずに失われる。ワープロは比較の助けにならない。そのファイルは読めるテキストではなく、内容と書式を混ぜ合わせた圧縮パッケージだからである。比較の機能はあるが、独立に進んだ二つの作業を自動で統合することはできない。
LaTeX のソースは事情が異なる。それはプレーンテキストであり、どのプログラムでも一行ずつ読める。そこから、ワープロでは手軽にできない二つの操作が生まれる。一つは差分(英語で diff)である。あるファイルの二つの版が与えられると、プログラムはどの行が削除され、どの行が追加されたかを正確に示す。もう一つはマージ(英語で merge、統合)である。同じ版に対して行われた二組の変更が与えられると、プログラムは、それらがファイルの別々の箇所に関わる場合には自分で統合し、両者が同じ箇所に手を入れた場合にだけ著者に判断を求める。ただし、これらの操作を役立てるには、さらに仕組みが要る。現行の版を置く共通の場所と、誰がいつ何を変えたかの記録である。この回では、この講座がそのために用いる二つの方法を紹介する。ブラウザで問題を解決する Overleaf と、各著者のコンピュータで Texmaker をエディタとして解決する Git である。
コンテンツを読み込んでいます…