切换到宽版
用户名
Email
自动登录
找回密码
密码
登录
快速注册
快捷导航
论坛
悠闲数学娱乐论坛(第3版)
淘帖
大家一起来整理好帖子
相册
Album
标签
查看所有主题标签
搜索
初等数学讨论
高等数学讨论
TeX / LaTeX
搜索
AND
OR
exact
regexp
全文
Aa
本版
用户
悠闲数学娱乐论坛(第3版)
»
论坛
›
软件区
›
TeX / LaTeX
›
请教行间公式如何打一整行省略号?
返回列表
发新帖
查看:
8539
|
回复:
7
请教行间公式如何打一整行省略号?
[复制链接]
[复制标题+链接+出处]
abababa
abababa
当前离线
积分
11498
413
主题
1558
回帖
1万
积分
积分
11498
显示全部楼层
发消息
abababa
发表于 2015-11-6 20:45
|
阅读模式
\begin{equation}
\begin{split}
1+2+\cdots+n&=p_1\\
2+3+\cdots+(n+1)&=p_2\\
\cdots &= \cdots\\
n+(n+1)+\cdots+2n-1&=p_n\\
\cdots &= \cdots
\end{split}
\end{equation}
这里的省略号要怎么打出一整行来?用\dotfill不起作用,似乎不能用在数学环境里。
回复
举报
kuing
kuing
当前在线
积分
93613
730
主题
1万
回帖
9万
积分
积分
93613
显示全部楼层
发消息
kuing
发表于 2016-11-8 14:41
无意中发现有一个叫 \hdotsfor 的命令,只不过似乎只能用在 array 中,所以代码要改一改
\begin {equation}
\arraycolsep=0pt
\begin {array}{rl}
1+2+\cdots+n&{}=p_1\\
2+3+\cdots+(n+1)&{}=p_2\\
\hdotsfor2\\
n+(n+1)+\cdots+2n-1&{}=p_n\\
\hdotsfor2
\end {array}
\end {equation}
复制代码
About Me
备用链接
回复
举报
abababa
abababa
当前离线
积分
11498
413
主题
1558
回帖
1万
积分
积分
11498
显示全部楼层
发消息
楼主
|
abababa
发表于 2016-11-8 18:40
回复
2#
kuing
谢谢,刚试了下,确实可以打出一整行省略号,不过在这一整行中,如果像主楼中最后一行那样存在一个等号,还是没能实现。
另外感觉array有点像表格一样,发现latex想把细节都做好,也还是挺麻烦的。
回复
举报
kuing
kuing
当前在线
积分
93613
730
主题
1万
回帖
9万
积分
积分
93613
显示全部楼层
发消息
kuing
发表于 2016-11-8 19:30
回复
3#
abababa
\hdotsfor 后面的数字表示点占多少列,所以可以这样:
\begin {equation}
\arraycolsep=0pt
\begin {array}{rl}
1+2+\cdots+n&{}=p_1\\
2+3+\cdots+(n+1)&{}=p_2\\
\hdotsfor1&{}=\ldots\\
n+(n+1)+\cdots+2n-1&{}=p_n\\
\hdotsfor1&{}=\ldots
\end {array}
\end {equation}
复制代码
(原来那些点还不是居中的,所以得用 \ldots ……
)
回复
举报
abababa
abababa
当前离线
积分
11498
413
主题
1558
回帖
1万
积分
积分
11498
显示全部楼层
发消息
楼主
|
abababa
发表于 2016-11-8 20:08
回复
4#
kuing
原来如此,看样还要自己调才能做出最终效果。
回复
举报
kuing
kuing
当前在线
积分
93613
730
主题
1万
回帖
9万
积分
积分
93613
显示全部楼层
发消息
kuing
发表于 2018-1-22 15:23
看 texbook 发现有一个叫 \multispan 的东东可以处理这种问题,它更底层更通用。
1楼问题解法如下:
\begin{equation}
\begin{split}
1+2+\cdots+n&=p_1\\
2+3+\cdots+(n+1)&=p_2\\
\multispan1\dotfill &= \cdots\\
n+(n+1)+\cdots+2n-1&=p_n\\
\multispan1\dotfill &= \cdots
\end{split}
\end{equation}
复制代码
效果:
左边的那些点偏低是因为 \dotfill 的点本来就不是居中的,不过我们可以仿照 \dotfill 的定义来造一个居中的点列。
在 source2e 中 \dotfill 定义如下:
\def\dotfill{%
\leavevmode \cleaders \hb@xt@ .44em{\hss.\hss}\hfill \kern\z@}
复制代码
可以看出它就是由普通的句点构成,所以仿造居中的就很简单了:
\makeatletter
\newcommand\cdotfill{%
\leavevmode \cleaders \hb@xt@ .44em{\hss$\cdot$\hss}\hfill \kern\z@}
\makeatother
复制代码
这样,将前面代码中的两个 \dotfill 改成 \cdotfill 即得如下效果:
这就 very nice 了。
另外,如果想连等号也不要,也就整行都是点,那就:
\begin{equation}
\begin{split}
1+2+\cdots+n&=p_1\\
2+3+\cdots+(n+1)&=p_2\\
\multispan2\cdotfill\\
n+(n+1)+\cdots+2n-1&=p_n\\
\multispan2\cdotfill
\end{split}
\end{equation}
复制代码
效果:
而且 align、aligned、matrix 等环境都可以用它,比如
\[
\begin{pmatrix}
a_{11}&a_{12}&\cdots&a_{1n}\\
a_{21}&a_{22}&\cdots&a_{2n}\\
\multispan4\ \cdotfill\ \mathstrut\\
a_{m1}&a_{m2}&\cdots&a_{mn}
\end{pmatrix}
\]
复制代码
效果:
但是在矩阵中似乎有点缺陷,如上述代码所示,我得两边另加空格还有 \mathstrut 这一垂直间距,否则点列长了点,行距也不对。
About Me
备用链接
回复
举报
abababa
abababa
当前离线
积分
11498
413
主题
1558
回帖
1万
积分
积分
11498
显示全部楼层
发消息
楼主
|
abababa
发表于 2018-1-23 19:12
回复
6#
kuing
谢谢,这个方法试了一下,还可以,至少在目前的应用上够了。
当时就是想把这些做得很好,可现在一想,用得也不太广泛,那之后就一直都没再用过。
回复
举报
kuing
kuing
当前在线
积分
93613
730
主题
1万
回帖
9万
积分
积分
93613
显示全部楼层
发消息
kuing
发表于 2018-1-24 01:47
回复
7#
abababa
肯定不广泛了,而且像1#这样的情况其实也并非一定要那样排,如果是我的话我会排成:
(这里用了 mathtools 的 \shortvdotswithin 命令,用法见其宏包手册,当年弄撸题集时还不知道有这命令,所以书上没这样排,全用 \cdots ……)
真有需要用长串点的大概就是矩阵那些了……
About Me
备用链接
回复
举报
返回列表
发新帖
手机版
|
悠闲数学娱乐论坛(第3版)
GMT+8, 2025-3-4 15:42
Powered by
Discuz!
×
快速回复
返回顶部
返回列表