2011-06-10 14:31:10 +04:00
|
|
|
|
#ifndef TEX_TABLE_H
|
|
|
|
|
#define TEX_TABLE_H
|
2011-06-07 12:17:19 +04:00
|
|
|
|
|
2011-06-10 14:31:10 +04:00
|
|
|
|
#include <sys/types.h>
|
2011-06-07 12:17:19 +04:00
|
|
|
|
|
2011-06-08 15:13:26 +04:00
|
|
|
|
#include "xerror.h"
|
|
|
|
|
|
2011-06-07 12:17:19 +04:00
|
|
|
|
/* Ячейка.
|
|
|
|
|
* Если встречается ячейка с \multicolumn{n}, то
|
|
|
|
|
* следующие n-1 ячеек в таблице пустые и при компиляции
|
|
|
|
|
* к ним не добавляется символ &
|
|
|
|
|
*/
|
2011-06-10 14:31:10 +04:00
|
|
|
|
struct cell_s {
|
|
|
|
|
char *before;
|
|
|
|
|
char *request;
|
|
|
|
|
char *after;
|
2011-06-07 12:17:19 +04:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Строка.
|
|
|
|
|
* Заканчивается тегом "\tabularnewline"
|
|
|
|
|
*/
|
2011-06-10 14:31:10 +04:00
|
|
|
|
struct row_s {
|
|
|
|
|
char *before;
|
|
|
|
|
struct cell_s *cells;
|
|
|
|
|
char *after;
|
2011-06-07 12:17:19 +04:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* \hline\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В \textnumero{}}\tabularnewline\multicolumn{8}{|c|}{Стенд \textnumero{}18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время:~~~~~~~~~ Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline\hline\endhead
|
|
|
|
|
*/
|
2011-06-10 14:31:10 +04:00
|
|
|
|
struct header_s {
|
|
|
|
|
char *before;
|
|
|
|
|
struct row_s *rows;
|
|
|
|
|
char *after;
|
2011-06-07 12:17:19 +04:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* \hline\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline\hline\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline\hline\endfoot
|
|
|
|
|
*/
|
2011-06-10 14:31:10 +04:00
|
|
|
|
struct footer_s {
|
|
|
|
|
char *before;
|
|
|
|
|
struct row_s *rows;
|
|
|
|
|
char *after;
|
2011-06-07 12:17:19 +04:00
|
|
|
|
};
|
|
|
|
|
|
2011-06-10 14:31:10 +04:00
|
|
|
|
struct table_s {
|
|
|
|
|
char *id; // "Drossel1.Table1"
|
|
|
|
|
char **coumnt_scheme; // "|>{\centering}m{0.1\paperwidth}"
|
|
|
|
|
struct header_s header;
|
|
|
|
|
struct footer_s footer;
|
|
|
|
|
struct row_s *rows;
|
2011-06-07 12:17:19 +04:00
|
|
|
|
};
|
|
|
|
|
|
2011-06-10 14:31:10 +04:00
|
|
|
|
int parse_table(const char *table_source, size_t len, struct table_s *table, struct xerror_s *error);
|
2011-06-07 12:17:19 +04:00
|
|
|
|
|
2011-06-10 14:31:10 +04:00
|
|
|
|
#endif // TEX_TABLE_H
|