
私が作成しようとしている表は次のとおりです。
\documentclass{book}
\usepackage{tabularx, booktabs}
\usepackage{lipsum}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{lll}
\toprule
Conditions & Items test corrects & Items test incorrects \\
\midrule
Non-adjacents & Fa\textunderscore Sol\textunderscore Ré\textunderscore (O\textunderscore P\textunderscore Q\textunderscore ) & *Do\#\textunderscore Sol\#\textunderscore Si (S\textunderscore R\textunderscore T) \\
& Sol\#\textunderscore Do\#\textunderscore Si\textunderscore (R\textunderscore S\textunderscore T) & *Ré\textunderscore Sol\textunderscore Fa (Q\textunderscore P\textunderscore O) \\
& \textunderscore Do\textunderscore Fa\#\textunderscore Ré\# (\textunderscore u\textunderscore v\textunderscore w) & *La\textunderscore Mi\textunderscore La\# (\textunderscore y\textunderscore x\textunderscore z) \\
& \textunderscore Mi\textunderscore La\textunderscore La\# (\textunderscore x\textunderscore y\textunderscore z) & *Ré\#\textunderscore Fa\#\textunderscore Do (\textunderscore w\textunderscore v\textunderscore u) \\
Adjacents & Ré.Ré\#.Fa.Do.Sol.Fa\# (QwOuPv) & *Si.La.Sol\#.La\#.Do\#.Mi (TyRzSx) \\
& Ré.La\#.Fa.Mi.Sol.La (QzOxPy) & *Si.Fa\#.Sol\#.Ré\#.Do\#.Do (TvRwSu) \\
& Si.Ré\#.Sol\#.Do.Do\#.Fa\# (TwRuSv) & *Ré.La.Fa.La\#.Sol.Mi (QyOzPx) \\
& Si.La\#.Sol\#.Mi.Do\#.La (TzRxSy) & *Ré.Fa\#.Fa.Ré\#.Sol.Do QvOwPu) \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum
\end{document}
結果は以下のようになります。
テーブルの幅を狭くしようとしました\footnotesize
が、テーブル内のテキストがまだ右余白を少し超えています。
質問:
ブックタブを使用して、すべてのテーブルをテキストと揃えるように強制する方法はありますか?
答え1
tabularx
私の意見では、あなたはそれを望んでいません。
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{lipsum}
\newcommand{\sh}{$\sharp$}
\begin{document}
\lipsum[2]
\begin{table}[htp]
\centering
\footnotesize
\begin{tabular}{lll}
\toprule
Conditions & Items test corrects & Items test incorrects \\
\midrule
Non-adjacents & Fa\_Sol\_Ré\_(O\_P\_Q\_) & *Do\sh\_Sol\sh\_Si (S\_R\_T) \\
& Sol\sh\_Do\sh\_Si\_ (R\_S\_T) & *Ré\_Sol\_Fa (Q\_P\_O) \\
& \_Do\_Fa\sh\_Ré\sh (\_u\_v\_w) & *La\_Mi\_La\sh (\_y\_x\_z) \\
& \_Mi\_La\_La\sh (\_x\_y\_z) & *Ré\sh\_Fa\sh\_Do (\_w\_v\_u) \\
Adjacents & Ré.Ré\sh.Fa.Do.Sol.Fa\sh (QwOuPv) & *Si.La.Sol\sh.La\sh.Do\sh.Mi (TyRzSx) \\
& Ré.La\sh.Fa.Mi.Sol.La (QzOxPy) & *Si.Fa\sh.Sol\sh.Ré\sh.Do\sh.Do (TvRwSu) \\
& Si.Ré\sh.Sol\sh.Do.Do\sh.Fa\sh (TwRuSv) & *Ré.La.Fa.La\sh.Sol.Mi (QyOzPx) \\
& Si.La\sh.Sol\sh.Mi.Do\sh.La (TzRxSy) & *Ré.Fa\sh.Fa.Ré\sh.Sol.Do QvOwPu) \\
\bottomrule
\end{tabular}
\end{table}
\lipsum[3]
\end{document}
で同じことを試した場合\begin{tabularx}{lXX}
、1 行が 2 行に分割されます (表のハイフネーションを無効にしない限り、間違ったハイフンが付きます)。 を指定すると、より良い結果が得られます@{}lXX@{}
。
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{tabularx,booktabs}
\usepackage{lipsum}
\newcommand{\sh}{$\sharp$}
\begin{document}
\lipsum[2]
\begin{table}[htp]
\centering
\footnotesize
\hyphenpenalty=10000
\begin{tabularx}{\textwidth}{@{}lXX@{}}
\toprule
Conditions & Items test corrects & Items test incorrects \\
\midrule
Non-adjacents & Fa\_Sol\_Ré\_(O\_P\_Q\_) & *Do\sh\_Sol\sh\_Si (S\_R\_T) \\
& Sol\sh\_Do\sh\_Si\_ (R\_S\_T) & *Ré\_Sol\_Fa (Q\_P\_O) \\
& \_Do\_Fa\sh\_Ré\sh (\_u\_v\_w) & *La\_Mi\_La\sh (\_y\_x\_z) \\
& \_Mi\_La\_La\sh (\_x\_y\_z) & *Ré\sh\_Fa\sh\_Do (\_w\_v\_u) \\
Adjacents & Ré.Ré\sh.Fa.Do.Sol.Fa\sh (QwOuPv) & *Si.La.Sol\sh.La\sh.Do\sh.Mi (TyRzSx) \\
& Ré.La\sh.Fa.Mi.Sol.La (QzOxPy) & *Si.Fa\sh.Sol\sh.Ré\sh.Do\sh.Do (TvRwSu) \\
& Si.Ré\sh.Sol\sh.Do.Do\sh.Fa\sh (TwRuSv) & *Ré.La.Fa.La\sh.Sol.Mi (QyOzPx) \\
& Si.La\sh.Sol\sh.Mi.Do\sh.La (TzRxSy) & *Ré.Fa\sh.Fa.Ré\sh.Sol.Do QvOwPu) \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum[3]
\end{document}
ただし、結果はテキストの幅によって変わります。
ご了承くださいtabularx
ニーズX
機能するには少なくとも 1列必要です。
また、 は\#
シャープの正しい記号ではないことにも注意してください。\sh
と定義しました$\sharp$
(\sharp
デフォルトでは、このコマンドは数式モードでのみ使用できます)。
答え2
l
(c
そしてr
あまりにも)列はコンテンツが制限に達したときに分割されません。tabularx
合計幅が の場合、 を使用する\textwidth
方がよいでしょう。
\begin{tabularx}{\textwidth}{lXX} %%<-- note 2 X columns.
ここで、X
列は等幅の列を提供し、コンテンツは末尾に達すると改行されます。
\documentclass{book}
\usepackage{tabularx, booktabs}
\usepackage{lipsum}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{lXX}
\toprule
Conditions & Items test corrects & Items test incorrects \\
\midrule
Non-adjacents & Fa\textunderscore Sol\textunderscore Ré\textunderscore (O\textunderscore P\textunderscore Q\textunderscore ) & *Do\#\textunderscore Sol\#\textunderscore Si (S\textunderscore R\textunderscore T) \\
& Sol\#\textunderscore Do\#\textunderscore Si\textunderscore (R\textunderscore S\textunderscore T) & *Ré\textunderscore Sol\textunderscore Fa (Q\textunderscore P\textunderscore O) \\
& \textunderscore Do\textunderscore Fa\#\textunderscore Ré\# (\textunderscore u\textunderscore v\textunderscore w) & *La\textunderscore Mi\textunderscore La\# (\textunderscore y\textunderscore x\textunderscore z) \\
& \textunderscore Mi\textunderscore La\textunderscore La\# (\textunderscore x\textunderscore y\textunderscore z) & *Ré\#\textunderscore Fa\#\textunderscore Do (\textunderscore w\textunderscore v\textunderscore u) \\
Adjacents & Ré.Ré\#.Fa.Do.Sol.Fa\# (QwOuPv) & *Si.La.Sol\#.La\#.Do\#.Mi (TyRzSx) \\
& Ré.La\#.Fa.Mi.Sol.La (QzOxPy) & *Si.Fa\#.Sol\#.Ré\#.Do\#.Do (TvRwSu) \\
& Si.Ré\#.Sol\#.Do.Do\#.Fa\# (TwRuSv) & *Ré.La.Fa.La\#.Sol.Mi (QyOzPx) \\
& Si.La\#.Sol\#.Mi.Do\#.La (TzRxSy) & *Ré.Fa\#.Fa.Ré\#.Sol.Do QvOwPu) \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum
\end{document}