私はLaTeXの表のセルにテキストの中央(水平または垂直の両方)を配置しようとしています(最後の画像を参照)。面白いことに、コードはhttps://www.papeeria.com
TeXLive 2016ディストリビューションを使用すると、などのオンラインエディターでは機能しますが、最新のディストリビューション2019では機能しません。texmakerでは機能しません。そして、texmakerとLaTeXを再インストールしました。
私のコードは次のとおりです:
\documentclass[landscape]{article}
\usepackage{array}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}
\usepackage{array} % for the first table
\usepackage{xcolor,colortbl} % <--- color cell in table
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|N}
\hline
\cellcolor{orange!50} \huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\[85mm]
\hline
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\ [85mm]
\hline
\end{tabular}
\end{table}
\newpage
\begin{table}[ht]
\centering
\begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|N}
\hline
\cellcolor{orange!50} \huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\[85mm]
\hline
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\ [85mm]
\hline
\end{tabular}
\end{table}
\end{document}
しかし、私はこれを望んでいます:
答え1
高さが定義された空の列を使用して、垂直の高さを偽装することができます。次のコードは、(未使用、なぜ追加したのですか?)N
タイプの列をH{85mm}
、高さ 85 mm の垂直中央の列に置き換えます。
\documentclass[landscape]{article}
\usepackage{array}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}
\newcolumntype{H}[1]{@{}>{\rule{0pt}{#1}}m{0pt}@{}}
\usepackage{array} % for the first table
\usepackage{xcolor,colortbl} % <--- color cell in table
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|H{85mm}}
\hline
\cellcolor{orange!50} \huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\
\hline
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\
\hline
\end{tabular}
\end{table}
\newpage
\begin{table}[ht]
\centering
\begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|H{85mm}}
\hline
\cellcolor{orange!50} \huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\
\hline
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\\
\hline
\end{tabular}
\end{table}
\end{document}
テーブルのすべての行にこの効果を適用したくない場合は、古いN
タイプの列に切り替えて、明示的\rule{0pt}{<height>}
に を使用し、その行の高さを設定できます。
答え2
\parbox
高さと内部配置を指定できますが、p{}
列とそのバリエーションでは指定できません。これらを使用するには、collcell パッケージが必要です。
\documentclass[landscape]{article}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}
\usepackage{array}
\usepackage{collcell}
\usepackage{xcolor,colortbl} % <--- color cell in table
\newcommand{\mycolumn}[1]{\parbox[c][85mm][c]{\myarg}{\centering #1}}
\newcolumntype{M}[1]{>{\def\myarg{#1}\collectcell\mycolumn}{l}<{\endcollectcell}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|}
\hline
\cellcolor{orange!50} \huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text \\
\hline
\huge Text &
\huge Text &
\huge Text &
\huge Text &
\huge Text \\
\hline
\end{tabular}
\end{table}
\end{document}
答え3
パッケージを使用するtabularray
と、テキストは自動的に垂直方向に中央揃えされます。
\documentclass[landscape]{article}
\usepackage{geometry}
\geometry{a4paper, hmargin=0.85cm, vmargin=1.55cm}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{
vlines,
hlines,
colspec={XXXXX},
rows={ht=8.5cm,halign=c,font=\huge},
cell{1}{1}={bg=orange!50}
}
Text & Text & Text & Text & Text\\
Text & Text & Text & Text & Text\\
\end{tblr}
\end{table}
\end{document}