diff -ruN paps-0.6.6.orig/src/paps.1 paps-0.6.6/src/paps.1 --- paps-0.6.6.orig/src/paps.1 2006-06-20 04:09:58.000000000 +0900 +++ paps-0.6.6/src/paps.1 2006-06-20 04:12:23.000000000 +0900 @@ -34,11 +34,8 @@ .B \-\-columns=cl Number of columns output. Default is 1. .TP -.B \-\-font\-scale=fs -Font scaling. Default is 12. -.TP -.B \-\-family=f -Pango ft2 font family. Default is Monospace. +.B \-\-font=desc +Set the font description. Default is Monospace 12. .TP .B \-\-rtl Do rtl layout. diff -ruN paps-0.6.6.orig/src/paps.c paps-0.6.6/src/paps.c --- paps-0.6.6.orig/src/paps.c 2006-06-20 04:09:58.000000000 +0900 +++ paps-0.6.6/src/paps.c 2006-06-20 04:01:57.000000000 +0900 @@ -30,7 +30,11 @@ #include #define BUFSIZE 1024 -#define HEADER_FONT_SCALE 12 +#define DEFAULT_FONT_FAMILY "Monospace" +#define DEFAULT_FONT_SIZE 12 +#define HEADER_FONT_FAMILY "Monospace Bold" +#define HEADER_FONT_SCALE 12 +#define MAKE_FONT_NAME(f,s) f " " #s typedef enum { PAPER_TYPE_A4 = 0, @@ -187,15 +191,14 @@ int main(int argc, char *argv[]) { gboolean do_landscape = FALSE, do_rtl = FALSE, do_justify = FALSE, do_draw_header = FALSE; - int num_columns = 1, font_scale = 12; + int num_columns = 1; int top_margin = 36, bottom_margin = 36, right_margin = 36, left_margin = 36; - char *font_family = "Monospace", *encoding = NULL; + gchar *font = MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE), *encoding = NULL; GOptionContext *ctxt = g_option_context_new("[text file]"); GOptionEntry entries[] = { {"landscape", 0, 0, G_OPTION_ARG_NONE, &do_landscape, "Landscape output. (Default: portrait)", NULL}, {"columns", 0, 0, G_OPTION_ARG_INT, &num_columns, "Number of columns output. (Default: 1)", "NUM"}, - {"font-scale", 0, 0, G_OPTION_ARG_INT, &font_scale, "Font scaling. (Default: 12)", "NUM"}, - {"family", 0, 0, G_OPTION_ARG_STRING, &font_family, "Pango FT2 font family. (Default: Monospace)", "FAMILY"}, + {"font", 0, 0, G_OPTION_ARG_STRING, &font, "Set the font description. (Default: Monospace 12)", "DESC"}, {"rtl", 0, 0, G_OPTION_ARG_NONE, &do_rtl, "Do rtl layout.", NULL}, {"justify", 0, 0, G_OPTION_ARG_NONE, &do_justify, "Do justify the lines.", NULL}, {"paper", 0, 0, G_OPTION_ARG_CALLBACK, _paps_arg_paper_cb, @@ -210,11 +213,8 @@ {NULL} }; GError *error = NULL; - char *filename_in; - char *title; FILE *IN, *OUT = NULL; page_layout_t page_layout; - char *text; GList *paragraphs; GList *pango_lines; PangoContext *pango_context; @@ -228,7 +228,8 @@ int do_tumble = -1; /* -1 means not initialized */ int do_duplex = -1; gchar *paps_header = NULL; - gchar *header_font_desc = "Monospace Bold 12"; + gchar *header_font_desc = MAKE_FONT_NAME (HEADER_FONT_FAMILY, HEADER_FONT_SIZE); + gchar *filename_in, *title, *text; int header_sep = 20; GIConv *cvh = NULL; @@ -271,13 +272,12 @@ pango_context_set_language (pango_context, pango_language_from_string ("en_US")); pango_context_set_base_dir (pango_context, pango_dir); - font_description = pango_font_description_new (); - pango_font_description_set_family (font_description, g_strdup(font_family)); - pango_font_description_set_style (font_description, PANGO_STYLE_NORMAL); - pango_font_description_set_variant (font_description, PANGO_VARIANT_NORMAL); - pango_font_description_set_weight (font_description, PANGO_WEIGHT_NORMAL); - pango_font_description_set_stretch (font_description, PANGO_STRETCH_NORMAL); - pango_font_description_set_size (font_description, font_scale * PANGO_SCALE); + /* create the font description */ + font_description = pango_font_description_from_string (font); + if ((pango_font_description_get_set_fields (font_description) & PANGO_FONT_MASK_FAMILY) == 0) + pango_font_description_set_family (font_description, DEFAULT_FONT_FAMILY); + if ((pango_font_description_get_set_fields (font_description) & PANGO_FONT_MASK_SIZE) == 0) + pango_font_description_set_size (font_description, DEFAULT_FONT_SIZE * PANGO_SCALE); pango_context_set_font_description (pango_context, font_description);