はじめに
ページをまたがる表をLaTeXで作成するための環境として、supertabular環境とlongtable環境があります。
ここでは、その二つの環境を比較してみました。
結論
結論から言うと、個人的にはlongtable環境の方が良さそうに思います。主な違いは
- supertabular環境の場合は表の幅がページ毎に変動する。一方のlongtable環境では一つの表は同じ幅でタイプセットされる。
- supertabular環境の方が、longtable環境よりもページ当たりの表の長さが短い。
- supertabular環境はセンタリングはcenter環境が必要。longtable環境は位置決めのオプションがある。
のような感じでしょうか。
以下に具体例を示します。
supertabular環境
上のソースは以下です。元ネタは Hypertext Transfer Protocol (HTTP) Status Code Registry です。
\documentclass{jsarticle} \usepackage{geometry} \geometry{top=2truecm, bottom=2truecm, left=1truecm, right=1truecm, includefoot} \usepackage{supertabular} \begin{document} \tablecaption{HTTP Status Codes} %\tablehead{\hline} %\tabletail{\hline} \begin{supertabular}{|cll|} \hline 100 & Continue & [RFC7231, Section 6.2.1] \\ 101 & Switching Protocols & [RFC7231, Section 6.2.2] \\ 102 & Processing & [RFC2518] \\ 103-199 & Unassigned & \\ 200 & OK & [RFC7231, Section 6.3.1] \\ 201 & Created & [RFC7231, Section 6.3.2] \\ 202 & Accepted & [RFC7231, Section 6.3.3] \\ 203 & Non-Authoritative Information & [RFC7231, Section 6.3.4] \\ 204 & No Content & [RFC7231, Section 6.3.5] \\ 205 & Reset Content & [RFC7231, Section 6.3.6] \\ 206 & Partial Content & [RFC7233, Section 4.1] \\ 207 & Multi-Status & [RFC4918] \\ 208 & Already Reported & [RFC5842] \\ 209-225 & Unassigned & \\ 226 & IM Used & [RFC3229] \\ 227-299 & Unassigned & \\ 300 & Multiple Choices & [RFC7231, Section 6.4.1] \\ 301 & Moved Permanently & [RFC7231, Section 6.4.2] \\ 302 & Found & [RFC7231, Section 6.4.3] \\ 303 & See Other & [RFC7231, Section 6.4.4] \\ 304 & Not Modified & [RFC7232, Section 4.1] \\ 305 & Use Proxy & [RFC7231, Section 6.4.5] \\ 306 & (Unused) & [RFC7231, Section 6.4.6] \\ 307 & Temporary Redirect & [RFC7231, Section 6.4.7] \\ 308 & Permanent Redirect & [RFC7538] \\ 309-399 & Unassigned & \\ 400 & Bad Request & [RFC7231, Section 6.5.1] \\ 401 & Unauthorized & [RFC7235, Section 3.1] \\ 402 & Payment Required & [RFC7231, Section 6.5.2] \\ 403 & Forbidden & [RFC7231, Section 6.5.3] \\ 404 & Not Found & [RFC7231, Section 6.5.4] \\ 405 & Method Not Allowed & [RFC7231, Section 6.5.5] \\ 406 & Not Acceptable & [RFC7231, Section 6.5.6] \\ 407 & Proxy Authentication Required & [RFC7235, Section 3.2] \\ 408 & Request Timeout & [RFC7231, Section 6.5.7] \\ 409 & Conflict & [RFC7231, Section 6.5.8] \\ 410 & Gone & [RFC7231, Section 6.5.9] \\ 411 & Length Required & [RFC7231, Section 6.5.10] \\ 412 & Precondition Failed & [RFC7232, Section 4.2] \\ 413 & Payload Too Large & [RFC7231, Section 6.5.11] \\ 414 & URI Too Long & [RFC7231, Section 6.5.12] \\ 415 & Unsupported Media Type & [RFC7231, Section 6.5.13] [RFC7694, Section 3] \\ 416 & Range Not Satisfiable & [RFC7233, Section 4.4] \\ 417 & Expectation Failed & [RFC7231, Section 6.5.14] \\ 418-420 & Unassigned & \\ 421 & Misdirected Request & [RFC7540, Section 9.1.2] \\ 422 & Unprocessable Entity & [RFC4918] \\ 423 & Locked & [RFC4918] \\ 424 & Failed Dependency & [RFC4918] \\ 425 & Unassigned & \\ 426 & Upgrade Required & [RFC7231, Section 6.5.15] \\ 427 & Unassigned & \\ 428 & Precondition Required & [RFC6585] \\ 429 & Too Many Requests & [RFC6585] \\ 430 & Unassigned & \\ 431 & Request Header Fields Too Large & [RFC6585] \\ 432-450 & Unassigned & \\ 451 & Unavailable For Legal Reasons & [RFC7725] \\ 452-499 & Unassigned & \\ 500 & Internal Server Error & [RFC7231, Section 6.6.1] \\ 501 & Not Implemented & [RFC7231, Section 6.6.2] \\ 502 & Bad Gateway & [RFC7231, Section 6.6.3] \\ 503 & Service Unavailable & [RFC7231, Section 6.6.4] \\ 504 & Gateway Timeout & [RFC7231, Section 6.6.5] \\ 505 & HTTP Version Not Supported & [RFC7231, Section 6.6.6] \\ 506 & Variant Also Negotiates & [RFC2295] \\ 507 & Insufficient Storage & [RFC4918] \\ 508 & Loop Detected & [RFC5842] \\ 509 & Unassigned & \\ 510 & Not Extended & [RFC2774] \\ 511 & Network Authentication Required & [RFC6585] \\ 512-599 & Unassigned & \\ \hline \end{supertabular} \end{document}
longtable環境
ソースは以下です。
\documentclass{jsarticle} \usepackage{geometry} \geometry{top=2truecm, bottom=2truecm, left=1truecm, right=1truecm, includefoot} \usepackage{longtable} \begin{document} %\tablehead{\hline} %\tabletail{\hline} \setlongtables \begin{longtable}[c]{|cll|} \caption{HTTP Status Codes} \\ % \hline % \endhead \hline % \endfoot 100 & Continue & [RFC7231, Section 6.2.1] \\ 101 & Switching Protocols & [RFC7231, Section 6.2.2] \\ 102 & Processing & [RFC2518] \\ 103-199 & Unassigned & \\ 200 & OK & [RFC7231, Section 6.3.1] \\ 201 & Created & [RFC7231, Section 6.3.2] \\ 202 & Accepted & [RFC7231, Section 6.3.3] \\ 203 & Non-Authoritative Information & [RFC7231, Section 6.3.4] \\ 204 & No Content & [RFC7231, Section 6.3.5] \\ 205 & Reset Content & [RFC7231, Section 6.3.6] \\ 206 & Partial Content & [RFC7233, Section 4.1] \\ 207 & Multi-Status & [RFC4918] \\ 208 & Already Reported & [RFC5842] \\ 209-225 & Unassigned & \\ 226 & IM Used & [RFC3229] \\ 227-299 & Unassigned & \\ 300 & Multiple Choices & [RFC7231, Section 6.4.1] \\ 301 & Moved Permanently & [RFC7231, Section 6.4.2] \\ 302 & Found & [RFC7231, Section 6.4.3] \\ 303 & See Other & [RFC7231, Section 6.4.4] \\ 304 & Not Modified & [RFC7232, Section 4.1] \\ 305 & Use Proxy & [RFC7231, Section 6.4.5] \\ 306 & (Unused) & [RFC7231, Section 6.4.6] \\ 307 & Temporary Redirect & [RFC7231, Section 6.4.7] \\ 308 & Permanent Redirect & [RFC7538] \\ 309-399 & Unassigned & \\ 400 & Bad Request & [RFC7231, Section 6.5.1] \\ 401 & Unauthorized & [RFC7235, Section 3.1] \\ 402 & Payment Required & [RFC7231, Section 6.5.2] \\ 403 & Forbidden & [RFC7231, Section 6.5.3] \\ 404 & Not Found & [RFC7231, Section 6.5.4] \\ 405 & Method Not Allowed & [RFC7231, Section 6.5.5] \\ 406 & Not Acceptable & [RFC7231, Section 6.5.6] \\ 407 & Proxy Authentication Required & [RFC7235, Section 3.2] \\ 408 & Request Timeout & [RFC7231, Section 6.5.7] \\ 409 & Conflict & [RFC7231, Section 6.5.8] \\ 410 & Gone & [RFC7231, Section 6.5.9] \\ 411 & Length Required & [RFC7231, Section 6.5.10] \\ 412 & Precondition Failed & [RFC7232, Section 4.2] \\ 413 & Payload Too Large & [RFC7231, Section 6.5.11] \\ 414 & URI Too Long & [RFC7231, Section 6.5.12] \\ 415 & Unsupported Media Type & [RFC7231, Section 6.5.13] [RFC7694, Section 3] \\ 416 & Range Not Satisfiable & [RFC7233, Section 4.4] \\ 417 & Expectation Failed & [RFC7231, Section 6.5.14] \\ 418-420 & Unassigned & \\ 421 & Misdirected Request & [RFC7540, Section 9.1.2] \\ 422 & Unprocessable Entity & [RFC4918] \\ 423 & Locked & [RFC4918] \\ 424 & Failed Dependency & [RFC4918] \\ 425 & Unassigned & \\ 426 & Upgrade Required & [RFC7231, Section 6.5.15] \\ 427 & Unassigned & \\ 428 & Precondition Required & [RFC6585] \\ 429 & Too Many Requests & [RFC6585] \\ 430 & Unassigned & \\ 431 & Request Header Fields Too Large & [RFC6585] \\ 432-450 & Unassigned & \\ 451 & Unavailable For Legal Reasons & [RFC7725] \\ 452-499 & Unassigned & \\ 500 & Internal Server Error & [RFC7231, Section 6.6.1] \\ 501 & Not Implemented & [RFC7231, Section 6.6.2] \\ 502 & Bad Gateway & [RFC7231, Section 6.6.3] \\ 503 & Service Unavailable & [RFC7231, Section 6.6.4] \\ 504 & Gateway Timeout & [RFC7231, Section 6.6.5] \\ 505 & HTTP Version Not Supported & [RFC7231, Section 6.6.6] \\ 506 & Variant Also Negotiates & [RFC2295] \\ 507 & Insufficient Storage & [RFC4918] \\ 508 & Loop Detected & [RFC5842] \\ 509 & Unassigned & \\ 510 & Not Extended & [RFC2774] \\ 511 & Network Authentication Required & [RFC6585] \\ 512-599 & Unassigned & \\ \hline \end{longtable} \end{document}