コンテンツへスキップ
Topos Uranos

その他の文書と共同作業:まとめと挑戦課題

要約

この回は、その他の文書と共同作業を扱う第七単元を締めくくり、それとともに講座全体を締めくくる。Beamer のフレームからタグ付き PDF までを結ぶ原理と仕組みの連鎖を組み立て直し、各環でどの原理が使われ、どの回で確立されたかを示す。達成したことを講座の計画の中に位置づけ、講座の後に何が残るかを示す。終了テストでは開始テストの技能をくり返す。最後に、各回の問題より難しい六つの挑戦課題を置く。いずれも複数の単元を組み合わせることを求め、講座全体をまとめた短い論文を組むこと、それをスライドに作り替えること、その図をポスターに載せること、コンフリクトなしのマージが参照を変えてしまう事態を診断すること、arXiv と pdfLaTeX でコンパイルする学術誌のために論文を準備すること、そして論文、スライド、KOMA-Script のレポートに同時に使えるプリアンブルを書くことを課す。

学習目標

  1. 単元の仕組みの順序を組み立て直し、それぞれがよりどころとする原理を見分ける。
  2. 同じ内容が書き直されずに種類、書き手、行き先を変えられる理由と、そのつど実際に下さなければならない判断を説明する。
  3. オーバーレイのあるフレーム、クラスオプション、除外ファイル、Git のマージ、メタデータの宣言がそれぞれ何を生むかを予測し、意図したものを生むようにソースを直す。
  4. 講座全体の手段を集めた短い学術論文を組み、それをスライド、ポスター、出版先の要件に合わせて作り替える。
  5. この講座で学んだことを、それを土台とする各分野の論文執筆の講座との関係の中に位置づける。

単元で達成したこと

この単元は、それまでの六つの単元で築いた学術的な作品が、作り直されることなく種類を変え、複数の人で書かれ、行き先に届くことを目指した。その目的は、導入が既知とした事柄に支えられて果たされた。それぞれのものが何であるかを述べ、形はクラスに任せる論理的なマークアップ、文書全体に及ぶことを一度で決める自前のプリアンブル、図の相対的な寸法、そして引用するあらゆる種類の文書に役立つ文献データベースである。こうして、たどってきた道は四つの区間からなる一本の連鎖として読める。

Beamer によるプレゼンテーション

Beamer によるプレゼンテーションの回は、スライドもほかと同じく自分のクラスをもつ文書であることを示した。ページの比率は aspectratio で選ぶ。日本語は講座のほかの回と同じく luatexja と babel で扱い、Beamer が定理名の翻訳に使う translator には日本語の辞書がないので、定理名は \deftranslation で宣言する。フレームの間に書いたセクションは、参照と同じコンパイルの繰り返しの仕組みで目次を作る。フレームの各オーバーレイが PDF の 1 ページであり、したがって \pause や山括弧の指定が数に入ること、オプション handout は各フレームを一度だけ組むことを確立した。テーマ、段組み、ブロック、定理を紹介し、biblatex の短い引用と参考文献のフレームをスライドに持ち込み、ノートがオーバーレイごとにくり返される理由を説明した。そして Beamer がサンセリフのファミリーで組むので、\setmainfont も \setmainjfont もスライドを変えず、和文には \setsansjfont と \renewcommand{\kanjifamilydefault}{\gtdefault} が必要であることに注意を促した。

ポスター、手紙、履歴書

ポスター、手紙、履歴書の回は、読む距離からポスターの最小の文字サイズ s≥7⋅d30s \geq 7 \cdot \frac{d}{30} を導き、A 判の比率からふつうの紙で試せる縮小見本を導いた。ポスターを tcolorbox の poster ライブラリでボックスの格子として組み、その基本の文字サイズは一つのオプションで決まることを示した。手紙を letter と scrlttr2 の変数によるデータの集まりとして扱った。moderncv を紹介し、色を様式より先に選ぶこと、babel のスペイン語と相性が悪く、それをオプション es-lcroman が解決することを示した。そして、出版物の一覧を論文と同じデータベースからキーワードで絞り込んで作る学術的な CV を組んだ。最後に、それぞれの種類に、その特徴を欠かすことのできないクラスを割り当てた。

共同執筆

共同執筆の回は、コメント、変更履歴の記録、履歴を備えた Overleaf での共同作業と、Git による版管理を紹介した。Git がファイルを行単位で比較しマージすることから、一行に一文を書くという約束事を導いた。これは PDF を変えず、隣り合わない文への二つの修正をひとりでに統合させる。コンパイルが作り直すファイルを .gitignore で除外し、そのさい図かもしれないすべての PDF ではなく、文書の PDF を名前で指定した。コンフリクトの解消と、その結果をコンパイルで確かめることを教えた。コンフリクトのないマージでも参照が壊れることがあるからである。latexdiff で変更を PDF に示し、チームの約束事をまとめた。共通のプリアンブル、共通のデータベース、章ごとのファイル、接頭辞付きのラベルである。

テンプレートと出版

テンプレートと出版の回は、文書を行き先へ届けた。クラスが決めることを取り除き、意味のあるコマンドを残して論文を学術誌のクラスに合わせ、elsarticle が読み込む natbib と biblatex のぶつかり合いのような衝突に注意を促した。単独でコンパイルできる投稿用フォルダを準備した。arXiv はソースをコンパイルし LuaLaTeX を提供しないので、講座の文書は XeLaTeX で投稿し、そのさい日本語は luatexja から xeCJK などに替え、フォントはファイル名で指定することを説明した。クラスの前に書き、規格が認める PDF の版を指定した \DocumentMetadata で PDF/A を作り、tagging=on、図の代替テキスト、言語によって PDF にタグを付け、目の見えない人にも読めるようにした。

次の図は、四つの区間を一本の連鎖にまとめたものである。列の各節点は仕組みか規則で、互いによりかかる順に番号が付き、用いる前の環と弧で結ばれている。そのまわりに浮かぶのが支え、すなわち連鎖が何度も立ち返る原理であり、それぞれはよりかかる環と実線で、確立される環と点線で結ばれる。ただし前の単元で確立されたものは輪として描かれる。支えを押すと、それを使うすべての環が強調され、各環はそれを学ぶ課へのリンクになっている。

鎖の支え

  • A見え方ではなく何であるか. マークアップは各要素が何であるかを述べ、クラスとそのオプションが形を決める。だからクラスを替えれば内容は種類を変える。第二単元と第三単元で確立。 この単元では証明なしに認める。
  • B一度で決める. 一か所で決めたこと(オプション、自前の命令、共通のプリアンブル)は、そこを変えれば文書全体で変わる。手で写したものは食い違っていく。前の単元で確立。 この単元では証明なしに認める。
  • Cコンパイルの繰り返し. エンジンは一回のコンパイルで計算したことを補助ファイルに書き、次の回で使う。補助ファイルはコンパイルのたびに作り直される。第一単元で確立し、第三単元で精密にした。 この単元では証明なしに認める。
  • D相対的な寸法. \linewidth や \large、\Huge のように本文に対して表した寸法は、使われる場所に合わせて変わる。第二単元と第五単元で確立。 この単元では証明なしに認める。
  • E一つのデータベース、多くの用途. 文献は文献データベースに一度だけ記述し、それぞれの種類の文書が自分に合ったスタイルと絞り込みで引用し、一覧にする。第六単元で確立。 この単元では証明なしに認める。
  • F正しいものは警告しない. エンジンとそのプログラムが警告するのは処理できないものだけである。著者の意図と違うことを述べる正しいソースは警告なしにコンパイルされ、欠陥は結果にしか現れない。第五単元と第六単元で確立。 この単元では証明なしに認める。
  • G距離が決める. 文字が占める角度は距離に比例して小さくなり、最小の文字サイズは距離とともに大きくなる。 確立される環: 6. 距離から決める文字サイズ.
  • HGit は行を比べる. Git はファイルを行単位で比較しマージする。隣り合わない行の変更だけを統合し、二つの変更が同じ行か隣り合う行に触れるとコンフリクトを宣言する。 確立される環: 11. 行単位の差分とマージ.
  1. 第 1 区間 Beamer によるプレゼンテーション

    • タイトル、ブロック、段組み、定理をもつフレームを組む。
    • オーバーレイ、配布資料、ノートが生むページを予測する。
    • 同じデータベースでスライドに引用する。
    • Beamer がどのファミリーを使うかを知ってスライドの書体を選ぶ。
    1. ページとしてのフレームとオーバーレイ. 各フレームはオーバーレイごとに 1 ページを生む。\pause や <3->、\only<2> のような指定がその数を決める。handout はフレームごとに 1 ページだけを組み、ノートはオーバーレイごとにくり返される。

      支え: A (見え方ではなく何であるか). 証明される授業: Beamer によるプレゼンテーション.

    2. セクションと目次. \section はフレームの間に書き、ページを生まず、\tableofcontents に項目を渡す。目次は二回目のコンパイルで完成する。

      使う結果: 1. ページとしてのフレームとオーバーレイ. 支え: C (コンパイルの繰り返し). 証明される授業: Beamer によるプレゼンテーション.

    3. 言語と名前. Beamer が定理名の翻訳に使う translator は、言語がクラスのオプションとして宣言されたときにしかそれを認識せず、日本語の辞書ももたない。そのため「Theorem」が警告なしに英語で出る一方、「証明」は babel が日本語で書く。日本語の名前はプリアンブルで \deftranslation[to=japanese] によって一度だけ宣言する。

      使う結果: 1. ページとしてのフレームとオーバーレイ. 支え: B (一度で決める), F (正しいものは警告しない). 証明される授業: Beamer によるプレゼンテーション.

    4. 短い引用. スライドでは同じデータベースから biblatex の短い形で引用し、完全な書誌は最後のフレームに置く。

      使う結果: 1. ページとしてのフレームとオーバーレイ. 支え: E (一つのデータベース、多くの用途). 証明される授業: Beamer によるプレゼンテーション.

    5. サンセリフのファミリー. Beamer はサンセリフのファミリーで組む。\setmainfont も \setmainjfont もスライドを変えず、match、\setsansjfont、\kanjifamilydefault の行がなければ和文は警告なしに明朝体のままになる。サンセリフのファミリーを替えるか、セリフのフォントテーマを選び、professionalfonts は数式に手を触れない。

      使う結果: 1. ページとしてのフレームとオーバーレイ. 支え: A (見え方ではなく何であるか), F (正しいものは警告しない). 証明される授業: Beamer によるプレゼンテーション.

  2. 第 2 区間 ポスター、手紙、履歴書

    • ポスターの文字サイズを距離から計算し、縮小見本で試す。
    • ポスターをボックスの格子として組む。
    • letter と scrlttr2 で手紙を書く。
    • データベースから職務用と学術用の CV を組む。
    1. 距離から決める文字サイズ. 30 cm で楽に読める最小はおよそ 7 ポイントである。センチメートルで表した距離 dd では、文字サイズ ss は s≥7⋅d30s \geq 7 \cdot \frac{d}{30} を満たさなければならない。

      証明される授業: ポスター、手紙、履歴書.

    2. 縮小見本. A 判の用紙はどれも相似で、一段ごとに各辺が 2\sqrt{2} で割られる。A4 に縮小した A0 は、予定した距離の四分の一で読む。

      使う結果: 6. 距離から決める文字サイズ. 支え: G (距離が決める). 証明される授業: ポスター、手紙、履歴書.

    3. ボックスの格子. tcbposter はページを段と行に分け、各 \posterbox がその中の一か所を占める。fontsize は基本の文字サイズを決め、すべての相対的なサイズがそれに従う。

      使う結果: 6. 距離から決める文字サイズ. 支え: B (一度で決める), D (相対的な寸法), G (距離が決める). 証明される授業: ポスター、手紙、履歴書.

    4. データとしての手紙. letter と scrlttr2 は、差出人、宛先、日付、署名をデータとして受け取る。scrlttr2 はそれを place のような変数にしまい、オプションで置き場所を決める。

      支え: A (見え方ではなく何であるか). 証明される授業: ポスター、手紙、履歴書.

    5. データベースから作る CV. moderncv は様式より先に色を求め、スペイン語では babel に es-lcroman を求める。学術的な CV は \nocite{*} と、条件を組み合わせるキーワードの絞り込みで出版物を一覧にする。

      使う結果: 9. データとしての手紙, 4. 短い引用. 支え: E (一つのデータベース、多くの用途), F (正しいものは警告しない). 証明される授業: ポスター、手紙、履歴書.

  3. 第 3 区間 共同執筆

    • Overleaf か Git のリポジトリでプロジェクトを共有する。
    • 他人の変更とぶつからないように書く。
    • 生成されるものを、生成されないものを失わずに除外する。
    • コンフリクトを解消し、コンパイルで確かめ、変更を示す。
    1. 行単位の差分とマージ. Git は各コミットの変更を削除された行と追加された行として記録し、二つのブランチの変更が離れた行に触れるときは手を借りずに統合する。

      証明される授業: 共同執筆.

    2. 一行に一文. 単独の改行は空白なので、一行に一文を書いても PDF は変わらない。差分は変わった文を指し示し、隣り合わない文への二つの修正はひとりでに統合される。

      使う結果: 11. 行単位の差分とマージ. 支え: H (Git は行を比べる). 証明される授業: 共同執筆.

    3. 生成されたものは保存しない. .gitignore は補助ファイルと、文書の PDF を名前で除外する。*.pdf では PDF の図まで警告なしに除外され、文書は別のコンピュータでコンパイルできなくなる。

      使う結果: 11. 行単位の差分とマージ. 支え: C (コンパイルの繰り返し), F (正しいものは警告しない). 証明される授業: 共同執筆.

    4. 解消してコンパイルする. コンフリクトはファイルに印を残し、それを手で解消する。コンフリクトのないマージでも参照が壊れることがあるので、マージはすべてコンパイルで確かめる。

      使う結果: 12. 一行に一文, 13. 生成されたものは保存しない. 支え: H (Git は行を比べる), F (正しいものは警告しない). 証明される授業: 共同執筆.

    5. PDF に示す変更. latexdiff はソースの二つの版を比べて第三の版を書き、それをコンパイルすると削除と追加が示される。チームの約束事(共通のプリアンブルとデータベース、接頭辞付きのラベル)が、比較が形の違いで埋まるのを防ぐ。

      使う結果: 14. 解消してコンパイルする. 支え: B (一度で決める). 証明される授業: 共同執筆.

  4. 第 4 区間 テンプレートと出版

    • 論文を学術誌のクラスに合わせる。
    • 単独でコンパイルできる投稿用フォルダを準備する。
    • 行き先が認めるエンジンと参考文献の方式を選ぶ。
    • 保存用でタグ付きの PDF を作る。
    1. テンプレートに合わせる. 学術誌のクラスが決めること(ページ、書体、見出し)を取り除き、意味のあるコマンドを残す。クラスがすでに読み込むパッケージ、たとえば elsarticle の natbib は、自分のパッケージとぶつかることがある。

      使う結果: 3. 言語と名前. 支え: A (見え方ではなく何であるか), B (一度で決める). 証明される授業: テンプレートと出版.

    2. 単独でコンパイルできるソース. 投稿用フォルダには文書が読むものをすべて入れ、それ以外は入れない。ソース、図、データベースか .bbl であり、補助ファイルは一つも入れない。

      使う結果: 16. テンプレートに合わせる, 13. 生成されたものは保存しない. 支え: C (コンパイルの繰り返し). 証明される授業: テンプレートと出版.

    3. 行き先がエンジンを決める. arXiv はソースを LaTeX、pdfLaTeX、XeLaTeX でコンパイルし、LuaLaTeX は使わない。講座の日本語の文書は luatexja を xeCJK などに替え、フォントをファイル名で指定して XeLaTeX で投稿し、前もってそのエンジンでコンパイルする。送る .bbl は行き先の biblatex の版と合っていなければならない。

      使う結果: 17. 単独でコンパイルできるソース, 4. 短い引用. 支え: E (一つのデータベース、多くの用途), F (正しいものは警告しない). 証明される授業: テンプレートと出版.

    4. PDF/A とその版. \DocumentMetadata は \documentclass の前に置く。pdfstandard=a-2b では pdfversion=1.7 を加える。版 2.0 は規格のこの部では認められないからである。

      使う結果: 17. 単独でコンパイルできるソース. 支え: F (正しいものは警告しない). 証明される授業: テンプレートと出版.

    5. タグ、代替テキスト、言語. tagging=on は意味のあるマークアップから PDF の構造を導く。alt は図を見られない人が聞く内容を各図に与え、lang は言語を宣言する。

      使う結果: 19. PDF/A とその版. 支え: A (見え方ではなく何であるか). 証明される授業: テンプレートと出版.

講座の終わり. 連鎖は、文書が著者の手を離れるところで終わる。他人と書き、いくつもの種類で示し、行き先が求める形で渡したところである。それとともに講座も終わる。