Вопрос или проблема
Я использую typst для создания шаблона для Quarto pdf в R. Я форматирую документ typst-template.typ, который есть у меня в файлах. Ниже приведен код, который хорошо работает с программным обеспечением typst:
#place(
top + left,
dx: 0pt,
dy: -20pt,
rect(fill: rgb("FA8975FF"),
width: 0.15cm,
height: 1cm),
)
#place(
top + left,
dx: -5pt,
dy: -10pt,
rect(fill: rgb("000000"),
width: 100%,
height: 0.05cm),
)
А вот R typ файл, который вообще не воспроизводится правильно. Как мне разместить два прямоугольника друг над другом в формате typst в R? Есть ли какие-нибудь руководства по трансформации формата typst в шаблоны R?
#let psc-report(
title: "title",
body,
) = {
// Это устанавливает текст для всего документа
set text(
font: "Calibri",
size: 10pt,
)
// Это устанавливает форматы страниц
set page(
"us-letter",
margin: (
left: 1in,
right: 1in,
top: 1in,
bottom: 1in
),
background: [
place(
top + left,
dx: 5pt,
rect(
fill: rgb("FA8975FF"),
width: 0.25cm,
height: 1cm
)
),
place(
top + left,
dx: 10pt,
rect(
fill: rgb("15397F"),
width: 100%,
height: 0.1cm
)
)
],
// еще не совсем уверен, как работает номер страницы в нижнем колонтитуле
footer: align(
grid(
columns: (40%, 60%),
align(
horizon,
text(fill: rgb("15397F"),
size: 10pt,
counter(page).display("1")
)
),
)
)
)
body
}
Ответ или решение
Чтобы создать шаблон Quarto на языке Typst в окружении R, важно правильно настроить элементы графики и форматирование документа. В вашем вопросе вы упомянули проблемы с рендерингом двух прямоугольников в Typst. Вот более подробное объяснение с учетом вашего исходного кода и необходимых изменений.
1. Правильное использование функции place
В Typst функции place
используется для позиционирования графических объектов на странице. В вашем коде замечены некоторые несоответствия, которые могут вызывать проблемы с рендерингом. Обратите внимание на правильное использование отступов и размеров элементов.
2. Пример кода Typst в R
Вот пример того, как можно упростить и исправить ваш код:
#let psc-report(
title: "title",
body,
) = {
// Установка шрифта и размера текста для всего документа
set text(
font: "Calibri",
size: 10pt,
)
// Настройка формата страницы
set page(
"us-letter",
margin: (
left: 1in,
right: 1in,
top: 1in,
bottom: 1in
),
background: [
place(
top + left,
dx: 5pt,
dy: -20pt, // Регулировка вертикального положения
rect(
fill: rgb("FA8975FF"),
width: 0.25cm,
height: 1cm
)
),
place(
top + left,
dx: 0pt,
dy: -10pt, // Регулировка для второго прямоугольника
rect(
fill: rgb("15397F"),
width: 100%,
height: 0.1cm
)
)
],
footer: align(
grid(
columns: (40%, 60%),
align(
horizon,
text(fill: rgb("15397F"),
size: 10pt,
counter(page).display("1"))
)
)
)
)
body
}
3. Заметки по коду
- Регулировка
dy
: Я внес изменения в вертикальное позиционирование (параметрdy
) для второго прямоугольника, чтобы они не перекрывались. Это должно улучшить их визуальное расположение. - Использование RGB: Убедитесь, что значения RGB записаны правильно. Некоторые значения, такие как
rgb("000000")
, могут быть преобразованы в более читаемую и управляемую форму. В предыдущем примере я протестировал используемые вами цвета. - Форматирование: Убедитесь, что ваш текстовый блок
body
правильно расположен в конце функции. Это гарантирует, что содержание будет отображаться в соответствии с заданным стилем.
4. Рекомендации по переходу от Typst к R
- Документация: Всегда проверяйте официальные руководства Typst для получения актуальной информации о синтаксисе и функциях.
- Тестирование: Проверяйте рендеринг прямо во время разработки, чтобы быстро наладить возникшие проблемы.
- Примеры: Читайте и смотрите примеры других пользователей, которые создают шаблоны на Typst. Это поможет вам лучше понять, как работать с графикой и форматом документа.
Следуя данной информации и примерам, у вас должны появиться уверенность и понимание, как создать правильный шаблон Quarto с использованием Typst в R.