繁體
|
簡體
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
» 次数偏上的n次根号设计再次尝试
返回列表
发帖
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2015-7-20 00:21
|
只看该作者
次数偏上的n次根号设计再次尝试
话说前两天群里再次提起次数偏上的n次
根号
,想起旧版论坛的这贴
http://kkkkuingggg.haotui.com/thread-1375-1-1.html
,贴中1楼的图:
2015-7-20 00:28
然而却忘了当年是怎么做的,也没找到当时的相关文件,算了,重新研究下吧。
注意到 amsmath 重写了 n 次
根号
的相关代码,所以先试试从 amsmath 的代码入手。
amsmath 为了方便控制 n 次
根号
次数的位置,加入了 \leftroot 和 \uproot ,这应该跟我们的目的没太大关联,先不看那大段。
而关于放置次数的代码是
\def\r@@t#1#2{\setboxz@h{\$\m@th#1\sqrtsign{#2}\$}%
\dimen@\ht\z@\advance\dimen@-\dp\z@
\setbox\@ne\hbox{\$\m@th#1\mskip\uproot@ mu\$}%
\advance\dimen@ by1.667\wd\@ne
\mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
\mkern-10mu\mkern\leftroot@ mu\boxz@}
大概解读这段代码,如果没有设置 \leftroot 和 \uproot ,那么 \dimen@\ht\z@\advance\dimen@-\dp\z@ 后 \dimen@ 就是
根号
的高度与深度之差,因此后面放置次数的高度是它的0.6倍,这样,如果只是简单改一下这个高度,是不难办到的。
比如将 \advance\dimen@-\dp\z@ 改为 \advance\dimen@-\ht\rootbox ,这时变成了
根号
的高度与次数盒子高度之差,然后再改 .6 去掉,也就是
\def\r@@t#1#2{\setboxz@h{\$\m@th#1\sqrtsign{#2}\$}%
\dimen@\ht\z@\advance\dimen@-\ht\rootbox
\setbox\@ne\hbox{\$\m@th#1\mskip\uproot@ mu\$}%
\advance\dimen@ by1.667\wd\@ne
\mkern-\leftroot@ mu\mkern5mu\raise\dimen@\copy\rootbox
\mkern-10mu\mkern\leftroot@ mu\boxz@}
测试效果:
2015-7-20 00:21
结果确实就是比原来的升高了,而且总能升到与
根号
一样高,但是还不够前面的图的效果好,中间的几个应该再靠近
根号
一些。
然而这并不好办,注意到当
根号
最小和最大的时候位置都是刚刚好的,只是中间的需要移,那应该该怎么办好呢?用条件判断?那分界线是多少?待续……
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
$\href{https://kuingggg.github.io/}{\text{About Me}}$
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
2
#
发表于 2015-7-20 01:29
|
只看该作者
话说,我也是读了那段代码之后才意识到 \sqrt{2} 和 \sqrt[]{2} 有很大差别,放一个空的可选参数不等于没放。
测试代码:\$1+\sqrt{2}+\sqrt[]{2}\$
注:在 MathJax 里没区别,得在真 LaTeX 里测试。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
3
#
发表于 2015-7-20 15:23
|
只看该作者
用条件判断是可以,初步写了下
\newdimen\sqrtminh
\newdimen\sqrtmaxh
\sqrtminh=10.4pt
\sqrtmaxh=36.4pt
\newcount\rootpianyi
\def\r@@t#1#2{\setboxz@h{\$\m@th#1\sqrtsign{#2}\$}%
%
\dimen@\ht\z@\advance\dimen@\dp\z@
\ifdim\dimen@>\sqrtminh
\ifdim\dimen@<\sqrtmaxh
\rootpianyi=3
\fi\fi
%
\dimen@\ht\z@\advance\dimen@-\ht\rootbox
\setbox\@ne\hbox{\$\m@th#1\mskip\uproot@ mu\$}%
\advance\dimen@ by1.667\wd\@ne
\mkern-\leftroot@ mu\mkern5mu
\mkern\rootpianyi mu
\raise\dimen@\copy\rootbox
\mkern-\rootpianyi mu
\mkern-10mu\mkern\leftroot@ mu
\boxz@}
测试效果:
2015-7-21 14:47
测试文件:
nsqrttest.tex
(998 Bytes)
下载次数: 1268
2015-7-21 23:22
但是这样有个硬伤,就是一旦换了另一套数学字体,或许就会乱了。
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
4
#
发表于 2015-7-21 14:48
|
只看该作者
回复
3#
kuing
修改了一下,不用 ifthen 宏包的 \ifthenelse,直接用 \ifdim 去比较,可能会好些
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
5
#
发表于 2015-7-21 23:24
|
只看该作者
回复
3#
kuing
再改了一下,直接设置分界的数字算了,不在后面临时测量了,反正一般不会遇到字体大小变化的情况,如果不用默认字体大小,在正文开始前再用原先的命令设定它也行。
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]