如何在数学中加入换行符

时间:2009-11-09 21:16:14

标签: latex

我想表达以下句子(source_location也是斜体,它没有正确呈现):

  

每个条目都有一个元组列表:< source_location R / W trip_counter 发生已杀死(在稍后)>

我目前的解决方法是:

$ \left\langle
\textit{source\_location}, \textit{R/W}, \textit{trip\_counter},
\textit{occurrence}, \textit{killed} \text{(explained in the later)}
\right\rangle $

我正在使用双柱纸。这个< ..>太长了,但没有换行,因为它是一个数学。在这种情况下如何自动(或手动)设置换行符?似乎\left\langle\right\rangle应该在一个数学中。所以,很难打破多个数学。

$<$$>$可以替代,但我不喜欢它。

5 个答案:

答案 0 :(得分:21)

LaTeX确实允许内联数学在默认情况下分解行,但是存在许多限制。具体来说,在您的情况下,使用\left...\right将所有内容放在不可分解的数学组中,因此第一步是将它们替换为普通\langle...\rangle\bigl\langle...\bigr\rangle

然而,这还不足以允许断线;通常情况下,只有在关系或操作符之后才允许,而不是逗号等标点符号。 (我认为这是正在发生的事情;我没有停下来查看它。)所以你想通过在每个逗号后面写\linebreak[1]来指出允许换行的位置。

根据您必须执行此操作的频率,最好编写一个命令将“元组”包装成一个很好的命令。要在您的来源中写下这个:

$ \mytuple{ source\_location, R/W, trip\_counter, occurrence,
    killed\upshape (explained in the later) } $

这是\mytuple的定义,它考虑了以上所有因素:

\makeatletter
\newcommand\mytuple[1]{%
  \@tempcnta=0
  \bigl\langle
  \@for\@ii:=#1\do{%
    \@insertbreakingcomma
    \textit{\@ii}
  }%
  \bigr\rangle
}
\def\@insertbreakingcomma{%
  \ifnum \@tempcnta = 0 \else\,,\ \linebreak[1] \fi
  \advance\@tempcnta\@ne
}
\makeatother

答案 1 :(得分:5)

为什么不定义新命令:

\newcommand{\tuple}[5]{$\langle$\textit{#1}, \textit{#2}, \textit{#3}, \textit{#4},
   \textit{#5} (explained in the latter)$\rangle$}

然后使用\tuple{sourcelocation}{R/W}{tripcounter}{occurrence}{killed}

答案 2 :(得分:1)

好像有package that addresses that problem, called breqn。你可以尝试这个并告诉我们(我没有用过)。

答案 3 :(得分:0)

我将使用AMSmath的align *环境。此外你可以添加“\”来打破线条?也应该在数学环境中工作。或者,您可以将方程式分开。

答案 4 :(得分:-2)

在数学表达式中使用\ linebreak,无论您希望在2个括号之间有新行。这将强制破坏该行。

相关问题