\textthreequartersemdash 在 xelatex/lualatex 中定义在哪里?

\textthreequartersemdash 在 xelatex/lualatex 中定义在哪里?

我找不到和\textthreequartersemdash的定义位置和方式。它的定义在 TU 编码中不存在,但无论所选字体如何,打印的划线宽度始终相同。以下不太短的 WE 证明了这一点:xelatexlualtex\textthreequartersemdash

\documentclass{article}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi>0
    \usepackage{fontspec}
    \defaultfontfeatures{Renderer=Basic,Ligatures={TeX}}
    \newfontfamily{\Cambria}[Scale=MatchLowercase]{Cambria}
    \newfontfamily{\Bodoni}[Scale=MatchLowercase]{Bodoni MT}
    \newfontfamily{\Stix}[Scale=MatchLowercase]{STIX Two Text}
\else
    \usepackage[utf8]{inputenc}
\fi
\newlength{\len}

\begin{document}

\ifxetex
    This is Xe\LaTeX
\else\ifluatex
    This is Lua\LaTeX
\else
    This is pdf\LaTeX
\fi\fi

\bigskip

\textemdash\ \verb|\textemdash| = \settowidth{\len}{\textemdash} \the\len\\
\textthreequartersemdash\ \verb|\textthreequartersemdash| = \settowidth{\len}{{{\textthreequartersemdash}}} \the\len \\
\textendash\ \verb|\textendash| = \settowidth{\len}{\textendash} \the\len \\
\verb|\meaning\textemdash|=\meaning\textemdash\\
\verb|\meaning\textthreequartersemdash|=\meaning\textthreequartersemdash\\

\medskip
{\Bodoni
\textemdash\ \verb|\textemdash| = \settowidth{\len}{\textemdash} \the\len\\
\textthreequartersemdash\ \verb|\textthreequartersemdash| = \settowidth{\len}{{{\textthreequartersemdash}}} \the\len \\
\textendash\ \verb|\textendash| = \settowidth{\len}{\textendash} \the\len \\
\verb|\meaning\textemdash|=\meaning\textemdash\\
\verb|\meaning\textthreequartersemdash|=\meaning\textthreequartersemdash\\
}

\medskip
{\Stix
\textemdash\ \verb|\textemdash| = \settowidth{\len}{\textemdash} \the\len\\
\textthreequartersemdash\ \verb|\textthreequartersemdash| = \settowidth{\len}{{{\textthreequartersemdash}}} \the\len \\
\textendash\ \verb|\textendash| = \settowidth{\len}{\textendash} \the\len \\
\verb|\meaning\textemdash|=\meaning\textemdash\\
\verb|\meaning\textthreequartersemdash|=\meaning\textthreequartersemdash\\
}

\end{document}

我猜测 3/4-emdash 取自 CM 字体,但我在 MikTeX 树的 TEX 文件夹中搜索后没有发现具有 定义的合理文件\textthreequartersemdash

答案1

它在 LaTeX 内核第 6834 行(发布于 2020-10-01)中定义

\DeclareTextCommandDefault{\textthreequartersemdash}{\tc@check@symbol{9}\textthreequartersemdash}

并且来自以前的外部textcomp包。

使用lualatex我们\showoutput得到

....\TS1/lmr/m/n/10 ^^V

我们还可以从显示字体命令的含义中看到,

\TS1/lmr/m/n/10=select font ts1-lmr10

因此,字形取自传统的 Type1 字体。

实际上有一条线

%\DeclareTextSymbol{\textthreequartersemdash}{TS1}{22}

在“Unicode”部分,但由于该符号的地位就 Unicode 而言尚不确定,因此这本质上是一个提醒。

相关内容