#ifndef MACROS__H #define MACROS__H /* ** tr2latex - troff to LaTeX converter ** COPYRIGHT (C) 1987 Kamal Al-Yahya, 1991,1992 Christian Engel ** ** Module: macros.h ** ** This file contains the list of non-math macros and plain troff macros. ** Do NOT forget to put the dot for the troff macros, and the backslash ** for TeX macros (two backslashes, one for escape). ** The third column in the list is 0 for macros that have no arguments ** and either 1 or 2 for those that do. If it is 1, then only one line ** will be read as an argument. If it is 2, then lines will be read until ** properly terminated. Arguments for ms macros are terminated by an ms macro ** (e.g. .PP). Plain troff macros are terminated after reading the desired ** number of lines specified by the macro (e.g. .ce 5 will centerline 5 ** lines). The fourth column specifies whether the macro implies a paragraph ** break (par > 1) or not (par = 0). This is needed to terminate some ** environments. If .LP, or .PP, par=1; if .IP, par=2; if .TP, par=3; ** if .QP, par=4. */ struct macro_table { const char *troff_mac, *tex_mac; int arg, macpar; } macro[] = { /* troff macro TeX macro argument par */ { ".1C", "\\onecolumn", 0, 1 }, { ".2C", "\\twocolumn", 0, 1 }, /* ".AB", "defined in program" */ { ".AE", "\\end{abstract}", 0, 1 }, { ".AI", "\\authoraff", 2, 1 }, { ".AU", "\\author", 2, 1 }, { ".Ac", "\\ACK", 0, 1 }, /* ".B", "defined in program" */ { ".B1", "\\boxit{", 0, 0 }, { ".B2", "}", 0, 0 }, /* ".BX", "defined in program" */ { ".DE", "\\end{display}", 0, 0 }, /* { ".DS", "\\displaybegin", 0, 1 },*/ /* ".ID", "defined in program" */ { ".LD", "\\begin{display}[L]", 0, 1 }, { ".CD", "\\begin{display}[C]", 0, 1 }, { ".BD", "\\begin{display}[B]", 0, 1 }, /* ".EF", "defined in program" */ /* ".EH", "defined in program" */ /* ".EN", "defined in program" */ /* ".EW", "defined in program" */ { ".FE", "}", 0, 0 }, { ".FS", "\\footnote{", 0, 0 }, /* ".I", "defined in program" */ { ".Ic", "\\caption{", 0, 1 }, { ".Ie", "}\\end{figure}", 0, 1 }, { ".Is", "\\begin{figure}", 0, 1 }, /* { ".KE", "defined in program" */ /* { ".KF", "defined in program" */ /* { ".KS", "defined in program" */ { ".LG", "\\LarGer", 0, 0 }, { ".LP", "\\par\\noindent", 0, 1 }, { ".MH", "\\mhead", 2, 1 }, { ".ND", "\\centerfoot", 1, 0 }, /* { ".NH", "defined in program", 1, 1 },*/ { ".NL", "\\NormaLfont", 0, 0 }, /* { ".OH", "defined in program" */ /* { ".OF", "defined in program" */ { ".P1", "\\thispagestyle{sep}", 0, 1 }, { ".PP", "\\par", 0, 1 }, { ".PX", "\\tableofcontents", 0, 1 }, { ".QE", "\\end{quotation}", 0, 1 }, /* { ".QP", "defined in program" */ { ".QS", "\\begin{quotation}", 0, 1 }, /* { ".R", "defined in program" */ /* { ".RE", "defined in program" */ /* { ".RS", "defined in program" */ { ".SH", "\\shead", 1, 1 }, { ".SM", "\\SMaller", 0, 0 }, { ".TH", "\\phead", 1, 0 }, { ".TC", "\\tableofcontents", 0, 1 }, { ".TL", "\\title", 2, 1 }, { ".UC", "", 0, 0 }, { ".UL", "\\undertext", 1, 0 }, { ".XP", "\\XParagraph", 0, 1 }, { ".XS", "\\addcontensline{toc}{section}{", 0, 0 }, { ".XA", "}\n\\addcontensline{toc}{section}{", 0, 0 }, { ".XE", "{", 0, 0 }, { ".ad", "\\adjust", 1, 1 }, { ".bp", "\\newpage", 0, 1 }, { ".br", "\\nwl", 0, 0 }, { ".ce", "\\cntr", 2, 0 }, { ".cu", "\\undertext", 2, 0 }, { ".fi", "\\fill", 0, 0 }, { ".na", "\\raggedright", 0, 0 }, { ".nf", "\\nofill", 0, 0 }, { ".ns", "", 0, 0 }, { ".ul", "\\undertext", 2, 0 } }; #endif