
ACW3920
나는 일반적으로 임의의 영숫자 시퀀스(예: 또는 ) 의 구문을 설명 39B0Q8
하고 특정 사례(예: 처음 두 자리가 문자이거나 로 끝나는 시퀀스 또는 이와 유사한 경우)에 대해 논의 BA
해야 합니다 87
. X
문자에 대한 자리 표시자 문자 및 N
숫자에 대한 자리 표시자 문자로 사용하면 논의된 사례 중 일부가 X
또는 N
: 로 시작 하는 시퀀스를 처리하기 때문에 혼란을 초래할 수 있습니다. NXNNNN
샘플의 분류는 ( 모두로 시작하는 ) 하위 항목을 전달하지 않습니다. 모두 공통적으로 가지고 있는 순서를 따르며, 문자가 될 수 있는 숫자도 고려하지 않습니다.NX9837
NX9877
NX123X
NX
또는숫자.
이상적으로는 문자 숫자, 숫자 또는 양가 숫자를 고유하게 식별하는 자리 표시자 기호를 사용합니다. 이러한 문제(예: 지정되지 않은 통화)에 대해 이미 사용된 기호가 있습니까 ¤
? 일반 문자 사이에서 너무 이상해 보이지 않습니까? 같은 기호 \CIRCLE
및 그 파생어는 유형 색상에 너무 많은 영향을 미치고 ...
자릿수를 전달하지 않습니다.
답변1
TeX 관점에서 대답할 수 있습니다. 내 생각은 문자열을 고정 폭 글꼴로 설정하는 것입니다(기본값과 다른 글꼴을 선택할 수도 있음). 그러나 "변수" 글꼴은 "숫자" 및 "문자"에 대해 박스형 D 또는 박스형 L입니다. 어쩌면 숫자나 문자인 문자에 대해 다른 기호를 추가할 수도 있습니다.
이 코드에서 가장 중요한 점은 사용자 정의가 매우 쉽다는 것입니다. 변수는 ?
and 로 표시되며(문자열에 소문자를 사용하지 않을 경우 !
선택할 수 있음 ) 상자 안에 있는 문자로의 변환은 입력의 각 문자를 검사하고 여부를 확인하여 발생합니다. 이는 "변수"(자리 표시자)를 나타냅니다.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}
얻는다