| 2276 | |
| 2277 | |
| 2278 | static void |
| 2279 | latex_escaped_print(const char *in, FILE *fout) |
| 2280 | { |
| 2281 | const char *p; |
| 2282 | |
| 2283 | for (p = in; *p; p++) |
| 2284 | switch (*p) |
| 2285 | { |
| 2286 | /* |
| 2287 | * We convert ASCII characters per the recommendations in |
| 2288 | * Scott Pakin's "The Comprehensive LATEX Symbol List", |
| 2289 | * available from CTAN. For non-ASCII, you're on your own. |
| 2290 | */ |
| 2291 | case '#': |
| 2292 | fputs("\\#", fout); |
| 2293 | break; |
| 2294 | case '$': |
| 2295 | fputs("\\$", fout); |
| 2296 | break; |
| 2297 | case '%': |
| 2298 | fputs("\\%", fout); |
| 2299 | break; |
| 2300 | case '&': |
| 2301 | fputs("\\&", fout); |
| 2302 | break; |
| 2303 | case '<': |
| 2304 | fputs("\\textless{}", fout); |
| 2305 | break; |
| 2306 | case '>': |
| 2307 | fputs("\\textgreater{}", fout); |
| 2308 | break; |
| 2309 | case '\\': |
| 2310 | fputs("\\textbackslash{}", fout); |
| 2311 | break; |
| 2312 | case '^': |
| 2313 | fputs("\\^{}", fout); |
| 2314 | break; |
| 2315 | case '_': |
| 2316 | fputs("\\_", fout); |
| 2317 | break; |
| 2318 | case '{': |
| 2319 | fputs("\\{", fout); |
| 2320 | break; |
| 2321 | case '|': |
| 2322 | fputs("\\textbar{}", fout); |
| 2323 | break; |
| 2324 | case '}': |
| 2325 | fputs("\\}", fout); |
| 2326 | break; |
| 2327 | case '~': |
| 2328 | fputs("\\~{}", fout); |
| 2329 | break; |
| 2330 | case '\n': |
| 2331 | /* This is not right, but doing it right seems too hard */ |
| 2332 | fputs("\\\\", fout); |
| 2333 | break; |
| 2334 | default: |
| 2335 | fputc(*p, fout); |
no outgoing calls
no test coverage detected