
ACW3920
ランダムな英数字シーケンス、たとえばまたは の構文を一般的に説明し39B0Q8
、最初の 2 桁が文字である場合や で終わるシーケンスなど、特定のケースについて説明するBA
必要があります。を文字のプレースホルダー文字として87
使用し、 を数字のプレースホルダー文字として使用すると、混乱が生じます。これは、説明されているケースの一部が または で始まるシーケンスを扱っているためです。、、(すべて で始まる)のサンプルの分類では、それらすべてに共通するサブシーケンスが伝達されず、文字になる可能性のある数字も考慮されません。X
N
X
N
NXNNNN
NX9837
NX9877
NX123X
NX
または数。
理想的には、文字の数字、数字の数字、または曖昧な数字を一意に識別するプレースホルダー シンボルを使用します。このような問題 (¤
未指定の通貨など) に対して、通常の文字間で違和感のない、すでに使用されているシンボルはありますか? などのシンボル\CIRCLE
とその派生語は、文字の色に大きく影響し、...
桁数を伝えません。
答え1
TeX の観点からお答えします。私の考えでは、文字列を等幅フォント (デフォルトとは異なるフォントを選択する場合もあります) で設定しますが、「可変」のものは「数字」と「文字」を表すボックス付き D またはボックス付き L です。数字または文字を表す別の記号を追加することもできます。
このコードの主な特徴は、非常にカスタマイズ可能であることです。変数は および で示され?
(!
文字列に小文字が使用されていない場合は および を選択できますd
) l
、ボックス文字への変換は、入力内の各文字を調べて、それが「変数」(プレースホルダー) を表しているかどうかを確認することによって行われます。
\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}
すると