array<int> edit_main_rep::print_snippet (url name, tree t, bool conserve_preamble) { tree buft= subtree (et, rp); if (conserve_preamble) if (is_document (buft) && is_compound (buft[0], "hide-preamble")) t= tree (SURROUND, buft[0], "", t); string s= suffix (name); bool ps= (s == "ps" || s == "eps"); if (use_pdf ()) ps= (ps || s == "pdf"); typeset_prepare (); int dpi= as_int (printing_dpi); //if (!ps) t= tree (WITH, MAGNIFICATION, "2", PAGE_WIDTH, "40cm", t); //if (!ps) t= tree (WITH, MAGNIFICATION, "1.6", PAGE_WIDTH, "40cm", t); double mag= ( 1.0 * dpi) / 600; double wid= (25.0 * dpi) / 600; if (!ps) { mag *= 1.6; wid *= 1.6; } t= tree (WITH, MAGNIFICATION, as_string (mag), PAGE_WIDTH, as_string (wid) * "cm", t); box b= typeset_as_box (env, t, path ()); if (b->x4 - b->x3 >= 5*PIXEL && b->y4 - b->y3 >= 5*PIXEL) { if (ps) make_eps (name, b, dpi); else { url temp= url_temp (use_pdf ()? ".pdf": ".eps"); make_eps (temp, b, dpi); ::remove (name); if (!call_scm_converter (temp, name)) { call_imagemagick_convert (temp, name); if (!exists (name)) convert_error << "could not convert snippet " << temp << " into :" << name << "\n"; } ::remove (temp); } } array<int> a; a << b->x3 << b->y3 << b->x4 << b->y4; return a; }
array<int> edit_main_rep::print_snippet (url name, tree t) { bool ps= suffix (name) == "ps" || suffix (name) == "eps"; typeset_prepare (); int dpi= as_int (printing_dpi); //if (!ps) t= tree (WITH, MAGNIFICATION, "2", PAGE_WIDTH, "40cm", t); if (!ps) t= tree (WITH, MAGNIFICATION, "1.6", PAGE_WIDTH, "40cm", t); box b= typeset_as_box (env, t, path ()); if (b->x4 - b->x3 >= 5*PIXEL && b->y4 - b->y3 >= 5*PIXEL) { if (ps) make_eps (name, b, dpi); else { url temp= url_temp (".eps"); make_eps (temp, b, dpi); ::remove (name); system ("convert", temp, name); if (!exists (name)) cout << "TeXmacs] warning, failed to create image " << name << "\n"; ::remove (temp); } } array<int> a; a << b->x3 << b->y3 << b->x4 << b->y4; return a; }