On 2017-10-10 13:43:53 +0200, Vincent Lefevre wrote:
> When I used muttprint (with print to file, for checking) on a mail
> with δ and ε characters, these characters were silently missing
> from the generated .ps file.
I think that the easiest solution would be to use xelatex and
a font that the required characters (DejaVu Sans Mono seems one
of the most complete fonts).
I've attached a patch that does this (mainly for testing), but
I haven't tried in non-UTF8 locales (I suppose that the input
should be converted to UTF8 or \XeTeXinputencoding should be
used) and the font is hardcoded in the patch.
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
--- a/muttprint 2017-06-19 21:12:50.000000000 +0200
+++ b/muttprint 2017-10-10 15:02:58.212793432 +0200
@@ -177,7 +177,7 @@
my %Header;
# Header ...
my @PrintedMailheaders; #
Mailheader so wie er gedruckt wird (LaTeX-Code)
my $childPid; # PID
des Kinds
-my $DVIopts; #
Optionen fuer DVI - Aufruf
+my $PDFopts; #
Optionen fuer PDF - Aufruf
my @Command; #
Kommando zum Drucken; fuer Druck in Datei
my $Laenge = "0"; # zum
Ermitteln der laengsten Zeile
my $MaxLaenge = "0"; # die laengste
Zeile
@@ -583,13 +583,13 @@
#
# running latex twice because of the "page ... of ..."
-system("latex -interaction=nonstopmode mail.tex >> $errorRedirection 2>&1");
-system("latex -interaction=nonstopmode mail.tex >> $errorRedirection 2>&1");
+system("xelatex -interaction=nonstopmode mail.tex >> $errorRedirection 2>&1");
+system("xelatex -interaction=nonstopmode mail.tex >> $errorRedirection 2>&1");
#
# no check of the exit code because we do this here
-unless (-e $Temp{dvi}) {
- fatalError "Latex didn't work. There's no DVI file. If you ".
+unless (-e $Temp{pdf}) {
+ fatalError "Latex didn't work. There's no PDF file. If you ".
"write a bugreport, please include a mail where printing
fails.";
}
@@ -599,8 +599,8 @@
#
# generating the postscript file in every case
-system("dvips -t $paperformat -o $Temp{ps} $Temp{dvi} >> $errorRedirection
2>&1")
- and fatalError "Error while running dvips:\n$!";
+system("pdftops $Temp{pdf} $Temp{ps} >> $errorRedirection 2>&1")
+ and fatalError "Error while running pdftops:\n$!";
# now we find out the number of pages the document has
@@ -1167,7 +1167,7 @@
$Temp{content} = "$Temp{dir}/content";
$Temp{latex} = "$Temp{dir}/mail.tex";
$Temp{logf} = "$logf";
- $Temp{dvi} = "$Temp{dir}/mail.dvi";
+ $Temp{pdf} = "$Temp{dir}/mail.pdf";
$Temp{ps} = "$Temp{dir}/mail.ps";
$Temp{psnew} = "$Temp{dir}/mail-new.ps";
$Temp{ps1} = "$Temp{dir}/mail1.ps";
@@ -1386,10 +1386,11 @@
output \*LATEX, "
\\documentclass[compat2,$Config{FONTSIZE}]{article}
-$fontencString
\\renewcommand{\\tt}{\\rm}
\\usepackage[$babellanguage]{babel}
-\\usepackage[$inputcharset]{inputenc}
+\\usepackage{fontspec}
+\\setmainfont{DejaVu Sans}
+\\setmonofont{DejaVu Sans Mono}
\\usepackage{$LatexPackages}
\\usepackage[${paperformat}paper,left=$Config{LEFTMARGIN}mm,right=$Config{RIGHTMARGIN}mm,%
top=$Config{TOPMARGIN}mm,bottom=$Config{BOTTOMMARGIN}mm,headsep=5mm]{geometry}