How to draw ░░░░░░░ blank with overlaid text in tikz
Wondering how to draw this sort of thing with tikz:
I ░░░░░░░░░░░░░░░ am a blank space.
...but with text overlaid on the dot grid. Also, instead of the dot-grid being diagonal, I would like to make it simply vertical/horizontal, and make the dots smaller and lighter so when the text goes over it it's not distracting. But it would be along these lines:
I ░Hello░World░░░ am a blank space.
But the "Hello World" would have ░ faded dots behind each letter. Just using this ░ unicode character for demo, this instead would use tikz.
tikz-pgf text
add a comment |
Wondering how to draw this sort of thing with tikz:
I ░░░░░░░░░░░░░░░ am a blank space.
...but with text overlaid on the dot grid. Also, instead of the dot-grid being diagonal, I would like to make it simply vertical/horizontal, and make the dots smaller and lighter so when the text goes over it it's not distracting. But it would be along these lines:
I ░Hello░World░░░ am a blank space.
But the "Hello World" would have ░ faded dots behind each letter. Just using this ░ unicode character for demo, this instead would use tikz.
tikz-pgf text
add a comment |
Wondering how to draw this sort of thing with tikz:
I ░░░░░░░░░░░░░░░ am a blank space.
...but with text overlaid on the dot grid. Also, instead of the dot-grid being diagonal, I would like to make it simply vertical/horizontal, and make the dots smaller and lighter so when the text goes over it it's not distracting. But it would be along these lines:
I ░Hello░World░░░ am a blank space.
But the "Hello World" would have ░ faded dots behind each letter. Just using this ░ unicode character for demo, this instead would use tikz.
tikz-pgf text
Wondering how to draw this sort of thing with tikz:
I ░░░░░░░░░░░░░░░ am a blank space.
...but with text overlaid on the dot grid. Also, instead of the dot-grid being diagonal, I would like to make it simply vertical/horizontal, and make the dots smaller and lighter so when the text goes over it it's not distracting. But it would be along these lines:
I ░Hello░World░░░ am a blank space.
But the "Hello World" would have ░ faded dots behind each letter. Just using this ░ unicode character for demo, this instead would use tikz.
tikz-pgf text
tikz-pgf text
asked 2 hours ago
Lance Pollard
707415
707415
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Are you looking for something like this? (If yes, all I'd have to do is to introduce a slightly more flexible pattern such that things look good also with more reasonable scale factors, if no, then this may help others to understand the question better.)
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{fadings,patterns}
newcommand{PlaceCharOverDots}[2][10]{%
begin{tikzfadingfrompicture}[name=temp]
node[transparent!20,scale=#1]
{bfseriessffamily textcolor{white}{#2}};
end{tikzfadingfrompicture}%
tikz[baseline=(X.base)]{node[inner sep=0pt,outer sep=0pt,scale=#1] (X) {bfseriessffamily
textcolor{white}{strut#2}};
path[pattern=dots,overlay] (X.north west)
rectangle (X.south east);%
path[path fading=temp,fit fading=false,overlay,pattern=dots,pattern
color=gray!20] (X.north west)
rectangle (X.south east);}%
}
begin{document}
PlaceCharOverDots{Hello world}
end{document}
EDIT: If you only want the text being placed over dots, all one needs to do is to define a somewhat denser dot pattern and to use it as the background of a node. I recommend tikzmarknode
here because it automatically detects the mode your in (math mode, font size etc.) and has other advantages, which this however does not exploit. Of course, you may adjust inner sep
to your needs and/or replace it by inner xsep
and inner ysep
.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{tikzmark,patterns}
% based on the rings example on p. 1060 of the pgfmanual as well as
% https://tex.stackexchange.com/a/29367/1952 for the color
makeatletter
pgfdeclarepatternformonly[/tikz/radius,size]{flexible dots}
{pgfpoint{-0.5*size}{-0.5*size}}
{pgfpoint{0.5*size}{0.5*size}}
{pgfpoint{size}{size}}
{
pgfsetfillcolor{tikz@pattern@color}
pgfpathcirclepgfpointorigin{pgfkeysvalueof{/tikz/radius}}
pgfusepath{fill}
}
makeatother
tikzset{
radius/.initial=0.1pt,
size/.store in=size,
size=0.5pt,
}
begin{document}
tikzmarknode[pattern=flexible dots,inner sep=2pt]{test}{Hello world}
end{document}
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code intopdflatex
I am getting an error:! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?tikzmarknode
has been added only a few months to thetikzmark
library. The error message seems to indicate that you are using an older version.
– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
add a comment |
Here is one way to do it. The TikZ pattern has been adopted from https://tex.stackexchange.com/a/323867/8650. Instead of setting up a background layer, I simply draw the node twice.
documentclass{article}
usepackage{xcolor}
usepackage{tikz}
usetikzlibrary{patterns}
pgfdeclarepatternformonly{my dots}{pgfqpoint{-1pt}{-1pt}}{pgfqpoint{5pt}{5pt}}{pgfqpoint{2pt}{2pt}}%
{
pgfpathcircle{pgfqpoint{0pt}{0pt}}{.4pt}
pgfusepath{fill}
}
newcommand{fade}[1]{%
begin{tikzpicture}[anchor=base, baseline]
node[inner sep=0, outer sep=0] (node) {#1};
fill[pattern=my dots, pattern color=black!10] (node.south west) rectangle (node.north east);
node[inner sep=0, outer sep=0] (node) {#1};
end{tikzpicture}}
begin{document}
\
I fade{Hello World} am a blank space.\
I Hello World am a blank space.
end{document}
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour 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%2f467049%2fhow-to-draw-blank-with-overlaid-text-in-tikz%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
Are you looking for something like this? (If yes, all I'd have to do is to introduce a slightly more flexible pattern such that things look good also with more reasonable scale factors, if no, then this may help others to understand the question better.)
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{fadings,patterns}
newcommand{PlaceCharOverDots}[2][10]{%
begin{tikzfadingfrompicture}[name=temp]
node[transparent!20,scale=#1]
{bfseriessffamily textcolor{white}{#2}};
end{tikzfadingfrompicture}%
tikz[baseline=(X.base)]{node[inner sep=0pt,outer sep=0pt,scale=#1] (X) {bfseriessffamily
textcolor{white}{strut#2}};
path[pattern=dots,overlay] (X.north west)
rectangle (X.south east);%
path[path fading=temp,fit fading=false,overlay,pattern=dots,pattern
color=gray!20] (X.north west)
rectangle (X.south east);}%
}
begin{document}
PlaceCharOverDots{Hello world}
end{document}
EDIT: If you only want the text being placed over dots, all one needs to do is to define a somewhat denser dot pattern and to use it as the background of a node. I recommend tikzmarknode
here because it automatically detects the mode your in (math mode, font size etc.) and has other advantages, which this however does not exploit. Of course, you may adjust inner sep
to your needs and/or replace it by inner xsep
and inner ysep
.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{tikzmark,patterns}
% based on the rings example on p. 1060 of the pgfmanual as well as
% https://tex.stackexchange.com/a/29367/1952 for the color
makeatletter
pgfdeclarepatternformonly[/tikz/radius,size]{flexible dots}
{pgfpoint{-0.5*size}{-0.5*size}}
{pgfpoint{0.5*size}{0.5*size}}
{pgfpoint{size}{size}}
{
pgfsetfillcolor{tikz@pattern@color}
pgfpathcirclepgfpointorigin{pgfkeysvalueof{/tikz/radius}}
pgfusepath{fill}
}
makeatother
tikzset{
radius/.initial=0.1pt,
size/.store in=size,
size=0.5pt,
}
begin{document}
tikzmarknode[pattern=flexible dots,inner sep=2pt]{test}{Hello world}
end{document}
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code intopdflatex
I am getting an error:! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?tikzmarknode
has been added only a few months to thetikzmark
library. The error message seems to indicate that you are using an older version.
– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
add a comment |
Are you looking for something like this? (If yes, all I'd have to do is to introduce a slightly more flexible pattern such that things look good also with more reasonable scale factors, if no, then this may help others to understand the question better.)
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{fadings,patterns}
newcommand{PlaceCharOverDots}[2][10]{%
begin{tikzfadingfrompicture}[name=temp]
node[transparent!20,scale=#1]
{bfseriessffamily textcolor{white}{#2}};
end{tikzfadingfrompicture}%
tikz[baseline=(X.base)]{node[inner sep=0pt,outer sep=0pt,scale=#1] (X) {bfseriessffamily
textcolor{white}{strut#2}};
path[pattern=dots,overlay] (X.north west)
rectangle (X.south east);%
path[path fading=temp,fit fading=false,overlay,pattern=dots,pattern
color=gray!20] (X.north west)
rectangle (X.south east);}%
}
begin{document}
PlaceCharOverDots{Hello world}
end{document}
EDIT: If you only want the text being placed over dots, all one needs to do is to define a somewhat denser dot pattern and to use it as the background of a node. I recommend tikzmarknode
here because it automatically detects the mode your in (math mode, font size etc.) and has other advantages, which this however does not exploit. Of course, you may adjust inner sep
to your needs and/or replace it by inner xsep
and inner ysep
.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{tikzmark,patterns}
% based on the rings example on p. 1060 of the pgfmanual as well as
% https://tex.stackexchange.com/a/29367/1952 for the color
makeatletter
pgfdeclarepatternformonly[/tikz/radius,size]{flexible dots}
{pgfpoint{-0.5*size}{-0.5*size}}
{pgfpoint{0.5*size}{0.5*size}}
{pgfpoint{size}{size}}
{
pgfsetfillcolor{tikz@pattern@color}
pgfpathcirclepgfpointorigin{pgfkeysvalueof{/tikz/radius}}
pgfusepath{fill}
}
makeatother
tikzset{
radius/.initial=0.1pt,
size/.store in=size,
size=0.5pt,
}
begin{document}
tikzmarknode[pattern=flexible dots,inner sep=2pt]{test}{Hello world}
end{document}
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code intopdflatex
I am getting an error:! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?tikzmarknode
has been added only a few months to thetikzmark
library. The error message seems to indicate that you are using an older version.
– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
add a comment |
Are you looking for something like this? (If yes, all I'd have to do is to introduce a slightly more flexible pattern such that things look good also with more reasonable scale factors, if no, then this may help others to understand the question better.)
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{fadings,patterns}
newcommand{PlaceCharOverDots}[2][10]{%
begin{tikzfadingfrompicture}[name=temp]
node[transparent!20,scale=#1]
{bfseriessffamily textcolor{white}{#2}};
end{tikzfadingfrompicture}%
tikz[baseline=(X.base)]{node[inner sep=0pt,outer sep=0pt,scale=#1] (X) {bfseriessffamily
textcolor{white}{strut#2}};
path[pattern=dots,overlay] (X.north west)
rectangle (X.south east);%
path[path fading=temp,fit fading=false,overlay,pattern=dots,pattern
color=gray!20] (X.north west)
rectangle (X.south east);}%
}
begin{document}
PlaceCharOverDots{Hello world}
end{document}
EDIT: If you only want the text being placed over dots, all one needs to do is to define a somewhat denser dot pattern and to use it as the background of a node. I recommend tikzmarknode
here because it automatically detects the mode your in (math mode, font size etc.) and has other advantages, which this however does not exploit. Of course, you may adjust inner sep
to your needs and/or replace it by inner xsep
and inner ysep
.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{tikzmark,patterns}
% based on the rings example on p. 1060 of the pgfmanual as well as
% https://tex.stackexchange.com/a/29367/1952 for the color
makeatletter
pgfdeclarepatternformonly[/tikz/radius,size]{flexible dots}
{pgfpoint{-0.5*size}{-0.5*size}}
{pgfpoint{0.5*size}{0.5*size}}
{pgfpoint{size}{size}}
{
pgfsetfillcolor{tikz@pattern@color}
pgfpathcirclepgfpointorigin{pgfkeysvalueof{/tikz/radius}}
pgfusepath{fill}
}
makeatother
tikzset{
radius/.initial=0.1pt,
size/.store in=size,
size=0.5pt,
}
begin{document}
tikzmarknode[pattern=flexible dots,inner sep=2pt]{test}{Hello world}
end{document}
Are you looking for something like this? (If yes, all I'd have to do is to introduce a slightly more flexible pattern such that things look good also with more reasonable scale factors, if no, then this may help others to understand the question better.)
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{fadings,patterns}
newcommand{PlaceCharOverDots}[2][10]{%
begin{tikzfadingfrompicture}[name=temp]
node[transparent!20,scale=#1]
{bfseriessffamily textcolor{white}{#2}};
end{tikzfadingfrompicture}%
tikz[baseline=(X.base)]{node[inner sep=0pt,outer sep=0pt,scale=#1] (X) {bfseriessffamily
textcolor{white}{strut#2}};
path[pattern=dots,overlay] (X.north west)
rectangle (X.south east);%
path[path fading=temp,fit fading=false,overlay,pattern=dots,pattern
color=gray!20] (X.north west)
rectangle (X.south east);}%
}
begin{document}
PlaceCharOverDots{Hello world}
end{document}
EDIT: If you only want the text being placed over dots, all one needs to do is to define a somewhat denser dot pattern and to use it as the background of a node. I recommend tikzmarknode
here because it automatically detects the mode your in (math mode, font size etc.) and has other advantages, which this however does not exploit. Of course, you may adjust inner sep
to your needs and/or replace it by inner xsep
and inner ysep
.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
usetikzlibrary{tikzmark,patterns}
% based on the rings example on p. 1060 of the pgfmanual as well as
% https://tex.stackexchange.com/a/29367/1952 for the color
makeatletter
pgfdeclarepatternformonly[/tikz/radius,size]{flexible dots}
{pgfpoint{-0.5*size}{-0.5*size}}
{pgfpoint{0.5*size}{0.5*size}}
{pgfpoint{size}{size}}
{
pgfsetfillcolor{tikz@pattern@color}
pgfpathcirclepgfpointorigin{pgfkeysvalueof{/tikz/radius}}
pgfusepath{fill}
}
makeatother
tikzset{
radius/.initial=0.1pt,
size/.store in=size,
size=0.5pt,
}
begin{document}
tikzmarknode[pattern=flexible dots,inner sep=2pt]{test}{Hello world}
end{document}
edited 1 hour ago
answered 2 hours ago
marmot
85.1k495179
85.1k495179
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code intopdflatex
I am getting an error:! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?tikzmarknode
has been added only a few months to thetikzmark
library. The error message seems to indicate that you are using an older version.
– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
add a comment |
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code intopdflatex
I am getting an error:! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?tikzmarknode
has been added only a few months to thetikzmark
library. The error message seems to indicate that you are using an older version.
– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
Pretty much, but the Hello World would just be plain black text, not a cutout of the dots. It's as if the blank is just a background made of dots, and you are typing right over it to fill in the blank.
– Lance Pollard
2 hours ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
@LancePollard I am not sure I fully understand yet but I added a proposal that among other things comes with a more flexible dot pattern.
– marmot
1 hour ago
copy-pasting the code into
pdflatex
I am getting an error: ! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
copy-pasting the code into
pdflatex
I am getting an error: ! Undefined control sequence. l.24 tikzmarknode [pattern=flexible dots,inner sep=2pt]{test}{Hello world}
– Lance Pollard
15 mins ago
@LancePollard When was the last time you updated your TeX installation?
tikzmarknode
has been added only a few months to the tikzmark
library. The error message seems to indicate that you are using an older version.– marmot
11 mins ago
@LancePollard When was the last time you updated your TeX installation?
tikzmarknode
has been added only a few months to the tikzmark
library. The error message seems to indicate that you are using an older version.– marmot
11 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
Okay great, thank you!
– Lance Pollard
5 mins ago
add a comment |
Here is one way to do it. The TikZ pattern has been adopted from https://tex.stackexchange.com/a/323867/8650. Instead of setting up a background layer, I simply draw the node twice.
documentclass{article}
usepackage{xcolor}
usepackage{tikz}
usetikzlibrary{patterns}
pgfdeclarepatternformonly{my dots}{pgfqpoint{-1pt}{-1pt}}{pgfqpoint{5pt}{5pt}}{pgfqpoint{2pt}{2pt}}%
{
pgfpathcircle{pgfqpoint{0pt}{0pt}}{.4pt}
pgfusepath{fill}
}
newcommand{fade}[1]{%
begin{tikzpicture}[anchor=base, baseline]
node[inner sep=0, outer sep=0] (node) {#1};
fill[pattern=my dots, pattern color=black!10] (node.south west) rectangle (node.north east);
node[inner sep=0, outer sep=0] (node) {#1};
end{tikzpicture}}
begin{document}
\
I fade{Hello World} am a blank space.\
I Hello World am a blank space.
end{document}
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour ago
add a comment |
Here is one way to do it. The TikZ pattern has been adopted from https://tex.stackexchange.com/a/323867/8650. Instead of setting up a background layer, I simply draw the node twice.
documentclass{article}
usepackage{xcolor}
usepackage{tikz}
usetikzlibrary{patterns}
pgfdeclarepatternformonly{my dots}{pgfqpoint{-1pt}{-1pt}}{pgfqpoint{5pt}{5pt}}{pgfqpoint{2pt}{2pt}}%
{
pgfpathcircle{pgfqpoint{0pt}{0pt}}{.4pt}
pgfusepath{fill}
}
newcommand{fade}[1]{%
begin{tikzpicture}[anchor=base, baseline]
node[inner sep=0, outer sep=0] (node) {#1};
fill[pattern=my dots, pattern color=black!10] (node.south west) rectangle (node.north east);
node[inner sep=0, outer sep=0] (node) {#1};
end{tikzpicture}}
begin{document}
\
I fade{Hello World} am a blank space.\
I Hello World am a blank space.
end{document}
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour ago
add a comment |
Here is one way to do it. The TikZ pattern has been adopted from https://tex.stackexchange.com/a/323867/8650. Instead of setting up a background layer, I simply draw the node twice.
documentclass{article}
usepackage{xcolor}
usepackage{tikz}
usetikzlibrary{patterns}
pgfdeclarepatternformonly{my dots}{pgfqpoint{-1pt}{-1pt}}{pgfqpoint{5pt}{5pt}}{pgfqpoint{2pt}{2pt}}%
{
pgfpathcircle{pgfqpoint{0pt}{0pt}}{.4pt}
pgfusepath{fill}
}
newcommand{fade}[1]{%
begin{tikzpicture}[anchor=base, baseline]
node[inner sep=0, outer sep=0] (node) {#1};
fill[pattern=my dots, pattern color=black!10] (node.south west) rectangle (node.north east);
node[inner sep=0, outer sep=0] (node) {#1};
end{tikzpicture}}
begin{document}
\
I fade{Hello World} am a blank space.\
I Hello World am a blank space.
end{document}
Here is one way to do it. The TikZ pattern has been adopted from https://tex.stackexchange.com/a/323867/8650. Instead of setting up a background layer, I simply draw the node twice.
documentclass{article}
usepackage{xcolor}
usepackage{tikz}
usetikzlibrary{patterns}
pgfdeclarepatternformonly{my dots}{pgfqpoint{-1pt}{-1pt}}{pgfqpoint{5pt}{5pt}}{pgfqpoint{2pt}{2pt}}%
{
pgfpathcircle{pgfqpoint{0pt}{0pt}}{.4pt}
pgfusepath{fill}
}
newcommand{fade}[1]{%
begin{tikzpicture}[anchor=base, baseline]
node[inner sep=0, outer sep=0] (node) {#1};
fill[pattern=my dots, pattern color=black!10] (node.south west) rectangle (node.north east);
node[inner sep=0, outer sep=0] (node) {#1};
end{tikzpicture}}
begin{document}
\
I fade{Hello World} am a blank space.\
I Hello World am a blank space.
end{document}
edited 1 hour ago
answered 1 hour ago
hpekristiansen
5,10862864
5,10862864
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour ago
add a comment |
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour ago
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour ago
@marmots answer is better - using a tikzmarknode and applying the pattern directly to that node -you just need the lighter color.
– hpekristiansen
1 hour 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.
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%2f467049%2fhow-to-draw-blank-with-overlaid-text-in-tikz%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