我有一些由我编写的外部应用程序以编程方式创建的 latex 表。其中一些比 大\textwidth
。在这种情况下,我需要重新缩放它们以适应\textwidth
(否则我会保持原样)。我知道如何进行重新缩放:
\resizebox{\textwidth}{!}{
% code for my table
}
但是,在我编译 latex 代码并亲眼看到之前,我不知道表格是否需要重新缩放。我无法根据列数合理地估计它们的宽度,因为它们包含不同大小的对象。
所以我的问题是:在乳胶中,有没有一种方法可以根据表格的代码来测量表格的宽度,然后有条件地将其应用于\resizebox
它?
不管怎样,我已经使用了其中一些表,\begin{tabular}
而其他一些表则使用了包\begin{tblr}
中的一些表tabularray
。
编辑:这些表格包含的符号缩放得很好。可以有很多列。换行不是一种选择,也不会有帮助。
答案1
不要在表格上使用 \resizebox,否则会得到不一致的字体大小,但是
\resizebox{\ifdim\textwidth>\width\width\else\textwidth\fi}{!}
按照您的要求,通常更好的方法是测量宽度(通过保存在框中),然后如果宽度太大,请选择\small
或\footnotesize
任何适合的宽度。但重新执行表格(而不是简单地缩放它)意味着您必须担心任何计数器或文件写入,您需要避免重复执行。