哪些符号应用于字母和数字的占位符?

哪些符号应用于字母和数字的占位符?

我需要概括描述随机字母数字序列的语法,比如ACW392039B0Q8,并讨论某些情况,例如前两位数字是字母,或以 结尾的序列BA87或类似情况。用作X字母的占位符和N用作数字的占位符会导致混淆,因为讨论的一些情况处理以X或开头的序列NNXNNNN,样本NX9837NX9877NX123X(均以 开头NX)的分类既没有传达它们共同具有的子序列,也没有考虑可以是字母的数字或者一个号码。

理想情况下,我会使用占位符来唯一地标识字母数字、数字或模棱两可的数字。是否有任何已使用的符号可用于解决此类问题(例如¤未指定的货币),并且不会在正常字母之间显得太过偏离?像\CIRCLE及其派生词这样的符号会对字体颜色产生太大影响,并且...不会传达数字的数量。

答案1

我可以从 TeX 的角度回答。我的想法是将字符串设置为等宽字体(可能选择与默认字体不同的字体),但“可变”的字符串是带框的 D 或带框的 L,分别表示“数字”和“字母”。也许您可以为数字或字母字符添加另一个符号。

此代码的主要特点是它非常可定制:变量用?和表示!(如果字符串中未使用小写字母,则您可以选择dl),通过检查输入中的每个字符并检查它是否代表“变量”(占位符)来转换为带框的字符。

\documentclass{article}

\ExplSyntaxOn

\NewDocumentCommand{\rstring}{m}
 {
  \group_begin:
  \normalfont\ttfamily
  \mulmet_rstring:n { #1 }
  \group_end:
 }

\cs_new_protected:Nn \mulmet_rstring:n
 {
  \hspace{0.05em}
  \str_map_inline:nn { #1 }
   {
    \str_case:nnF { ##1 }
     {
      {?}{\mulmet_rstring_placeholder:n { D }}
      {!}{\mulmet_rstring_placeholder:n { L }}
     }
     { ##1 }
    \hspace{0.05em}
   }
 }

\cs_new_protected:Nn \mulmet_rstring_placeholder:n
 {
  \dim_set:Nn \fboxrule { 0.3pt }
  \dim_set:Nn \fboxsep { 0pt }
  \framebox[0.5em]
   {
    \hspace{-0.3pt}
    \vphantom{A}
    \normalfont\tiny\raisebox{0.4\height}{#1}
    \hspace{-0.3pt}
   }
 }

\ExplSyntaxOff

\begin{document}

We have the full string \rstring{ACW3920} but also
an incomplete one \rstring{AC????} and one with
\rstring{!!????} two letters and four digits.

\noindent one with \rstring{ABCDEF}

\end{document}

在最后一行,我表明字符串无论已满还是包含占位符都占据相同的空间。

在此处输入图片描述

如果你添加\usepackage[lighttt]{lmodern}你得到

在此处输入图片描述

答案2

\textvisiblespace如果我没有误解你的意图的话,你可以尝试一下。

\documentclass{article}

\begin{document}

ACW3920\qquad A\textvisiblespace W39\textvisiblespace 0

NX9837\qquad \textvisiblespace X9\textvisiblespace 3\textvisiblespace

\end{document}

在此处输入图片描述

相关内容