We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
以下のコードでupTeXではUTF-8バイト列中の欧文バイトまで置換されてしまう。
% UTF-8で保存。 \ExplSyntaxOn \tl_set:Nn \l_tmpa_tl {±ñıűƱDZȱɱ } \regex_replace_all:nnN {±} {*} \l_tmpa_tl \tl_show:N \l_tmpa_tl \ExplSyntaxOff
upTeX:
> \l_tmpa_tl=*^^c3*^^c4*^^c5*^^c6*^^c7*^^c8*ɱ.
pTeX:
> \l_tmpa_tl=*^^c3^^b1^^c4^^b1^^c5^^b1^^c6^^b1^^c7^^b1^^c8^^b1^^c9^^b1.
l3regexでは文字トークンはカテゴリコードによらずマッチするため、upTeXの場合は文字コードが128--255の和文文字と欧文バイトがマッチしてしてしまう。
interface3.pdf "8.1.2 Characters in regular expressions" より
Most characters match exactly themselves, with an arbitrary category code.
The text was updated successfully, but these errors were encountered:
l3regex 内部では例えば ± は \__regex_item_caseful_equal:n {177} のように表現されており、そこには文字コードしかないため和文と欧文を区別することができない。
±
\__regex_item_caseful_equal:n {177}
l3regex ではカテゴリコードを指定したマッチもできる。これを使って和文と欧文お区別を表現で起訴だが、例えば \c[LO] A (カテゴリコード 11 (letter) または 12 (other))は \__regex_item_catcode:nT {20971520}{\__regex_item_caseful_equal:n {65}} のように表現されている。この 20971520 は $4^{11} + 4^{12}$ の意味である。このようにカテゴリコードは 4 の累乗の和で表現されているのでカテゴリコード 16 以上はオバーフローしてしまい使用できない。
\c[LO] A
\__regex_item_catcode:nT {20971520}{\__regex_item_caseful_equal:n {65}}
【案1】\__regex_item_jachar_equal:n 等を用意し和文ならこちらを欧文なら \__regex_item_caseful_equal:n をつかう。
\__regex_item_jachar_equal:n
\__regex_item_caseful_equal:n
【案2】和文なら \__regex_item_jachar:T {...}、欧文なら \__regex_item_jachar:F {...} のようにする。
\__regex_item_jachar:T {...}
\__regex_item_jachar:F {...}
どちらにしてもマッチング時は l3tl-analysis によって文字コードとカテゴリコードを取得しているので #3 を何とかしないとどうしようもない。
Sorry, something went wrong.
No branches or pull requests
以下のコードでupTeXではUTF-8バイト列中の欧文バイトまで置換されてしまう。
upTeX:
pTeX:
l3regexでは文字トークンはカテゴリコードによらずマッチするため、upTeXの場合は文字コードが128--255の和文文字と欧文バイトがマッチしてしてしまう。
interface3.pdf "8.1.2 Characters in regular expressions" より
The text was updated successfully, but these errors were encountered: