- }
- else if (is_message_item (output_item))
- {
- const struct message_item *message_item = to_message_item (output_item);
- char *s = msg_to_string (message_item_get_msg (message_item));
- tex_escape_string (tex, s, false);
- shipout (&tex->token_list, "\\par\n");
- free (s);
+ break;
+
+ case OUTPUT_ITEM_GROUP:
+ break;
+
+ case OUTPUT_ITEM_IMAGE:
+ {
+ char *file_name = xr_write_png_image (
+ item->image, tex->chart_file_name, tex->n_charts++);
+ if (file_name != NULL)
+ {
+ shipout (&tex->token_list, "\\includegraphics{%s}\n", file_name);
+ tex->require_graphics = true;
+ free (file_name);
+ }
+ }
+ break;
+
+ case OUTPUT_ITEM_MESSAGE:
+ {
+ char *s = msg_to_string (item->message);
+ tex_escape_string (tex, s, false);
+ shipout (&tex->token_list, "\\par\n");
+ free (s);
+ }
+ break;
+
+ case OUTPUT_ITEM_PAGE_BREAK:
+ break;
+
+ case OUTPUT_ITEM_TABLE:
+ tex_output_table (tex, item->table);
+ break;
+
+ case OUTPUT_ITEM_TEXT:
+ {
+ char *s = text_item_get_plain_text (item);
+
+ switch (item->text.subtype)
+ {
+ case TEXT_ITEM_PAGE_TITLE:
+ shipout (&tex->token_list, "\\headline={\\bf ");
+ tex_escape_string (tex, s, false);
+ shipout (&tex->token_list, "\\hfil}\n");
+ break;
+
+ case TEXT_ITEM_LOG:
+ shipout (&tex->token_list, "{\\tt ");
+ tex_escape_string (tex, s, false);
+ shipout (&tex->token_list, "}\\par\n\n");
+ break;
+
+ case TEXT_ITEM_SYNTAX:
+ /* So far as I'm aware, this can never happen. */
+ default:
+ printf ("Unhandled type %d\n", item->text.subtype);
+ break;
+ }
+ free (s);
+ }
+ break;