Zellen gleicher Breite mit tabellarischer

Zellen gleicher Breite mit tabellarischer

Ist es möglich, diesen Zellen die gleiche Breite wie der breitesten in der ersten Reihe (κεῖσθαι?) zu geben? (den Text zentriert halten). Die Zellen ganz links sollten breiter sein dürfen.

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

Bildbeschreibung hier eingeben

Antwort1

(Wenn ich mich nicht irre, πάσχεινist es ganz leicht breiter als κεῖσθαι– zumindest wenn diese JunicodeSchriftart verwendet wird.)

In der Präambel des folgenden Beispiels wird eine Längenvariable mit dem Namen \myleneingerichtet und ihr Wert auf den Wert von gesetzt {\tiny πάσχειν}. Dann Cwird ein neuer Spaltentyp mit dem Namen definiert, der eine feste Breite (nämlich \mylen) annimmt und seinen Inhalt zentriert. Schließlich wird die Umgebung mit 1 Spalte vom Typ und 10 Spalten vom Typ tabulareingerichtet .cC

Bildbeschreibung hier eingeben

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

Antwort2

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

Antwort3

Sie können jedes Element messen und dann die Kopfzeilenelemente in ein Feld einfügen, das so breit ist wie das breiteste Element.

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

Bildbeschreibung hier eingeben

Beachten Sie, dass die aktuelle Schriftart zum Messen verwendet wird. Wenn ich beispielsweise nach \end{center}den Code einfüge

\LARGE

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

Ich erhalte die folgende Ausgabe

Bildbeschreibung hier eingeben

verwandte Informationen