Zentrieren in einer tabellarischen Umgebung mit voreingestellter Breite

Zentrieren in einer tabellarischen Umgebung mit voreingestellter Breite

Ich habe eine einfache Frage, auf die es scheinbar keine einfache Antwort gibt.

Mit dem folgenden Code:

\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}

Wie füge ich jeder Spalte eine voreingestellte Breite von 2 cm hinzu und halte dabei alles in den Zellen zentriert? Außerdem:wie mache ich das, ohne neue Befehle einzugeben?

Antwort1

arraybietet eine Spaltenspezifikation w{<align>}{<width>}, die Sie verwenden können. Insbesondere würden die Spalten Folgendes verwenden w{c}{2cm}:

Bildbeschreibung hier eingeben

\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}

Antwort2

Mit {NiceTabular}von nicematrixhaben Sie einen Schlüssel 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}

Ausgabe des obigen Codes

Antwort3

Deine Abfrage lässt offen, ob es 2cmsich um die nutzbare oder die Gesamtbreite der Spalte handeln soll.

  • Wenn es das istverwendbarSpaltenbreite kann 2cmdirekt im zweiten Argument des wSpaltentyps verwendet werden; siehe@Werners Antwort.

  • Wenn umgekehrt 2cmdasgesamtSpaltenbreite, kann der wSpaltentyp weiterhin verwendet werden, muss nun aber abgezogen werden, 2\tabcolsepum 2cmdie nutzbare Spaltenbreite zu erhalten; unten finden Sie ein Beispiel, wie dies gemacht werden kann.

Bildbeschreibung hier eingeben

\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}

verwandte Informationen