X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/c923eb7f496826aa29015bbef4e855ec42a948c7..2901c406fda763902b1e77263ec273187f7dc75b:/bk_paper.c diff --git a/bk_paper.c b/bk_paper.c index ae5a246..531600c 100644 --- a/bk_paper.c +++ b/bk_paper.c @@ -49,13 +49,10 @@ * * - title pages * - * - ability to import other Type 1 fonts + * - ability to use Type 1 fonts without AFM files * * we need to parse the font to extract its metrics - * * then we pass the font bodily to both PS and PDF so it can - * be included in the output file * * - character substitution for better typography? - * * fi, fl, ffi, ffl ligatures * * use real ellipsis rather than ... * * a hyphen in a word by itself might prefer to be an en-dash * * (Americans might even want a convenient way to use an @@ -1106,6 +1103,7 @@ static para_data *make_para_data(int ptype, int paux, int indent, int rmargin, pdata->rect_type = RECT_NONE; pdata->contents_entry = NULL; pdata->justification = JUST; + pdata->extraflags = 0; /* * Choose fonts for this paragraph. @@ -1458,6 +1456,14 @@ static int utoglyph(font_info const *fi, wchar_t u) { return (u < 0 || u > 0xFFFF ? NOGLYPH : fi->bmp[u]); } +void listfonts(void) { + font_info const *fi; + + init_std_fonts(); + for (fi = all_fonts; fi; fi = fi->next) + printf("%s\n", fi->name); +} + static font_data *make_std_font(font_list *fontlist, char const *name) { font_info const *fi; @@ -2209,6 +2215,7 @@ static int render_text(page_data *page, para_data *pdata, line_data *ldata, FONT_CODE); if (style == word_Code || style == word_WeakCode) flags |= RS_NOLIG; + flags |= pdata->extraflags; if (type == word_Normal) { str = text->text; @@ -2482,6 +2489,7 @@ static para_data *code_paragraph(int indent, word *words, paper_conf *conf) pdata->rect_type = RECT_NONE; pdata->contents_entry = NULL; pdata->justification = LEFT; + pdata->extraflags = RS_NOLIG; for (; words; words = words->next) { wchar_t *t, *e, *start; @@ -2612,6 +2620,7 @@ static para_data *rule_paragraph(int indent, paper_conf *conf) pdata->rect_type = RECT_RULE; pdata->contents_entry = NULL; pdata->justification = LEFT; + pdata->extraflags = 0; standard_line_spacing(pdata, conf);