dev/c/tex_parser/tex_table.h

61 lines
2.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _TEX_TABLE_H
#define _TEX_TABLE_H
#include <sys/types.h>
#include "xerror.h"
#define MAX_TEX_STACK_LEVEL 128
/* Ячейка.
* Если встречается ячейка с \multicolumn{n}, то
* следующие n-1 ячеек в таблице пустые и при компиляции
* к ним не добавляется символ &
*/
struct cell_s {
char *before;
char *request;
char *after;
};
/* Строка.
* Заканчивается тегом "\tabularnewline"
*/
struct row_s {
char *before;
struct cell_s *cells;
char *after;
};
/* \hline\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В \textnumero{}}\tabularnewline\multicolumn{8}{|c|}{Стенд \textnumero{}18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время:~~~~~~~~~ Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline\hline\endhead
*/
struct header_s {
char *before;
struct row_s *rows;
char *after;
};
/* \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
*/
struct footer_s {
char *before;
struct row_s *rows;
char *after;
};
struct table_s {
size_t document_offset; // offset in the LaTeX document
size_t document_size; // size in the LaTeX document
char *id; // "Drossel1.Table1"
char **column_scheme; // "|>{\centering}m{0.1\paperwidth}"
struct header_s header;
struct footer_s footer;
struct row_s *rows;
};
/* LaTeX table parser
*/
int parse_table(const char *table_source, size_t len, struct table_s *table, struct xerror_s *error);
#endif