我在为我的 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}