Как в Emacs добавить пользовательские шрифты TrueType в ps-print?

я настраиваю Emacs для печати в PostScript С пользовательской лица. Я нашел этой ссылке, что объясняет, как добавить Helvetica. Для emacs ps-print.

Я пытаюсь использовать Consolas, поэтому я использовал следующий код:

;; Add Consolas to supported printing fonts.
(require 'ps-print)
(setq ps-font-info-database
    (append
        '((Consolas
            (fonts  (normal      . "Consolas")
                    (bold        . "Consolas-Bold")
                    (italic      . "Consolas-Italic")
                    (bold-italic . "Consolas-BoldItalic"))
            (size . 10.0)
            (line-height . 10.48)
            (space-width . 5.51719)
            (avg-char-width . 5.51719)))
        ps-font-info-database))

документ печатается без ошибок, но вместо консолей используются шрифты по умолчанию. Когда я конвертирую документ PostScript в PDF, а затем копирую текст из файла PDF в OpenOffice, Я получаю Consolas, но в PDF текст отображается как что-то вроде Courier.

какие имена я должен использовать? Это Consolas-bold не так? Я не смог найти ничего в интернете об этой проблеме.

24
задан Peter Mortensen
07.05.2023 5:07 Количество просмотров материала 3406
Распечатать страницу

3 ответа

причина, по которой приведенный выше код будет работать для Helvetica, заключается в том, что Helvetica является одним из стандартных шрифтов в PostScript. Обычно у вас есть три шрифта, которые всегда доступны в PostScript-Times Roman, Helvetica и Courier.

добавление новых шрифтов зависит от программного обеспечения. Некоторые будут скачать PostScript Типа 1 шрифт на целевое устройство (TTF шрифты преобразуются перед загрузкой обычно), но это зависит от наличия целевого устройства, которое может принимать шрифты. Другой способ для программного обеспечения, чтобы нарисовать документ в виде ряда векторов.

PDF использует аналогичную систему, в первую очередь, в том, что он может встроить шрифт (или его подмножество для экономии места) в документ.

Я не совсем знаю, как это сделать в Emacs, но я ожидал бы, что вам нужно будет сказать Emacs, где находится шрифт и как его встроить - может быть, даже предварительно преобразовать его в Postscript Type 1.

TBH, вам будет лучше исследование LaTeX для печати PostScript / PDF.

0
отвечен Majenko 2023-05-08 12:55

это сработало для меня (Emacs 23.3.1 / Windows 7 64x) [все еще борется с выводом цвета]:

;; Printing
(require 'ps-print)
(setq printer-name '"USB001")
(setq ps-printer-name t)
(setq ps-lpr-command "g:/dev/bin/ghostscript/gs9.04/bin/gswin64c.exe")
(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH"
                        "-sDEVICE=mswinpr2"))
;; Add Consolas 
(setq ps-font-info-database
      (append
       '((Consolas
          (fonts (normal      . "Consolas")
                 (bold        . "Consolas-Bold")
                 (italic      . "Consolas-Italic")
                 (bold-italic . "Consolas-Bold-Italic"))
          (size           . 11.0)
          (line-height    . 13.0)
          (space-width    . 6.04688)
          (avg-char-width . 6.04688)))
       ps-font-info-database))
(setq ps-font-family 'Consolas)
(setq ps-font-size 11)

;; Print in color
(setq-default ps-print-color-p t)

;; Page layout: Header [file-name     2011-12-05]
;;              Footer [                     n/m]

;; Header
(setq ps-header-lines 1)
(setq ps-header-font-size 11)
(setq ps-header-title-font-size 11)
(setq ps-header-font-family 'Consolas)
(setq ps-right-header '(ps-time-stamp-yyyy-mm-dd))
(setq ps-print-header-frame nil)        ; no box top

;; Footer
(setq ps-footer-lines 1)
(setq ps-footer-font-size 11)
(setq ps-footer-font-family 'Consolas)
(setq ps-print-footer t)
(setq ps-left-footer nil)
(setq ps-right-footer (list "/pagenumberstring load"))
(setq ps-footer-offset .50)
(setq ps-footer-line-pad .50)
(setq ps-print-footer-frame nil)        ; no box bottom

;; Keystroke to print
(global-set-key (kbd "C-|")  'ps-print-buffer-with-faces)

удачи!

2
отвечен 23emacs 2023-05-08 15:12

4 года спустя, я думаю, что лучший способ добиться этого-сделать печать из-за пределов Emacs.

вместо создания .ps из Emacs сначала создайте html-копию буфера (используя htmlfontify-buffer), затем распечатать из вашего любимого веб-браузера.

1
отвечен Clément 2023-05-08 17:29

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх