← TOC | ↑ Home | I+L SVG | → | TeX | TeX | EPS | SVG | PNG | JPEG | ICO | XPM |
This page shows how to convert an SVG file x-il.svg from inkscape containing LaTeX special text into a Windows icon file.
If the base file name before the extension ends in "-il" the gxhconvert script assumes the file is an SVG file created by the inkscape program requiring LaTeX to process the texts.
The drawing must be a 1 inch × 1 inch square.
gxhconvert -o=ico x-il.svg
See the [gxhconvert manual] for a full description of the gxhconvert script.
Option | Purpose |
---|---|
-a --alpha |
Create alpha channel. Untouched input regions result in transparent output regions. |
--svg-area=area | String Area to export, one from:
|
--svg-latex | Required, if the file name does not end in "-il" to indicate the texts must be processed by LaTeX. |
inkscape --batch-process --export-type=pdf --export-overwrite --export-filename=x-il.pdf --export-area-drawing --export-latex x-il.svg
The x-il.pdf_tex file sets a unit length in bp, a width factor and a height factor. Multiplication of the factors with the unit length results in width and height in bp. Round both values upwards to the next integer number.
In line 14 and 15 replace the numbers 210 and 58 by the values just calculated.
\documentclass[12pt]{article} % begin font setup \usepackage[T1]{fontenc} \usepackage{mathptmx} \usepackage[scaled=.92]{helvet} \usepackage{courier} % end font setup % begin other packages \usepackage{textcomp} \usepackage[intlimits]{amsmath} % end other packages \usepackage{graphicx} \usepackage{color} \setlength{\paperwidth}{210bp} \setlength{\paperheight}{58bp} \pagestyle{empty} \setlength{\voffset}{-1in} \setlength{\topmargin}{0bp} \setlength{\headheight}{0bp} \setlength{\headsep}{0bp} \setlength{\topskip}{0bp} \setlength{\hoffset}{-1in} \setlength{\oddsidemargin}{0bp} \setlength{\evensidemargin}{0bp} \setlength{\marginparwidth}{0bp} \setlength{\marginparsep}{0bp} \setlength{\textwidth}{\paperwidth} \setlength{\textheight}{\paperheight} \setlength{\parskip}{0bp} \setlength{\parindent}{0bp} \setlength{\pdfpagewidth}{\paperwidth} \setlength{\pdfpageheight}{\paperheight} \begin{document}% \input{x-il.pdf_tex}% \end{document}
pdflatex x
pdf2svg x.pdf x.svg
inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-48.png --export-dpi=48 --export-area-page x.svg inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-32.png --export-dpi=32 --export-area-page x.svg inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-24.png --export-dpi=24 --export-area-page x.svg inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-16.png --export-dpi=16 --export-area-page x.svg
pngnq x-48.png pngnq x-32.png pngnq x-24.png pngnq x-16.png pngtopam -alpha x-48.png > x-48.pgm pngtopam -alpha x-32.png > x-32.pgm pngtopam -alpha x-24.png > x-24.pgm pngtopam -alpha x-16.png > x-16.pgm
pngtopam -mix x-48.png > x-48-24.ppm pngtopam -mix x-32.png > x-32-24.ppm pngtopam -mix x-24.png > x-24-24.ppm pngtopam -mix x-16.png > x-16-24.ppm pngtopam -mix x-48-nq8.png > x-48-08.ppm pngtopam -mix x-32-nq8.png > x-32-08.ppm pngtopam -mix x-24-nq8.png > x-24-08.ppm pngtopam -mix x-16-nq8.png > x-16-08.ppm pnmquant 16 x-48-24.ppm > x-48-04.ppm pnmquant 16 x-32-24.ppm > x-32-04.ppm pnmquant 16 x-24-24.ppm > x-24-04.ppm pnmquant 16 x-16-24.ppm > x-16-04.ppm
PPMS="x-48-24.ppm x-48.pgm x-48-08.ppm x-48.pgm x-48-04.ppm x-48.pgm" PPMS="$PPMS x-32-24.ppm x-32.pgm x-32-08.ppm x-32.pgm x-32-04.ppm x-32.pgm" PPMS="$PPMS x-24-24.ppm x-24.pgm x-24-08.ppm x-24.pgm x-24-04.ppm x-24.pgm" PPMS="$PPMS x-16-24.ppm x-16.pgm x-16-08.ppm x-16.pgm x-16-04.ppm x-16.pgm" ppmtowinicon -andpgms -truetransparent -output=x.ico $PPMS
inkscape --batch-process --export-type=pdf --export-overwrite --export-filename=x-il.pdf --export-area-drawing --export-latex x-il.svg
The x-il.pdf_tex file sets a unit length in bp, a width factor and a height factor. Multiplication of the factors with the unit length results in width and height in bp. Round both values upwards to the next integer number.
In line 14 and 15 replace the numbers 210 and 58 by the values just calculated.
\documentclass[12pt]{article} % begin font setup \usepackage[T1]{fontenc} \usepackage{mathptmx} \usepackage[scaled=.92]{helvet} \usepackage{courier} % end font setup % begin other packages \usepackage{textcomp} \usepackage[intlimits]{amsmath} % end other packages \usepackage{graphicx} \usepackage{color} \setlength{\paperwidth}{210bp} \setlength{\paperheight}{58bp} \pagestyle{empty} \setlength{\voffset}{-1in} \setlength{\topmargin}{0bp} \setlength{\headheight}{0bp} \setlength{\headsep}{0bp} \setlength{\topskip}{0bp} \setlength{\hoffset}{-1in} \setlength{\oddsidemargin}{0bp} \setlength{\evensidemargin}{0bp} \setlength{\marginparwidth}{0bp} \setlength{\marginparsep}{0bp} \setlength{\textwidth}{\paperwidth} \setlength{\textheight}{\paperheight} \setlength{\parskip}{0bp} \setlength{\parindent}{0bp} \setlength{\pdfpagewidth}{\paperwidth} \setlength{\pdfpageheight}{\paperheight} \begin{document}% \input{x-il.pdf_tex}% \end{document}
pdflatex x
pdf2svg x.pdf x.svg
pdftoppm -r 48 x.pdf > x-48-24.ppm pdftoppm -r 32 x.pdf > x-32-24.ppm pdftoppm -r 24 x.pdf > x-24-24.ppm pdftoppm -r 16 x.pdf > x-16-24.ppm pnmtopng x-48-24.ppm > x-48.png pnmtopng x-32-24.ppm > x-32.png pnmtopng x-24-24.ppm > x-24.png pnmtopng x-16-24.ppm > x-16.png
pngnq x-48.png pngnq x-32.png pngnq x-24.png pngnq x-16.png pngtopam -mix x-48-nq8.png > x-48-08.ppm pngtopam -mix x-32-nq8.png > x-32-08.ppm pngtopam -mix x-24-nq8.png > x-24-08.ppm pngtopam -mix x-16-nq8.png > x-16-08.ppm
pnmquant 16 x-48-24.ppm > x-48-04.ppm pnmquant 16 x-32-24.ppm > x-32-04.ppm pnmquant 16 x-24-24.ppm > x-24-04.ppm pnmquant 16 x-16-24.ppm > x-16-04.ppm
PPMS="x-48-24.ppm x-48-08.ppm x-48-04.ppm" PPMS="$PPMS x-32-24.ppm x-32-08.ppm x-32-04.ppm" PPMS="$PPMS x-24-24.ppm x-24-08.ppm x-24-04.ppm" PPMS="$PPMS x-16-24.ppm x-16-08.ppm x-16-04.ppm" ppmtowinicon -output=x.ico $PPMS
← TOC | ↑ Home | I+L SVG | → | TeX | TeX | EPS | SVG | PNG | JPEG | ICO | XPM |