4 static void latex_doc_beg(struct doc
*doc
)
6 doc_write(doc
, "\\begin{document}\n");
9 static void latex_doc_end(struct doc
*doc
)
11 doc_write(doc
, "\\end{document}\n");
14 static void latex_head_beg(struct doc
*doc
, int level
)
18 doc_write(doc
, "\\section*{");
21 doc_write(doc
, "\\subsection*{");
24 doc_write(doc
, "\\subsection*{");
28 static void latex_head_end(struct doc
*doc
, int level
)
30 doc_write(doc
, "}\n");
33 static void latex_par_beg(struct doc
*doc
)
37 static void latex_par_end(struct doc
*doc
)
41 static void latex_put(struct doc
*doc
, char *s
)
46 static void latex_list_beg(struct doc
*doc
)
48 doc_write(doc
, "\\begin{itemize}\n");
51 static void latex_list_end(struct doc
*doc
)
53 doc_write(doc
, "\\end{itemize}\n");
56 static void latex_item_beg(struct doc
*doc
)
58 doc_write(doc
, "\\item ");
61 static void latex_item_end(struct doc
*doc
)
66 static void latex_pre_beg(struct doc
*doc
)
68 doc_write(doc
, "\\begin{verbatim}\n");
71 static void latex_pre_end(struct doc
*doc
)
73 doc_write(doc
, "\\end{verbatim}\n");
76 static void latex_formula_beg(struct doc
*doc
)
78 doc_write(doc
, "\\[ ");
81 static void latex_formula_end(struct doc
*doc
)
83 doc_write(doc
, " \\]\n");
86 static void latex_put_emph(struct doc
*doc
, char *s
)
88 doc_write(doc
, "\\emph{");
93 static void latex_put_raw(struct doc
*doc
, char *s
)
98 static void latex_put_ref(struct doc
*doc
, char *s
)
100 doc_write(doc
, "\\cite{");
105 static void latex_put_url(struct doc
*doc
, char *url
, char *desc
)
109 doc_write(doc
, " (");
110 doc_write(doc
, desc
);
115 static void latex_table_beg(struct doc
*doc
, int columns
)
118 doc_write(doc
, "\\begin{tabular}{|");
119 for (i
= 0; i
< columns
; i
++)
120 doc_write(doc
, "l|");
121 doc_write(doc
, "}\n");
124 static void latex_table_end(struct doc
*doc
)
126 doc_write(doc
, "\\hline\n");
127 doc_write(doc
, "\\end{tabular}\n");
130 /* a hack to identify the first entry in each row */
133 static void latex_row_beg(struct doc
*doc
)
136 doc_write(doc
, "\\hline\n");
139 static void latex_row_end(struct doc
*doc
)
141 doc_write(doc
, "\t\\\\\n");
144 static void latex_entry_beg(struct doc
*doc
)
147 doc_write(doc
, "\t& ");
150 static void latex_entry_end(struct doc
*doc
)
154 struct fmt_ops latex_ops
= {
155 .doc_beg
= latex_doc_beg
,
156 .doc_end
= latex_doc_end
,
157 .head_beg
= latex_head_beg
,
158 .head_end
= latex_head_end
,
159 .par_beg
= latex_par_beg
,
160 .par_end
= latex_par_end
,
161 .list_beg
= latex_list_beg
,
162 .list_end
= latex_list_end
,
163 .item_beg
= latex_item_beg
,
164 .item_end
= latex_item_end
,
165 .pre_beg
= latex_pre_beg
,
166 .pre_end
= latex_pre_end
,
167 .formula_beg
= latex_formula_beg
,
168 .formula_end
= latex_formula_end
,
169 .table_beg
= latex_table_beg
,
170 .table_end
= latex_table_end
,
171 .row_beg
= latex_row_beg
,
172 .row_end
= latex_row_end
,
173 .entry_beg
= latex_entry_beg
,
174 .entry_end
= latex_entry_end
,
175 .put_emph
= latex_put_emph
,
176 .put_raw
= latex_put_raw
,
177 .put_ref
= latex_put_ref
,
178 .put_url
= latex_put_url
,