Latex带括号的多行公式问题(转)

来源:互联网 发布:优化win8 编辑:程序博客网 时间:2024/06/05 05:23

Latex带括号的多行公式问题(转)

分类: LaTeX 929人阅读 评论(0) 收藏 举报

问题来源于需要。。。

事情是这样的,一位同学在matlab下输了一个很长的公式,不知道对不对,检查了N遍,好像没问题,可是结果不对,于是我用latex(x)命令输出,就有了一长串latex数学表达式,放到latex中好直观地检查嘛(用mathematica是可以直接输成通常的形式的,不过写起来也是挺麻烦的,何况上了matlab这条贼船了,咱也没办法,忍着吧,没有十全十美的)

好了,事情要是一帆风顺就没有这篇文章了,接下来问题来了:这实在是一个很长的公式,用latex输出来只能看到半截……记得有时候会出现另半截在页面外的情形(不知道哪里得到的印象了),可是这次好像那半截直接不见了……

于是第一个问题产生了:为什么latex对公式不自动换行?

这个问题且先放下,我们现在知道它确实是不能自动换行的,我们就自个给它换吧。好吧,我们看看怎样能将一个公式输成多行。

其实方法挺多的,
比如这个:
/[
/begin{array}{c}
y =sin /left( x^2 + y^2 /right. //
/left. z^2 /right)
/end{array}
/]

 或这个, 可以对齐的:
 /begin{align}
 y & = & sin /left( x^2 +y^2 /right. //
  & & /left. z^2 /right)
 /end{align}
 
 问题的焦点是:我们不能让一对括号在不同的两行中,而我们得到的公式偏偏是这样的,有几个括号隔着老远!用上面的方法实现,就是给每行给每个不成对的括号都配成对,这就是上面的/left.和/right.的作用了!但是看那个latex命令写的公式源码显然比matlab中的公式还长,我这样的懒人实在没耐心,总想找一个能这样做的方法,以为latex中有这样的方法,但是找来找去,好像是没发现。
 
于是我们第二个问题来了,为什么latex不让/left和/right的命令跨行呢?
以某种特殊表达方式实现应该是可以的,用一种特殊方式标识前后两行实际上是在“一行”的,只是显示不下而显示到了下一行,和我们的文本自动换行一样。

好了,整理一下,我们有这样两个问题:
1.为什么latex对公式不自动换行?
2.为什么latex不让/left和/right的命令跨行?

对于第一个问题,我想可能是公式的自动换行太复杂?让输入者自己去决定什么时候换行更经济。
但是后面一个问题就不那么好想了,这个东西其实让我们的输入麻烦了很多,一个一个的去看哪个括号和哪个括号是一对真的是很郁闷的事,而实现这个功能确实应该不难。看到那些杂志由于是两列的排版,一个公式好几行的情形常出现,不知道是怎么解决的?

但愿是我无知。