Skip to content

Commit

Permalink
新的生成码表的脚本,直接将 unicode-math-table.tex 中的符号都添加进来.
Browse files Browse the repository at this point in the history
  • Loading branch information
hubutui committed Apr 27, 2018
1 parent 1f9fce7 commit 4360ad2
Show file tree
Hide file tree
Showing 3 changed files with 2,471 additions and 47 deletions.
50 changes: 3 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,4 @@
本项目提供了一个 LaTeX 码表,可以使用简化的 LaTeX 命令输出各种数学符号,并在 HTML 文件中用 xml 实体写出,保证 USV 的准确性.这些数学符号主要都是 unicode-math 宏包用到的,就是为了方便在 LaTeX 源文件中直接使用 Unicode 字符来编辑数学公式,提高源文件的可读性.当然,用于其他地方的输入也是可以的
本项目提供了一个 LaTeX 码表,可以使用简化的 LaTeX 命令输出各种数学符号,并在 HTML 文件中用 xml 实体写出,保证 USV 的准确性.这些数学符号主要都是从 unicode-math 宏包的 unicode-math-table.tex 来的,一开始为了方便在 LaTeX 源文件中直接使用 Unicode 字符来编辑数学公式,提高源文件的可读性.当然,因为输入法的输出结果是 Unicode 字符,所以用于其他地方的输入也是可以的.需要注意的是你可能需要使用字符比较完整的字体才能正确显示所有的字符

该码表预计包含以下内容:
* 直立的大写希腊字母;
* 直立的小写希腊字母;
* 斜体的大写拉丁字母;
* 斜体的小写拉丁字母;
* 斜体的大写希腊字母;
* 斜体的小写希腊字母;
* 粗体的大写拉丁字母;
* 粗体的小写拉丁字母;
* 粗体的大写希腊字母;
* 粗体的小写希腊字母;
* 粗体的数字;
* 粗斜体的大写拉丁字母;
* 粗斜体的小写拉丁字母;
* 粗斜体的大写希腊字母;
* 粗斜体的小写希腊字母;
* 黑板粗体字母;
* 黑板粗体数字;
* 黑板粗体的其他符号;
* 等宽的大写拉丁字母;
* 等宽的小写拉丁字母;
* 等宽的数字;
* 上标和下标;
* frak 体;
* script 和 caligraph 体;
* 无衬线的大写拉丁字母;
* 无衬线的小写拉丁字母;
* 无衬线的斜体大写拉丁字母;
* 无衬线的斜体小写拉丁字母;
* 无衬线的粗体大写拉丁字母;
* 无衬线的粗体小写拉丁字母;
* 无衬线的粗斜体大写拉丁字母;
* 无衬线的粗斜体小写拉丁字母;
* 无衬线的粗体大写希腊字母;
* 无衬线的粗体小写希腊字母;
* 无衬线的粗斜体大写希腊字母;
* 无衬线的粗斜体小写拉丁字母;
* 各种带圈的数字等等;
* 其他杂项符号;

注意:
Unicode 中有一些上标和下标可以使用,这样子会使得 LaTeX 更加易读.相邻的上标或者下标会自动组合在一起,也可以认为是 A¹⁺² 等价于 A^{1+2},但是 f'¹ 这样子的输入会被认为是有误的,也许可以给开发者报告 bug.这些上标和下标符号还比较少,并且 unicode-math-table.tex 中并没有对应的宏命令,所以我只能尽量找出来,可能有误,还请修正.这部分对应的码表写在 subscripts-and-superscripts.html 中.目前 unicode-math 宏包支持的上标有:A⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁱⁿʰʲʳʷʸZ,其中 A 和 Z 只是个分界符,方便你看到输出结果;它支持的下标有:A₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑᵢₒᵣᵤᵥₓᵦᵧᵨᵩᵪZ.也许 unicode-math 宏包更新之后会添加其他的上下标,到时候再添加.unicode-math-table.tex 中虽然没有这些上下标,但是在 unicode-math 的文档 unicode-math.pdf 中的代码实现部分是有这些上下标对应的 USV 的.于是以后更新可以根据这部分来对比,保证码表的准确性.

unicode-math-table.tex 中有少量符号对应的 LaTeX 与个人常用的不一样,于是自己又补充一下,写在了 alias.html 中:
* U+002EF 对应 \unicodecdots,不过一般都用 \cdots 比较多,有比较方便.
* U+02026 对应 \unicodeellipsis,一般也是用 \ldots 比较方便吧.
# 使用方法
直接运行脚本 `generate-html.sh` 会生成一个 `unicode-math.html` 文件,用浏览器打开即可得到对应的码表.更详细的内容请参考 `fcitx-table` 目录下的 `README.md`
22 changes: 22 additions & 0 deletions generate-html.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/sh
# 删掉注释行,即 % 开始的行
sed '/^%/d' unicode-math-table.tex > tmpfile
# 删除空行
sed -i '/^$/d' tmpfile
# 取出 Unicode
cut -f 1 -d"}" tmpfile > tmpfile.usv
cut -f 2 -d'"' tmpfile.usv > usv
sed -i 's/^/\&#x/' usv
sed -i 's/$/;<br>/' usv
# 取出 TeX Macro
cut -f3 -d"{" tmpfile > value
sed -i 's/}//' value
# 合并
paste -d" " value usv > unicode-math.html
# 省略 mup 前缀,默认的直立字母应该直接输入对应的 TeX Macro 就好了
# 例如输入 alpha 而不是 mupalpha 来获得希腊字母 α
sed -i 's/mup//' unicode-math.html

# 清理临时文件
rm -vf tmpfile tmpfile.usv tmpfile.value usv value

Loading

0 comments on commit 4360ad2

Please sign in to comment.