
Можно ли задать этим ячейкам ту же ширину, что и самой широкой в первой строке (κεῖσθαι?)? (сохраняя текст по центру). Крайние левые ячейки должны быть шире.
\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}
решение1
(Если я не ошибаюсь, πάσχειν
то он немного шире κεῖσθαι
, по крайней мере, если Junicode
шрифт используется.)
В преамбуле следующего примера \mylen
задается переменная длины с именем , а ее значение устанавливается равным значению . Затем определяется {\tiny πάσχειν}
новый тип столбца с именем , который принимает фиксированную ширину (т. е. ) и центрирует свое содержимое. Наконец, среда задается с 1 столбцом типа и 10 столбцами типа .C
\mylen
tabular
c
C
\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}
решение2
Использовать 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}
решение3
Вы можете измерить каждый элемент, а затем поместить заголовки элементов в поле шириной, равной ширине самого широкого элемента.
\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}
Обратите внимание, что текущий шрифт будет использоваться для измерения. Например, если я добавлю после \end{center}
код
\LARGE
\begin{ftabular}{a,bb,cccc,d}
x&&&&\\\hline
y&&&&\\\hline
\end{ftabular}
Я получаю следующий вывод