繁體
|
簡體
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
» 如何使小括号自动使用\left\right?
返回列表
发帖
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2018-5-12 15:51
|
只看该作者
如何使小括号自动使用\left\right?
之前用的代码是
\def\lparen{(}
\def\rparen{)}
\catcode`(=\active
\catcode`)=\active
\def({\ifmmode\left\lparen\else\lparen\fi}
\def){\ifmmode\right\rparen\else\rparen\fi}
复制代码
但是现在重新安装了一下系统和texlive,发现用ifmmode不行了,改成ifinner是可以的,但这样行间公式就没自动用到\left\right。请教这个应该怎么改才行?
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
2
#
发表于 2018-5-12 16:47
|
只看该作者
我懒得更新,所以没报错,没法帮你测试咯……
PS、这种更改具有危险性,慎用啊……(这类操作我只试过用来切换一些中文标点符号,其他地方都没用过)
TOP
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
3
#
发表于 2018-5-12 19:47
|
只看该作者
本帖最后由 abababa 于 2018-5-12 20:04 编辑
回复
2#
kuing
刚才又试了一下ifmmode,发现就是下面这个不行:
\[\begin{bmatrix}
(p-a)^2 & (p-b)^2 & (p-c)^2
\end{bmatrix}\]
复制代码
哦,原来bmatrix,align,cases这些都不行,不知道为什么。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
4
#
发表于 2018-5-12 20:46
|
只看该作者
回复
3#
abababa
那就是和版本无关了,因为加了这段之后,我这里也报错了。
所以说嘛,还是不要随便改底层和常用的东西……
TOP
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
5
#
发表于 2018-5-12 20:52
|
只看该作者
回复
4#
kuing
不过我这里之前都是可以用的,之前那些tex文件都能编译,就是这次重装之后,都不行了。上次的版本是texlive2015的好像。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
6
#
发表于 2018-5-13 01:57
|
只看该作者
无意中发现用 { } 括住之后竟然就可以通过……完全不理解……
而且 align 只需括住 & 的左边,右边不用,太奇怪鸟……
\documentclass{article}
\usepackage{amsmath}
\def\lparen{(}
\def\rparen{)}
\catcode`(=\active
\catcode`)=\active
\def({\ifmmode\left\lparen\else\lparen\fi}
\def){\ifmmode\right\rparen\else\rparen\fi}
\begin{document}
($\dfrac12$), $(\dfrac12)^2$
\[\begin{bmatrix}
{(\dfrac12)^2} & {(\dfrac12)^2} & {(\dfrac12)^2}\\
{(\dfrac12)^2} & {(\dfrac12)^2} & {(\dfrac12)^2}
\end{bmatrix}\]
\begin{align}
{(\frac12)^2}&=(\frac12)^2+(\frac12)^2\\
{(\frac12)^2}&=(\frac12)^2+(\frac12)^2
\end{align}
\[f(x)=\begin{cases}
{(\dfrac12)^2}&{(\dfrac12)^2}\\
{(\dfrac12)^2}&{(\dfrac12)^2}
\end{cases}\]
\end{document}
复制代码
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
7
#
发表于 2018-5-13 02:14
|
只看该作者
既然加 { } 是有用的,那么干脆就在定义里添加好了,试了下果然可行,不过也不知有没有其他副作用……
靠蒙竟然也能解决,俺的运气看来还是阔以嘀
\documentclass{article}
\usepackage{amsmath}
\def\lparen{(}
\def\rparen{)}
\catcode`(=\active
\catcode`)=\active
\def({\begingroup\ifmmode\left\lparen\else\lparen\fi}
\def){\ifmmode\right\rparen\else\rparen\fi\endgroup}
\begin{document}
($\dfrac12$), $(\dfrac12)^2$
\[\begin{bmatrix}
(\dfrac12)^2 & (\dfrac12)^2 & (\dfrac12)^2\\
(\dfrac12)^2 & (\dfrac12)^2 & (\dfrac12)^2
\end{bmatrix}\]
\begin{align}
(\frac12)^2&=(\frac12)^2+(\frac12)^2\\
(\frac12)^2&=(\frac12)^2+(\frac12)^2
\end{align}
\[f(x)=\begin{cases}
(\dfrac12)^2&(\dfrac12)^2\\
(\dfrac12)^2&(\dfrac12)^2
\end{cases}\]
\end{document}
复制代码
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
8
#
发表于 2018-5-13 09:06
|
只看该作者
回复
7#
kuing
谢谢,这个没有中文的是可以的。不过这样和下面的
\usepackage[slantfont,boldfont]{xeCJK}
是冲突的。
在网上也找到一个方案:
https://tex.stackexchange.com/qu ... -for-left-and-right
不过都试了,也没能完全解决目前的情况。但是升级之前都是可以用的。
唉,之前用的包太多了,不知道哪个就有冲突,最关键的是我现在都记不清那些包当初是用来干什么的
觉得latex应该在编译时就告诉哪些包会有冲突,而不是最后给出一个具体的哪行有错误。
TOP
isee
发短消息
加为好友
isee
当前离线
UID
15
帖子
5033
主题
697
精华
0
积分
31361
威望
18
阅读权限
90
性别
男
在线时间
8792 小时
注册时间
2013-6-15
最后登录
2022-12-7
9
#
发表于 2018-5-13 11:00
|
只看该作者
嘿嘿最核心的底层代码从不动(也不会动)。。。。。。没这种痛苦。。。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
10
#
发表于 2018-5-13 12:03
|
只看该作者
回复
8#
abababa
还是不要这样搞了,事实上很多地方本身也不应该用 left right。
至于宏包多到记不清,那只能怪你自己当初太懒(我记得你加宏包都是全部放在一个 \usepackage 里的是吧?)
TOP
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
11
#
发表于 2018-5-13 12:17
|
只看该作者
本帖最后由 abababa 于 2018-5-13 12:23 编辑
回复
10#
kuing
是的,没参数的都放在一个usepackage里了
我之前弄了一些求偏导,还有积分号、$\sum$号的那些公式,因为很多,觉得小括号没能适应高度,就一直想让它自动适应,费了很大力气才弄好,结果一升级全不行了。
像$(\frac{n+1}{n})^n$,$\iint_{D}(\frac{\partial }{\partial x}-\frac{\partial }{\partial y})dxdy$这样的应该用\left\right吗?还有这种的:
\[\sum_{n=0}^{\infty}(a_n\int_{0}^{A}x^ne^{-x}dx)\]
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
12
#
发表于 2018-5-13 14:50
|
只看该作者
回复
11#
abababa
这些应该用。
什么时候不应该用,可以看以下例子:
\documentclass{article}
\usepackage[showframe,paperwidth=5.85cm]{geometry}
\begin{document}
xxxxxxxxxxxx $a+\left(b+c\right)$
xxxxxxxxxxxx $a+(b+c)$
xxxxxxxxxxx $a+\left(b+c\right)$
xxxxxxxxxxx $a+(b+c)$
$f(x)g(x)$\par
$f\left(x\right)g\left(x\right)$
\[
f(\sqrt2x)+f\left(\sqrt2x\right)
\]
\end{document}
复制代码
效果:
2018-5-13 14:45
关于前四行,因为处理 \left( ... \right) 时,是要先排版里面的东西,知道高度之后再决定用多大的括号,所以它总是一个整体,不能断行,也不参与间距压缩。
从第五、六行看出,有时 \left( ... \right) 会在两边产生多余的间距。
最后一行 \left( ... \right) 所选的括号太大,当然这与个人审美有关,像这种情况通常我会用 \bigl(\sqrt2x\bigr),大小介于图中的两者之间:`\displaystyle f(\sqrt2x)+f\bigl(\sqrt2x\bigr)+f\left(\sqrt2x\right)`
还有 texbook 里给的例子:
\left|\left|x\right|-\left|y\right|\right| 只能得到 `\left|\left|x\right|-\left|y\right|\right|`
这里也应该用 \big 来使外层的绝对值大一点,即 `\bigl||x|-|y|\bigr|`
至于和式:
2018-5-13 17:51
texbook 里也不建议用 left right,这个我倒觉得无所谓,反正这也都是个人喜好的问题了。
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
abababa
发短消息
加为好友
abababa
当前离线
UID
2354
帖子
1355
主题
285
精华
0
积分
7965
威望
11
阅读权限
90
在线时间
179 小时
注册时间
2014-5-1
最后登录
2022-5-14
13
#
发表于 2018-5-13 19:32
|
只看该作者
回复
12#
kuing
之前就是那些求和、积分、大分数等等用得太多了,总打\left\right嫌麻烦,然后上网一找括号自动适应高度,就用上了,心想这回可好了。这次升级,取消了自动适应高度,根本找不到之前哪些地方应该用\left\right。
不过latex怎么不弄成自动适应高度的呢?像那个求和的,先计算里面的高度,然后上下各减去一点就可以了,就和\biggl一样了。如果发现只有一边括号,不能配对,就放弃适应。觉得这样更方便一些。网上还提到了nath包,不过也只能适应一层,多层的还是不行。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
14
#
发表于 2018-5-14 01:41
|
只看该作者
回复
13#
abababa
可能为了效率吧,因为实际当中需要 left right 的地方也没有那么多吧,当然这跟你在排什么有关,而按我的经验就觉得不多,拿撸题集随便看了几页,所在括号中用上 left right 的也就两三成。
如果全都自动适应,除了浪费资源降低效率,还会出现我上面说的那些问题,而要同时解决那些问题的话,内部的处理就要设计得更复杂,进一步降低效率,而且还不知会不会在我们想不到的地方带来麻烦哩。
所以作为程序的基础,不弄全自动是可以理解嘀,反正还可以在其上开发宏包来搞啊。
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]