如何在文本模式下获得更短的连字符?

如何在文本模式下获得更短的连字符?

我正在用法语创建一个大字体的标题页,我真的很讨厌这么大的标题通常使用的连字符。所以我在寻找一个更短的连字符,优雅而简单。这是一个显示问题的 MWE(我正在使用手动字距调整间距,因为它是标题页上的大标题。不是正文!):

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{libertine}
\renewcommand*\familydefault{\sfdefault}

\begin{document}

\raggedleft
        {\fontsize{58}{0}\selectfont{l\kern-0.03em '\kern-0.10em e\kern-0.02em s\kern-0.03em p\kern-0.03em a\kern-0.02em c\kern-0.02em e\textperiodcentered t\kern-0.03em e\kern-0.03em m\kern-0.04em p\kern-0.03em s}}

        {\fontsize{58}{0}\selectfont{l\kern-0.03em '\kern-0.10em e\kern-0.02em s\kern-0.03em p\kern-0.03em a\kern-0.02em c\kern-0.02em e-t\kern-0.03em e\kern-0.03em m\kern-0.04em p\kern-0.03em s}}

        {\fontsize{58}{0}\selectfont{l'espace-temps}}

\end{document}

预览:

在此处输入图片描述

那么,有没有办法定义或获得更短的连字符,只用于这个标题?我真的很羡慕这个英文单词时空,我在我的法语书中不能使用它!

答案1

使用fontspec,您有多种选择。一种是添加FakeStretch=值小于 1.0 的字体特征。

\documentclass[11pt]{book}
\tracinglostchars=2
\usepackage[french]{babel}
\usepackage{fontspec}
\usepackage{microtype}
\usepackage{libertinus}
\renewcommand*\familydefault{\sfdefault}

\newcommand\shorthyphen{{\addfontfeature{FakeStretch=0.5}^^^^2010}}

\begin{document}

\raggedleft
        {\huge l'espace-temps}
        
        {\huge l'espace{\shorthyphen}temps}
\end{document}

Libertinus 样本

如果您的字体有它,您可以用更短的连字符代替,例如 ﹣(U+FE63 小连字符减号)。

\newcommand\shorthyphen{^^^^fe63}

如果您有字体的压缩版或超压缩版,则可以从中加载连字符。如果您之前声明过\newfontfamily\condensedfont{...},则可能是

\newcommand\shorthyphen{{\condensedfont -}}

或者如果使用 NFSS 方案,其中中等凝聚态是系列mc,例如

{\fontseries{mc}\selectfont -}

相关内容