diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-11-14 00:48:08 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-11-14 00:48:08 +0000 |
commit | 64322869cd45fa0029198b6ef544363a0cf49eb6 (patch) | |
tree | faa34b755a1bd7b9b5ca4a66d204deebf841d119 /Build/source/texk/web2c/luatexdir/pdf/pdfrule.w | |
parent | 6d37525a79984eea934633c34944113831e3fecb (diff) |
web2c/luatexdir: Sync with the upstream trunk.
git-svn-id: svn://tug.org/texlive/trunk@38844 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf/pdfrule.w')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/pdf/pdfrule.w | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w index 2dac756ddde..a9d670c1154 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w @@ -29,36 +29,45 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size) pdfpos dim; pdfstructure *p = pdf->pstruct; scaledpos pos = pdf->posstruct->pos; - (void) q; - pdf_goto_pagemode(pdf); - dim.h.m = i64round(size.h * p->k1); - dim.h.e = p->pdf.h.e; - dim.v.m = i64round(size.v * p->k1); - dim.v.e = p->pdf.v.e; - pdf_puts(pdf, "q\n"); - if (size.v <= one_bp) { - pos.v += i32round(0.5 * size.v); - pdf_set_pos_temp(pdf, pos); - pdf_puts(pdf, "[]0 d 0 J "); - print_pdffloat(pdf, dim.v); - pdf_puts(pdf, " w 0 0 m "); - print_pdffloat(pdf, dim.h); - pdf_puts(pdf, " 0 l S\n"); - } else if (size.h <= one_bp) { - pos.h += i32round(0.5 * size.h); - pdf_set_pos_temp(pdf, pos); - pdf_puts(pdf, "[]0 d 0 J "); - print_pdffloat(pdf, dim.h); - pdf_puts(pdf, " w 0 0 m 0 "); - print_pdffloat(pdf, dim.v); - pdf_puts(pdf, " l S\n"); + /* (void) q; */ + if (subtype(q) == box_rule) { + pdf_place_form(pdf,q); + } else if (subtype(q) == image_rule) { + pdf_place_image(pdf,q); + } else if (subtype(q) == empty_rule) { + /* place nothing, only take space */ } else { - pdf_set_pos_temp(pdf, pos); - pdf_puts(pdf, "0 0 "); - print_pdffloat(pdf, dim.h); - pdf_out(pdf, ' '); - print_pdffloat(pdf, dim.v); - pdf_puts(pdf, " re f\n"); + /* normal_rule or >= 100 being a leader rule */ + pdf_goto_pagemode(pdf); + dim.h.m = i64round(size.h * p->k1); + dim.h.e = p->pdf.h.e; + dim.v.m = i64round(size.v * p->k1); + dim.v.e = p->pdf.v.e; + pdf_puts(pdf, "q\n"); + if (size.v <= one_bp) { + pos.v += i32round(0.5 * size.v); + pdf_set_pos_temp(pdf, pos); + pdf_puts(pdf, "[]0 d 0 J "); + print_pdffloat(pdf, dim.v); + pdf_puts(pdf, " w 0 0 m "); + print_pdffloat(pdf, dim.h); + pdf_puts(pdf, " 0 l S\n"); + } else if (size.h <= one_bp) { + pos.h += i32round(0.5 * size.h); + pdf_set_pos_temp(pdf, pos); + pdf_puts(pdf, "[]0 d 0 J "); + print_pdffloat(pdf, dim.h); + pdf_puts(pdf, " w 0 0 m 0 "); + print_pdffloat(pdf, dim.v); + pdf_puts(pdf, " l S\n"); + } else { + pdf_set_pos_temp(pdf, pos); + pdf_puts(pdf, "0 0 "); + print_pdffloat(pdf, dim.h); + pdf_out(pdf, ' '); + print_pdffloat(pdf, dim.v); + pdf_puts(pdf, " re f\n"); + } + pdf_puts(pdf, "Q\n"); } - pdf_puts(pdf, "Q\n"); } |