根据 tabularray 单元格内的文本长度更改字体大小

根据 tabularray 单元格内的文本长度更改字体大小

我有一张tabularray表格,我想将其单元格高度固定为 2 厘米。因此,如果其中一个单元格中有一段较长的文本输入,那么我希望文本大小较小。

我还没有看到过在表格单元格内完成这一任务的这样的问题,所以这就是我提出这个问题的原因。

我该怎么做?任何想法都会很有帮助。

MWE;单元格高度改变

\documentclass[11pt]{article}
\usepackage{tabularray}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\newfontfamily\englishfont{Arial}[Script=Latin,Language=English]
\begin{document}

\begin{tblr}{width=10cm,colspec={X[c]},rows={ht=2cm},hlines,vlines}
 A very long piece of text that should be typed in smaller font size. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\
 short entry, so cell height should be 2 cm \\
 item 3 \\
 item 4 \\
 item 5 \\
 item 6 \\
 item 7 \\
\end{tblr}
\end{document}

答案1

您可以尝试使用包\tcboxfit中的命令tcolorbox。我对这个包不太熟悉,以下答案中的一些代码是从这里复制的回答

\documentclass[11pt]{article}
\usepackage[a4paper,margin=5mm]{geometry}
\usepackage{tabularray}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\newfontfamily\englishfont{Arial}[Script=Latin,Language=English]
\usepackage[most]{tcolorbox}
\tcbset{
  width=10cm-12.8pt,height=2cm, boxrule=0pt, frame empty,
  left=0pt, right=0pt, top=0pt, bottom=0pt,
  colback=white, nobeforeafter, valign=center, halign=center,
  size=tight,
  fit fontsize macros,
  fit algorithm=areasize
}
\begin{document}

\noindent
\begin{tblr}[t]{width=10cm,colspec={X[c,cmd=\tcboxfit]},rows={ht=2cm},hlines,vlines,stretch=0}
 A very long piece of text that should be typed in smaller font size. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\
 short entry, so cell height should be 2 cm \\
 item 3 \\
\end{tblr}
\begin{tblr}[t]{width=10cm,colspec={X[c]},rows={ht=2cm},hlines,vlines}
 A very long piece of text that should be typed in smaller font size. Lorem ipsum dolor sit amet, consectetur adipiscing elit, \\
 short entry, so cell height should be 2 cm \\
 item 3 \\
\end{tblr}
\par\noindent
\begin{tblr}[t]{width=10cm,colspec={X[c]},rows={ht=2cm},hlines,vlines}
 A very long piece of text that should be typed in smaller font size. Lorem ipsum dolor sit amet, consectetur adipiscing elit, \\
 short entry, so cell height should be 2 cm \\
 item 3 \\
\end{tblr}
\end{document}

在此处输入图片描述

相关内容