
Я бы хотел, чтобы первый символ моего \section
заголовка (я использую модный германский шрифт) находился на (например), \tfb
а остальные на \tfa
.
Я пробовал добавлять \placeinitial
стиль, но это просто создает очень большой (5-6 строк) пробел перед \section, не принося никакой пользы.
Есть ли какой-нибудь простой способ сделать это?
Образец кода:
\definefontfamily[germanic][gothic][ltcgoudytextw01lombardcap]
\setuphead[section] [style={\setupbodyfont[germanic]\tfc\placeinitial},number=no]
\setupinitial[color=black,font=ltcgoudytextw01lombardcap at 26pt,distance=1pt,n=1,location=text,]
\starttext
\section{Character}
\input knuth
But I want to achieve
\blank
\setupbodyfont[germanic]
{\tfd C}{\tfb haracter}
\setupbodyfont[modern]
\input knuth
\stoptext
решение1
Хм, это довольно запутанно, но лучшего решения я не нашел... Итак: вы теряете возможность настроить инициалы так, как placeinitial
позволяет способ, но если вы уверены, что просто хотите, чтобы первый символ был больше, вот (у меня нет вашего шрифта, поэтому я использую pagella):
\setupbodyfont [pagella, 12pt]
\def\doChapterTitle#1%
{\ctxlua{userdata.chaptertitle([==[#1]==])}}
\startluacode
userdata = userdata or { }
function userdata.chaptertitle(s)
local initial, rest = s:sub(1, 1), s:sub(2, -1)
context.bgroup()
context.switchtobodyfont( { "30pt" } )
context(initial)
context.egroup()
context(rest)
end
\stopluacode
\define[1]\MyChapterTitle%
{\doChapterTitle{#1}}
\setuphead [chapter]
[number=no,
deeptextcommand=\MyChapterTitle]
\starttext
\startchapter [title={Character}]
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras tellus.
\stopchapter
\stoptext
Результат: