2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Создание таблиц. Не хватает возможностей? {longtable}
Сообщение18.03.2015, 11:59 
Здравствуйте! Может я не полностью разобрался в настройках этого пакета, или мне нужно использовать другой пакет? Нормоконтроль требует некоторых извращений в плане шапок таблиц при их переносе.

Как выглядит таблица, если она влезла на страницу и ее на надо разрывать на две части:
http://puu.sh/gFaYm/fddfeb4a14.png

Как выглядит она же, если ее надо разрывать:
http://puu.sh/gFb0y/54b3ba08cc.png
не использую тег img - больно много места занимают изображения.

То есть при разрыве таблицы у нее в шапке появляется строка с номерами столбцов. Очевидно, что на новых страницах это сделать легко:
Код:
\multicolumn{4}{l}{Продолжение таблицы 1}\\
\hline
1 & 2 & 3 & 4\\
\hline \endhead

Однако, если задать то же самое через \endfirsthead, то строка с номерами столбцов будет присутствовать в шапке даже если таблица влезла на страницу и не переносится.
Да, можно после сборки посмотреть, разрывается таблица или нет и добавить/убрать в шапке эту строку, но все учебники по LaTeX твердят нам "Не надо делать руками то, что может сделать за на ЛаТеХ". Как, на ваш взгляд, можно решить данную проблему?

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение18.03.2015, 15:48 
Хм. Боюсь, никак. Ну, то бишь, проверить, сколько осталось до конца страницы и подставить один из двух вариантов $\TeX$ умеет, но муторно это. Ручная доводка документу всё равно потребуется, при всём своём уме $\TeX$-таки всёж программа.

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение18.03.2015, 20:25 

(Оффтоп)

Графу "п/п" исключить, нумерацию перенести в "Наименование", названия граф отцентрировать по вертикали и горизонтали и определиться с разделителем целой и дробной части.

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение19.03.2015, 19:38 
Scripach в сообщении #992175 писал(а):

(Оффтоп)

Графу "п/п" исключить, нумерацию перенести в "Наименование", названия граф отцентрировать по вертикали и горизонтали и определиться с разделителем целой и дробной части.
Это какая-то мусорная таблица для примера, но спасибо за подсказку.
iifat в сообщении #992029 писал(а):
Хм. Боюсь, никак. Ну, то бишь, проверить, сколько осталось до конца страницы и подставить один из двух вариантов $\TeX$ умеет, но муторно это. Ручная доводка документу всё равно потребуется, при всём своём уме $\TeX$-таки всёж программа.

Тогда может подскажете, как решить следующую проблему?
Заголовки таблиц должны быть прижаты к краю страницы:
http://puu.sh/gGR2q/2f0413e688.png

Организованы подписи и шапки таблиц следующим образом:
Используется синтаксис LaTeX
\multicolumn{4}{l}{\small Таблица \label{tab:izi} \ref{tab:izi} - название таблицы}\\ % подпись таблицы
\hline
Числа & Цифры & Буквы & Штото\\ % шапка
\hline 1 & 2 & 3 & 4\\ % шапка
\hline \endfirsthead
\multicolumn{4}{l}{\small Продолжение таблицы \ref{tab:izi} }\\ % подпись на след. страницах
\hline
1 & 2 & 3 & 4\\ % шапка на след. страницах
\hline \endhead
 

Понятно, что в начале таблицы легко это сделать - просто подписывать таблицу вне окружения {longtable} и выравнивать по левому краю. Подписи на след страницах не получается так - они находятся в \multicolumn и могут прижаться только к краю ячейки. Так же там нельзя использовать \hspace чтоб отодвинуть надпись влево.

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение20.03.2015, 03:26 
В $\LaTeX$ я не очень. Если можете кинуть полный файл, попробую покрутить. В $\TeX$, в принципе, это делается гориизонтальным материалом — вот как у вас \hline. Начать стоит, возможно, с замены \multicoumn на \hbox, уж не знаю, прокатит ли.

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение20.03.2015, 05:11 
Хм. Или \vbox? Дома посмотрю.

 
 
 
 Re: Создание таблиц. Не хватает возможностей? {longtable}
Сообщение20.03.2015, 10:40 
iifat в сообщении #992865 писал(а):
Если можете кинуть полный файл, попробую покрутить.

Для удобства, разумеется, убрал из преамбулы различные настройки, не относящиеся к делу и текст. Оставил только одну таблицу, чтоб меньше путаницы было.

Документ с таблицей, чтоб "покрутить":
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[14pt,a4paper]{extreport}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage[left=3cm, right=1cm, top=2cm, bottom=2cm]{geometry}
\usepackage{longtable} %долготаблицы

\begin{document}
\begin{longtable}{|*{4}{p{0.18\textwidth}|}}
\multicolumn{4}{l}{\small Таблица \label{tab:izi} \ref{tab:izi} - какая то ерунда}\\
\hline
Числа & Цифры & Буквы & Штото\\
\hline 1 & 2 & 3 & 4\\
\hline \endfirsthead
\multicolumn{4}{l}{\small Продолжение таблицы \ref{tab:izi} }\\
\hline
1 & 2 & 3 & 4\\
\hline \endhead
Текст & 1234 & f(x) & 3.1415\\ \hline
Текст & 1234 & f(x) & 3.1415\\ \hline
%Навставлять строки таблицы
Текст & 1234 & f(x) & 3.1415\\ \hline
\end{longtable}
\end{document}
 


А вообще, если вдруг понадобится узнать, какие пакеты подключены и что вообще творится в преамбуле, на всякий случай скину и весь документ. Все равно там текста нет, все разделы подключаются через \input{}.

Оригинал моего документа:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[14pt,a4paper]{extreport}
\usepackage[utf8]{inputenc} %кодировка документа
\usepackage{pscyr} %пакет нормальных шрифтов
\usepackage[russian]{babel} %поддержка русского языка
\parindent=1.25cm %Величина абзацного отступа
\usepackage[left=3cm, right=1cm, top=2cm, bottom=2cm]{geometry} %настройка полей

\usepackage[miktex]{gnuplottex} %графики gnuplot внутри документа

\usepackage{caption} %подписи к таблицам и рисункам
\captionsetup{margin=10pt,font=small,labelfont=md, labelsep=endash,figurename=Рисунок} %их настройка

\usepackage{titlesec}%работа с заголовками
\titleformat{\chapter}{\normalfont\normalsize\mdseries\center}{\thechapter}{1em}{} %оформление заголовков (в качестве разделов используется верхний уровень рубрикации "Глава")
\titlespacing*{\chapter}{0pt}{-30pt}{14pt} %настройка отступов до и после заголовков
\titleformat{\section}{\normalfont\normalsize\mdseries}{\thesection}{1em}{} %оформление подзаголовков
\titlespacing*{\section}{\parindent}{10pt}{14pt}  %настройка отступов до и после подзаголовков (отступ ДО опирается на обзацный отступ)

\usepackage{tocloft}%работа с содержанием
\renewcommand{\cfttoctitlefont}{\hspace{0.38\textwidth}\mdseries \vspace{0pt}} %слово 'содержание', его положение и отступ после него
\renewcommand{\cftaftertoctitle}{\mbox{}\hfill \\ \mbox{}\hfill{\normalsize Стр.}\vspace{-40pt}} %добавление "Стр"
\renewcommand{\cftbeforetoctitleskip}{-30pt} %отступ "содержания" от верхнего края страницы

%Эти настройки должны быть связаны с абзацным отступом, но связь не задана.
\renewcommand{\cftchapfont}{\hspace{1.95cm} \mdseries } %красная строка для раздела
\renewcommand{\cftchapleader}{\mdseries\cftdotfill{\cftdotsep}} %точки до страниц у разделов
\renewcommand{\cftchappagefont}{\mdseries} %оформление номеров страниц разделов
\renewcommand{\cftchapindent}{-0.75cm} %сдвиг разделов
\renewcommand{\cftchapnumwidth}{0.75cm} %отступ от номера раздела до названия
\renewcommand{\cftsecfont}{\hspace{2.5cm}} %Красная строка подраздела
\renewcommand{\cftsecindent}{-1.15cm} %сдвиг подразделов
\renewcommand{\cftparskip}{0pt} %итрервалы в оглавлении
\renewcommand{\cftdotsep}{1} %интервал между точками в содержании
\renewcommand{\cftbeforechapskip}{0cm} %интервалы до разделов
\cftsetpnumwidth{0.5cm} %расстояние от последней точки но номера страницы

\usepackage{indentfirst} %абзацный отступ и перед первый предложением тоже

\renewcommand{\baselinestretch}{1.35} %полуторный интервал
\renewcommand{\rmdefault}{ftm} %Times New Roman}
\usepackage{amsmath} % Без него не работают русские буквы в формулах

\sloppy %автовыравнивание по ширине

%определение шрифтов
\renewcommand{\tiny}{\fontsize{7}{8.4pt}\selectfont}
\renewcommand{\scriptsize}{\fontsize{9}{11pt}\selectfont}
\renewcommand{\footnotesize}{\fontsize{11}{13.6pt}\selectfont}
\renewcommand{\small}{\fontsize{12}{14.5pt}\selectfont}
\renewcommand{\normalsize}{\fontsize{14}{18pt}\selectfont}
\renewcommand{\large}{\fontsize{16}{20pt}\selectfont}
\renewcommand{\Large}{\fontsize{18}{23pt}\selectfont}
\renewcommand{\LARGE}{\fontsize{25}{30pt}\selectfont}

\usepackage{longtable} %долготаблицы

%%%%%%%%%%%%%%%%% Отступы до и после изображений, таблиц и формул
\newlength{\EqVspaceTop}
\newlength{\EqVspaceBot}
\newlength{\ImgVspaceTop}
\newlength{\ImgVspaceBot}
\newlength{\ImgVspaceCap}
\newlength{\TabVspaceTop}
\newlength{\TabVspaceBot}
%%%%%
\EqVspaceTop=10pt
\EqVspaceBot=20pt
\ImgVspaceTop=10pt
\ImgVspaceBot=10pt
\ImgVspaceCap=-25pt %команда caption под рисунками создает отступ, тут его компенсируем
\TabVspaceTop=0pt
\TabVspaceBot=0pt
%%%%%%%%%%%%%%%%%

\usepackage{graphicx} %поддержка работы с изображениями
\graphicspath{{Images/}} %каталог с изображениями
\DeclareGraphicsExtensions{.pdf,.png,.jpg} %какие расширения искать?

\begin{document}
\input{Parts/Title}% титульный лист
\renewcommand{\contentsname}{\normalsize СОДЕРЖАНИЕ} %замена надписи "Оглавление" на "СОДЕРЖАНИЕ"
\tableofcontents % оглавление, генерируется автоматически
\input{Parts/Intro}% введение
\input{Parts/ComparativeAnalysis}% Раздел 1
\input{Parts/CompensationMethod}% Раздел 2
\input{Parts/AlgorithmDevelopment}% Раздел 3
\input{Parts/Economic}% Раздел 4
\input{Parts/Safety}% Раздел 5
\input{Parts/Conclusion}% заключение
\end{document}
 

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group