LaTeX技巧-排版大括号

如图:

LaTeX技巧心得255:用laTeX排版大括号的三种方法

演示代码:

\documentclass{article}
\setlength\textwidth{245.0pt}
\usepackage{CJK}
\usepackage{indentfirst}
\usepackage{amsmath}

\begin{CJK*}{GBK}{song}
\begin{document}
方法一:

$$ f(x)=\left\{
\begin{aligned}
x & = & \cos(t) \\
y & = & \sin(t) \\
z & = & \frac xy
\end{aligned}
\right.
$$


方法二:

$$ F^{HLLC}=\left\{
\begin{array}{rcl}
F_L       &      & {0      <      S_L}\\
F^*_L     &      & {S_L \leq 0 < S_M}\\
F^*_R     &      & {S_M \leq 0 < S_R}\\
F_R       &      & {S_R \leq 0}
\end{array} \right. $$

方法三:

$$f(x)=
\begin{cases}
0& \text{x=0}\\
1& \text{x!=0}
\end{cases}$$

\end{CJK*}

\end{document}

LaTeX的数学公式有两种,即行中公式和独立公式。行中公式放在正文中间,独立公式单独成行。

(1)行中公式可以用如下这三种方法表示:
\begin{math}x^n+y^n=z^n\end{math},
或者
\(x^n+y^n=z^n\),
或者
$x^n+y^n=z^n$。

(2)会自动单独成行的独立公式可以用如下三种方法表示:
\begin{displaymath}
x^n+y^n=z^n
\end{displaymath}

不自动编号
\[x^n+y^n=z^n\] 

人工编号
$$x^n+y^n=z^n$$
此种格式还可以指定公式的手动编号
$$x^n+y^n=z^n \eqno{(1)}$$

自动编号
\begin{equation}
x^n+y^n=z^n
\end{equation}

引用时候可以直接用$编号$即可。
例如,$$a^2+b^2=c^2 /eqno (**)$$
由公式($**$)即可得到结论。
一般情况下,行间公式 $$…$$也可以用/[…/]表示
但对于这种人工编号的公式,不能用/[../]代替$$…$$.

单个公式换行
单个公式很长的时候需要换行,但仅允许生成一个编号时,可以用split命令
/begin{equation}
/begin{split}
a &= b //
c &= d
/end{split}
/end{equation}
注意:每行只允许出现一个“&”,使用split命令后,编号会 上下居中 显示。

(3)多行的独立公式,可以用如下方式撰写:
begin{eqnarray}
左 & 中 & 右//
左 & 中 & 右//

/end{eqnarray}
比如:
\begin{eqnarray*}
x^n+y^n & = & z^n \\
x+y & = & z
\end{eqnarray*}
该环境对多行公式每行都加自动编号,如果相对某行不加编号,可在换行之前添加命令/nonumber。
其中两个&号之间的是公式间对齐的位置,用//隔开各行公式。将eqnarray改为eqnarray*输出的公式是没有编号。
如果要改变公式的自动编号,可以重设计数器初始值:
/setcounter{equation}{数}
下一个编号自动加1。

(4)多个公式(比如,方程组)每个公式自动编号。
1) gather环境
是下面align环境的一种特殊情形。
/begin{gather}
a &= b //
c &= d //

/end{gather}
>>1.如果其中某几行使用同一个编号,则需要内嵌一个split环境。
>>2.命令/notag可使当前行不编号。
2) align环境
可使几组公式并排在一起,即在同一行显示多个公式,方法是跟以前一样,使用”&”对齐。
可替代gather环境。
3) /gathered,/aligned。以上几种方程组环境,无论每个公式多小,都会占满一行。使用相应的/gathered,/aligned环境,则只占据公式的实际宽度,整体作为一个特大的符号与其他符号一同处理。
这个结构还可以添加位置参数,以决定与其他符号的竖直对齐方式(b,t)。而且这种环境不再具有自动编号功能。

例如:
/begin{equation}
/left.
/begin{aligned}[b]
a &= b+c //
d &= b+c
/end{aligned}
/right/}
/Longrightarrow
/qquad a=d
/end{equation}

我原来用的是
  1. \begin{equation}
  2. \begin{cases}
  3. eq1\\
  4. eq2
  5. \end{cases}
  6. \end{equation}
复制代码

对于不需对齐的方程组这样写比较方便,需要对齐的时候间距太大了。
有时候需要对齐,这时候我用
  1. \begin{equation}
  2. \left\{
  3. \begin{align} % \begin{eqnarray}好像也可以。
  4. x&=eq1\\
  5. y&=eq2
  6. \end{align}
  7. \right.
  8. \end{equation}
复制代码

但觉得输入有点麻烦,而且我觉得Latex应该有内置的命令。请大家指点。

网上的其他解决方案:
1  
  1. \begin{equation}
  2. \left\{
  3. \begin{array}{rl}
  4. x&=eq1\\
  5. y&=eq2
  6. \end{array}
  7. \right.
  8. \end{equation}
复制代码
%这个方案麻烦不说,x和=的间距还很大,摒弃之 :lol 

2

  1. \[\left\{\begin{minipage}{width=0.6\textwidth}\begin{eqnarray*}
  2. ...
  3. \end{eqnarray}
  4. \end{minipage}
  5. \right.
  6. \\nonumber %如果不想要方程号
  7. \]
复制代码

呵呵,这个可以学习minipage了,用在这里我觉得有点复杂化了。

3 如果每一行都需要行号,可以{By Huangzh73}


  1. \usepackage{cases}

  2. \begin{numcases}{|x|=}
  3. x, & for $x \geq 0$\\
  4. -x, & for $x < 0$
  5. \end{numcases}
复制代码


or
  1. \begin{numcases}{}
  2. x+y=z,\\
  3. 1+2=3.
  4. \end{numcases}
复制代码

[ 本帖最后由 dlmaple 于 2007-11-8 09:25 编辑 ]


 
  
2#
  发表于 2007-11-8 10:20:14  |  只看该作者
array环境

  1. \begin{equation}
  2. \left\{
  3. \begin{array}{r@{\;=\;}l}
  4. x & eq1\\
  5. y & eq2
  6. \end{array}
  7. \right.
  8. \end{equation}
复制代码
 
 
  
3#
  楼主 |  发表于 2007-11-8 16:49:00  |  只看该作者
原帖由  journeyer 于 2007-11-8 10:20 发表

array环境

\begin{equation}
\left\{
\begin{array}{r@{\;=\;}l}
x & eq1\\
y & eq2
\end{array}
\right.
\end{equation}


谢谢:handshake ,不过这样比align好在哪儿?
 
 
  
4#
  发表于 2007-11-8 20:10:12  |  只看该作者
(一)大括号下并列的式子, 右边只有一个纵向居中的编号:

  1. \begin{equation}
  2.   \left\{
  3.    \begin{array}{c}
  4.    x + y = z,  \\
  5.    1 + 2 = 3.  \\
  6.    \end{array}
  7.   \right.
  8.   \end{equation}
复制代码



或者比较 cases 环境:

  1. \begin{equation}
  2.   \begin{cases}
  3.     x + y = z,  \\
  4.     1 + 2 = 3.  \\
  5.   \end{cases}
  6.   \end{equation}
复制代码


(二)大括号下并列的式子, 每个都加上编号, 需要调用 cases 宏包: {这是一个宏包! 与 amsmath 宏包中的 cases 环境相区别.}

  1. \usepackage{cases} 
  2. ......
  3. \begin{numcases}{}
  4.    x+y=z,\\
  5.    1+2=3.
  6.   \end{numcases}
复制代码


为什么 \begin{numcases}{} 有一对空的大括号? 因为它的基本用法是这样的:

  1. \usepackage{cases}
  2. ......
  3. \begin{numcases}{|x|=}
  4.    x,  & for $x \geq 0$;\\
  5.    -x, & for $x < 0$.
  6.   \end{numcases}
复制代码
 
 
  
5#
  楼主 |  发表于 2007-11-9 07:47:25  |  只看该作者
原帖由  huangzh73 于 2007-11-8 20:10 发表

(一)大括号下并列的式子, 右边只有一个纵向居中的编号:

\begin{equation}
  \left\{
   \begin{array}{c}
   x + y = z,  \\
   1 + 2 = 3.  \\
   \end{array}
  \right.
  \end{equation}


...

哈哈,专家来了,欢迎。
但我我觉得array不如align,大家不妨比较一下。

  1. \begin{equation}
  2.   \left\{
  3.    \begin{array}{c}
  4.    x + y = z,  \\
  5.    c+1 + 2 = 3.  \\
  6.    \end{array}
  7.   \right.
  8.   \end{equation}
复制代码



  1. \begin{equation}
  2.   \left\{
  3.    \begin{align}
  4.    x + y &= z,  \\
  5.    c+1 + 2 &= 3.  \\
  6.    \end{align}
  7.   \right.
  8.   \end{equation}
复制代码
 
 
  
6#
  发表于 2007-11-15 23:10:39  |  只看该作者
解决了我的一个问题, 学习了, 呵呵.  

另外, 可能要改一下才能编译, 把 align 改为 aligned:

  1. \begin{equation}
  2.   \left\{
  3.    \begin{aligned}
  4.    x + y &= z,  \\
  5.    c+1 + 2 &= 3.  \\
  6.    \end{aligned}
  7.   \right.
  8. \end{equation}
复制代码



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值