Добавление шрифтов в R с использованием библиотек extrafont или showtext (на Ma c через FontBook) - PullRequest
0 голосов
/ 10 апреля 2020

2 года a go Я опубликовал соответствующую запись - Добавить шрифт в R, которого нет в библиотеке extrafonts . Теперь я лучше понимаю, как работают шрифты, и теперь у меня есть новый набор шрифтов, который мне нужно загрузить в R для использования с ggplot. Несмотря на полезные ответы в предыдущем посте, я сталкиваюсь с новым набором проблем:

Во-первых, я не могу загрузить библиотеку showtext. После переустановки и загрузки библиотеки появляется следующее сообщение об ошибке:

>   library(showtext)
Loading required package: sysfonts
Error: package or namespace load failed for ‘sysfonts’:
 .onLoad failed in loadNamespace() for 'sysfonts', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so, 6): Library not loaded: /opt/X11/lib/libfreetype.6.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so
  Reason: image not found
Error: package ‘sysfonts’ could not be loaded

... и при попытке загрузить библиотеку sysfonts появляется следующее сообщение:

> library(sysfonts)
Error: package or namespace load failed for ‘sysfonts’:
 .onLoad failed in loadNamespace() for 'sysfonts', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so, 6): Library not loaded: /opt/X11/lib/libfreetype.6.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.5/Resources/library/sysfonts/libs/sysfonts.so
  Reason: image not found

Я не уверен, как исправить эту ошибку unable to load shared object, и в результате я в основном отказался от использования showtext, так как не могу загрузить его в R.

Переход на extrafont затем я запускаю следующее, чтобы импортировать шрифты из моего Ma c в R:

> library(extrafont)
> font_import() # import all fonts on my system
Importing fonts may take a few minutes, depending on the number of fonts and the speed of the system.
Continue? [y/n] y
Scanning ttf files in /Library/Fonts/, /System/Library/Fonts, ~/Library/Fonts/ ...
Extracting .afm files from .ttf files...
/Library/Fonts/Andale Mono.ttf => /Library/Frameworks/R.framework/Versions/3.5/Resources/library/extrafontdb/metrics/Andale Mono
/Library/Fonts/Apple Chancery.ttf : No FontName. Skipping.
/Library/Fonts/AppleGothic.ttf : No FontName. Skipping.
/Library/Fonts/Arial Black.ttf => /Library/Frameworks/R.framework/Versions/3.5/Resources/library/extrafontdb/metrics/Arial Black
...
...
Found FontName for 63 fonts.
Scanning afm files in /Library/Frameworks/R.framework/Versions/3.5/Resources/library/extrafontdb/metrics
Writing font table in /Library/Frameworks/R.framework/Versions/3.5/Resources/library/extrafontdb/fontmap/fonttable.csv
Writing Fontmap to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/extrafontdb/fontmap/Fontmap...
There were 50 or more warnings (use warnings() to see the first 50)

Я замечаю, что некоторые шрифты пропускаются из-за ошибки No FontName, тогда как другие (Arial Black) кажутся загрузить нормально. После запуска font_import я проверяю, чтобы увидеть доступные шрифты:

>   fonts()
 [1] ".Keyboard"             "System Font"           ".SF NS Rounded"        "Andale Mono"          
 [5] "Apple Braille"         "AppleMyungjo"          "Arial Black"           "Arial"                
 [9] "Arial Narrow"          "Arial Rounded MT Bold" "Arial Unicode MS"      "Bodoni Ornaments"     
[13] "Bodoni 72 Smallcaps"   ""                      "Brush Script MT"       "Comic Sans MS"        
[17] "Courier New"           "DIN Alternate"         "DIN Condensed"         "Georgia"              
[21] "Impact"                "Khmer Sangam MN"       "Lao Sangam MN"         "Luminari"             
[25] "Microsoft Sans Serif"  "Tahoma"                "Times New Roman"       "Trattatello"          
[29] "Trebuchet MS"          "Verdana"               "Webdings"              "Wingdings"            
[33] "Wingdings 2"           "Wingdings 3"    

Для своих пользовательских шрифтов мне был предоставлен zip-файл шрифтов, и я загрузил эти шрифты в свой Ma c* , Имя шрифта FreightDisp Pro, и я вижу здесь, что шрифт находится в приложении Font Book Ma c. Однако я хотел бы отметить, что шрифт недоступен в моей папке library/Fonts/, как вы можете видеть на следующем изображении:

enter image description here enter image description here

Я проверил, что шрифт доступен в Microsoft Word, и это так.

И наконец, когда я пытаюсь импортировать шрифты в R, я получаю следующую ошибку:

> font_import(pattern="FreightDisp Pro")
Importing fonts may take a few minutes, depending on the number of fonts and the speed of the system.
Continue? [y/n] y
Scanning ttf files in /Library/Fonts/, /System/Library/Fonts, ~/Library/Fonts/ ...
Extracting .afm files from .ttf files...
Error in data.frame(fontfile = ttfiles, FontName = "", stringsAsFactors = FALSE) : 
  arguments imply differing number of rows: 0, 1

, и я получаю эту же ошибку при изменении шаблона на "National2" ,

Итак, когда я заканчиваю этот пост, мне кажется, что я также пришел к ответу на мой вопрос, который заключается в том, что шрифты нельзя просто установить в книге шрифтов, но они также должны находиться в папке / Library / Fonts. , Я не уверен, смогу ли я просто перетащить + опустить шрифты в эту папку или использовать книгу шрифтов, чтобы записать эти шрифты в правильные места. Я также не уверен насчет типов файлов, могу ли я использовать только .ttf файлы, как предполагает публикация, хотя у меня все файлы шрифтов .otf.

Любые мысли / помощь по этому поводу с благодарностью. Я опубликую обновление, как только смогу разрешить.

Редактировать: Использование пользовательских шрифтов OTF в ggplot2 Этот пост указывает, что .otf шрифты необходимо преобразовать в .ttf для использования с за исключением шрифтов showtext, .otf. Поэтому я попытаюсь загрузить эту библиотеку.

1 Ответ

0 голосов
/ 10 апреля 2020

enter image description here В «Книге шрифтов»> «Установки», переключая предпочтение шрифтов с «Пользователь на компьютер», он обеспечивает установку шрифтов в папку «шрифты». Это решило мою проблему.

...