如何在 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
。