Wenjian Chern

Results 20 comments of Wenjian Chern

我的理解是,使用最后一个例子,xetex 在处理到 `a` 时,发现随后是一个特殊的字符类(`4095`),然后插入对应的 toks,然后继续处理,此时 `\tmpb` 已经恢复到了原始的定义,被展开为 `b`,和之后的 `c` 是同一个字符类,所以不插入 toks。 要想得到 “正常的结果”,就暂时取消字符类的功能。

>再次表明我的偏好:在纯展开的 \edef 等地方把所有 \noexpand 都消灭,不要把它留给 expansion processor 和 execution processor 交替执行的阶段 (texdoc topic, sec. 1.4)。 嗯嗯。实际情况一般不会这么用,只是在个别时候会用到,比如像写 TeX by topic 1.3.2 节那样的教程时,或者做 TeX 学习笔记时,为了显示相应的效果,会需要这样写。 至于恢复原始定义的触发条件,从实用性角度讲,我觉得倒没有必要纠结了。

Not only is the `+cases`, but those `+matrix` environments. One can simply redefine them by using `\RenewDocumentEnvironment` (and its friends, in `ltcmd` or its old name `xparse`), such as: ```tex...

The main reason is document command is rather slower than a usual macro, it executes many unnecessary codes for this demand. ```tex \documentclass{article} \ExplSyntaxOn \cs_new:Npn \__kernel_set_arg_to_keyvalue:Nnn #1#2#3 { \__cmd_arg_to_keyvalue:nn {#2}...

I was mean what is regarded as a 'letter', but now I realize multi-characters control sequence also is a control word whatever these characters' catcodes are, so maybe I need...

A few tests. I have no idea if internal tokens (descripted in sec. 23.7, interface3.pdf) influence the result. ```tex \documentclass[twocolumn]{article} \ExplSyntaxOn \prg_new_conditional:Npnn \token_if_cs_word:N #1 { p , T , F...

`jiazhu` 宏包会在夹注后面加上一些代码(`\__jiazhu_good_break:`)以便后面的文字能在合适的位置断行,一般情况下这没什么问题,因为这个断行策略并不激进。可能是 `tblr` 环境影响了 `jiazhu` 的断行策略。 临时的解决办法是加上: ``` \ExplSyntaxOn \newcommand{\jiazhunobrk}{ \cs_set:Npn \__jiazhu_good_break: { \tex_penalty:D \c_zero_int } } \ExplSyntaxOff \AtBeginEnvironment[./jiazhu]{tblr}{\jiazhunobrk} ```

在 `\ding` 之前进入水平模式也可以: ```tex \renewcommand\Pisymbol[2]{{\ifvmode\expandafter\indent\fi \Pifont{#1}\char#2}} ```

`\mode_leave_vertical:` (以及 `\leavevmode@ifvmode`)就是使用这个定义,我是参考的这个。(当然直接用这两个宏会更好,避免误展开 `\ifvmode`) `\mode_leave_vertical:` 和 `\leavevmode` 在实际使用时会有什么副作用吗?我没有使用前者而不使用后者的理由,同时也没有不使用后者的理由。