繁體
|
簡體
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-21 16:34
|
显示全部帖子
关于n次根号的一个细节及改进尝试
amsmath关于n次根号的次数放置的代码是
\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@}
在读了这段代码之后,发现一个细节处理得不太好,那就是:整个n次根号的偏移量将完全取决于次数盒子的宽度。
这就造成了 \sqrt{2} 、 \sqrt[]{2} 、 \sqrt[3]{2} 、 \sqrt[m]{2} 这些根式的偏移都不一样。
举个栗子:\$|\sqrt2|\$、\$|\sqrt[n]2|\$ 分别得到(注:别在本论坛测试,因为 MathJax 的处理是不一样的,必须在真 LaTeX 中测试)
2015-7-21 20:22
想看更细致些,我们再用以下代码来观察一下。
\$\boxed{\sqrt1}\$
\$\boxed{\sqrt[]1}\$
\$\boxed{\sqrt[.]1}\$
\$\boxed{\sqrt[3]1}\$
\$\boxed{\sqrt[\alpha]1}\$
\$\boxed{\sqrt[m]1}\$
\$\boxed{\sqrt[33]1}\$
\$\boxed{\sqrt[333]1}\$
\$\boxed{\sqrt[3333]1}\$
结果为:
2015-7-21 16:32
原代码的做法可能是为了照顾太长的次数,因为如果根号位置固定,次数太长就与前面的东西重叠了,但是次数短的时候不需要这样,于是就有了改进空间。
我们应该要做到,当次数不宽时,让根号的位置与普通二次根式的完全相同,当次数超过一定宽度的时候,才产生适当的偏移。
分界线应该取多少?由上面的代码可以看出应该是10mu,初步思考后得出如下代码
\newdimen\rootboxwd
\newbox\rootmaxwdbox
\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
\rootboxwd\wd\rootbox
\setbox\rootmaxwdbox\hbox{\$\m@th#1\mskip10mu\$}
\ifdim\rootboxwd<\wd\rootmaxwdbox
\mkern10mu\kern-\rootboxwd
\fi
\raise.6\dimen@\copy\rootbox
\mkern-10mu\mkern\leftroot@ mu\boxz@}
这样前面测试代码的结果变成:
2015-7-21 16:32
测试文件:
nsqrttest2.tex
(776 Bytes)
下载次数: 1332
2015-7-21 16:33
收藏
分享
分享到:
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-21 17:13
|
显示全部帖子
这个细节其实以前就已经注意到了,总觉得n次根式跟左边的东西似乎离得有点远,只是当时也没太在意也无能为力,所以就没管了
$\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
3
#
发表于 2015-7-21 19:45
|
显示全部帖子
我们还可以将
http://kuing.orzweb.net/viewthread.php?tid=3581
里的代码和这里的结合起来,不过那贴改得不是太满意,暂时搁置。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
4
#
发表于 2016-8-21 16:33
|
显示全部帖子
逛CTeX论坛看到这个帖
http://bbs.ctex.org/forum.php?mod=viewthread&tid=152826
,顺便也发发改变根号次数大小的方法。
也是在使用 amsmath 宏包的前提下,加上:
\def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
\$\m@th\scriptstyle{#1}\$}%
\mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
{\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
(这段代码就是在 amsmath.sty 里面抄的,将 \m@th\scriptscriptstyle{#1} 改成 \m@th\scriptstyle{#1},也就是大了一号)
测试文档:
testsq.tex
(428 Bytes)
下载次数: 1332
2016-8-21 16:38
效果对比:
2016-8-21 16:37
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
5
#
发表于 2020-2-25 21:05
|
显示全部帖子
回复
6#
abababa
这个可以换字体解决,比如用 yhmath(但是它同时也改变了其他东西,虽然可以单独抠出来用,但比较麻烦,详细见
http://kuing.orzweb.net/viewthread.php?tid=2301
)
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
6
#
发表于 2020-2-25 21:48
|
显示全部帖子
回复
6#
abababa
其实我曾经用 tikz 设计出一个根号,高度无上限,都不会直立,并且次数偏上,还能加个 `\neg`,像这样:
2020-2-25 22:10
可惜后来发现似乎会对编译速度有点影响,特别是多层根号时,这一点暂时未能解决,所以暂时还不敢拿出来……
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]