要約
この課は、表と図を扱う本講座の第五単元の導入である。まず単元の目的を説明する。学術的な著作のデータ、画像、図を、本文と同じ明快さで読め、節や数式と同じように番号を付けて参照され、著者が手で指定しなくてもページ上の居場所を見つけるように組むことである。次に単元の五つの課と、それらをつなぐ筋道を紹介する。最も単純な表から、TikZ による最初の作図までである。さらに、それまでの単元から既知とする事柄を明らかにする。科学の表とグラフがどこから来たのか、それを律する節約の規則は何かを振り返る。そして単元が解決する問題を述べる。ワープロの習慣どおりに作った表や図は、文句ひとつなくコンパイルされるのに、読みにくいという問題である。最後に、同じ道具が実験室にも、統計的研究にも、歴史の資料にも、テキストの注解にも役立つことを示す。
学習目標
- 単元の内容の順序を述べ、各課が次の課に何をもたらすかを説明できる。
- 単元がそれまでの単元から既知とする事柄を見分け、必要なら復習できる。
- 格子をすべて引いた表が、少数の横罫で組んだ表より読みにくい理由を、例を挙げて説明できる。
- 自分の分野で、単元が組み方を教える表、画像、図を見分けられる。
開始テスト
単元に取りかかる前に、出発点を測っておくとよい。このテストは自己評価であり、採点はしない。目的はただ学習の方向づけにある。最初の二問は、単元がそれまでの単元から既知とする事柄を復習する。続く十問は、二問ずつ順に単元の五つの課に対応している。LaTeX で表を組んだことも画像を入れたこともない人が正解できなくても当然である。正解であれ不正解であれ、どの答えもその要点を説明し、それを扱う課を示すからである。同じ技能は単元の最後のまとめの課で再び測る。
単元を始める前に、自分の出発点を測りましょう。短い自己評価です。採点はされず、結果はあなたのブラウザーにだけ保存されます。
問 1前の単元からある著者が、
\listoffiguresのある文書にキャプション付きの図を加え、一度だけコンパイルした。図は本文には現れるが、図目次には現れない。何が起きているか。\listoffiguresは LaTeX のカーネルに属する。目次の項目を書き込むのはまさにキャプションである。削除しても何にもならない。次のコンパイルがまた書き出す。目次と同じく、図目次と表目次はあるコンパイルで書き出され、次のコンパイルで読み込まれる。古くなっていても警告は出ない。復習: 見出し、目次、付録
問 2前の単元から報告書の本文に「田中 & 鈴木によれば」と書いたところ、コンパイルが「
Misplaced alignment tab character &」で止まった。なぜか。記号は印字できる。失敗の原因はバックスラッシュなしで書いたことである。この記号は amsmath の有無にかかわらず、カーネルで予約されている。誤りは記号にあり、引用とは関係がない。整列は表である。&はセルを区切り、\\は行を終える。この単元の表も同じ規則に従う。復習: 複数行の数式
問 3
\begin{tabular}{lr}の表が、&をちょうど一つ含む行で「Extra alignment tab has been changed to\cr」を出した。誤りはどこにある可能性が最も高いか。指摘された行のセル数は正しい。列指定を広げると見落としが隠れ、混ざった行が残る。2 列なら&は一つで正しい。メッセージが指すのは表の行であって、ソースの行ではない。誤りはエンジンが出すもので、booktabs がなくても同じように現れる。行の終わりがないと、前の行が指摘された行まで続き、その行が 2 列の行に二つめの&を加えることになる。復習: 読みやすい表
問 4
S[table-format=2.2]と宣言した列に、3.5、12.25、140.8 のセルを入れた。どうなるか。このエラーは、波括弧で囲まない見出しのように、数でない文字が出すものである。siunitx は既定では丸めず、桁も切り捨てない。書式が幅を決める。収まらないものはずれる。数が確保した幅を超えても siunitx は警告しない。数をその幅の外に組み、エンジンは幅の広すぎるボックスを記録するだけである。復習: 読みやすい表
問 5
{lrrrr}の表で、1 行目が\multicolumn{2}{c}{対照群} & \multicolumn{2}{c}{処理群} \\、その下に\cmidrule(lr){2-3} \cmidrule(lr){4-5}がある。エラーも警告もなくコンパイルされる。何が見えるか。このエラーは、列数よりセルの多い行が出すものである。ここでは 5 列に対してセルは四つである。LaTeX は 1 列目がどのグループにも属さないことを知らない。各\multicolumnは直前のセルが終わったところから始まる。\cmidruleは罫線を引くだけで、文字は動かさない。先頭の&が抜けている。列数よりセルの少ない行は正しい行なので、エンジンは警告しない。罫線は書かれた番号だけで決まる。復習: 複雑な表と長い表
問 690 行の表を、中央に置くために
table環境の中でlongtableを使って書いた。どうなるか。フロートの中では分割できない。インストールされている版はエラーを出さない。そこがまさに危険である。縮小するものは何もない。表はページの下へはみ出す。フロートは分割されないボックスであり、longtable はそれをエラーとして知らせない。tableを外せばよい。longtable はそれ自体で中央に置かれ、自前の\captionをもつ。復習: 複雑な表と長い表
問 7幅が高さより大きい、比 4:3 の写真に
\includegraphics[angle=90,width=4cm]{sample}と書いた。どんな寸法で現れるか。それは[width=4cm,angle=90]の結果である。回転の前に幅を決めている。画像が回転したことを忘れている。幅は回転の後で決まる。ゆがむのは、keepaspectratioなしで幅と高さを同時に指定したときだけである。graphicx はオプションを書いた順に適用する。まず回転して画像は 3:4 になり、それから回転後の画像の幅を決める。復習: 文書中の画像
問 8
figuresフォルダーに、古いplot.pdfと更新したplot.pngがある。ソースには\includegraphics{figures/plot}と書いてある。どうなるか。エンジンは日付を見ない。拡張子の決まった順序を見る。そのようなエラーはない。あいまいさは黙って解消される。このエラーは、.svgのように、エンジンが埋め込めない拡張子で起きる。拡張子がないと、エンジンは.pngより先に.pdfを試し、最初に見つけたものを使う。復習: 文書中の画像
問 9ある報告書が
\begin{figure}[htbp]のそばで「下の図に示すように」と書いている。何が問題か。文字は許される位置であって、順序ではない。ここに収まらなければ別の場所へ行く。[H]は図を固定するが、ページに空白を残す。解決は番号による参照である。まさに移れる。それがフロートするということである。図はページをまたいで分割できず、エンジンは収まる場所に置く。図が動いても意味の変わらないものは番号だけである。復習: 図表のフロート
問 10プリアンブルに
\usepackage{babel}、\babelprovide[import,main]{japanese}、\setlocalecaption{japanese}{listtable}{表一覧}があり、cleveref はオプションも\crefnameもなしで読み込まれている。キャプションは「表 1」、一覧の見出しは「表一覧」になった。\cref{tab:costs}は何と書くか。そう期待されるが、そうはならない。cleveref には独自の語彙がある。cleveref は babel の名前を何ひとつ読まない。キャプションの名前も一覧の名前も読まない。エラーにはならない。オプションも\crefnameもなければ、cleveref は英語の名前を書く。babel に伝えた設定はキャプションと一覧を変えるが、cleveref までは届かない。復習: 図表のフロート
問 11
\usepackage[spanish]{babel}と\usepackage{tikz}を使うスペイン語の文書が、最初の描画行\draw[->] (0,0) -- (1,0);で「Argument of \language@active@arg> has an extra }」を出して失敗する。何が足りないか。どちらの順序でも誤りは同じである。短縮記法は図の中でもアクティブなままである。->は基本の矢じりである。arrows.meta がなければ、メッセージは「Unknown arrow tip kind」になる。この行にはセミコロンがある。メッセージが語っているのは言語のアクティブな引数であって、終わっていないパスではない。TikZ の babel ライブラリは、図の中でこれらの記号を本来の意味に戻す。パッケージの順序を変えても直らない。本講座の日本語の文書は luatexja で組み、babel を読み込まないので、この行は何もしないが、習慣として読み込む。復習: TikZ による作図
問 12
\draw (0,0) -- ++(2,0) -- +(0,1) -- +(-1,0);は何を描くか。すべての段で++を使えばそうなる。パスを閉じるものは何もない。閉じるには-- cycleと書く。問題なく混ぜられる。違いは基準点を更新するかどうかにある。+は++で最後に定めた点、ここでは (2,0) から測られ、その点を変えない。復習: TikZ による作図
コンテンツを読み込んでいます…