
次の表を LaTeX で描画します。最初の列では、テキストは左揃えにする必要があります。他のすべてのセルのテキストは中央揃えにする必要があります。最初の問題は、最初の行の D で発生します。\centering
の前にa と記述するとD
、LaTeX エラーが発生します。2 番目の問題は、すべてのセルのテキストを垂直に揃えたいのですが、方法がわからないことです。解決策は見つかりましたが、最初の列の幅が指定されている場合は機能しません。
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{|p{4cm}|X|X|X|X|}
\hline
& \centering A & \centering B & \centering C & D\\
\hline
\blindtext & 123 & 123 & 123 & 123\\
\hline
\end{tabularx}
\end{document}
答え1
水平および垂直に中央揃えされたテキストの場合は、X 列の定義を再定義します。
\documentclass{article}
\usepackage{ragged2e}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
\newcommand\TEXT{%
I want to draw the following table in Latex. In the first column the text should be left aligned. The text in all other cells should be centered.}% only for demo
\begin{document}
\begin{tabularx}{\textwidth}{|m{4cm}*4{|X}|}\hline
& A & B & C & D \\\hline
\TEXT\TEXT & 123 & 123 & 123 & \TEXT\\\hline
\end{tabularx}
\end{document}
答え2
標準的な TeX の方法で配置を行うこともできますが、LaTeX のragged2e
パッケージを使用するとより効果的です。
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{ragged2e}
\begin{document}
\begin{tabularx}{\textwidth}{|>{\RaggedRight}p{4cm}*{5}{|>{\Centering}X}|}
\hline
& A & B & C & D\\
\hline
\blindtext & 123 & 123 & 123 & 123\\
\hline
\end{tabularx}
\end{document}
列X
は基本的に列です。したがって、各セルの先頭でp{...}
などのコマンドを使用できます。各セルに対してこれを自動的に実行するには、 を使用します。これにより、その行の各セルの先頭に中括弧の内容が挿入されます。\RaggedRight
>{..}
最後の 5 つのセルの繰り返しを避けるために、構造 を挿入しました*{5}{...}
。