![调整特定字体的单个字符的大小](https://linux22.com/image/419437/%E8%B0%83%E6%95%B4%E7%89%B9%E5%AE%9A%E5%AD%97%E4%BD%93%E7%9A%84%E5%8D%95%E4%B8%AA%E5%AD%97%E7%AC%A6%E7%9A%84%E5%A4%A7%E5%B0%8F.png)
我在文档中使用Kerkis Sans
希腊字体作为辅助字体,用于标题、段落等。在测试字体时,我注意到大写希腊字母 F (Φ) 比其他字母小得多。我尝试调整它的大小,如下所示
\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}
我面临的问题是
- 此问题仅出现在
Kerkis Sans
字体上且文本为粗体时 - 我尝试在本地修复尺寸
有没有办法Φ
在全局范围内调整粗体大小?
答案1
应该将该错误报告给 Kerkis 的维护者。
在此期间,您可以进行如下操作:
\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}
我添加了一个+
以表明仅在必要时应用修复,即当字体系列为粗体时(粗体斜体也有错误)。
在生产版本中,删除+
:
\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 }
}