Como faço para criar um efeito inicial sutil em um setuphead?

Como faço para criar um efeito inicial sutil em um setuphead?

Gostaria que o primeiro caractere da minha \sectioncabeça (estou usando uma fonte germânica sofisticada) estivesse em (por exemplo) \tfbenquanto o resto estivesse em \tfa.

Tentei adicionar algo \placeinitialao estilo, mas isso apenas cria um espaço em branco muito grande (5-6 linhas) antes da seção, sem benefício.

Existe uma maneira trivial de conseguir isso?

Código de amostra:

\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

insira a descrição da imagem aqui

Responder1

Hmm, isso é bastante complicado, mas não consegui encontrar uma solução melhor... Então: você perde a capacidade de configurar sua inicial da maneira que placeinitialpermite, mas se tiver certeza de que deseja apenas que o primeiro caractere seja maior , aqui vai (não tenho sua fonte, então uso 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

Resultado:

insira a descrição da imagem aqui

informação relacionada