Celdas de igual ancho usando tabular

Celdas de igual ancho usando tabular

¿Es posible dar a estas celdas el mismo ancho que las más anchas de la primera fila (κεῖσθαι?)? (manteniendo el texto centrado). Se debe permitir que las celdas más a la izquierda sean más anchas.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Junicode}

\begin{document}
  \vskip.5\baselineskip
  {\tiny\noindent
  \begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|}
    & οὐσία & ποσὸν & ποιὸν & πρός τι & ποὺ & ποτὲ &
  κεῖσθαι & ἔχειν & ποιεῖν & πάσχειν\\ \hline
    ἐντελεχείᾳ&&&&&&&&&&\\ \hline
    δυνάμει&&&&&&&&&&\\ \hline
  \end{tabular}
  }\vskip.5\baselineskip
\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

(A menos que me equivoque, πάσχεινes un poco más ancho que κεῖσθαι, al menos si la Junicodefuente está en uso).

En el preámbulo del siguiente ejemplo, \mylense configura una variable de longitud denominada y su valor se establece en el valor de {\tiny πάσχειν}. Luego, se define un nuevo tipo de columna, denominado C, que toma un ancho fijo (es decir, \mylen) y centra su contenido. Finalmente, el tabularentorno se configura con 1 columna de tipo cy 10 columnas de tipo C.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Junicode}

\usepackage{array} % for \newcolumntype and \arraybackslash macros
\newlength\mylen
\settowidth\mylen{\tiny πάσχειν}
\newcolumntype{C}{>{\centering\arraybackslash}p{\mylen}}

\begin{document}

  {\tiny\noindent
  \begin{tabular}{|c|*{10}{C|}}
  \hline
  & οὐσία & ποσὸν & ποιὸν & πρός τι & ποὺ & ποτὲ & κεῖσθαι & ἔχειν & ποιεῖν & πάσχειν\\ \hline
  ἐντελεχείᾳ&&&&&&&&&&\\ \hline
  δυνάμει&&&&&&&&&&\\ \hline
  \end{tabular} \par}

\end{document}

Respuesta2

Usar tabularx.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Junicode}

\usepackage{tabularx}

\begin{document}
  \vskip.5\baselineskip
  {\tiny\noindent
    \begin{tabularx}{\textwidth}{@{}*{11}{|>{\centering\arraybackslash}X}@{}|}
      & Οὐσίαn & ποσὸν & ποιὸν & πρός τι & ποὺ & ποτὲ &
      κεῖσθαι & ἔχειν & ποιεῖν & πάσχειν\\ \hline
      ἐντελεχείᾳ&&&&&&&&&&\\ \hline
      δυνάμει&&&&&&&&&&\\ \hline
    \end{tabularx}
  }\vskip.5\baselineskip
\end{document}

Respuesta3

Puede medir cada elemento y luego configurar los elementos del encabezado en un cuadro tan ancho como el elemento más ancho.

\documentclass{article}
\usepackage{fontspec}
%\usepackage{xparse} % fontspec loads it

\setmainfont{Junicode}

\ExplSyntaxOn
\newenvironment{ftabular}[2][c]
 {
  \lawrence_ftabular:nn { #1 } { #2 }
 }
 {
  \endtabular
 }

\tl_new:N \l__lawrence_ftabular_header_tl
\dim_new:N \l__lawrence_ftabular_maxwd_dim
\box_new:N \l__lawrence_ftabular_item_box

\cs_new_protected:Nn \lawrence_ftabular:nn
 {
  \tl_clear:N \l__lawrence_ftabular_header_tl
  \dim_zero:N \l__lawrence_ftabular_maxwd_dim
  \clist_map_inline:nn { #2 }
   {
    \hbox_set:Nn \l__lawrence_ftabular_item_box { ##1 }
    \dim_set:Nn \l__lawrence_ftabular_maxwd_dim
     {
      \dim_max:nn
       { \l__lawrence_ftabular_maxwd_dim }
       { \box_wd:N \l__lawrence_ftabular_item_box }
     }
    \tl_put_right:Nn \l__lawrence_ftabular_header_tl
     { & {\makebox[\l__lawrence_ftabular_maxwd_dim]{##1}} }
   }
  \tl_put_right:Nn \l__lawrence_ftabular_header_tl { \\ \hline }
  \tabular[#1]{ c| *{ \clist_count:n { #2 } } { c| } }
  \tl_use:N \l__lawrence_ftabular_header_tl 
 }
\ExplSyntaxOff

\begin{document}

\begin{center}
\tiny
\begin{ftabular}{
  οὐσία,
  ποσὸν,
  ποιὸν,
  πρός τι,
  ποὺ,
  ποτὲ,
  κεῖσθαι,
  ἔχειν,
  ποιεῖν,
  πάσχειν,
}
ἐντελεχείᾳ&&&&&&&&&&\\ \hline
δυνάμει&&&&&&&&&&\\ \hline
\end{ftabular}
\end{center}

\end{document}

ingrese la descripción de la imagen aquí

Tenga en cuenta que se utilizará la fuente actual para medir. Por ejemplo, si agrego, después \end{center}, el código

\LARGE

\begin{ftabular}{a,bb,cccc,d}
x&&&&\\\hline
y&&&&\\\hline
\end{ftabular}

Obtengo el siguiente resultado

ingrese la descripción de la imagen aquí

información relacionada