使用 Baskervaldx 的短斜线 (/) 表示小型大写字母?

使用 Baskervaldx 的短斜线 (/) 表示小型大写字母?

我有一些带斜线的缩写,如 ISO/IEC,我想用小写字母书写它们。问题是斜线比字母高很多。

  1. OT:这真的是印刷问题吗?我是不是应该接受稍高的斜线?
  2. 主要问题:有没有一种正确/简单的方法可以在中间添加“小写斜线”?如果有好的字体可以实现这一点,请推荐一种。

我现在正在使用巴斯克瓦德克斯字体包。这是 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[osf]{Baskervaldx}
\begin{document}
\textsc{iso/iec} with a bit too tall slash.
\end{document}

答案1

\textsc{e}在这里,我将文本斜线垂直缩小到当前字体大小的 a 的高度。(注意:由于scalerel默认在数学模式下处理参数,因此使用 a$/$实际上是在文本模式下处理斜线)。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[osf]{Baskervaldx}
\usepackage{scalerel}
\newcommand\scslash{\stretchrel*{$/$}{\textsc{e}}}
\begin{document}
\textsc{iso/iec} with a bit too tall slash.

\textsc{iso\scslash iec} with a downsized slash.

\LARGE
\textsc{iso/iec} with a bit too tall slash.

\textsc{iso\scslash iec} with a downsized slash.
\end{document}

在此处输入图片描述

上述实现保留了字形宽度并缩小了垂直高度。如果想要相同的倾斜度和更窄的字形,将 改为\stretchrel即可\scalerel实现:

在此处输入图片描述

答案2

您可以使用斜线命令:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[osf]{Baskervaldx}
\usepackage{xpatch}

\newcommand{\textslash}{/}
\makeatletter
\DeclareRobustCommand{\textslashsc}{%
  \check@mathfonts
  {\fontsize{\sf@size}{\z@}\selectfont/}%
}
\xapptocmd{\scshape}{\let\textslash\textslashsc}{}{}
\makeatother

\begin{document}

\textsc{iso\textslash iec} with a bit too tall slash
and a normal\textslash big slash.

\end{document}

在此处输入图片描述

相关内容