aboutsummaryrefslogtreecommitdiff
path: root/src/fe_utils/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe_utils/print.c')
-rw-r--r--src/fe_utils/print.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/src/fe_utils/print.c b/src/fe_utils/print.c
index cb9a9a06131..22f67710d2a 100644
--- a/src/fe_utils/print.c
+++ b/src/fe_utils/print.c
@@ -2187,14 +2187,34 @@ latex_escaped_print(const char *in, FILE *fout)
for (p = in; *p; p++)
switch (*p)
{
- case '&':
- fputs("\\&", fout);
+ /*
+ * We convert ASCII characters per the recommendations in
+ * Scott Pakin's "The Comprehensive LATEX Symbol List",
+ * available from CTAN. For non-ASCII, you're on your own.
+ */
+ case '#':
+ fputs("\\#", fout);
+ break;
+ case '$':
+ fputs("\\$", fout);
break;
case '%':
fputs("\\%", fout);
break;
- case '$':
- fputs("\\$", fout);
+ case '&':
+ fputs("\\&", fout);
+ break;
+ case '<':
+ fputs("\\textless{}", fout);
+ break;
+ case '>':
+ fputs("\\textgreater{}", fout);
+ break;
+ case '\\':
+ fputs("\\textbackslash{}", fout);
+ break;
+ case '^':
+ fputs("\\^{}", fout);
break;
case '_':
fputs("\\_", fout);
@@ -2202,13 +2222,17 @@ latex_escaped_print(const char *in, FILE *fout)
case '{':
fputs("\\{", fout);
break;
+ case '|':
+ fputs("\\textbar{}", fout);
+ break;
case '}':
fputs("\\}", fout);
break;
- case '\\':
- fputs("\\backslash", fout);
+ case '~':
+ fputs("\\~{}", fout);
break;
case '\n':
+ /* This is not right, but doing it right seems too hard */
fputs("\\\\", fout);
break;
default: