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/
, как вы можете видеть на следующем изображении:
Я проверил, что шрифт доступен в 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
. Поэтому я попытаюсь загрузить эту библиотеку.