Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to put line break in a math

Tags:

latex

I'd like to express the following sentence (source_location is also italic, it's not correctly rendered):

Each entry has a list of tuple: < source_location, R/W, trip_counter, occurrence, killed (explained in the later) >

My current workaround for this is:

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

I'm using 2-column paper. This < .. > is too long, but no line break because it is a math. How do I automatically (or manually) put line break in such case? It seems that \left\langle and \right\rangle should be in a single math. So, hard to break into multiple maths.

$<$ and $>$ would be an alternative, but I don't like it.

like image 430
minjang Avatar asked Nov 09 '09 21:11

minjang


People also ask

How do you break a line in math mode?

In general, the command \\ signifies a line break and within the correct math mode environment, it can start a new equation line.

How do you make a line break in LaTeX math?

The way to get line breaks in display math, while using only standard LaTeX, is to use \begin{array}... \end{array} within the display math environment $$... $$ .

How does one break a line within a paragraph in LaTeX?

The \\ and \newline commands break the line at the point of insertion but do not stretch it. The \linebreak command breaks the line at the point of insertion and stretches the line to make it of the normal width.


2 Answers

LaTeX does allow inline maths to break over lines by default, but there are a number of restrictions. Specifically, in your case, using \left...\right puts everything inside a non-breakable math group, so the first step is to replace them with either just plain \langle...\rangle or perhaps \bigl\langle...\bigr\rangle.

However, this still isn't enough to permit linebreaking; usually that's still only allowed after relations or operators, not punctuation such as the comma. (I think this is what's going on anyway; I haven't stopped to look this up.) So you want indicate where allowable line breaks may occur by writing \linebreak[1] after each comma.

Depending how often you have to do this, it may be preferable to write a command to wrap your "tuples" into a nice command. In order to write this in your source:

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

here's a definition of \mytuple that takes all of the above into account:

\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
like image 146
Will Robertson Avatar answered Sep 23 '22 14:09

Will Robertson


Why not define a new command:

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

Then use \tuple{sourcelocation}{R/W}{tripcounter}{occurrence}{killed}

like image 31
Rob Hyndman Avatar answered Sep 20 '22 14:09

Rob Hyndman