找回密码
 快速注册
搜索
查看: 104|回复: 10

如何在 array 中添加横竖分割线?

[复制链接]

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

APPSYZY 发表于 2022-12-16 16:23 |阅读模式
\begin{array}{cccccccccc}
(\sim & (p & \wedge & q) & \leftrightarrow & ((\sim & p) & \vee & (\sim & q))) \\
F & T & T & T & T & F & T & F & F & T \\
T & T & F & F & T & F & T & T & T & F \\
T & F & F & T & T & T & F & T & F & T \\
T & F & F & F & T & T & F & T & T & F
\end{array}

想要达到的效果是这样的:

例子.png

应该如何实现呢?这种情况下使用 array 环境是最好的选择吗?

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-16 20:59
区别 1:如果改成 cccc|c|ccccc 的话,竖分割线是到顶的,如何不让它出现在第一行?
区别 2:图片中的表格每一列的宽度都是相同的,但是 LaTeX 排出来的表格每列宽度并不相同。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2022-12-17 00:37
array 恐怕没办法做到。

用 tikz 吧:

(点击矩阵查看代码)

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-17 01:27
kuing 发表于 2022-12-17 00:37
array 恐怕没办法做到。

用 tikz 吧:

感谢 kuing,估计复杂一点的表格之类的都只能用 tikz 来画了,我去学一学

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-17 03:11
再给出一个和 kuing 不同的解决方案:
  1. % \usepackage{tabularray}
  2. \begin{table}
  3.     \center
  4.     $\begin{tblr}{
  5.     cells = {c},
  6.     vline{5-6} = {2-5}{},
  7.     }
  8.     (\sim & (p & \wedge & q) & \leftrightarrow & ((\sim & p) & \vee & (\sim & q))) \\
  9.     F     & T  & T      & T  & T               & F      & T  & F    & F     & T    \\
  10.     T     & T  & F      & F  & T               & F      & T  & T    & T     & F    \\
  11.     T     & F  & F      & T  & T               & T      & F  & T    & F     & T    \\
  12.     T     & F  & F      & F  & T               & T      & F  & T    & T     & F   
  13.     \end{tblr}$
  14. \end{table}
复制代码

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2022-12-17 18:11
APPSYZY 发表于 2022-12-17 03:11
再给出一个和 kuing 不同的解决方案:


原来是 2021 年才有的 tabularray 宏包,难怪我在 texlive2020 编译不通过,又懒得更新,没法测试鸟

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-19 13:41
kuing 发表于 2022-12-17 18:11
原来是 2021 年才有的 tabularray 宏包,难怪我在 texlive2020 编译不通过,又懒得更新,没法测试鸟{:wq: ...
kuing 发表于 2022-12-17 00:37
array 恐怕没办法做到。

用 tikz 吧:


好奇一件事:如果整个 matrix 过长,如何允许它在两页之间可以断开,而不是整个 matrix 整体跳入下一页呢?\allowdisplaybreaks 似乎不管用……

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2022-12-19 13:51
APPSYZY 发表于 2022-12-19 13:41
好奇一件事:如果整个 matrix 过长,如何允许它在两页之间可以断开,而不是整个 matrix 整体跳入下一页 ...

没办法。

用浮动体吧,加个标题,引用就是了。

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-20 17:31
本帖最后由 APPSYZY 于 2022-12-20 18:18 编辑
kuing 发表于 2022-12-19 13:51
没办法。

用浮动体吧,加个标题,引用就是了。


如果是写一本书,连续几页内不太可能连续出现大量 matrix,同时,叙述性文字也很多,用浮动体+引用是比较好的办法;但是我正在写的是一份答案文档,接连好几页都是纯 matrix,且没有其他的叙述性文字,这时候如果没办法让跨页面的 matrix 自动拆分就很难办

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2022-12-20 17:57
APPSYZY 发表于 2022-12-20 17:31
如果是写一本书,连续几页内不太可能连续出现大量表格,同时,叙述性文字也很多,用浮动体+引用是比较好 ...

??怎么又变成表格了?

前面一直讨论的 matrix 是指数学公式里的矩阵,就像开头说的 array 环境、matrix 环境等,这些在数学公式里是无法断开的,你 7# 问的是 matrix,所以我说没办法。

而表格是另一种东西,它不用放在公式环境里,表格里默认也是文本模式,长表格是有专用的宏包和环境来分页的,如果没记错,宏包就叫 longtable,具体我没用过,自己看手册试吧。

83

主题

167

回帖

1643

积分

积分
1643

显示全部楼层

 楼主| APPSYZY 发表于 2022-12-20 18:12
本帖最后由 APPSYZY 于 2022-12-20 18:18 编辑
kuing 发表于 2022-12-20 17:57
??怎么又变成表格了?

前面一直讨论的 matrix 是指数学公式里的矩阵,就像开头说的 array 环境、matri ...


口误,“表格”指的就是 matrix
这么看来的话,我试着用 longtable 实现一下上面的那种 matrix……

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:27

Powered by Discuz!

× 快速回复 返回顶部 返回列表