Linux Libertine 字体斜体修正

Linux Libertine 字体斜体修正

我在为我的 LaTeX 软件包手册寻找新字体时,发现了Linux 浪子最令人高兴。然而看起来不支持斜体校正(然而)。

我认为字体通常会为每个字符定义正确的斜体校正,但如果任何斜体文本后会添加额外的金额。目前,\meta{...}由于缺少斜体校正,使用的文本会碰到结束角符号:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\begin{document}
(\textit{X})

\def\metastyle{\textit}
\def\meta#1{{\metastyle {\ensuremath \langle #1\/\ensuremath \rangle }}}
\meta{X}
\end{document}

我想到了一个非常快速但非常肮脏的技巧\let\/\,,它在这种情况下有效,但不适用于一般\textit{...}用途。(\/用于明确的斜体校正并\,添加一个小的空间,IIRC 半个正常空间)

检查的定义\textit表明它最终使用了\@@italiccorr原始的\/ 原始。定义这个宏似乎\,也会在其他不需要的地方添加小空间。

有没有更好的方法可以对这个字体进行一些不错的斜体校正?它不必完美,只要比当前字体更好(即字面意思是“聊胜于无”)。

答案1

您可以尝试侵入 LaTeX 的\check@nocorr@。删除左侧更正和\let斜体更正\,(或其他合适的数量)。这可能会出现问题,但对于您的代码来说,它是有效的。我假设您在整个文档中使用 Linux Libertine;否则您必须在本地进行黑客攻击。

之前:        之后: 

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\makeatletter
\def \check@nocorr@ #1#2\nocorr#3\@nil {%
  \let \check@icl \@empty                    %%% removed left correction
  \def \check@icr {\ifvmode \else \aftergroup \maybe@ic \fi}%
  \def \reserved@a {\nocorr}%
  \def \reserved@b {#1}%
  \def \reserved@c {#3}%
  \ifx \reserved@a \reserved@b
    \ifx \reserved@c \@empty
      \let \check@icl \@empty
    \else
      \let \check@icl \@empty
      \let \check@icr \@empty
    \fi
  \else
    \ifx \reserved@c \@empty
    \else
      \let \check@icr \@empty
    \fi
  \fi
}
\let\/\,
\let\@@italiccorr\/
\makeatother
\begin{document}
(\textit{X})

\def\metastyle{\textit}
\def\meta#1{{\metastyle {\ensuremath \langle #1\/\ensuremath \rangle }}}
\meta{X}
\end{document}

相关内容