state lang_enscript
{
BEGIN {
sub map_color (r, g, b)
{
return sprintf ("%f %f %f", r div 255.0, g div 255.0, b div 255.0);
}
LANGUAGE_SPECIALS = 0;
sub language_print (str)
{
print (str);
}
sub symbol (sym)
{
print ("\0font{Symbol", ptsize, ":ps}", sym, "\0font{default}");
}
sub language_symbol (sym)
{
local result = true;
if (strcmp (sym, "rightarrow") == 0)
symbol ("\0256");
else if (strcmp (sym, "le") == 0)
symbol ("\0243");
else if (strcmp (sym, "ge") == 0)
symbol ("\0263");
else if (strcmp (sym, "ne") == 0)
symbol ("\0271");
else if (strcmp (sym, "equiv") == 0)
symbol ("\0272");
else if (strcmp (sym, "land") == 0)
symbol ("\0331");
else if (strcmp (sym, "lor") == 0)
symbol ("\0332");
else if (strcmp (sym, "lnot") == 0)
symbol ("\0330");
else
result = false;
return result;
}
sub header ()
{
}
sub trailer ()
{
}
sub font (name)
{
print ("\0font{", name, "@", ptsize, "}");
}
sub color (name)
{
print ("\0color{", name, "}");
}
sub bgcolor (name)
{
print ("\0bgcolor{", name, "}");
}
sub face_on (face)
{
font (face[fontname]);
if (face[fg_color] || face[bg_color])
{
if (face[fg_color])
color (face[fg_color]);
if (face[bg_color])
bgcolor (face[bg_color]);
}
}
sub face_off (face)
{
print ("\0font{default}");
if (face[fg_color] || face[bg_color])
{
if (face[fg_color])
print ("\0color{default}");
if (face[bg_color])
{
print ("\0bgcolor{default}");
}
}
}
return;
}
}