Customize circled numbers
Below is one solution (by @Stefan) for circled numbers with the help of tikz
. What can I do to make it such that I can in-place customize its draw color, fill color, text color, etc.?
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
tikz-pgf
add a comment |
Below is one solution (by @Stefan) for circled numbers with the help of tikz
. What can I do to make it such that I can in-place customize its draw color, fill color, text color, etc.?
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
tikz-pgf
Nottikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678
– David Purton
Mar 24 at 10:10
add a comment |
Below is one solution (by @Stefan) for circled numbers with the help of tikz
. What can I do to make it such that I can in-place customize its draw color, fill color, text color, etc.?
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
tikz-pgf
Below is one solution (by @Stefan) for circled numbers with the help of tikz
. What can I do to make it such that I can in-place customize its draw color, fill color, text color, etc.?
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
tikz-pgf
tikz-pgf
asked Mar 24 at 8:50
blackenedblackened
1,672815
1,672815
Nottikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678
– David Purton
Mar 24 at 10:10
add a comment |
Nottikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678
– David Purton
Mar 24 at 10:10
Not
tikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678– David Purton
Mar 24 at 10:10
Not
tikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678– David Purton
Mar 24 at 10:10
add a comment |
5 Answers
5
active
oldest
votes
I would recommend using tikzmark
here because this amazing library detects which mode (text vs. math mode, if math mode, which) you are in, so you won't have to care about this. And I would like to argue that one should specify the line width in relative units such that it scales with the font size. Of course, you have all the possibilities to color stuff and so on. (The best part is that you can connect the nodes in paths and so on.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{tikzmark}
tikzset{mycircled/.style={circle,draw,inner sep=0.1em,line width=0.04em}}
begin{document}
abc tikzmarknode[mycircled,draw=red]{t1}{d}
{Huge tikzmarknode[mycircled,draw=blue,text=purple]{t1}{D}}
[
intlimits_{tikzmarknode[mycircled,red]{a1}{a}}^{tikzmarknode[mycircled,blue]{b1}{b}}
f(x),mathrm{d}x=F(tikzmarknode[mycircled,red]{a2}{a})-
F(tikzmarknode[mycircled,blue]{b2}{b})
]
begin{tikzpicture}[overlay,remember picture]
draw[latex-latex,red] (a1) to[bend right] (a2);
draw[latex-latex,blue] (b1) to[bend left] (b2);
end{tikzpicture}
end{document}
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
@blackened Probably because you have not the most recent version oftikzmark
.tikzmarknode
was added last June or so. You may have to update your TeX installation.
– marmot
Mar 24 at 13:32
add a comment |
Edit after @marmot's (kind :P) comment (thanks):
This answer REALLY takes some care about a somehow constant size for all letters but not when line width
is increased/decreased, because I had to set this parameter as extra or make some hacks in the way that it will be provided to my macro and I am not really sure if the OP need to change the line width (I just gave it initally as an idea about improving the appearance.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
newlength{mylength}
xdefCircleFactor{1.1}
setlengthmylength{dimexprf@size pt}
newsavebox{mybox}
newcommand*circled[2][draw=blue]{saveboxmybox{vbox{vphantom{WL1/}#1}}setlengthmylength{dimexprCircleFactordimexprhtmybox+dpmyboxrelaxrelax}tikzset{mystyle/.style={circle,#1,minimum height={mylength}}}
tikz[baseline=(char.base)]
node[mystyle] (char) {#2};}
makeatother
begin{document}
This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the next paragpaph with a verb|tiny| (or whatever font).
noindent Demonstration:\
circled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
tiny This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the this with a verb|tiny| (or whatever font).
noindent Demonstration:\
noindentcircled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
normalsize Also you can give a parameter inside an optional argument of the command and have different appearance:
circled[text=blue,fill=red,draw=black]{W}circled[fill=yellow,draw=red,text=blue]{W}
end{document}
This is the old answer that DOESN'T REALY take care for the size according to my answer here.
You will select the style and could add your preferred style inside the optional argument of the definition of the command (I just placed the draw=blue
option)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
defmfontsize{f@size}
newcommand*circled[2][draw=blue]{tikzset{mystyle/.style={circle,#1,minimum height={mfontsize*1.4}}}tikz[baseline=(char.base)]
{
node[mystyle] (char) {vphantom{WAH1g}#2};}}
makeatother
begin{document}
This is circled{a} circled[text=blue,fill=orange,draw=red, line width=0.3mm]{1} balloon.
end{document}
Takes care of the size. Really? Trybegin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
add a comment |
You can add more parameters to the command.
MWE:
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
end{document}
Result:
You can also specify default values for the colors using NewDocumentCommand
from the xparse
package:
documentclass[tikz,border=7pt]{standalone}
usepackage{xparse}
NewDocumentCommand{circleddefaults}{
O{black}
O{yellow}
O{orange}
m
}{
tikz[baseline=(char.base)]{
node[shape=circle, fill=#1, draw=#2, text=#3, inner sep=2pt] (char) {#4};}}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
circleddefaults[blue,brown]{2} % two colors specified, third default
circleddefaults{3} % all defaults
end{document}
add a comment |
Here is a "double" customization that defines :
- an optional parameter of
circled
that can be any style applied to the node, - an optional
every number
style that, if defined, is applied to all circled numbers.
documentclass[border=7pt]{standalone}
usepackage{tikz}
newcommand*circled[2]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt,#1,every number/.try] (char) {#2};}}
tikzstyle{every number}=[draw=red] % I like to use tikzstyle ;)
begin{document}
circled{1}circled[fill=yellow]{2}
end{document}
add a comment |
Here there is a minimal proposal hoping to have understood your request.
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle, fill= red, draw=yellow, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
add a comment |
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%2f481168%2fcustomize-circled-numbers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
I would recommend using tikzmark
here because this amazing library detects which mode (text vs. math mode, if math mode, which) you are in, so you won't have to care about this. And I would like to argue that one should specify the line width in relative units such that it scales with the font size. Of course, you have all the possibilities to color stuff and so on. (The best part is that you can connect the nodes in paths and so on.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{tikzmark}
tikzset{mycircled/.style={circle,draw,inner sep=0.1em,line width=0.04em}}
begin{document}
abc tikzmarknode[mycircled,draw=red]{t1}{d}
{Huge tikzmarknode[mycircled,draw=blue,text=purple]{t1}{D}}
[
intlimits_{tikzmarknode[mycircled,red]{a1}{a}}^{tikzmarknode[mycircled,blue]{b1}{b}}
f(x),mathrm{d}x=F(tikzmarknode[mycircled,red]{a2}{a})-
F(tikzmarknode[mycircled,blue]{b2}{b})
]
begin{tikzpicture}[overlay,remember picture]
draw[latex-latex,red] (a1) to[bend right] (a2);
draw[latex-latex,blue] (b1) to[bend left] (b2);
end{tikzpicture}
end{document}
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
@blackened Probably because you have not the most recent version oftikzmark
.tikzmarknode
was added last June or so. You may have to update your TeX installation.
– marmot
Mar 24 at 13:32
add a comment |
I would recommend using tikzmark
here because this amazing library detects which mode (text vs. math mode, if math mode, which) you are in, so you won't have to care about this. And I would like to argue that one should specify the line width in relative units such that it scales with the font size. Of course, you have all the possibilities to color stuff and so on. (The best part is that you can connect the nodes in paths and so on.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{tikzmark}
tikzset{mycircled/.style={circle,draw,inner sep=0.1em,line width=0.04em}}
begin{document}
abc tikzmarknode[mycircled,draw=red]{t1}{d}
{Huge tikzmarknode[mycircled,draw=blue,text=purple]{t1}{D}}
[
intlimits_{tikzmarknode[mycircled,red]{a1}{a}}^{tikzmarknode[mycircled,blue]{b1}{b}}
f(x),mathrm{d}x=F(tikzmarknode[mycircled,red]{a2}{a})-
F(tikzmarknode[mycircled,blue]{b2}{b})
]
begin{tikzpicture}[overlay,remember picture]
draw[latex-latex,red] (a1) to[bend right] (a2);
draw[latex-latex,blue] (b1) to[bend left] (b2);
end{tikzpicture}
end{document}
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
@blackened Probably because you have not the most recent version oftikzmark
.tikzmarknode
was added last June or so. You may have to update your TeX installation.
– marmot
Mar 24 at 13:32
add a comment |
I would recommend using tikzmark
here because this amazing library detects which mode (text vs. math mode, if math mode, which) you are in, so you won't have to care about this. And I would like to argue that one should specify the line width in relative units such that it scales with the font size. Of course, you have all the possibilities to color stuff and so on. (The best part is that you can connect the nodes in paths and so on.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{tikzmark}
tikzset{mycircled/.style={circle,draw,inner sep=0.1em,line width=0.04em}}
begin{document}
abc tikzmarknode[mycircled,draw=red]{t1}{d}
{Huge tikzmarknode[mycircled,draw=blue,text=purple]{t1}{D}}
[
intlimits_{tikzmarknode[mycircled,red]{a1}{a}}^{tikzmarknode[mycircled,blue]{b1}{b}}
f(x),mathrm{d}x=F(tikzmarknode[mycircled,red]{a2}{a})-
F(tikzmarknode[mycircled,blue]{b2}{b})
]
begin{tikzpicture}[overlay,remember picture]
draw[latex-latex,red] (a1) to[bend right] (a2);
draw[latex-latex,blue] (b1) to[bend left] (b2);
end{tikzpicture}
end{document}
I would recommend using tikzmark
here because this amazing library detects which mode (text vs. math mode, if math mode, which) you are in, so you won't have to care about this. And I would like to argue that one should specify the line width in relative units such that it scales with the font size. Of course, you have all the possibilities to color stuff and so on. (The best part is that you can connect the nodes in paths and so on.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{tikzmark}
tikzset{mycircled/.style={circle,draw,inner sep=0.1em,line width=0.04em}}
begin{document}
abc tikzmarknode[mycircled,draw=red]{t1}{d}
{Huge tikzmarknode[mycircled,draw=blue,text=purple]{t1}{D}}
[
intlimits_{tikzmarknode[mycircled,red]{a1}{a}}^{tikzmarknode[mycircled,blue]{b1}{b}}
f(x),mathrm{d}x=F(tikzmarknode[mycircled,red]{a2}{a})-
F(tikzmarknode[mycircled,blue]{b2}{b})
]
begin{tikzpicture}[overlay,remember picture]
draw[latex-latex,red] (a1) to[bend right] (a2);
draw[latex-latex,blue] (b1) to[bend left] (b2);
end{tikzpicture}
end{document}
edited Mar 24 at 13:05
answered Mar 24 at 13:00
marmotmarmot
113k5145275
113k5145275
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
@blackened Probably because you have not the most recent version oftikzmark
.tikzmarknode
was added last June or so. You may have to update your TeX installation.
– marmot
Mar 24 at 13:32
add a comment |
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
@blackened Probably because you have not the most recent version oftikzmark
.tikzmarknode
was added last June or so. You may have to update your TeX installation.
– marmot
Mar 24 at 13:32
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
The TikZ Wizard at work!
– samcarter
Mar 24 at 13:01
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
@marmot Why can't I compile your code?
– blackened
Mar 24 at 13:31
2
2
@blackened Probably because you have not the most recent version of
tikzmark
. tikzmarknode
was added last June or so. You may have to update your TeX installation.– marmot
Mar 24 at 13:32
@blackened Probably because you have not the most recent version of
tikzmark
. tikzmarknode
was added last June or so. You may have to update your TeX installation.– marmot
Mar 24 at 13:32
add a comment |
Edit after @marmot's (kind :P) comment (thanks):
This answer REALLY takes some care about a somehow constant size for all letters but not when line width
is increased/decreased, because I had to set this parameter as extra or make some hacks in the way that it will be provided to my macro and I am not really sure if the OP need to change the line width (I just gave it initally as an idea about improving the appearance.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
newlength{mylength}
xdefCircleFactor{1.1}
setlengthmylength{dimexprf@size pt}
newsavebox{mybox}
newcommand*circled[2][draw=blue]{saveboxmybox{vbox{vphantom{WL1/}#1}}setlengthmylength{dimexprCircleFactordimexprhtmybox+dpmyboxrelaxrelax}tikzset{mystyle/.style={circle,#1,minimum height={mylength}}}
tikz[baseline=(char.base)]
node[mystyle] (char) {#2};}
makeatother
begin{document}
This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the next paragpaph with a verb|tiny| (or whatever font).
noindent Demonstration:\
circled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
tiny This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the this with a verb|tiny| (or whatever font).
noindent Demonstration:\
noindentcircled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
normalsize Also you can give a parameter inside an optional argument of the command and have different appearance:
circled[text=blue,fill=red,draw=black]{W}circled[fill=yellow,draw=red,text=blue]{W}
end{document}
This is the old answer that DOESN'T REALY take care for the size according to my answer here.
You will select the style and could add your preferred style inside the optional argument of the definition of the command (I just placed the draw=blue
option)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
defmfontsize{f@size}
newcommand*circled[2][draw=blue]{tikzset{mystyle/.style={circle,#1,minimum height={mfontsize*1.4}}}tikz[baseline=(char.base)]
{
node[mystyle] (char) {vphantom{WAH1g}#2};}}
makeatother
begin{document}
This is circled{a} circled[text=blue,fill=orange,draw=red, line width=0.3mm]{1} balloon.
end{document}
Takes care of the size. Really? Trybegin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
add a comment |
Edit after @marmot's (kind :P) comment (thanks):
This answer REALLY takes some care about a somehow constant size for all letters but not when line width
is increased/decreased, because I had to set this parameter as extra or make some hacks in the way that it will be provided to my macro and I am not really sure if the OP need to change the line width (I just gave it initally as an idea about improving the appearance.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
newlength{mylength}
xdefCircleFactor{1.1}
setlengthmylength{dimexprf@size pt}
newsavebox{mybox}
newcommand*circled[2][draw=blue]{saveboxmybox{vbox{vphantom{WL1/}#1}}setlengthmylength{dimexprCircleFactordimexprhtmybox+dpmyboxrelaxrelax}tikzset{mystyle/.style={circle,#1,minimum height={mylength}}}
tikz[baseline=(char.base)]
node[mystyle] (char) {#2};}
makeatother
begin{document}
This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the next paragpaph with a verb|tiny| (or whatever font).
noindent Demonstration:\
circled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
tiny This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the this with a verb|tiny| (or whatever font).
noindent Demonstration:\
noindentcircled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
normalsize Also you can give a parameter inside an optional argument of the command and have different appearance:
circled[text=blue,fill=red,draw=black]{W}circled[fill=yellow,draw=red,text=blue]{W}
end{document}
This is the old answer that DOESN'T REALY take care for the size according to my answer here.
You will select the style and could add your preferred style inside the optional argument of the definition of the command (I just placed the draw=blue
option)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
defmfontsize{f@size}
newcommand*circled[2][draw=blue]{tikzset{mystyle/.style={circle,#1,minimum height={mfontsize*1.4}}}tikz[baseline=(char.base)]
{
node[mystyle] (char) {vphantom{WAH1g}#2};}}
makeatother
begin{document}
This is circled{a} circled[text=blue,fill=orange,draw=red, line width=0.3mm]{1} balloon.
end{document}
Takes care of the size. Really? Trybegin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
add a comment |
Edit after @marmot's (kind :P) comment (thanks):
This answer REALLY takes some care about a somehow constant size for all letters but not when line width
is increased/decreased, because I had to set this parameter as extra or make some hacks in the way that it will be provided to my macro and I am not really sure if the OP need to change the line width (I just gave it initally as an idea about improving the appearance.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
newlength{mylength}
xdefCircleFactor{1.1}
setlengthmylength{dimexprf@size pt}
newsavebox{mybox}
newcommand*circled[2][draw=blue]{saveboxmybox{vbox{vphantom{WL1/}#1}}setlengthmylength{dimexprCircleFactordimexprhtmybox+dpmyboxrelaxrelax}tikzset{mystyle/.style={circle,#1,minimum height={mylength}}}
tikz[baseline=(char.base)]
node[mystyle] (char) {#2};}
makeatother
begin{document}
This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the next paragpaph with a verb|tiny| (or whatever font).
noindent Demonstration:\
circled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
tiny This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the this with a verb|tiny| (or whatever font).
noindent Demonstration:\
noindentcircled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
normalsize Also you can give a parameter inside an optional argument of the command and have different appearance:
circled[text=blue,fill=red,draw=black]{W}circled[fill=yellow,draw=red,text=blue]{W}
end{document}
This is the old answer that DOESN'T REALY take care for the size according to my answer here.
You will select the style and could add your preferred style inside the optional argument of the definition of the command (I just placed the draw=blue
option)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
defmfontsize{f@size}
newcommand*circled[2][draw=blue]{tikzset{mystyle/.style={circle,#1,minimum height={mfontsize*1.4}}}tikz[baseline=(char.base)]
{
node[mystyle] (char) {vphantom{WAH1g}#2};}}
makeatother
begin{document}
This is circled{a} circled[text=blue,fill=orange,draw=red, line width=0.3mm]{1} balloon.
end{document}
Edit after @marmot's (kind :P) comment (thanks):
This answer REALLY takes some care about a somehow constant size for all letters but not when line width
is increased/decreased, because I had to set this parameter as extra or make some hacks in the way that it will be provided to my macro and I am not really sure if the OP need to change the line width (I just gave it initally as an idea about improving the appearance.)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
newlength{mylength}
xdefCircleFactor{1.1}
setlengthmylength{dimexprf@size pt}
newsavebox{mybox}
newcommand*circled[2][draw=blue]{saveboxmybox{vbox{vphantom{WL1/}#1}}setlengthmylength{dimexprCircleFactordimexprhtmybox+dpmyboxrelaxrelax}tikzset{mystyle/.style={circle,#1,minimum height={mylength}}}
tikz[baseline=(char.base)]
node[mystyle] (char) {#2};}
makeatother
begin{document}
This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the next paragpaph with a verb|tiny| (or whatever font).
noindent Demonstration:\
circled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
tiny This answer takes care of the current font size in a way that circled{i} and circled{W} will appear the same size here and in the this with a verb|tiny| (or whatever font).
noindent Demonstration:\
noindentcircled{i}circled{i}circled{W}circled{W}\
circled{W}circled{W}circled{i}circled{i}
normalsize Also you can give a parameter inside an optional argument of the command and have different appearance:
circled[text=blue,fill=red,draw=black]{W}circled[fill=yellow,draw=red,text=blue]{W}
end{document}
This is the old answer that DOESN'T REALY take care for the size according to my answer here.
You will select the style and could add your preferred style inside the optional argument of the definition of the command (I just placed the draw=blue
option)
documentclass{article}
usepackage{tikz}
usetikzlibrary{calc}
makeatletter
defmfontsize{f@size}
newcommand*circled[2][draw=blue]{tikzset{mystyle/.style={circle,#1,minimum height={mfontsize*1.4}}}tikz[baseline=(char.base)]
{
node[mystyle] (char) {vphantom{WAH1g}#2};}}
makeatother
begin{document}
This is circled{a} circled[text=blue,fill=orange,draw=red, line width=0.3mm]{1} balloon.
end{document}
edited Mar 24 at 14:21
answered Mar 24 at 9:32
koleygrkoleygr
13.4k11039
13.4k11039
Takes care of the size. Really? Trybegin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
add a comment |
Takes care of the size. Really? Trybegin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
Takes care of the size. Really? Try
begin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
Takes care of the size. Really? Try
begin{document} noindentcircled{i} noindentcircled{w} end{document}
– marmot
Mar 24 at 12:51
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
@marmot: Possibly it was a lie... :P. If it was for "real" your example would not fail. (Thanks... kidding because this "Really?" heard funny to me. Edited).
– koleygr
Mar 24 at 13:39
add a comment |
You can add more parameters to the command.
MWE:
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
end{document}
Result:
You can also specify default values for the colors using NewDocumentCommand
from the xparse
package:
documentclass[tikz,border=7pt]{standalone}
usepackage{xparse}
NewDocumentCommand{circleddefaults}{
O{black}
O{yellow}
O{orange}
m
}{
tikz[baseline=(char.base)]{
node[shape=circle, fill=#1, draw=#2, text=#3, inner sep=2pt] (char) {#4};}}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
circleddefaults[blue,brown]{2} % two colors specified, third default
circleddefaults{3} % all defaults
end{document}
add a comment |
You can add more parameters to the command.
MWE:
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
end{document}
Result:
You can also specify default values for the colors using NewDocumentCommand
from the xparse
package:
documentclass[tikz,border=7pt]{standalone}
usepackage{xparse}
NewDocumentCommand{circleddefaults}{
O{black}
O{yellow}
O{orange}
m
}{
tikz[baseline=(char.base)]{
node[shape=circle, fill=#1, draw=#2, text=#3, inner sep=2pt] (char) {#4};}}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
circleddefaults[blue,brown]{2} % two colors specified, third default
circleddefaults{3} % all defaults
end{document}
add a comment |
You can add more parameters to the command.
MWE:
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
end{document}
Result:
You can also specify default values for the colors using NewDocumentCommand
from the xparse
package:
documentclass[tikz,border=7pt]{standalone}
usepackage{xparse}
NewDocumentCommand{circleddefaults}{
O{black}
O{yellow}
O{orange}
m
}{
tikz[baseline=(char.base)]{
node[shape=circle, fill=#1, draw=#2, text=#3, inner sep=2pt] (char) {#4};}}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
circleddefaults[blue,brown]{2} % two colors specified, third default
circleddefaults{3} % all defaults
end{document}
You can add more parameters to the command.
MWE:
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
end{document}
Result:
You can also specify default values for the colors using NewDocumentCommand
from the xparse
package:
documentclass[tikz,border=7pt]{standalone}
usepackage{xparse}
NewDocumentCommand{circleddefaults}{
O{black}
O{yellow}
O{orange}
m
}{
tikz[baseline=(char.base)]{
node[shape=circle, fill=#1, draw=#2, text=#3, inner sep=2pt] (char) {#4};}}
newcommand*circled[4]{tikz[baseline=(char.base)]{
node[shape=circle, fill=#2, draw=#3, text=#4, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}{red}{green}{blue}
circleddefaults[blue,brown]{2} % two colors specified, third default
circleddefaults{3} % all defaults
end{document}
edited Mar 24 at 9:33
answered Mar 24 at 9:25
MarijnMarijn
8,434636
8,434636
add a comment |
add a comment |
Here is a "double" customization that defines :
- an optional parameter of
circled
that can be any style applied to the node, - an optional
every number
style that, if defined, is applied to all circled numbers.
documentclass[border=7pt]{standalone}
usepackage{tikz}
newcommand*circled[2]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt,#1,every number/.try] (char) {#2};}}
tikzstyle{every number}=[draw=red] % I like to use tikzstyle ;)
begin{document}
circled{1}circled[fill=yellow]{2}
end{document}
add a comment |
Here is a "double" customization that defines :
- an optional parameter of
circled
that can be any style applied to the node, - an optional
every number
style that, if defined, is applied to all circled numbers.
documentclass[border=7pt]{standalone}
usepackage{tikz}
newcommand*circled[2]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt,#1,every number/.try] (char) {#2};}}
tikzstyle{every number}=[draw=red] % I like to use tikzstyle ;)
begin{document}
circled{1}circled[fill=yellow]{2}
end{document}
add a comment |
Here is a "double" customization that defines :
- an optional parameter of
circled
that can be any style applied to the node, - an optional
every number
style that, if defined, is applied to all circled numbers.
documentclass[border=7pt]{standalone}
usepackage{tikz}
newcommand*circled[2]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt,#1,every number/.try] (char) {#2};}}
tikzstyle{every number}=[draw=red] % I like to use tikzstyle ;)
begin{document}
circled{1}circled[fill=yellow]{2}
end{document}
Here is a "double" customization that defines :
- an optional parameter of
circled
that can be any style applied to the node, - an optional
every number
style that, if defined, is applied to all circled numbers.
documentclass[border=7pt]{standalone}
usepackage{tikz}
newcommand*circled[2]{tikz[baseline=(char.base)]{
node[shape=circle,draw,inner sep=2pt,#1,every number/.try] (char) {#2};}}
tikzstyle{every number}=[draw=red] % I like to use tikzstyle ;)
begin{document}
circled{1}circled[fill=yellow]{2}
end{document}
answered Mar 24 at 10:22
KpymKpym
17.5k24191
17.5k24191
add a comment |
add a comment |
Here there is a minimal proposal hoping to have understood your request.
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle, fill= red, draw=yellow, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
add a comment |
Here there is a minimal proposal hoping to have understood your request.
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle, fill= red, draw=yellow, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
add a comment |
Here there is a minimal proposal hoping to have understood your request.
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle, fill= red, draw=yellow, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
Here there is a minimal proposal hoping to have understood your request.
documentclass[tikz,border=7pt]{standalone}
newcommand*circled[1]{tikz[baseline=(char.base)]{
node[shape=circle, fill= red, draw=yellow, inner sep=2pt] (char) {#1};}}
begin{document}
circled{1}
end{document}
edited Mar 24 at 12:32
answered Mar 24 at 9:11
SebastianoSebastiano
11.4k42164
11.4k42164
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
add a comment |
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
1
1
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
I need to be able to change the style when I use it.
– blackened
Mar 24 at 9:15
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
In my humble opinion, it is necessary to change the excellent macro according to your needs with a new command. It depends on what you need. Have you looked at TikZ's manual?
– Sebastiano
Mar 24 at 9:17
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%2f481168%2fcustomize-circled-numbers%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
Not
tikz
, but here's an answer using the picture environment for the same question: tex.stackexchange.com/a/460946/87678– David Purton
Mar 24 at 10:10