Células de igual largura usando tabela

Células de igual largura usando tabela

É possível dar a essas células a mesma largura que a mais larga da primeira linha (κεῖσθαι?)? (mantendo o texto centralizado). As células mais à esquerda devem ser mais largas.

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

insira a descrição da imagem aqui

Responder1

(A menos que eu esteja enganado, πάσχεινé um pouco mais largo do que κεῖσθαι- pelo menos se a Junicodefonte estiver em uso.)

No preâmbulo do exemplo a seguir, uma variável de comprimento chamada \mylené configurada e seu valor é definido como {\tiny πάσχειν}. Então, um novo tipo de coluna, denominado C, é definido, que assume uma largura fixa (ou seja, \mylen) e centraliza seu conteúdo. Por fim, o tabularambiente é configurado com 1 coluna do tipo ce 10 colunas do tipo C.

insira a descrição da imagem aqui

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

Responder2

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}

Responder3

Você pode medir cada item e depois definir os itens de cabeçalho em uma caixa tão larga quanto o item mais largo.

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

insira a descrição da imagem aqui

Observe que a fonte atual será usada para medição. Por exemplo, se eu adicionar, depois \end{center}, o código

\LARGE

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

Eu recebo a seguinte saída

insira a descrição da imagem aqui

informação relacionada