#r #r-exams
Вопрос:
Я создал несколько графических изображений с разными размерами шрифта, используя tex2image()
функцию из exams
пакета. Но параметр pt
, который должен указывать размер шрифта, похоже, влияет только на межстрочный интервал. Я хочу исправить шрифт так, чтобы он отображался одинакового размера на всех изображениях.
Для иллюстрации попробуйте создать следующее изображение с pt = 12
помощью vs pt = 5
. Результат показан ниже.
library('exams') tex lt;- 'test\\test\\test' tex2image(tex, format = "png", dir= ".", name = 'test-12', resize = 350, pt = 12)
pt = 12 |
pt = 5 |
---|---|
![]() |
![]() |
Комментарии:
1. Не могли бы вы, пожалуйста, опубликовать минимальный, самодостаточный, воспроизводимый пример, который четко показывает, в чем проблема? В принципе, размер шрифта через
pt
должен иметь эффект, но фактический размер изображения также зависит от размера изображения PNG и того, как это будет включено в HTML или PDF документ впоследствии. Поэтому трудно сказать, в чем именно заключается проблема, без четкого и краткого примера.2. Я добавил пример @AchimZeileis, спасибо за вашу помощь!
Ответ №1:
Причина такого поведения заключается в том, что по умолчанию размер вывода PNG изменяется с tex2image()
определенного количества пикселей: resize = 650
. Таким образом, в вашей pt = 5
настройке сначала генерируются файлы PDF и PNG меньшего размера по сравнению с pt = 12
настройкой, но впоследствии оба они масштабируются до 650 пикселей. Это делает результирующий текст таким же большим, но pt = 5
версия более пиксельной.
Первый способ избежать этого-установить resize = NULL
так, чтобы масштабирование не выполнялось. Затем вам нужно будет обязательно включить полученные изображения PNG «как есть» без какого-либо масштабирования в HTML.
В качестве альтернативы вы можете установить определенный width = ...
(в дюймах, gt; 1) для текстового поля, чтобы убедиться, что все изображения имеют одинаковую ширину, сохраняя, таким образом, относительные размеры шрифта. Этот подход проиллюстрирован следующим:
tex2image("Short text", width = 2, pt = 12, dir = ".", name = "tex2image-short") tex2image("A considerably longer text", width = 2, pt = 12, dir = ".", name = "tex2image-long-12") tex2image("A considerably longer text with small fonts", width = 2, pt = 5, dir = ".", name = "tex2image-long-5")