
tabularx
私は、列タイプが中央揃えになっているのと同じように、自動幅の列を水平方向と垂直方向に中央揃えにできる方法を探していますX
。
それで、私がこれまでに試したことは次のとおりです:
\documentclass{article}
\usepackage{tabularx,booktabs}
\newcolumntype{Z}[0]{>{\centering\arraybackslash\let\newline\\\hspace{0pt}}X}%
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
& long\newline heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
& long\linebreak heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
2 番目はほぼ希望どおりですが、3 番目の列の垂直方向の中央揃えが欠けています。これを修正するにはどうすればよいでしょうか?
答え1
m
垂直方向の中央揃えには、列ではなくp
列の後ろに配置するのが望ましいX
\documentclass{article}
\usepackage{tabularx,booktabs}
\newcolumntype{Z}[0]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}%
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
& long\newline heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
& long\linebreak heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
答え2
makecell
パッケージとそのコマンドを使用するだけです\thead
:
\documentclass{article}
\usepackage{tabularx,booktabs, makecell}
\newcolumntype{Z}[0]{>{\centering\arraybackslash\let\newline\\\hspace{0pt}}X}%
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
&\thead{ long\\ heading 1} & \thead{short heading}\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
&\thead{long\\ heading 1} & \thead{short heading}\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
makecell を使用すると、ヘッド セルの内容を簡単にフォーマットできることに注意してください。booktabs
: で垂直線を使用しないでください。ご覧のとおり、水平線はカットされません。