#string #replace #escaping #character #substitution #input #file

finl-charsub

用于固定字符串行内替换的字符替换模块

1 个稳定版本

1.0.0 2021 年 10 月 5 日
0.1.0 2021 年 10 月 5 日

#1428文本处理

MIT/Apache

95KB
543

finl-charsub

目的

这是一个用于在字符串上执行字符替换的 Rust 库。标准的字符替换定义文件包含一个用于输入替换的字符字符串,后面跟空格,然后是替换文本。例如,可以使用以下方式重现标准的 TeX 输入约定:

`	‘
``	“
'''-----!`	¡
?`	¿
~	\u{a0}

转义遵循 Rust 约定。如果要在源或替换文本中使用空格,应使用转义码(例如 \u{20})来获取空格。然而,我不建议这样做。

另一个示例展示了 Sylvio Levy 的用于 ASCII 输入的经典希腊语的方案:

a       α
'a      ά
`a      ὰ
~a      ᾶ
>a      ἀ
>'a>`a     ἂ
>~a     ἆ
<a      ἁ
<'a<`a     ἃ
<~a     ἃ
α|      \u{1fb3}
'a|     \u{1fb4}
`a|     \u{1fb2}
~a|     \u{1fb7}
>a|     \u{1f80}
>'a|    \u{1f84}
>`a|    \u{1f82}
>~a|    \u{1f86}
<a|     \u{1f81}
<'a|    \u{1f85}
<`a|    \u{1f83}
<~a|    \u{1f87}
   ⋮
   ⋮
;       \u{387}
''?       \u{37e}
((      «
))      »

这并不是作为形状库的替代品,而是作为其补充。在 finl 中,charsubs 将在调用形状库之前应用,但在所有格式化命令之后应用

  1. http://tug2.tug.org/TUGboat/tb09-1/tb20levy.pdf

依赖

~0.4–1MB
~21K SLoC