Coloring maths inside a tcolorbox
My TeX level isn't the greatest, I am trying hard to improve but I am always struggling.
I would like to change the color of text inside a tcolorbox and that this color formatting survives a pagebreak. This doesn't seem to be possible according to what I found here : Maintaining text colour change in a breakable tcolorbox
but it seems to be possible under XeTeX using fontspec. I have one last problem before I finally manage to solve this problem I have add for more than a year and many hours of swearing, this doesn't seem to apply to text put in math mode.
Here is a MWE based on what the link above :
documentclass{article}
usepackage{mathspec}
setmainfont{Palatino}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
$$F=ma$$
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
Is it possible to get the $$F=ma$$
in brown ?
Of course, any solution using the xcolor package won't work because of the incompatibility with tcolorbox, so I really need a font-associated solution. I had a look at the mathspec package but couldn't find the solution in the documentation. I somehow feel it shouldn't be that hard though.
Thanks in advance !
fontspec tcolorbox
add a comment |
My TeX level isn't the greatest, I am trying hard to improve but I am always struggling.
I would like to change the color of text inside a tcolorbox and that this color formatting survives a pagebreak. This doesn't seem to be possible according to what I found here : Maintaining text colour change in a breakable tcolorbox
but it seems to be possible under XeTeX using fontspec. I have one last problem before I finally manage to solve this problem I have add for more than a year and many hours of swearing, this doesn't seem to apply to text put in math mode.
Here is a MWE based on what the link above :
documentclass{article}
usepackage{mathspec}
setmainfont{Palatino}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
$$F=ma$$
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
Is it possible to get the $$F=ma$$
in brown ?
Of course, any solution using the xcolor package won't work because of the incompatibility with tcolorbox, so I really need a font-associated solution. I had a look at the mathspec package but couldn't find the solution in the documentation. I somehow feel it shouldn't be that hard though.
Thanks in advance !
fontspec tcolorbox
1
Don't use$$...$$
- that's deprecated
– ufo
3 hours ago
2
how cantcolorbox
be incompatible withxcolor
? It is automatically loaded when you suetcolorbox
. There is no way to usetcolorbox
withoutxcolor
– ufo
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like{extras={colupper=red}}
is lost once the pages breaks.
– HerculePoivrot
3 hours ago
add a comment |
My TeX level isn't the greatest, I am trying hard to improve but I am always struggling.
I would like to change the color of text inside a tcolorbox and that this color formatting survives a pagebreak. This doesn't seem to be possible according to what I found here : Maintaining text colour change in a breakable tcolorbox
but it seems to be possible under XeTeX using fontspec. I have one last problem before I finally manage to solve this problem I have add for more than a year and many hours of swearing, this doesn't seem to apply to text put in math mode.
Here is a MWE based on what the link above :
documentclass{article}
usepackage{mathspec}
setmainfont{Palatino}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
$$F=ma$$
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
Is it possible to get the $$F=ma$$
in brown ?
Of course, any solution using the xcolor package won't work because of the incompatibility with tcolorbox, so I really need a font-associated solution. I had a look at the mathspec package but couldn't find the solution in the documentation. I somehow feel it shouldn't be that hard though.
Thanks in advance !
fontspec tcolorbox
My TeX level isn't the greatest, I am trying hard to improve but I am always struggling.
I would like to change the color of text inside a tcolorbox and that this color formatting survives a pagebreak. This doesn't seem to be possible according to what I found here : Maintaining text colour change in a breakable tcolorbox
but it seems to be possible under XeTeX using fontspec. I have one last problem before I finally manage to solve this problem I have add for more than a year and many hours of swearing, this doesn't seem to apply to text put in math mode.
Here is a MWE based on what the link above :
documentclass{article}
usepackage{mathspec}
setmainfont{Palatino}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
$$F=ma$$
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
Is it possible to get the $$F=ma$$
in brown ?
Of course, any solution using the xcolor package won't work because of the incompatibility with tcolorbox, so I really need a font-associated solution. I had a look at the mathspec package but couldn't find the solution in the documentation. I somehow feel it shouldn't be that hard though.
Thanks in advance !
fontspec tcolorbox
fontspec tcolorbox
asked 4 hours ago
HerculePoivrotHerculePoivrot
519
519
1
Don't use$$...$$
- that's deprecated
– ufo
3 hours ago
2
how cantcolorbox
be incompatible withxcolor
? It is automatically loaded when you suetcolorbox
. There is no way to usetcolorbox
withoutxcolor
– ufo
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like{extras={colupper=red}}
is lost once the pages breaks.
– HerculePoivrot
3 hours ago
add a comment |
1
Don't use$$...$$
- that's deprecated
– ufo
3 hours ago
2
how cantcolorbox
be incompatible withxcolor
? It is automatically loaded when you suetcolorbox
. There is no way to usetcolorbox
withoutxcolor
– ufo
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like{extras={colupper=red}}
is lost once the pages breaks.
– HerculePoivrot
3 hours ago
1
1
Don't use
$$...$$
- that's deprecated– ufo
3 hours ago
Don't use
$$...$$
- that's deprecated– ufo
3 hours ago
2
2
how can
tcolorbox
be incompatible with xcolor
? It is automatically loaded when you sue tcolorbox
. There is no way to use tcolorbox
without xcolor
– ufo
3 hours ago
how can
tcolorbox
be incompatible with xcolor
? It is automatically loaded when you sue tcolorbox
. There is no way to use tcolorbox
without xcolor
– ufo
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like
{extras={colupper=red}}
is lost once the pages breaks.– HerculePoivrot
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like
{extras={colupper=red}}
is lost once the pages breaks.– HerculePoivrot
3 hours ago
add a comment |
2 Answers
2
active
oldest
votes
As it is rather improbable that there are page breaks in the math you could simply use color:
documentclass{article}
usepackage{mathspec}
setmainfont{TeX Gyre Pagella}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtextcolor{brown}
[F=ma]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
With lualatex instead of xelatex you could use the luacolor package. This will solve both problems:
documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Pagella}
setmathfont{TeX Gyre Pagella Math}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
usepackage{luacolor}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
[F=ma]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
end{tcolorbox}
end{document}
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something likesetmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.
– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
add a comment |
With XeLaTeX, you could patch the math commands (both display and inline) to include the color command. This ensures that the color is set on the page where the math starts.
This does not work with the TeX commands $
and $$
but only with the LaTeX equivalents ()
and []
. It also does not work if your math crosses a page break (but of course it will work if a new math expression starts on the next page). If you want to use it with other math-like environments (equation, align, etc) then you should patch those separately.
Note that you should set mycolor
(or use boxcolor
) before you use math, otherwise you'll get an error. Also note that this takes effect outside of the tcolorbox
as well, so you should probably put defmycolor{black}
after each tcolorbox
(or do that automatically with AtEndEnvironment
).
With a small macro you can set color
and addfontfeatures
with a single command.
MWE:
documentclass{article}
usepackage{mathspec}
setmainfont{Linux Libertine O}
usepackage{etoolbox}
pretocmd{[}{color{mycolor}}{}{}
pretocmd{(}{color{mycolor}}{}{}
newcommand{boxcolor}[1]{defmycolor{#1}addfontfeatures{Color=mycolor}}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
boxcolor{red}
blindtext[3]
boxcolor{orange}
blindtext[3]
[F=mtimes a]
blindtext[3]
boxcolor{blue}
blindtext[3]
(1+1=2)
boxcolor{red}
blindtext
boxcolor{brown}
blindtext
end{tcolorbox}
end{document}
Result:
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can putcolor{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default,$$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and$
is still widely used but technically superseded by()
.
– Marijn
30 mins ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f485130%2fcoloring-maths-inside-a-tcolorbox%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
As it is rather improbable that there are page breaks in the math you could simply use color:
documentclass{article}
usepackage{mathspec}
setmainfont{TeX Gyre Pagella}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtextcolor{brown}
[F=ma]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
With lualatex instead of xelatex you could use the luacolor package. This will solve both problems:
documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Pagella}
setmathfont{TeX Gyre Pagella Math}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
usepackage{luacolor}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
[F=ma]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
end{tcolorbox}
end{document}
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something likesetmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.
– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
add a comment |
As it is rather improbable that there are page breaks in the math you could simply use color:
documentclass{article}
usepackage{mathspec}
setmainfont{TeX Gyre Pagella}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtextcolor{brown}
[F=ma]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
With lualatex instead of xelatex you could use the luacolor package. This will solve both problems:
documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Pagella}
setmathfont{TeX Gyre Pagella Math}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
usepackage{luacolor}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
[F=ma]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
end{tcolorbox}
end{document}
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something likesetmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.
– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
add a comment |
As it is rather improbable that there are page breaks in the math you could simply use color:
documentclass{article}
usepackage{mathspec}
setmainfont{TeX Gyre Pagella}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtextcolor{brown}
[F=ma]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
With lualatex instead of xelatex you could use the luacolor package. This will solve both problems:
documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Pagella}
setmathfont{TeX Gyre Pagella Math}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
usepackage{luacolor}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
[F=ma]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
end{tcolorbox}
end{document}
As it is rather improbable that there are page breaks in the math you could simply use color:
documentclass{article}
usepackage{mathspec}
setmainfont{TeX Gyre Pagella}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtextcolor{brown}
[F=ma]
blindtext[3]
addfontfeatures{Color=blue}
blindtext[3]
addfontfeatures{Color=red}
blindtext
addfontfeatures{Color=brown}
blindtext
end{tcolorbox}
end{document}
With lualatex instead of xelatex you could use the luacolor package. This will solve both problems:
documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Pagella}
setmathfont{TeX Gyre Pagella Math}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
usepackage{luacolor}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
[F=ma]
blindtext[3]
color{blue}
blindtext[3]
color{red}
blindtext
color{brown}
blindtext
end{tcolorbox}
end{document}
edited 3 hours ago
answered 3 hours ago
Ulrike FischerUlrike Fischer
199k9306692
199k9306692
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something likesetmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.
– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
add a comment |
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something likesetmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.
– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
The pagebreaks is sometimes an issue, the main problem being that it's unpredictable. But the main issue is that I want conditional coloring of my text : a version for me and one for my students with some part of the text hidden, and therefore the maths must be the same colour than the main text. The LuaTeX solution works fine, but if possible I would like to avoid using it and stick to LaTeX or XeTex.
– HerculePoivrot
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something like
setmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.– Ulrike Fischer
3 hours ago
Sure I did understand this. But with the font method you will have to reset all math fonts before the math, addfontfeatures won't be taken into account. With unicode-math you could do something like
setmathfont{TeX Gyre Pagella Math}[Color=blue]
, I don't know if mathspec has something similar. With lualatex and luacolor it is really easier.– Ulrike Fischer
3 hours ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
Well I guess I will try with the LuaTex method which seems indeed very easy to use. Im always worried to change to LuaTeX because of the many documents I have running on regular LaTeX. Is there some kind of guide with the differences/advantages of those 3 computational modes (LaTeX, XeTeX and LuaTeX ?). Thanks for the answer anyway !
– HerculePoivrot
1 hour ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
@HerculePoivrot there are several questions on the site about this, many of those questions are a bit old but you could look at for example tex.stackexchange.com/questions/126206/….
– Marijn
9 mins ago
add a comment |
With XeLaTeX, you could patch the math commands (both display and inline) to include the color command. This ensures that the color is set on the page where the math starts.
This does not work with the TeX commands $
and $$
but only with the LaTeX equivalents ()
and []
. It also does not work if your math crosses a page break (but of course it will work if a new math expression starts on the next page). If you want to use it with other math-like environments (equation, align, etc) then you should patch those separately.
Note that you should set mycolor
(or use boxcolor
) before you use math, otherwise you'll get an error. Also note that this takes effect outside of the tcolorbox
as well, so you should probably put defmycolor{black}
after each tcolorbox
(or do that automatically with AtEndEnvironment
).
With a small macro you can set color
and addfontfeatures
with a single command.
MWE:
documentclass{article}
usepackage{mathspec}
setmainfont{Linux Libertine O}
usepackage{etoolbox}
pretocmd{[}{color{mycolor}}{}{}
pretocmd{(}{color{mycolor}}{}{}
newcommand{boxcolor}[1]{defmycolor{#1}addfontfeatures{Color=mycolor}}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
boxcolor{red}
blindtext[3]
boxcolor{orange}
blindtext[3]
[F=mtimes a]
blindtext[3]
boxcolor{blue}
blindtext[3]
(1+1=2)
boxcolor{red}
blindtext
boxcolor{brown}
blindtext
end{tcolorbox}
end{document}
Result:
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can putcolor{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default,$$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and$
is still widely used but technically superseded by()
.
– Marijn
30 mins ago
add a comment |
With XeLaTeX, you could patch the math commands (both display and inline) to include the color command. This ensures that the color is set on the page where the math starts.
This does not work with the TeX commands $
and $$
but only with the LaTeX equivalents ()
and []
. It also does not work if your math crosses a page break (but of course it will work if a new math expression starts on the next page). If you want to use it with other math-like environments (equation, align, etc) then you should patch those separately.
Note that you should set mycolor
(or use boxcolor
) before you use math, otherwise you'll get an error. Also note that this takes effect outside of the tcolorbox
as well, so you should probably put defmycolor{black}
after each tcolorbox
(or do that automatically with AtEndEnvironment
).
With a small macro you can set color
and addfontfeatures
with a single command.
MWE:
documentclass{article}
usepackage{mathspec}
setmainfont{Linux Libertine O}
usepackage{etoolbox}
pretocmd{[}{color{mycolor}}{}{}
pretocmd{(}{color{mycolor}}{}{}
newcommand{boxcolor}[1]{defmycolor{#1}addfontfeatures{Color=mycolor}}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
boxcolor{red}
blindtext[3]
boxcolor{orange}
blindtext[3]
[F=mtimes a]
blindtext[3]
boxcolor{blue}
blindtext[3]
(1+1=2)
boxcolor{red}
blindtext
boxcolor{brown}
blindtext
end{tcolorbox}
end{document}
Result:
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can putcolor{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default,$$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and$
is still widely used but technically superseded by()
.
– Marijn
30 mins ago
add a comment |
With XeLaTeX, you could patch the math commands (both display and inline) to include the color command. This ensures that the color is set on the page where the math starts.
This does not work with the TeX commands $
and $$
but only with the LaTeX equivalents ()
and []
. It also does not work if your math crosses a page break (but of course it will work if a new math expression starts on the next page). If you want to use it with other math-like environments (equation, align, etc) then you should patch those separately.
Note that you should set mycolor
(or use boxcolor
) before you use math, otherwise you'll get an error. Also note that this takes effect outside of the tcolorbox
as well, so you should probably put defmycolor{black}
after each tcolorbox
(or do that automatically with AtEndEnvironment
).
With a small macro you can set color
and addfontfeatures
with a single command.
MWE:
documentclass{article}
usepackage{mathspec}
setmainfont{Linux Libertine O}
usepackage{etoolbox}
pretocmd{[}{color{mycolor}}{}{}
pretocmd{(}{color{mycolor}}{}{}
newcommand{boxcolor}[1]{defmycolor{#1}addfontfeatures{Color=mycolor}}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
boxcolor{red}
blindtext[3]
boxcolor{orange}
blindtext[3]
[F=mtimes a]
blindtext[3]
boxcolor{blue}
blindtext[3]
(1+1=2)
boxcolor{red}
blindtext
boxcolor{brown}
blindtext
end{tcolorbox}
end{document}
Result:
With XeLaTeX, you could patch the math commands (both display and inline) to include the color command. This ensures that the color is set on the page where the math starts.
This does not work with the TeX commands $
and $$
but only with the LaTeX equivalents ()
and []
. It also does not work if your math crosses a page break (but of course it will work if a new math expression starts on the next page). If you want to use it with other math-like environments (equation, align, etc) then you should patch those separately.
Note that you should set mycolor
(or use boxcolor
) before you use math, otherwise you'll get an error. Also note that this takes effect outside of the tcolorbox
as well, so you should probably put defmycolor{black}
after each tcolorbox
(or do that automatically with AtEndEnvironment
).
With a small macro you can set color
and addfontfeatures
with a single command.
MWE:
documentclass{article}
usepackage{mathspec}
setmainfont{Linux Libertine O}
usepackage{etoolbox}
pretocmd{[}{color{mycolor}}{}{}
pretocmd{(}{color{mycolor}}{}{}
newcommand{boxcolor}[1]{defmycolor{#1}addfontfeatures{Color=mycolor}}
usepackage{blindtext}
usepackage[breakable]{tcolorbox}
begin{document}
begin{tcolorbox}[breakable]
blindtext[3]
boxcolor{red}
blindtext[3]
boxcolor{orange}
blindtext[3]
[F=mtimes a]
blindtext[3]
boxcolor{blue}
blindtext[3]
(1+1=2)
boxcolor{red}
blindtext
boxcolor{brown}
blindtext
end{tcolorbox}
end{document}
Result:
edited 2 hours ago
answered 2 hours ago
MarijnMarijn
8,579639
8,579639
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can putcolor{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default,$$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and$
is still widely used but technically superseded by()
.
– Marijn
30 mins ago
add a comment |
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can putcolor{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default,$$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and$
is still widely used but technically superseded by()
.
– Marijn
30 mins ago
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
Thank you for the answer. However, this will not work the way I want it to, because I have some regular math expressions (which should not colored) and a few documents of around 200 pages and I don't want to have to rework all of them with a special math mode, that would take way too much time. I will favor the LuaTeX version which will take less time I guess. But thanks for the detailled answer !
– HerculePoivrot
1 hour ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can put
color{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default, $$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and $
is still widely used but technically superseded by ()
.– Marijn
30 mins ago
I understand that this solution can be a bit impractical at times, I just added it to have a XeLaTeX approach that is a bit more robust and automatic than setting the color yourself on every page. Note however that it is still possible to set the color at any time, so you can put
color{black}
inside an expression that should not be colored. Also, the special math mode is actually not so special but should be default, $$
as you used is actively discouraged (tex.stackexchange.com/questions/503/why-is-preferable-to) and $
is still widely used but technically superseded by ()
.– Marijn
30 mins ago
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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%2f485130%2fcoloring-maths-inside-a-tcolorbox%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
1
Don't use
$$...$$
- that's deprecated– ufo
3 hours ago
2
how can
tcolorbox
be incompatible withxcolor
? It is automatically loaded when you suetcolorbox
. There is no way to usetcolorbox
withoutxcolor
– ufo
3 hours ago
@ufo the problem is not with xcolor per se but with color at pagebreaks.
– Ulrike Fischer
3 hours ago
The local formatting breaks if the page breaks. It happens to me quite often that the local formatting by using something like
{extras={colupper=red}}
is lost once the pages breaks.– HerculePoivrot
3 hours ago