Центрирование в табличной среде с заданной шириной

Центрирование в табличной среде с заданной шириной

У меня есть простой вопрос, на который, похоже, нет простого ответа.

С помощью кода ниже:

\begin{center}
    \huge
        \begin{tabular}{|c|c|}
            \hline
        \textsf{\emph{\textbf{x}}} &   \textsf{\emph{\textbf{y}}}\\
             \hline
             0 & 1 \\
             \hline
             1& 3 \\
             \hline
             2& 5 \\
             \hline
             3 & 7\\
             \hline
             4 & 9 \\
             \hline
        \end{tabular}
    \end{center}

Как добавить предустановленную ширину 2 см для каждого столбца, при этом сохраняя все в ячейках по центру? Кроме того,как это сделать, не создавая новых команд?

решение1

arrayпредоставляет спецификацию столбца w{<align>}{<width>}, которую вы можете использовать. В частности, столбцы будут использовать w{c}{2cm}:

введите описание изображения здесь

\documentclass{article}

\usepackage{array}

\begin{document}

\begin{center}
  \huge
  \begin{tabular}{ | w{c}{2cm} | w{c}{2cm} | }
    \hline
    \textsf{\emph{\textbf{x}}} & \textsf{\emph{\textbf{y}}}\\
    \hline
    0 & 1 \\
    \hline
    1 & 3 \\
    \hline
    2 & 5 \\
    \hline
    3 & 7 \\
    \hline
    4 & 9 \\
    \hline
  \end{tabular}
\end{center}

\end{document}

решение2

С помощью {NiceTabular}of nicematrixу вас есть ключ columns-width.

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{center}
    \huge
        \begin{NiceTabular}{|c|c|}[columns-width=2cm]
            \hline
        \textsf{\emph{\textbf{x}}} &   \textsf{\emph{\textbf{y}}}\\
             \hline
             0 & 1 \\
             \hline
             1& 3 \\
             \hline
             2& 5 \\
             \hline
             3 & 7\\
             \hline
             4 & 9 \\
             \hline
        \end{NiceTabular}
\end{center}

\end{document}

Вывод кода выше

решение3

В вашем запросе остается открытым вопрос о том, 2cmследует ли указывать полезную или общую ширину столбца.

  • Если этопригодный к использованиюширину столбца можно использовать 2cmнепосредственно во втором аргументе wтипа столбца; см.@Ответ Вернера.

  • Если, наоборот, 2cmпредполагается, чтообщийширина столбца, можно продолжать использовать wтип столбца, но теперь необходимо вычесть 2\tabcolsepиз 2cm, чтобы получить полезную ширину столбца; ниже приведен пример того, как это можно сделать.

введите описание изображения здесь

\documentclass{article}
\usepackage{array} % for 'w' column type
\newcommand\zzz{%
  \hline
  \textbf{x} & \textbf{y} \\ \hline
  0 & 1 \\ \hline
  2 & 3 \\ \hline}
  
\newlength\mylen % set up a scratch length parameter 

\begin{document}

\verb+c+ col.\ type\strut
 
\begin{tabular}{| c | c |}
   \zzz
\end{tabular}

\bigskip
\verb+w+ col.\ type, 2cm \emph{usable} width\strut

\begin{tabular}{| w{c}{2cm} | w{c}{2cm} |}
   \zzz
\end{tabular}  

\bigskip
\verb+w+ col.\ type, 2cm \emph{total} width\strut

\setlength\mylen{\dimexpr2cm-2\tabcolsep\relax} % compute the usable width
\begin{tabular}{| w{c}{\mylen} | w{c}{\mylen} |}
   \zzz
\end{tabular} 

\smallskip
\addtolength\tabcolsep{1em} % enlarge value of \tabcolsep
\setlength\mylen{\dimexpr2cm-2\tabcolsep\relax} % recompute the usable width
\begin{tabular}{| w{c}{\mylen} | w{c}{\mylen} |}
   \zzz
\end{tabular}

\end{document}

Связанный контент