
У меня есть таблица, которую можно выровнять по ширине столбца, но таблица является частью подпункта. Под подпунктом я подразумеваю (пункт внутри пункта или пункт внутри списка пунктов), ширина которого должна быть меньше столбца. Это страница из 2 столбцов. Поэтому мне нужно выровнять ее по ширине подпункта. Вот мой код:
\begin{table}[ht]
\centering
\caption{Time complexity for heap operations}
\setlength{\tabcolsep}{4pt}
\renewcommand{\arraystretch}{1.2}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{cccc}
\hline\hline
Implementation & deletemin(d) & insert/decreasekey(i) & {|V| x d + (|V| + |E| x i ) }\\
\hline
Binary heap & O(log |V|) & O(log |V|) & O((|V| + |E| )log |V|) \\
d-ary heap & O(\[\dfrac{dlog|V|}{log d}\]) & O(\[\dfrac{log|V|}{log d}\]) & O((|V|\dot d + |E| )\[\dfrac{log|V|}{log d}\]) \\
Fibonacci heap & O(log |V|) & O(1) (amortized) &O(|V|log |V| + |E|) \\
\end{tabular}}
решение1
Если таблица является частью структуры списка, вы можете задать ее размер, \linewidth
а не \columnwidth
, но вы также должнытолькоесть tabular
и удалить table
окружение. Единственная цель table
— указать, что таблица является плавающей средой, которую можно перемещать для облегчения разрыва страниц, поэтому она может не отображаться в списке, поэтому по замыслу окружение таблицы сбрасывает большинство настроек, поэтому на них не влияет окружение, в котором вы установили таблицу.
Я бы никогда не применил \resizebox
к таблице, он создает размеры шрифтов, которые не соответствуют остальной части документа. Вы можете использовать tabular*
для принудительного изменения ширины таблицы \linewidth
без необходимости искажать размер шрифта.