Allowing line break at ',' in inline math mode?
up vote
99
down vote
favorite
In the inline math mode ($...$
), if the formula is too long, LaTeX will try to break it on operators, e.g.
very long text followed by a very long equation like $a+b+c+d+e+f+g+h+i+j+k+l$ etc
may be rendered as
very long text followed
by a very long equation
like a+b+c+d+e+f+g+h+i+
j+k+l etc
However, the break won't happen if they are separated by commas, e.g.
very long text followed by a very long equation like $a,b,c,d,e,f,g,h,i,j,k,l$ etc
will overflow the page like
very long text followed
by a very long equation
like a,b,c,d,e,f,g,h,i,j,k,l
etc
How to make LaTeX able to insert line breaks after a comma too?
math-mode line-breaking
add a comment |
up vote
99
down vote
favorite
In the inline math mode ($...$
), if the formula is too long, LaTeX will try to break it on operators, e.g.
very long text followed by a very long equation like $a+b+c+d+e+f+g+h+i+j+k+l$ etc
may be rendered as
very long text followed
by a very long equation
like a+b+c+d+e+f+g+h+i+
j+k+l etc
However, the break won't happen if they are separated by commas, e.g.
very long text followed by a very long equation like $a,b,c,d,e,f,g,h,i,j,k,l$ etc
will overflow the page like
very long text followed
by a very long equation
like a,b,c,d,e,f,g,h,i,j,k,l
etc
How to make LaTeX able to insert line breaks after a comma too?
math-mode line-breaking
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commandsmathbin{,}
ormathrel{,}
. For instance,$stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.
– phfaist
Dec 4 '17 at 22:27
add a comment |
up vote
99
down vote
favorite
up vote
99
down vote
favorite
In the inline math mode ($...$
), if the formula is too long, LaTeX will try to break it on operators, e.g.
very long text followed by a very long equation like $a+b+c+d+e+f+g+h+i+j+k+l$ etc
may be rendered as
very long text followed
by a very long equation
like a+b+c+d+e+f+g+h+i+
j+k+l etc
However, the break won't happen if they are separated by commas, e.g.
very long text followed by a very long equation like $a,b,c,d,e,f,g,h,i,j,k,l$ etc
will overflow the page like
very long text followed
by a very long equation
like a,b,c,d,e,f,g,h,i,j,k,l
etc
How to make LaTeX able to insert line breaks after a comma too?
math-mode line-breaking
In the inline math mode ($...$
), if the formula is too long, LaTeX will try to break it on operators, e.g.
very long text followed by a very long equation like $a+b+c+d+e+f+g+h+i+j+k+l$ etc
may be rendered as
very long text followed
by a very long equation
like a+b+c+d+e+f+g+h+i+
j+k+l etc
However, the break won't happen if they are separated by commas, e.g.
very long text followed by a very long equation like $a,b,c,d,e,f,g,h,i,j,k,l$ etc
will overflow the page like
very long text followed
by a very long equation
like a,b,c,d,e,f,g,h,i,j,k,l
etc
How to make LaTeX able to insert line breaks after a comma too?
math-mode line-breaking
math-mode line-breaking
asked Aug 18 '10 at 15:22
kennytm
3,18242118
3,18242118
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commandsmathbin{,}
ormathrel{,}
. For instance,$stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.
– phfaist
Dec 4 '17 at 22:27
add a comment |
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commandsmathbin{,}
ormathrel{,}
. For instance,$stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.
– phfaist
Dec 4 '17 at 22:27
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commands
mathbin{,}
or mathrel{,}
. For instance, $stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.– phfaist
Dec 4 '17 at 22:27
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commands
mathbin{,}
or mathrel{,}
. For instance, $stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.– phfaist
Dec 4 '17 at 22:27
add a comment |
6 Answers
6
active
oldest
votes
up vote
86
down vote
accepted
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
defold@comma{,}
catcode`,=13
def,{%
ifmmode%
old@commadiscretionary{}{}{}%
else%
old@comma%
fi%
}
makeatother
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will tryallowbreak
.
– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
Note that theallowbreak
solution does not work if you haveleft...right
delimiters that span the break in your equation
– Mosby
Jan 7 '16 at 15:45
1
Any trick forallowbreak
working inleft...right
delimiters?
– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
add a comment |
up vote
36
down vote
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
9
Wow,breqn
allows left and right to work across line breaks!
– Mark Meckes
Aug 18 '10 at 17:13
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
add a comment |
up vote
13
down vote
Here is a solution that doesn't make the comma globally active:
documentclass{article}
newcommand{splitatcommas}[1]{%
begingroup
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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
ifnummathcode`,="8000
else
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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}
@Nasser Withbreqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.
– egreg
May 14 '16 at 16:59
Did you manage to find the workaround forbreqn
?
– azetina
Jul 13 '16 at 13:51
1
@azetina I don't considerbreqn
a usable piece of software.
– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting likesplitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?
– Ronny
Jan 7 at 23:02
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
|
show 3 more comments
up vote
0
down vote
If you can split the equation into several sub equation using $, and if you are using braces use left. and right. (with dot) to balance the braces.
Example:
$X = left{right.a$, $b$, $c$, $dleft.right}$
X = { a, b, c, d }
This should allow line breaks behind the commas.
10
You might as well just omitleft
andright
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.
– Kundor
Mar 15 '14 at 18:36
disregarding the pointlessleft
andright
commands, ;) it is a quick workaround.
– loved.by.Jesus
Jun 6 '16 at 10:39
add a comment |
up vote
0
down vote
In luatex you have a new possibility that does not involve active characters, you can declare ,
to be a mathbin
(like +
) so that line breaking is allowed and then set the mathord-mathbin spacing to zero so it gets no space before, like punctuation:
documentclass{article}
begin{document}
$
mathcode`,="213B % mathbin
Umathordbinspacingtextstyle 0mu % no space before
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a$
end{document}
add a comment |
up vote
0
down vote
Just try inserting allowbreak
in between your inline equations.
$x_1, x_2,...allowbreak, y_1,y_2,y_n$.
The line won't reach out and break at before y_1
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
add a comment |
6 Answers
6
active
oldest
votes
6 Answers
6
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
86
down vote
accepted
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
defold@comma{,}
catcode`,=13
def,{%
ifmmode%
old@commadiscretionary{}{}{}%
else%
old@comma%
fi%
}
makeatother
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will tryallowbreak
.
– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
Note that theallowbreak
solution does not work if you haveleft...right
delimiters that span the break in your equation
– Mosby
Jan 7 '16 at 15:45
1
Any trick forallowbreak
working inleft...right
delimiters?
– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
add a comment |
up vote
86
down vote
accepted
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
defold@comma{,}
catcode`,=13
def,{%
ifmmode%
old@commadiscretionary{}{}{}%
else%
old@comma%
fi%
}
makeatother
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will tryallowbreak
.
– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
Note that theallowbreak
solution does not work if you haveleft...right
delimiters that span the break in your equation
– Mosby
Jan 7 '16 at 15:45
1
Any trick forallowbreak
working inleft...right
delimiters?
– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
add a comment |
up vote
86
down vote
accepted
up vote
86
down vote
accepted
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
defold@comma{,}
catcode`,=13
def,{%
ifmmode%
old@commadiscretionary{}{}{}%
else%
old@comma%
fi%
}
makeatother
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
defold@comma{,}
catcode`,=13
def,{%
ifmmode%
old@commadiscretionary{}{}{}%
else%
old@comma%
fi%
}
makeatother
edited Aug 18 '10 at 15:47
answered Aug 18 '10 at 15:30
Stefan Kottwitz♦
174k63566753
174k63566753
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will tryallowbreak
.
– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
Note that theallowbreak
solution does not work if you haveleft...right
delimiters that span the break in your equation
– Mosby
Jan 7 '16 at 15:45
1
Any trick forallowbreak
working inleft...right
delimiters?
– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
add a comment |
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will tryallowbreak
.
– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
Note that theallowbreak
solution does not work if you haveleft...right
delimiters that span the break in your equation
– Mosby
Jan 7 '16 at 15:45
1
Any trick forallowbreak
working inleft...right
delimiters?
– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
4
4
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will try
allowbreak
.– kennytm
Aug 18 '10 at 15:50
Thanks. My expression is actually a set with 48 elements, so splitting them into several expressions may not sound mathematically logical. I will try
allowbreak
.– kennytm
Aug 18 '10 at 15:50
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
+1, excellent answer! However, there's a complication: Please see tex.stackexchange.com/q/19094/1347.
– M.S. Dousti
May 26 '11 at 9:51
5
5
Note that the
allowbreak
solution does not work if you have left...right
delimiters that span the break in your equation– Mosby
Jan 7 '16 at 15:45
Note that the
allowbreak
solution does not work if you have left...right
delimiters that span the break in your equation– Mosby
Jan 7 '16 at 15:45
1
1
Any trick for
allowbreak
working in left...right
delimiters?– loved.by.Jesus
Mar 21 '17 at 15:29
Any trick for
allowbreak
working in left...right
delimiters?– loved.by.Jesus
Mar 21 '17 at 15:29
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
This document-wide solution seems to break tikz...
– xuhdev
Aug 13 '17 at 4:22
add a comment |
up vote
36
down vote
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
9
Wow,breqn
allows left and right to work across line breaks!
– Mark Meckes
Aug 18 '10 at 17:13
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
add a comment |
up vote
36
down vote
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
9
Wow,breqn
allows left and right to work across line breaks!
– Mark Meckes
Aug 18 '10 at 17:13
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
add a comment |
up vote
36
down vote
up vote
36
down vote
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
You could take a look at the breqn
package, which is aimed at solving this problem in a general sense.
answered Aug 18 '10 at 16:56
Joseph Wright♦
200k21549874
200k21549874
9
Wow,breqn
allows left and right to work across line breaks!
– Mark Meckes
Aug 18 '10 at 17:13
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
add a comment |
9
Wow,breqn
allows left and right to work across line breaks!
– Mark Meckes
Aug 18 '10 at 17:13
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
9
9
Wow,
breqn
allows left and right to work across line breaks!– Mark Meckes
Aug 18 '10 at 17:13
Wow,
breqn
allows left and right to work across line breaks!– Mark Meckes
Aug 18 '10 at 17:13
7
7
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
Indeed, amongst other things. The late Michael Downes was a very clever guy!
– Joseph Wright♦
Aug 18 '10 at 18:02
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
For commas, this does not work with all types of atoms. See the discussion here.
– Ruben Verborgh
Apr 26 '15 at 12:47
add a comment |
up vote
13
down vote
Here is a solution that doesn't make the comma globally active:
documentclass{article}
newcommand{splitatcommas}[1]{%
begingroup
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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
ifnummathcode`,="8000
else
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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}
@Nasser Withbreqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.
– egreg
May 14 '16 at 16:59
Did you manage to find the workaround forbreqn
?
– azetina
Jul 13 '16 at 13:51
1
@azetina I don't considerbreqn
a usable piece of software.
– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting likesplitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?
– Ronny
Jan 7 at 23:02
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
|
show 3 more comments
up vote
13
down vote
Here is a solution that doesn't make the comma globally active:
documentclass{article}
newcommand{splitatcommas}[1]{%
begingroup
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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
ifnummathcode`,="8000
else
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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}
@Nasser Withbreqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.
– egreg
May 14 '16 at 16:59
Did you manage to find the workaround forbreqn
?
– azetina
Jul 13 '16 at 13:51
1
@azetina I don't considerbreqn
a usable piece of software.
– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting likesplitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?
– Ronny
Jan 7 at 23:02
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
|
show 3 more comments
up vote
13
down vote
up vote
13
down vote
Here is a solution that doesn't make the comma globally active:
documentclass{article}
newcommand{splitatcommas}[1]{%
begingroup
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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
ifnummathcode`,="8000
else
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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}
Here is a solution that doesn't make the comma globally active:
documentclass{article}
newcommand{splitatcommas}[1]{%
begingroup
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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
ifnummathcode`,="8000
else
begingrouplccode`~=`, lowercase{endgroup
edef~{mathcharthemathcode`, penalty0 noexpandhspace{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}
edited Jan 8 at 13:45
answered May 14 '16 at 9:06
egreg
698k8518573126
698k8518573126
@Nasser Withbreqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.
– egreg
May 14 '16 at 16:59
Did you manage to find the workaround forbreqn
?
– azetina
Jul 13 '16 at 13:51
1
@azetina I don't considerbreqn
a usable piece of software.
– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting likesplitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?
– Ronny
Jan 7 at 23:02
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
|
show 3 more comments
@Nasser Withbreqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.
– egreg
May 14 '16 at 16:59
Did you manage to find the workaround forbreqn
?
– azetina
Jul 13 '16 at 13:51
1
@azetina I don't considerbreqn
a usable piece of software.
– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting likesplitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?
– Ronny
Jan 7 at 23:02
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
@Nasser With
breqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.– egreg
May 14 '16 at 16:59
@Nasser With
breqn
this is guaranteed not to work. Probably something can be done, I'll work on your problem later.– egreg
May 14 '16 at 16:59
Did you manage to find the workaround for
breqn
?– azetina
Jul 13 '16 at 13:51
Did you manage to find the workaround for
breqn
?– azetina
Jul 13 '16 at 13:51
1
1
@azetina I don't consider
breqn
a usable piece of software.– egreg
Jul 13 '16 at 14:15
@azetina I don't consider
breqn
a usable piece of software.– egreg
Jul 13 '16 at 14:15
@egreg Nice solution! But if I do nesting like
splitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?– Ronny
Jan 7 at 23:02
@egreg Nice solution! But if I do nesting like
splitatcommas{a , b,splitatcommas{c, d}
I’m getting errors like ! Bad mathchar (32768). Do you have any idea to fix this?– Ronny
Jan 7 at 23:02
1
1
@Ronny Added the variant
– egreg
Jan 8 at 13:46
@Ronny Added the variant
– egreg
Jan 8 at 13:46
|
show 3 more comments
up vote
0
down vote
If you can split the equation into several sub equation using $, and if you are using braces use left. and right. (with dot) to balance the braces.
Example:
$X = left{right.a$, $b$, $c$, $dleft.right}$
X = { a, b, c, d }
This should allow line breaks behind the commas.
10
You might as well just omitleft
andright
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.
– Kundor
Mar 15 '14 at 18:36
disregarding the pointlessleft
andright
commands, ;) it is a quick workaround.
– loved.by.Jesus
Jun 6 '16 at 10:39
add a comment |
up vote
0
down vote
If you can split the equation into several sub equation using $, and if you are using braces use left. and right. (with dot) to balance the braces.
Example:
$X = left{right.a$, $b$, $c$, $dleft.right}$
X = { a, b, c, d }
This should allow line breaks behind the commas.
10
You might as well just omitleft
andright
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.
– Kundor
Mar 15 '14 at 18:36
disregarding the pointlessleft
andright
commands, ;) it is a quick workaround.
– loved.by.Jesus
Jun 6 '16 at 10:39
add a comment |
up vote
0
down vote
up vote
0
down vote
If you can split the equation into several sub equation using $, and if you are using braces use left. and right. (with dot) to balance the braces.
Example:
$X = left{right.a$, $b$, $c$, $dleft.right}$
X = { a, b, c, d }
This should allow line breaks behind the commas.
If you can split the equation into several sub equation using $, and if you are using braces use left. and right. (with dot) to balance the braces.
Example:
$X = left{right.a$, $b$, $c$, $dleft.right}$
X = { a, b, c, d }
This should allow line breaks behind the commas.
answered Feb 18 '14 at 13:33
maitek
111
111
10
You might as well just omitleft
andright
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.
– Kundor
Mar 15 '14 at 18:36
disregarding the pointlessleft
andright
commands, ;) it is a quick workaround.
– loved.by.Jesus
Jun 6 '16 at 10:39
add a comment |
10
You might as well just omitleft
andright
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.
– Kundor
Mar 15 '14 at 18:36
disregarding the pointlessleft
andright
commands, ;) it is a quick workaround.
– loved.by.Jesus
Jun 6 '16 at 10:39
10
10
You might as well just omit
left
and right
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.– Kundor
Mar 15 '14 at 18:36
You might as well just omit
left
and right
. Putting the matching brace directly adjacent obviates any point to having scaling braces at all.– Kundor
Mar 15 '14 at 18:36
disregarding the pointless
left
and right
commands, ;) it is a quick workaround.– loved.by.Jesus
Jun 6 '16 at 10:39
disregarding the pointless
left
and right
commands, ;) it is a quick workaround.– loved.by.Jesus
Jun 6 '16 at 10:39
add a comment |
up vote
0
down vote
In luatex you have a new possibility that does not involve active characters, you can declare ,
to be a mathbin
(like +
) so that line breaking is allowed and then set the mathord-mathbin spacing to zero so it gets no space before, like punctuation:
documentclass{article}
begin{document}
$
mathcode`,="213B % mathbin
Umathordbinspacingtextstyle 0mu % no space before
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a$
end{document}
add a comment |
up vote
0
down vote
In luatex you have a new possibility that does not involve active characters, you can declare ,
to be a mathbin
(like +
) so that line breaking is allowed and then set the mathord-mathbin spacing to zero so it gets no space before, like punctuation:
documentclass{article}
begin{document}
$
mathcode`,="213B % mathbin
Umathordbinspacingtextstyle 0mu % no space before
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a$
end{document}
add a comment |
up vote
0
down vote
up vote
0
down vote
In luatex you have a new possibility that does not involve active characters, you can declare ,
to be a mathbin
(like +
) so that line breaking is allowed and then set the mathord-mathbin spacing to zero so it gets no space before, like punctuation:
documentclass{article}
begin{document}
$
mathcode`,="213B % mathbin
Umathordbinspacingtextstyle 0mu % no space before
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a$
end{document}
In luatex you have a new possibility that does not involve active characters, you can declare ,
to be a mathbin
(like +
) so that line breaking is allowed and then set the mathord-mathbin spacing to zero so it gets no space before, like punctuation:
documentclass{article}
begin{document}
$
mathcode`,="213B % mathbin
Umathordbinspacingtextstyle 0mu % no space before
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a$
end{document}
answered Oct 6 at 10:04
David Carlisle
477k3811061841
477k3811061841
add a comment |
add a comment |
up vote
0
down vote
Just try inserting allowbreak
in between your inline equations.
$x_1, x_2,...allowbreak, y_1,y_2,y_n$.
The line won't reach out and break at before y_1
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
add a comment |
up vote
0
down vote
Just try inserting allowbreak
in between your inline equations.
$x_1, x_2,...allowbreak, y_1,y_2,y_n$.
The line won't reach out and break at before y_1
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
add a comment |
up vote
0
down vote
up vote
0
down vote
Just try inserting allowbreak
in between your inline equations.
$x_1, x_2,...allowbreak, y_1,y_2,y_n$.
The line won't reach out and break at before y_1
Just try inserting allowbreak
in between your inline equations.
$x_1, x_2,...allowbreak, y_1,y_2,y_n$.
The line won't reach out and break at before y_1
edited 12 hours ago
answered Nov 5 at 14:53
Albert Chen
1013
1013
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
add a comment |
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
1
1
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
Welcome ! Could you please expand your answer a bit, with a small example for instance ?
– BambOo
Nov 5 at 15:38
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f1959%2fallowing-line-break-at-in-inline-math-mode%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I tried breqn but it uses "expl3.sty" which can not be found by Latex ALTHOUGH I downloaded it and put in the same folder where breqn.sty exists!
– Ahmad
Jan 8 '11 at 22:09
@Ahmad: If you've got a question, then you should ask it in a new post. Please do this with the "Ask Question" link. In your new question you could link to this one.
– Hendrik Vogt
Jan 8 '11 at 22:09
@Ahmad: Just a note to confirm Hendrik's comment, this ought to be reposted as a question for you to get the best chance of it being answered.
– Loop Space
Jan 8 '11 at 22:09
Late to the party, but just for the record: You can make the comma be treated like a binary or relation operator with the commands
mathbin{,}
ormathrel{,}
. For instance,$stuff mathrel{,} morestuff$
will allow the linebreak between the two stuffs.– phfaist
Dec 4 '17 at 22:27