Когда я начал использовать метод show в Typst, я потерял нумерацию заголовков. Как я могу получить его обратно?
#show heading: it => [
#block(fill:white, outset: 5pt, radius: 20%,
underline(stroke: rgb(39, 174, 96) + 1.5pt, offset: 1.75pt)[#it.body])
]
Ваша функция show
использует it.body
, поэтому отображается только текст заголовка (тело). Исправить это можно, отобразив it
вместо it.body
, который содержит информацию о нумерации:
#set heading(numbering: "1.")
#show heading: it => [
#block(fill:white, outset: 5pt, radius: 20%,
underline(stroke: rgb(39, 174, 96) + 1.5pt, offset: 1.75pt)[#it])
]
= Heading
Если вы хотите также подчеркнуть пробел между номером и заголовком, вы можете явно отобразить номер заголовка и текст отдельно:
#set heading(numbering: "1.")
#show heading: it => [
#block(
fill: white,
outset: 5pt,
radius: 20%,
underline(stroke: rgb(39, 174, 96) + 1.5pt, offset: 1.75pt)[
#counter(heading).display() #it.body
],
)
]
= Heading
Вы можете обернуть текст внутрь block(fill: white)
, чтобы придать ему фон. Если у вас большой интервал между строками, вы также можете использовать highlight(fill: white)[your text]
, и пространство между строками останется прозрачным.
Проблема с block(fill: white)
в том, что она влияет и на мои серые поля. Есть ли возможность выделить весь текст, кроме того, что находится внутри th(title, text) = showybox(...)
?
Проще было бы ответить отдельно. Можете ли вы открыть новый вопрос и предоставить пример кода, как вы это сделали для этой проблемы с заголовком?
Это решило мою проблему, ценю это. Еще одна проблема, связанная с форматированием текста: в моем шаблоне я использую шаблон в качестве фона. Как я могу сделать белое поле только позади текста, чтобы избежать тире в тексте (imgur.com/a/SkbYbnl). Я использую showybox для цветных блоков, но не хочу, чтобы это затрагивало текст внутри.