![\textthreequartersemdash 在 xelatex/lualatex 中定义在哪里?](https://linux22.com/image/426411/%5Ctextthreequartersemdash%20%E5%9C%A8%20xelatex%2Flualatex%20%E4%B8%AD%E5%AE%9A%E4%B9%89%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我找不到和\textthreequartersemdash
的定义位置和方式。它的定义在 TU 编码中不存在,但无论所选字体如何,打印的划线宽度始终相同。以下不太短的 WE 证明了这一点:xelatex
lualtex
\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 而言尚不确定,因此这本质上是一个提醒。