繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
快速注册
登录
论坛
搜索
帮助
原始风格
brown
purple
green
red
orange
gray
pink
violet
blue
greyish-green
jeans
greenwall
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
应用通知 (0)
应用邀请 (0)
悠闲数学娱乐论坛(第2版)
»
TeX / LaTeX
» 全包围矩阵
返回列表
发帖
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2017-9-18 14:08
|
只看该作者
全包围矩阵
问题来自:
http://bbs.ctex.org/forum.php?mod=viewthread&tid=154094
要输入这样的矩阵:
2017-9-18 14:03
方法一:用
http://www.latexstudio.net/archives/643
里提供的 qbordermatrix 包。
方法二:就是我在原帖中的 tikz 画法:
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}
\begin{document}
\begin{tikzpicture}[baseline=(m-3-3.base),every node/.style={inner sep=0pt}]
\matrix (m) [matrix of math nodes,column sep=12pt,row sep=8pt]
{
\square & x & y & \lambda & c_i \\
f_1 & 2^* & \square & 0^\circ & 2 \\
f_2 & \square & 2^\circ & 0^* & 2 \\
f_2 & 0^\circ & 0^* & \square & 0 \\
d_j & 2 & 2 & 0 & \square \\
};
\coordinate (jiao1) at (m-2-2.north west);
\coordinate (jiao2) at (m-4-4.south east);
\node[rectangle,left delimiter=(,right delimiter=)]
at ($(jiao1)!0.5!(jiao2)$)
{
\tikz{\path(jiao1)(jiao2);}
};
\end{tikzpicture}
\end{document}
复制代码
效果:
2017-9-18 14:08
用 tikz 画虽然麻烦些,但更自由些。
需要注意的是,括号的位置由 jiao1 和 jiao2 两个点来决定,它们实际上就是对角线的顶点。
上面的矩阵由于各元素宽度都差不多,所以取 m-2-2、m-4-4 或者 m-4-2、m-2-4 都是可以的。
而对于一般情形,还要看情况来取点。
像下面这样的情形就比较麻烦:
1 & 1 & 1 & 1 & 1 \\
2 & 2222222 & 2 & 2222222 & 2 \\
3 & 3 & 3 & 3 & 3 \\
4 & 4 & 4 & 4 & 4 \\
5 & 5 & 5 & 5 & 5 \\
最长的东西在同一行,无论取 m-2-2、m-4-4 还是 m-4-2、m-2-4 都不行,会是这样子:
2017-9-18 14:37
2017-9-18 14:37
这时得这样取:
\coordinate (jiao1) at (m-2-2.north west);
\coordinate (jiao2) at (m-4-4.south east-|m-2-4.east);
效果才是正确的:
2017-9-18 14:40
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
$\href{https://kuingggg.github.io/}{\text{About Me}}$
isee
发短消息
加为好友
isee
当前离线
UID
15
帖子
5033
主题
697
精华
0
积分
31361
威望
18
阅读权限
90
性别
男
在线时间
8792 小时
注册时间
2013-6-15
最后登录
2022-12-7
2
#
发表于 2017-9-18 22:43
|
只看该作者
tikz 画起图来真是棒的
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
3
#
发表于 2017-9-20 14:39
|
只看该作者
本来想再演示更复杂的情况,比如在前三列上面加个花括号,于是照用同样的招式,在后面加上:
\coordinate (t1) at (m-1-1.north west);
\coordinate (t2) at (m-1-3.north east);
\node[rectangle,above delimiter=\{]
at (\$(t1)!0.5!(t2)\$)
{
\tikz{\path(t1)(t2);}
};
结果却出科意料:
2017-9-20 13:55
为什么会向上偏移了呢?
研究了很久,通过各种测试,终于发现了问题所在,就是整个图指定了 baseline=(m-3-3.base),去掉它,就不会偏移。
这是为什么呢,因为这个 baseline 影响到了里面的 \tikz{\path(t1)(t2);},结果这个 \node 的大小除了要包含 (t1)(t2),还有 (m-3-3.base),而由于它在 (t1)(t2) 的下方,于是整个 \node 就变高了。
而1楼的没问题,正是因为 (m-3-3.base) 在 (jiao1)(jiao2) 之间,换言之,如果将1楼的两个点改成
\coordinate (jiao1) at (m-1-1.north west);
\coordinate (jiao2) at (m-2-2.south east);
同样会出问题:
2017-9-20 14:21
但是,指定 baseline 是有必要的,它决定了与外面的东西如何对齐,不应该去掉,所以解决办法是将 \tikz{\path(t1)(t2);} 改成 \tikz[baseline=default]{\path(t1)(t2);}。
综上所述,可以写出以下的:
\[
f(x)=
\begin{tikzpicture}[baseline=(m-3-3.base),every node/.style={inner sep=0pt}]
\matrix (m) [matrix of math nodes,column sep=12pt,row sep=8pt]
{
\square & x & y & \lambda & c_i \\
f_1 & 2^* & \square & 0^\circ & 2 \\
f_2 & \square & 2^\circ & 0^* & 2 \\
f_2 & 0^\circ & 0^* & \square & 0 \\
d_j & 2 & 2 & 0 & \square \\
};
\coordinate (jiao1) at (m-2-2.north west);
\coordinate (jiao2) at (m-4-4.south east);
\node[rectangle,left delimiter=(,right delimiter=)]
at ($(jiao1)!0.5!(jiao2)$)
{
\tikz[baseline=default]{\path(jiao1)(jiao2);}
};
\coordinate (jiao3) at (m-1-1.north west);
\coordinate (jiao4) at (m-2-2.south east);
\node[rectangle,left delimiter={[},right delimiter={]}]
at ($(jiao3)!0.5!(jiao4)$)
{
\tikz[baseline=default]{\path(jiao3)(jiao4);}
};
\coordinate (t1) at (m-1-1.north west);
\coordinate (t2) at (m-1-3.north east);
\node[rectangle,above delimiter=\{] (tt)
at ($(t1)!0.5!(t2)$)
{
\tikz[baseline=default]{\path(t1)(t2);}
};
\node[above=12pt] at (tt) {$t$};
\end{tikzpicture}
\]
复制代码
效果:
2017-9-20 14:39
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
其妙
发短消息
加为好友
其妙
当前离线
UID
38
帖子
2386
主题
95
精华
0
积分
12885
威望
4
阅读权限
90
在线时间
1110 小时
注册时间
2013-6-22
最后登录
2022-2-10
4
#
发表于 2017-10-3 22:37
|
只看该作者
tikz好不好学?
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
5
#
发表于 2017-10-3 22:40
|
只看该作者
回复
4#
其妙
不好
TOP
其妙
发短消息
加为好友
其妙
当前离线
UID
38
帖子
2386
主题
95
精华
0
积分
12885
威望
4
阅读权限
90
在线时间
1110 小时
注册时间
2013-6-22
最后登录
2022-2-10
6
#
发表于 2017-10-3 22:54
|
只看该作者
看你们搞得那么欢,还准备学呢,
,
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
7
#
发表于 2020-3-9 15:19
|
只看该作者
昨天在
这帖
用的 fit,突然想起也可以用于本帖。
测试结果是:
用 fit 完全不会出现上面说的各种问题,连代码也简化不少!
比如开头的,只需这样写:
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{matrix,fit}
\begin{document}
\begin{tikzpicture}[baseline=(m-3-3.base),every node/.style={inner sep=0pt}]
\matrix (m) [matrix of math nodes,column sep=12pt,row sep=8pt]
{
\square & x & y & \lambda & c_i \\
f_1 & 2^* & \square & 0^\circ & 2 \\
f_2 & \square & 2^\circ & 0^* & 2 \\
f_2 & 0^\circ & 0^* & \square & 0 \\
d_j & 2 & 2 & 0 & \square \\
};
\node[fit=(m-2-2)(m-4-4)(m-2-4)(m-4-2),
left delimiter=(,right delimiter=)]{};
\end{tikzpicture}
\end{document}
复制代码
把四个角都 fit 起来,就完全不用管哪个长哪个短的问题,保证能完全包住。
也不用在 node 里面再来一个 \tikz 了。
(效果图没变,就不再重复截图了,下同)
3# 最后那个复杂点的,也只需这样写:
\[
f(x)=
\begin{tikzpicture}[baseline=(m-3-3.base),every node/.style={inner sep=0pt}]
\matrix (m) [matrix of math nodes,column sep=12pt,row sep=8pt]
{
\square & x & y & \lambda & c_i \\
f_1 & 2^* & \square & 0^\circ & 2 \\
f_2 & \square & 2^\circ & 0^* & 2 \\
f_2 & 0^\circ & 0^* & \square & 0 \\
d_j & 2 & 2 & 0 & \square \\
};
\node[fit=(m-2-2)(m-4-4)(m-4-2)(m-2-4),
left delimiter=(,right delimiter=)]{};
\node[fit=(m-1-1)(m-2-2)(m-2-1)(m-1-2),
left delimiter={[},right delimiter={]}]{};
\node[fit=(m-1-1)(m-1-3),label={[yshift=10pt]90:$t$},
above delimiter=\{]{};
\end{tikzpicture}
\]
复制代码
简单太多了,也完全没有什么 baseline 的问题。
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]