Rog*_*gon 5 printing unicode emacs utf-8
在 Emacs 中,关于 UTF-8 的一切似乎都运行良好。问题是,我有时想打印出一封包含 Unicode 字符的电子邮件(我使用 mu4e 作为我的 MUA)。
\n\n我通常会在 a 中包含类似以下内容的内容mu4e:view:
From: A Person\n To: Me\n Subject: Notes on Chapter 9\n Date: Tue 22 Sep 2015 13:46:44 CEST\n Maildir: /mymaildir/INBOX\n User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)\n\n \xe2\x80\xa2 \xe2\x80\x9cfor open platforms\xe2\x80\x9d -> \xe2\x80\x9cfor \\textit{open platforms}, as defined in\n [123]. Such platforms include frobbing devices and home-assistant\n foobars.\xe2\x80\x9d\nRun Code Online (Sandbox Code Playgroud)\n\n问题是,当我这样做时M-x ps-print-buffer,纸上的物理输出如下所示:
...\n\n ? ?for open platforms? -> ?for \\textit{open platforms}, as defined in\n [123]. Such platforms include frobbing devices and home-assistant\n foobars.?\nRun Code Online (Sandbox Code Playgroud)\n\n有人知道如何打印才能使其看起来与屏幕上的一样吗?经过一些 Startpaging/DuckDuckGoing 我还没有找到任何指针。
\n有一个简单的解决方案,可能会也可能不会产生令人满意的结果。Emacs 知道如何使用 GNU Intlfonts,它允许打印非 ASCII 字符。
Intlfonts 是位图字体,并不是最漂亮的字体。它们可能适用于仅偶尔包含非 ASCII 字符(引号、项目符号等)的 ASCII 文本,但对于使用非拉丁字母的文本,结果看起来并不令人愉快(文本是,只是不正确)漂亮)。
要尝试一下,请先安装字体。执行此操作的方法取决于操作系统及其发行版;以 Ubuntu 为例:
sudo apt-get install emacs-intl-fonts
Run Code Online (Sandbox Code Playgroud)
然后调整以下 Emacs 设置:
(setq ps-multibyte-buffer :bdf-font-except-latin)
(setq bdf-directory-list "/usr/share/emacs/fonts/bdf")
Run Code Online (Sandbox Code Playgroud)
第一个变量指示 Emacs 对非拉丁字符使用 Intlfonts。第二个变量指定字体的位置(确保设置正确,否则 Emacs 将默默忽略设置)。
虽然一些来源(M-x describe-variable ps-mule-font-info-database例如这些 页面表明可以配置 ps-print 以使用 Intlfonts 以外的方式打印非 ASCII 字符,但我未能找到正确的配置。如果您找到了,请告诉我。
顺便说一句,lpr-buffer直接打电话似乎可以打印国际字符。