Fixes strages rotated artefacts that happend when input file contains characters between U+0000..U+001F. This happened because of unbalanced newpath / fill actions. The solution here does not print these characters even with fallback font. tar xfz yudit-2.9.2.tar.gz patch -p0 < yudit-2.9.2.patch2.txt If you have trouble recompiling Yudit for your platform, you can try one of the following workarounds: a) Remove offending U+000..U+001F characters manually from input file. Only U+000C (FF), U+0009 (TAB), and U+000D (CR) U+000A (LF) can stay. b) Remove "fill grestore" lines from output postscript file. Gaspar Sinai Tokyo 2011-08-04 *** yudit-2.9.2/swindow/SPostscript.cpp- 2009-03-28 00:52:20.000000000 +0900 --- yudit-2.9.2/swindow/SPostscript.cpp 2011-08-04 13:58:51.850294348 +0900 *************** *** 501,504 **** --- 501,505 ---- sprintf (arr, "gsave %s%d.%03d %s%d.%03d translate newpath\n", SG(ix), ix/1000, SM(ix), SG(iy), iy/1000, SM(iy)); + // BUG-2011-08-04 Don't write. This happens between U+0000...U+001F //writeString (arr); return true; *************** *** 547,551 **** else { ! if (cache.get (cacheID) == 0) writeString ("fill grestore\n"); } } --- 548,554 ---- else { ! // BUG-2011-08-04 Don't write. This happens between U+0000...U+001F ! // Originally only newpath was commented out. ! // if (cache.get (cacheID) == 0) writeString ("fill grestore\n"); } }