有读者(微信好友)发信(微信消息)说表格出了问题,源码如此:
documentclass{article}
usepackage{multirow}
usepackage{amssymb}
usepackage{chemarrow}
begin{document}
begin{tabular}{|c|c|c|}
hline
multirow{4}{2cm}{$blacksquare(alpha,0)$}
& multirow{2}{*}{{10,00}} & Alice $autorightleftharpoons{10}{00}$ Bob cline{3-3}
& & Alice $autorightleftharpoons{00}{10}$ Bob cline{2-3}
& multirow{2}{*}{{01,11}} & Alice $autorightleftharpoons{01}{11}$ Bob cline{3-3}
& & Alice $autorightleftharpoons{11}{01}$ Bob hline
end{tabular}
end{document}
直接的结果:
如果我们使用LuaTeX,再加上lua-visual-debug包的话,输出如此:
我们可以这么干(对,就可以是浮点数7.5!):
multirow{7.5}{2cm}{$blacksquare(alpha,0)$}
输出结果:
至于原因,是第三列的行高被改变了,而第一列是先被求值的,4虽然指代四行高度,但是不是后面有箭头的单元格的行高。一般情况下,大部分人排表格,都不会特别复杂,所以这个问题基本上是被覆盖掉的。
从设计上来说,TeX的表格排版功能在现在来看缺陷还是不小的。但是表格的排版本身就很复杂。2018年的时候,我大概看了一下gecko内的表格排版算法,大致上要解析个三四次才能算出表格的行为。而在TeX中,表格的排版可以说是一次完成的,表格内的一些信息(具体就是一些数值属性)是不共享的。
所以,真要排表格的时候,还是最好把数据表先存在专门做表格的软件里,等到排版的时候再做比较细致的处理。