LINUX.ORG.RU

LaTeX и таблицы

 ,


0

2

Всем доброго времени суток.

Тут могла быть большая тирада о том, что я думаю о таблицах в латехе, но я слишком устал, так что тут скорее о проблеме.

Есть таблица, проблема в том, что она дюже широкая. Первоначальное решение:

\begin{table}[h!]
	\centering
	\caption{Исходные данные}
	\resizebox{\textwidth}{!}{
		\begin{tabular}{|c|p{35mm}|l|l|}
			\hline
			\multicolumn{1}{|c|}{Переменная} & \multicolumn{1}{|c|}{Назначение} & \multicolumn{1}{|c|}{Значение} & \multicolumn{1}{|c|}{Идентификатор}\\ 
			\hline
			\nbr & Номер бригады & $\nbr = 5$ & $\nbr = 5$ \\ 
			\hline
			\specialcell{t}{c}{$b_0$ \\ $b_1$ \\ $b_2$} & Коэффициенты числителя передаточной функции & \specialcell{t}{l}{$b_0 = 0.5 + 0.02$ \\ $b_1 = b_0(-1)^{\nbr + 1} (0.9822 + 0.0178\nbr)$ \\ $b_2 = b_0[0.8 +  0.2 (\nbr \mod 5)]$} & \specialcell{t}{l}{Вектор \\ $b = [\dots]$} \\ 
			\hline
			\specialcell{t}{c}{$a_0$ \\ $a_1$ \\ $a_2$} & Коэффициенты знаменателя передаточной функции & \specialcell{t}{l}{$a_0 = 1$ \\ $a_1 = (-1)^{\nbr} (0.7778 + 0.025\nbr)$ \\ $a_2 = 0.64 + 0.006 \nbr$} & \specialcell{t}{l}{Вектор \\ $a = [1\dots]$} \\ 
			\hline
			$N_1$ & Длина ИХ & $N_1 = \nbr \mod 10 + 20$ & $N_1 = $ \\ 
			\hline
			$N_2$ & Длина воздействия  & $N_2 = \nbr \mod 10 + 30$ & $N_2 = $  \\ 
			\hline
			$f_{\textup{д}}$ & Частота дискретизации & $f_{\textup{д}} = 1000 \nbr$ & $F_S = $ \\ 
			\hline
		\end{tabular}
	}
\end{table}
И я бы честно так и оставил, ибо сама таблица выглядит отлично (использовался макрос на \specialsell ибо в multirow для второго и третьего столбца тогда не получилось бы сделать адекватно ячейки с переносом через p), но, твоюж за ногу: захотел сделать нормальный заголовок с выравниванием по правому краю. Я был уверен, что это просто, но опять костыли из задницы, что геморрой зачесался тут же.

Пошел гуглить возможное решение и оно было здесь: http://tex.stackexchange.com/questions/57106/table-caption-align-top-right

Сtable действительно оказался удобным и понятным пакетом с документацией, особенно после ^$%!@#$! с дефолтными пакетами. Но, черт-побери, там не работает resizebox. Вариант через \newgeometry{..} \restoregeometry, как заметил автор clang в 6м разделе отсюда http://texdoc.net/texmf-dist/doc/latex/ctable/ctable.pdf выставит таблицу на отдельном листе, что отвратительно. Есть вариант через \ctable [doinside = \footnotesize], к примеру, но это во-первых руками подбирать размер шрифта, а строки могут добавиться, а во-вторых меняется начертание шрифта, в отличие от \resizebox, где он по сути просто скалируется.

В итоге я написал создателю на почту (да простит он мне ломаный английский), но, поскольку последняя правка в пакете была чуть больше года назад, то есть большая вероятность, что он не ответит, а если и ответит, то ctable может и не суметь сделать желаемого.

Были ли у кого-то такие проблемы и как они решались?

★★

Последнее исправление: JAkutenshi (всего исправлений: 1)

Я бы сделал так:

\usepackage{ctable}
\captionsetup[table]{justification=raggedleft,singlelinecheck=off}
\begin{document}
\begin{table}[h!]
\centering
\caption{Исходные данные}
\small
\begin{tabular}{|c|p{35mm}|l|l|}
\hline
\multicolumn{1}{|c|}{Переменная} & \multicolumn{1}{c|}{Назначение} & \multicolumn{1}{c|}{Значение} & \multicolumn{1}{c|}{Идентификатор}\\ 
\hline
\nbr & Номер бригады & $\nbr = 5$ & $\nbr = 5$ \\ 
\hline
$b_0$ & \multirow{3}{3.5cm}{Коэффициенты числителя передаточной функции} & $b_0 = 0.5 + 0.02$& Вектор \\
$b_1$ & &   $b_1 = b_0(-1)^{\nbr + 1} (0.9822 + 0.0178\nbr)$&$b = [\dots]$\\
$b_2$ & & $b_2 = b_0[0.8 +  0.2 (\nbr \mod 5)]$ &  \\ 
&&&\\
\hline
\end{tabular}
\end{table}
\end{document}
ИМХО масштабировать таблицу - зло. Размер шрифта будет свой у каждой таблицы, что смотрится не очень красиво.

Ну и совсем уж оффтоп. Ни разу не видел нормативных документов требующих название таблицы выравнивать по правому краю.

einhander ★★★★★
()
Ответ на: комментарий от einhander

Это отчет вузу.

Да, в ctable я так же ставлю doinside=\small, но все-равно не влезает целиком, точнее на поля влезает, поэтому \footnotesize.

А по поводу сканирования: таблицы разные, если две таблицы не помещается - почему бы их и не уменьшить. Ибо шрифт с командами размера шрифта все-равно выглядит отличным от основного текста обычного размера.

JAkutenshi ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.