Исправление размера шрифта в графике tex2image

#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
изображение 12pt изображение 5pt

Комментарии:

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")  

Короткий текст, крупный шрифт

Длинный текст, крупный шрифт

Длинный текст, мелким шрифтом