How to use Tikz to calculate and use successive color values with text?
up vote
8
down vote
favorite
I'd like to use Tikz to algorithmically generate some text that has a color value based on calculations. Take the following, for example:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i in {0, 1, ..., 10} {
draw (i, 0) node {textcolor[gray]{0.5}A};
}
end{tikzpicture}
end{document}
This displays a row of "A"s in a gray:
How do I go about calculating the 0.5
value to, for example, display this set of "A"s in varying levels of gray, such as a black to white gradient? Could I use this same method to calculate arbitrary RGB values?
tikz-pgf color
add a comment |
up vote
8
down vote
favorite
I'd like to use Tikz to algorithmically generate some text that has a color value based on calculations. Take the following, for example:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i in {0, 1, ..., 10} {
draw (i, 0) node {textcolor[gray]{0.5}A};
}
end{tikzpicture}
end{document}
This displays a row of "A"s in a gray:
How do I go about calculating the 0.5
value to, for example, display this set of "A"s in varying levels of gray, such as a black to white gradient? Could I use this same method to calculate arbitrary RGB values?
tikz-pgf color
add a comment |
up vote
8
down vote
favorite
up vote
8
down vote
favorite
I'd like to use Tikz to algorithmically generate some text that has a color value based on calculations. Take the following, for example:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i in {0, 1, ..., 10} {
draw (i, 0) node {textcolor[gray]{0.5}A};
}
end{tikzpicture}
end{document}
This displays a row of "A"s in a gray:
How do I go about calculating the 0.5
value to, for example, display this set of "A"s in varying levels of gray, such as a black to white gradient? Could I use this same method to calculate arbitrary RGB values?
tikz-pgf color
I'd like to use Tikz to algorithmically generate some text that has a color value based on calculations. Take the following, for example:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i in {0, 1, ..., 10} {
draw (i, 0) node {textcolor[gray]{0.5}A};
}
end{tikzpicture}
end{document}
This displays a row of "A"s in a gray:
How do I go about calculating the 0.5
value to, for example, display this set of "A"s in varying levels of gray, such as a black to white gradient? Could I use this same method to calculate arbitrary RGB values?
tikz-pgf color
tikz-pgf color
asked Nov 21 at 15:28
Roxy
3465
3465
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
up vote
8
down vote
accepted
Yes, you can vary the gray levels, and the following can be used also to general non-gray colors.
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
draw (i, 0) node[text=gray!j!white] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
6
down vote
Just for fun, another foreach
solution:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [count=j] in {0, 10, ..., 100} {
draw (j, 0) node[text=blue!i!red] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
5
down vote
You can evaluate a variable within the foreach loop itself (see page 904 of 3.0.1a manual).
Here since you want to go from black to white, you can do:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as gradient using 100-i*10] in {0, 1, ..., 10} {
draw (i, 0) node[text=black!gradient] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
4
down vote
A slightly different syntax than what marmot proposed, but with the same effects
documentclass[tikz,border=3.14pt]{standalone}
begin{document}
begin{tikzpicture}
draw foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
(i, 0) node[text=gray!j!white] {A}
};
end{tikzpicture}
end{document}
add a comment |
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
8
down vote
accepted
Yes, you can vary the gray levels, and the following can be used also to general non-gray colors.
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
draw (i, 0) node[text=gray!j!white] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
8
down vote
accepted
Yes, you can vary the gray levels, and the following can be used also to general non-gray colors.
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
draw (i, 0) node[text=gray!j!white] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
8
down vote
accepted
up vote
8
down vote
accepted
Yes, you can vary the gray levels, and the following can be used also to general non-gray colors.
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
draw (i, 0) node[text=gray!j!white] {A};
}
end{tikzpicture}
end{document}
Yes, you can vary the gray levels, and the following can be used also to general non-gray colors.
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
draw (i, 0) node[text=gray!j!white] {A};
}
end{tikzpicture}
end{document}
answered Nov 21 at 15:33
marmot
81.4k491174
81.4k491174
add a comment |
add a comment |
up vote
6
down vote
Just for fun, another foreach
solution:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [count=j] in {0, 10, ..., 100} {
draw (j, 0) node[text=blue!i!red] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
6
down vote
Just for fun, another foreach
solution:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [count=j] in {0, 10, ..., 100} {
draw (j, 0) node[text=blue!i!red] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
6
down vote
up vote
6
down vote
Just for fun, another foreach
solution:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [count=j] in {0, 10, ..., 100} {
draw (j, 0) node[text=blue!i!red] {A};
}
end{tikzpicture}
end{document}
Just for fun, another foreach
solution:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [count=j] in {0, 10, ..., 100} {
draw (j, 0) node[text=blue!i!red] {A};
}
end{tikzpicture}
end{document}
answered Nov 21 at 19:48
Ignasi
90.7k4164303
90.7k4164303
add a comment |
add a comment |
up vote
5
down vote
You can evaluate a variable within the foreach loop itself (see page 904 of 3.0.1a manual).
Here since you want to go from black to white, you can do:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as gradient using 100-i*10] in {0, 1, ..., 10} {
draw (i, 0) node[text=black!gradient] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
5
down vote
You can evaluate a variable within the foreach loop itself (see page 904 of 3.0.1a manual).
Here since you want to go from black to white, you can do:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as gradient using 100-i*10] in {0, 1, ..., 10} {
draw (i, 0) node[text=black!gradient] {A};
}
end{tikzpicture}
end{document}
add a comment |
up vote
5
down vote
up vote
5
down vote
You can evaluate a variable within the foreach loop itself (see page 904 of 3.0.1a manual).
Here since you want to go from black to white, you can do:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as gradient using 100-i*10] in {0, 1, ..., 10} {
draw (i, 0) node[text=black!gradient] {A};
}
end{tikzpicture}
end{document}
You can evaluate a variable within the foreach loop itself (see page 904 of 3.0.1a manual).
Here since you want to go from black to white, you can do:
documentclass{standalone}
usepackage{tikz}
begin{document}
begin{tikzpicture}
foreach i [evaluate=i as gradient using 100-i*10] in {0, 1, ..., 10} {
draw (i, 0) node[text=black!gradient] {A};
}
end{tikzpicture}
end{document}
answered Nov 21 at 15:42
AndréC
6,84211140
6,84211140
add a comment |
add a comment |
up vote
4
down vote
A slightly different syntax than what marmot proposed, but with the same effects
documentclass[tikz,border=3.14pt]{standalone}
begin{document}
begin{tikzpicture}
draw foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
(i, 0) node[text=gray!j!white] {A}
};
end{tikzpicture}
end{document}
add a comment |
up vote
4
down vote
A slightly different syntax than what marmot proposed, but with the same effects
documentclass[tikz,border=3.14pt]{standalone}
begin{document}
begin{tikzpicture}
draw foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
(i, 0) node[text=gray!j!white] {A}
};
end{tikzpicture}
end{document}
add a comment |
up vote
4
down vote
up vote
4
down vote
A slightly different syntax than what marmot proposed, but with the same effects
documentclass[tikz,border=3.14pt]{standalone}
begin{document}
begin{tikzpicture}
draw foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
(i, 0) node[text=gray!j!white] {A}
};
end{tikzpicture}
end{document}
A slightly different syntax than what marmot proposed, but with the same effects
documentclass[tikz,border=3.14pt]{standalone}
begin{document}
begin{tikzpicture}
draw foreach i [evaluate=i as j using {int(i*10)}] in {0, 1, ..., 10} {
(i, 0) node[text=gray!j!white] {A}
};
end{tikzpicture}
end{document}
answered Nov 21 at 15:45
BambOo
3,0011526
3,0011526
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f461139%2fhow-to-use-tikz-to-calculate-and-use-successive-color-values-with-text%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