Cabeçalho de tabela {gt}: fonte e altura

Pessoal que usa {gt}, duas dúvidas:

  1. Tem como usar mais de uma fonte na mesma tabela? Até agora só encontrei a função opt_table_font() que aceita uma lista de fontes, mas usa uma delas para toda a tabela, e eu queria que o cabeçalho ficasse numa fonte diferente.

  2. Eu consigo alterar o tamanho de um cabeçalho usando tab_options(heading.padding = 15). Mas eu preciso de outra opção. A ideia é definir a altura do cabeçalho pra, independente se o texto for mais curto (e couber numa linha) ou mais longo (e quebrar a linha), essa altura fique fixa.

Oi Rodrigo.

O gt é um pacote excelente, tanto pelas funções, quanto pela flexibilidade. O pacote tem uma função chamada html. Nela você pode inserir várias tags para formatar sua tabela. Veja se este exemplo faz sentido para você:

library(gt)

sp500 |> 
  head() |> 
  gt() |> 
  tab_header(
    title = gt::html("<spam style='font-family: Times New Roman; font-size: 26px'>Cabeçalho</spam>")
  )

Oi Denis! Obrigado pela resposta.

Com a sua dica, consegui alterar a fonte como gostaria! Isso resolve minha primeira dúvida.

A segunda, porém, segue sem solução. Minhas tabelas devem ter a mesma largura. Isto faz com que uma tabela chamada “Total” e outra tabela chamada “Quantidade de ocorrências em fim de semana” fiquem com tamanhos diferentes, já que a segunda fica com a linha quebrada. Para garantir que os cabeçalhos tenham o mesmo tamanho, estou usando este artifício:

if(nchar(header_label) < 27){
t ← t %>%
tab_options(heading.padding = 15)
}

O problema é que esse valor “27” é completamente arbitrário, o valor “15” não garante o tamanho igual e ainda assim alguns casos escapam. Em outra alternativa, usei a sua sugestão da gt::html() para incluir uma imagem discreta à esquerda com a altura que eu queria. Até que resolveu o tamanho do cabeçalho para nomes curtos, mas os nomes longos continuam quebrando a linha e estendendo a altura do cabeçalho para além da imagem que eu incluí.

Enfim, sigo em busca de uma forma de definir que o meu cabeçalho tenha 40 pixels, independente se o título quebra linha ou não.