Redimensionar um único caractere de uma determinada fonte
Aug 19 2020
Eu uso a Kerkis Sans
fonte grega como fonte secundária em meus documentos, para títulos, parágrafos, etc. Enquanto eu testava a fonte, percebi que o F (Φ) grego maiúsculo é muito menor que o resto das letras. Minha tentativa de redimensionar foi esta
\documentclass[english,greek]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{txfontsb,graphicx}
\newcommand{\kerkissans}[1]{{\fontfamily{maksf}\selectfont #1}}
\begin{document}
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ\\
\kerkissans{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}\\
\kerkissans{\textbf{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}}\\
\kerkissans{\textbf{\resizebox{!}{6pt}{Φ}Φ}}
\end{document}

Os problemas que enfrento são
- Este problema aparece apenas com a
Kerkis Sans
fonte e apenas quando o texto está em negrito - Minha tentativa corrige o tamanho localmente
Existe uma maneira de redimensionar o negrito Φ
globalmente?
Respostas
5 egreg Aug 19 2020 at 05:04
O bug deve ser relatado ao mantenedor do Kerkis.
Enquanto isso, você pode fazer o seguinte:
\documentclass[english,greek]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{txfontsb}
\usepackage{graphicx}
\usepackage{newunicodechar}
\usepackage{xparse}
\newcommand{\kerkissans}[1]{{\fontfamily{maksf}\selectfont #1}}
\newunicodechar{Φ}{\FIXEDPHI}
\ExplSyntaxOn
\NewDocumentCommand{\FIXEDPHI}{}
{
\str_if_eq:eeTF { \use:c { f@family } } { maksf }
{
\str_if_in:enTF { \use:c { f@series } } { b }
{ \resizebox{!}{\fontcharht\font`A}{F} +}
{ F }
}
{ F }
}
\prg_generate_conditional_variant:Nnn \str_if_in:nn { e } { T, F, TF }
\ExplSyntaxOff
\begin{document}
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
\kerkissans{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}
\kerkissans{\textit{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}}
\kerkissans{\textbf{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}}
\kerkissans{\textit{\textbf{ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ}}}
\end{document}
Eu adicionei um +
para mostrar que a correção é aplicada apenas quando necessário, ou seja, quando a série da fonte está em negrito (também negrito itálico tem o bug).
Na versão de produção, remova +
:
\NewDocumentCommand{\FIXEDPHI}{}
{
\str_if_eq:eeTF { \use:c { f@family } } { maksf }
{
\str_if_in:enTF { \use:c { f@series } } { b }
{ \resizebox{!}{\fontcharht\font`A}{F} }
{ F }
}
{ F }
}
Saída com +
para depuração

Saída com a versão de produção

O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas