我有一个非常简单的测试用例,它显示所有 Latin-1 可打印字符(U+0021
- U+007e
,U+00A1
- U+00ff
)。它对除 之外的每个 UTF-8 字符都能正常工作U+00AD
。它在 LuaLaTeX 和 XeLaTex 上都失败了。
我使用 或设置等宽字体都没有关系unicode-math
。如果我在记事本中打开源文件,无论我选择哪种字体(只要字体支持 Latin-1),所有内容都会正确显示。如果我使用 setmonofont 设置字体,则没有任何区别。
以下是测试用例:
\documentclass[10pt]{article}
\begin{document}
\begin{verbatim}
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
à á â ã ä å æ ç è é ê ë ì í î ï
ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
\end{verbatim}
\end{document}
这在问题中显示不正确,因此源图像也包含在等宽字体中。
这是输出。可以看出,在 ASCII 范围上方的第一行(从倒置的 ! 开始),在“not”符号后面,连字符被省略了。这在非逐字模式下可能是正确的,因为如果它嵌入在单词中,它就是一个“弱”连字符。但是,这种处理不应该在逐字模式下发生。请注意,当不处于逐字模式时,它也会失败,并且由于弱连字符没有嵌入在单词中,因此不应将其省略(如记事本所示)。
答案1
记事本显示的内容不应视为绝对规则。例如,我机器上的编辑器不显示 U+00AD。
即使我要求显示隐形字符也不行
但是,您可能决定显示里面的角色verbatim
,这并不难:在启动时挂入代码以添加您的个人资料verbatim
。
\documentclass[10pt]{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@verbatim}{\@noligs}{\@noligs\@otherstuff}{}{}
\def\@otherstuff{\catcode"AD=\active}
\begingroup
\catcode"AD=\active
\gdef^^ad{{\ooalign{-\cr\hidewidth?\hidewidth\cr}}}
\endgroup
\begin{document}
\begin{verbatim}
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
à á â ã ä å æ ç è é ê ë ì í î ï
ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
\end{verbatim}
\end{document}
决定外观,这里将问号叠加在连字符上。
答案2
答案3
正则表达式可以找到格式字符并将其替换为可见的内容:
平均能量损失
\documentclass{article}
\usepackage{xparse}
\usepackage{xcolor}
\ExplSyntaxOn
\NewDocumentCommand { \showAD } { +m } {
\tl_set:Nn \l_tmpa_tl { #1 }
\regex_replace_all:nnN
{ \xAD }
{ \cB\{ \c{color} \cB\{ red \cE\} A \cE\} \c{llap}\cB\{ D \cE\} }
\l_tmpa_tl
\tl_use:N \l_tmpa_tl
}
\ExplSyntaxOff
\begin{document}
abcxyz (invisible)
\showAD{abcxyz} (visible)
\ttfamily
\showAD{¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯}
\end{document}