如何在 XeLaTeX 中通过 Unicode 代码输入符号?

如何在 XeLaTeX 中通过 Unicode 代码输入符号?

如何在 XeLaTeX 中按代码输入符号?特别是,我对不同的破折号感兴趣:

U+2011 - 不间断连字符为连字符 (U+2010),但不是允许的换行点

U+2012 ‒ 数字破折号为连字符减号,但宽度与数字相同

U+2013 – 短划线,例如用于表示值的范围

U+2014 — 长划线,例如用于中断句子的连续性

U+2015 ― 在某些印刷样式中用于引入引用文本的水平线;“引号破折号”;通常(例如,在 Unicode 标准中的代表性字形中)比长破折号长

以下是 MWE:

\documentclass{article}
\usepackage{calc}
\newlength{\len}
\begin{document}

\textemdash\ \verb|\textemdash| = \setlength{\len}{\widthof{{\textemdash}}} \the\len\\
\textthreequartersemdash\ \verb|\textthreequartersemdash| = \setlength{\len}{\widthof{{\textthreequartersemdash}}} \the\len \\
\textendash\ \verb|\textendash| = \setlength{\len}{\widthof{{\textendash}}} \the\len \\

\end{document}

我尝试了 \symbol{"2012} 但出现错误。

答案1

以 U+2013 为例,因为它们都是相同的。

直接输入字符即可。

^^^^2013

^^符号(与经典 tex 类似,但扩展到 4 或 6 ^)在最早阶段生成字符(作为输入字符)。因此,与以下选项不同,可以在任何可以使用字符的地方使用,\^^^^2013例如\–

\char"2013(或\symbol{"2013} 膨胀至相同的乳胶)。

这将排版为当前字体中的字符(如果字体中有该字符)

\Uchar"2013

扩展 到字符标记。因此,只能在扩展上下文中使用,例如\typeout

答案2

您可以自己定义名称(我猜 TU 应该添加这些)。

\documentclass{article}
\usepackage{fontspec}

\setmainfont{NewComputerModern}
\newfontfamily{\ebgar}{EB Garamond}

\newlength{\len}

% this is not even in xunicode
\DeclareTextSymbol{\textnbhyphen}{\UnicodeEncodingName}{"2011}
% this is in xunicode
\DeclareTextSymbol{\textthreequartersemdash}{\UnicodeEncodingName}{"2012}
% the following two are in tuenc
%\DeclareTextSymbol{\textendash}{\UnicodeEncodingName}{"2013}
%\DeclareTextSymbol{\textemdash}{\UnicodeEncodingName}{"2014}
% this is in xunicode
\DeclareTextSymbol{\texttwelveudash}{\UnicodeEncodingName}{"2015}

%%% easier input
\newcommand{\entry}[1]{%
  #1 & \texttt{\string#1} & \settowidth{\len}{#1}\the\len
}


\begin{document}

\noindent
\begin{tabular}{@{} l l l @{}}
\entry- \\
\entry\textnbhyphen \\
\entry\textthreequartersemdash \\
\entry\textendash \\
\entry\textemdash \\
\entry\texttwelveudash
\end{tabular}

\bigskip

\ebgar
\noindent
\begin{tabular}{@{} l l l @{}}
\entry- \\
\entry\textnbhyphen \\
\entry\textthreequartersemdash \\
\entry\textendash \\
\entry\textemdash \\
\entry\texttwelveudash
\end{tabular}

\end{document}

我使用 NewComputerModern,因为它比 Latin Modern 有更丰富的字形供应;但并不完整,正如你所见。

我为 U+2011 想了一个名字,也许还有更好的名字。也许还有更好的名字\textthreequartersemdash,也许\textfiguredash

在此处输入图片描述

相关内容