Ridimensiona un singolo carattere da un determinato tipo di carattere
Uso il Kerkis Sans
carattere greco come carattere secondario nei miei documenti, per titoli, paragrafi ecc. Mentre stavo testando il carattere ho notato che la F maiuscola greca (Φ) è molto più piccola del resto delle lettere. Il mio tentativo di ridimensionarlo è stato questo
\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}

I problemi che devo affrontare sono
- Questo problema viene visualizzato solo con il
Kerkis Sans
carattere e solo quando il testo è in grassetto - Il mio tentativo risolve la dimensione localmente
C'è un modo per ridimensionare il grassetto a Φ
livello globale?
Risposte
Il bug dovrebbe essere segnalato al manutentore di Kerkis.
Nel frattempo, puoi fare quanto segue:
\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}
Ho aggiunto un +
per mostrare che la correzione viene applicata solo quando necessario, cioè quando la serie di caratteri è in grassetto (anche il grassetto corsivo ha il bug).
Nella versione di produzione, rimuovi +
:
\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 }
}
Uscita con +
per il debug

Uscita con la versione di produzione
