表は、原稿で見ると身構えてしまうのに、やってみるとあっけないMarkdownの部品です。1行が1レコードで、セルのあいだにパイプを置くだけ。そしてハイフンでできた区切り行が、その上の行はヘッダだったと処理系に伝えます。
下の表を編集してみてください。列を足す、揃え方を変える、行を消す。プレビューがついてきます。
| 機能 | 無料 | Pro |
|:-----------------|:----:|----:|
| ライブプレビュー | ✓ | ✓ |
| PDF書き出し | ✓ | ✓ |
| バージョン履歴 | — | ✓ |
| EPUB書き出し | — | ✓ || 機能 | 無料 | Pro |
|---|---|---|
| ライブプレビュー | ✓ | ✓ |
| PDF書き出し | ✓ | ✓ |
| バージョン履歴 | — | ✓ |
| EPUB書き出し | — | ✓ |
3つの規則
- 1行が1レコードで、セルのあいだに
|を置きます。先頭と末尾のパイプは省略できますが、残しておくほうが原稿はずっと読みやすくなります。 - 2行目が区切り行で、1列につきハイフンを3つ以上。これが1行目をヘッダに変えます。これがなければ、そもそも表になりません。
- 列の数は区切り行が決めます。 行に余ったセルは捨てられ、足りないセルは空になります。
揃え方
区切り行のコロンが、各列の揃え方を決めます。みんなが毎回調べ直す部分です。
| 左 | 中央 | 右 |
|:---|:----:|---:|
| a | b | c |
| 長めのテキスト | それでも中央 | 42 || 左 | 中央 | 右 |
|---|---|---|
| a | b | c |
| 長めのテキスト | それでも中央 | 42 |
:---は左揃え(初期値):--:は中央揃え---:は右揃え
数字の列は右に揃えてください。小さなことですが、価格や測定値の表が劇的に読みやすくなります。
パイプの位置は揃っていなくてかまいません
はっきり書いておきます。ここで時間を無駄にする人が多いからです。
| 機能 | 無料 | Pro |
|---|---|---|
| プレビュー | あり | あり |
| ずっと長い名前の機能 | なし | あり || 機能 | 無料 | Pro |
|---|---|---|
| プレビュー | あり | あり |
| ずっと長い名前の機能 | なし | あり |
これは、きれいに桁を揃えた原稿とまったく同じきれいさで表示されます。手でパイプを揃えるのは、生のファイルを読む人の目のためだけです。そしてライブプレビューのあるエディタなら、そもそも要りません。見ているのが原稿ではなく結果だからです。
セルの中の書式
セルはインラインのMarkdownを受け付けます。太字、斜体、コード、リンク、画像がすべて動きます。
表にできないこと
Markdownの表はわざと単純に作られていて、この制限はバグではありません。
- 複数行のセルはありません。 1セルは1行です。中で改行するには
<br>が要り、持ち運びやすさを失います。 - セルの結合はありません。 rowspanもcolspanもありません。
- セルの中に表、リスト、コードブロックを入れ子にできません。
- キャプションはありません。 ただし表のすぐ上に太字の1行か段落を置けば用は足ります。
本当にどれかが必要なら、必要なのはHTMLです。そしてたいていそれは、その情報が別の形を望んでいる合図です。たとえば小見出しの並びに。
パイプのエスケープ
セルの中の生の | は、そこでセルを終わらせてしまいます。バックスラッシュでエスケープしてください。
| コマンド | 意味 |
|----------|------|
| `a \| b` | aをbに流す || コマンド | 意味 |
|---|---|
a | b | aをbに流す |
よくある間違い
区切り行を忘れる。 ハイフンの行がないと、パイプが見えたままのふつうの段落として表示されます。表が「動かない」理由の第1位です。
表の前に空行がない。 段落の次の行から表が始まると、多くの処理系がその段落に畳み込んでしまいます。空行を入れてください。
ハイフンが3つ未満。 |-|-| は動く処理系と動かない処理系があります。1列につき3つ以上にしてください。
素のMarkdownに表があると思う。 表はGitHub Flavored Markdownの拡張で、2004年の元の仕様には入っていません。いまどきのエディタはどれも対応していますが、とても古い、あるいは最小限の処理系は対応していないことがあります。
よくある質問
Markdownで表を作るには?
ヘッダの行をセルのあいだに | を置いて書き、その下にハイフンの行(|---|---|)を置き、あとは1行ずつレコードを書きます。表にするのは区切り行です。それがないとパイプはただの文字として出ます。
列の揃え方を変えるには?
区切り行にコロンを足します。:--- が左、:--: が中央、---: が右です。揃え方は列ごとで、ヘッダにも本体にも効きます。
セルの中で改行できますか?
標準のMarkdownではできません。1セルは1行です。処理系が生のHTMLを許すなら <br> を入れられますが、ファイルの持ち運びやすさは落ちます。セルに何行も要るなら、その情報はリストか小見出しにしたほうがたいていうまくいきます。
原稿の中でパイプを揃える必要はありますか?
ありません。列の幅をそろえてもそろえなくても、表示は同じです。整った原稿は、生のファイルを読む人間のためだけのものです。
セルの中にパイプ文字を入れるには?
バックスラッシュでエスケープします:\|。インラインコードの中でもバックスラッシュが必要です。コードの範囲より先に、表のほうが解析されるからです。