Allowing line break at ',' in inline math mode?
If the expression contains many commas then consider to break it into several math expressions, separated by commas. It reads like a list of math expressions. This way TeX can break the line.
To achieve line breaks after a comma, you could insert \allowbreak
after the comma and before the next math symbol. If necessary, leave a blank after \allowbreak
.
If you would like to have a document wide solution, you could redefine the comma. One solution, following the tip here would be:
\makeatletter
\def\old@comma{,}
\catcode`\,=13
\def,{%
\ifmmode%
\old@comma\discretionary{}{}{}%
\else%
\old@comma%
\fi%
}
\makeatother
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
Here is a solution that doesn't make the comma globally active:
\documentclass{article}
\newcommand{\splitatcommas}[1]{%
\begingroup
\begingroup\lccode`~=`, \lowercase{\endgroup
\edef~{\mathchar\the\mathcode`, \penalty0 \noexpand\hspace{0pt plus 1em}}%
}\mathcode`,="8000 #1%
\endgroup
}
\begin{document}
\setlength{\lineskiplimit}{2pt}\setlength{\lineskip}{3pt} % for this particular case
$\splitatcommas{
\frac{1}{2},\frac{3}{5},\frac{8}{13},\frac{21}{34},\frac{55}{89},
\frac{144}{233},\frac{377}{610},\frac{987}{1597},\frac{2584}{4181},
\frac{6765}{10946},\frac{17711}{28657},\frac{46368}{75025},
\frac{121393}{196418},\frac{317811}{514229},\frac{832040}{1346269},
\frac{2178309}{3524578},\frac{5702887}{9227465},
\frac{14930352}{24157817},\frac{39088169}{63245986},\frac{102334155}{165580141}
}$
\end{document}
The setting of \lineskiplimit
and \lineskip
are for the particular case where fractions are needed in the argument.
A variant that allows nesting:
\documentclass{article}
\newcommand{\splitatcommas}[1]{%
\begingroup
\ifnum\mathcode`,="8000
\else
\begingroup\lccode`~=`, \lowercase{\endgroup
\edef~{\mathchar\the\mathcode`, \penalty0 \noexpand\hspace{0pt plus 1em}}%
}\mathcode`,="8000
\fi
#1%
\endgroup
}
\newcommand{\tuple}[1]{(\splitatcommas{#1})}
\newcommand{\set}[1]{\{\splitatcommas{#1}\}}
\begin{document}
\setlength{\lineskiplimit}{2pt}\setlength{\lineskip}{3pt} % for this particular case
$\splitatcommas{
\frac{1}{2},\frac{3}{5},\frac{8}{13},\frac{21}{34},\frac{55}{89},
\frac{144}{233},\frac{377}{610},\frac{987}{1597},\frac{2584}{4181},
\frac{6765}{10946},\frac{17711}{28657},\frac{46368}{75025},
\frac{121393}{196418},\frac{317811}{514229},\frac{832040}{1346269},
\frac{2178309}{3524578},\frac{5702887}{9227465},
\frac{14930352}{24157817},\frac{39088169}{63245986},\frac{102334155}{165580141}
}$
$\set{
\tuple{a,b,c,d},\tuple{1,2,3,4,5,6},\tuple{11,22,33,44,55,66,77,88},
\tuple{a,b,c,d},\tuple{1,2,3,4,5,6},\tuple{11,22,33,44,55,66,77,88},
\tuple{a,b,c,d},\tuple{1,2,3,4,5,6},\tuple{11,22,33,44,55,66,77,88},
\tuple{a,b,c,d},\tuple{1,2,3,4,5,6},\tuple{11,22,33,44,55,66,77,88}
}$
\end{document}