¿Qué símbolos deberían usarse como marcadores de posición para letras y dígitos numéricos?

¿Qué símbolos deberían usarse como marcadores de posición para letras y dígitos numéricos?

Necesito describir en general la sintaxis de secuencias alfanuméricas aleatorias, digamos ACW3920o 39B0Q8, y discutir ciertos casos, por ejemplo, los dos primeros dígitos son letras, o la secuencia que termina en BA, 87o similar. Usar Xcomo carácter marcador de posición para letras y Ncomo carácter marcador de posición para números llevaría a confusión porque algunos de los casos discutidos manejan secuencias que comienzan con Xo N: NXNNNN, la categorización de las muestras NX9837, NX9877, NX123X(todos comienzan conNX ), no comunica el sub- secuencia que todos tienen en común, ni tiene en cuenta dígitos que pueden ser una letraoun número.

Lo ideal sería utilizar símbolos de marcador de posición que identifiquen de forma única un dígito alfabético, un dígito numérico o un dígito ambivalente. ¿Existe algún símbolo ya utilizado para este problema (como ¤para una moneda no especificada) que no se vea demasiado diferente entre las letras normales? Los símbolos como \CIRCLEy sus derivados afectan demasiado el color del tipo y ...no transmiten la cantidad de dígitos.

Respuesta1

Puedo responder desde el punto de vista de TeX. Mi idea es configurar las cadenas en fuente monoespaciada (tal vez elegir una diferente a la predeterminada), pero las "variables" son una D encuadrada o una L encuadrada para "dígito" y "letra". Quizás puedas agregar otro símbolo para un carácter que sea un dígito o una letra.

Lo principal de este código es que es muy personalizable: las variables se indican con ?y !(puede elegir dy lsi no se usan letras minúsculas en las cadenas), la conversión a caracteres en cuadros se realiza examinando cada carácter en la entrada y verificando si representa una “variable” (marcador de posición).

\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}

En la última fila muestro que las cadenas ocupan el mismo espacio ya sea que estén llenas o contengan marcadores de posición.

ingrese la descripción de la imagen aquí

Si agregas \usepackage[lighttt]{lmodern}obtienes

ingrese la descripción de la imagen aquí

Respuesta2

Podrías intentarlo \textvisiblespacesi no me equivoco en tu intención.

\documentclass{article}

\begin{document}

ACW3920\qquad A\textvisiblespace W39\textvisiblespace 0

NX9837\qquad \textvisiblespace X9\textvisiblespace 3\textvisiblespace

\end{document}

ingrese la descripción de la imagen aquí

información relacionada