Custom line cap to simulate inked line in TikZ
Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.
tikz-pgf
add a comment |
Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.
tikz-pgf
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47
add a comment |
Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.
tikz-pgf
Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.
tikz-pgf
tikz-pgf
asked Nov 19 at 22:29
user2501235
665
665
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47
add a comment |
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47
add a comment |
1 Answer
1
active
oldest
votes
Can one add such arrow tips? Sure. Am I sure that my proposal is the best inky tip ever? Absolutely not. However, this should give you an idea how to approach the "best inky tip ever". ;-)
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.05pgfarrowlength}{-0.95pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-0.9pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.3pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
Or, if you wish to have a more pronounced tip, this can also be done.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-1.35pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-1.1pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
And one could also add some randomness.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
BONUS: Some quick and dirty "inky" letters.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
usetikzlibrary{positioning}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
tikzset{pics/.cd,
A/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.55) -- (0.3,0.4) -- (0.6,-0.55);
draw[line width=5](0.1,1/3-0.45) --
(0.5,1/3-0.45);
path (0.7,0);}},
B/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0) to[out=0,in=0,looseness=3] cycle;}},
C/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5,-{ink[bend]}](0,0) to[out=-90,in=-110,looseness=2] (0.5,-0.25);
path (0.7,0);}},
D/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.25] cycle;
path (0.7,0);}},
E/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0.5,-0.45) --(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
F/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
G/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5] (0,0) to[out=-90,in=-110,looseness=2]
(0.5,-0.25);
draw[line width=5,-{ink[bend]}] (0.54,-0.25) to (0.3,-0.25);
path (0.7,0);}},
H/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.5) -- (0,0.5);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,-0.5) -- (0.5,0.5);
draw[line width=5] (0,0) -- (0.5,0);
path (0.7,0);}},
I/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45);
path (0.25,0);}},
J/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.2,0.45) -- (0.2,-0.35) to[out=-90,in=0]
(0.1,-0.45) to[out=180,in=-90] (0,-0.35);
path (0.45,0);}},
K/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.4,0.45) -- (0.02,0) -- (0.4,-0.45);
path (0.6,0);}},
L/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.5) -- (0,-0.45) -- (0.4,-0.45);
path (0.6,0);}},
M/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) --
(0.3,0.25) -- (0.6,0.45) -- (0.6,-0.45);
path (0.8,0);}},
N/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) -- (0.6,-0.4) --
(0.6,0.45);
path (0.8,0);}},
O/.style={code={draw[line width=5] (0.3,0) circle(0.3 and 0.48);
path (0.8,0);}},
P/.style={code={draw[line width=5,{ink[bend]}-] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0);
path (0.6,0);}},
Q/.style={code={draw[line width=5]
(0.3,0) circle(0.3 and 0.48);
draw[line width=5,{ink[bend]}-{ink[bend]}](0.35,-0.25) -- (0.6,-0.45);
path (0.8,0);}},
R/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0.05,0) -- (0.4,-0.45);
path (0.6,0);}},
S/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,0.4)
to[out=160,in=165,looseness=2] (0.3,0)
to[out=-15,in=-20,looseness=2] (0.1,-0.4);
path (0.65,0);}},
T/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.35,-0.45) -- (0.35,0.45) (0,0.45) -- (0.7,0.45);
path (0.85,0);}},
U/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0,0) to[out=-90,in=-90,looseness=2.5]
(0.6,0) -- (0.6,0.5);
path (0.8,0);}},
V/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0.3,-0.4) -- (0.6,0.5);
path (0.8,0);}},
W/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) -- (0.3,-0.4) -- (0.45,-0.1)
-- (0.6,-0.4) -- (0.9,0.45);
path (1.1,0);}},
X/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.6,-0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Y/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.3,0);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Z/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) --(0.6,0.45) -- (0,-0.45)
-- (0.6,-0.45);
path (0.8,0);}},
space/.style={code={path (0,0) (0.2,0);}},
}
begin{tikzpicture}[blue!80!black]
pic[local bounding box=box1,scale=2] at (0,0) {A};
foreach X [count=Y,evaluate=Y as Z using {int(Y+1)}] in {B,...,Z}
{edeftemp{noexpandpic[right=0mm of boxY,local bounding box=boxZ,scale=2]
{X};}
temp}
end{tikzpicture}
end{document}
(Yes, obviously these are not at all as beautiful as dedicated fonts. However, one can subject them to nonlinear transformation, such as those of this impressive master piece. I spare this application for another day. Also because arrow tips and nonlinear transformations require some extra work.)
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. withpdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.
– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
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%2f460836%2fcustom-line-cap-to-simulate-inked-line-in-tikz%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Can one add such arrow tips? Sure. Am I sure that my proposal is the best inky tip ever? Absolutely not. However, this should give you an idea how to approach the "best inky tip ever". ;-)
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.05pgfarrowlength}{-0.95pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-0.9pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.3pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
Or, if you wish to have a more pronounced tip, this can also be done.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-1.35pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-1.1pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
And one could also add some randomness.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
BONUS: Some quick and dirty "inky" letters.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
usetikzlibrary{positioning}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
tikzset{pics/.cd,
A/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.55) -- (0.3,0.4) -- (0.6,-0.55);
draw[line width=5](0.1,1/3-0.45) --
(0.5,1/3-0.45);
path (0.7,0);}},
B/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0) to[out=0,in=0,looseness=3] cycle;}},
C/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5,-{ink[bend]}](0,0) to[out=-90,in=-110,looseness=2] (0.5,-0.25);
path (0.7,0);}},
D/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.25] cycle;
path (0.7,0);}},
E/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0.5,-0.45) --(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
F/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
G/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5] (0,0) to[out=-90,in=-110,looseness=2]
(0.5,-0.25);
draw[line width=5,-{ink[bend]}] (0.54,-0.25) to (0.3,-0.25);
path (0.7,0);}},
H/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.5) -- (0,0.5);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,-0.5) -- (0.5,0.5);
draw[line width=5] (0,0) -- (0.5,0);
path (0.7,0);}},
I/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45);
path (0.25,0);}},
J/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.2,0.45) -- (0.2,-0.35) to[out=-90,in=0]
(0.1,-0.45) to[out=180,in=-90] (0,-0.35);
path (0.45,0);}},
K/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.4,0.45) -- (0.02,0) -- (0.4,-0.45);
path (0.6,0);}},
L/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.5) -- (0,-0.45) -- (0.4,-0.45);
path (0.6,0);}},
M/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) --
(0.3,0.25) -- (0.6,0.45) -- (0.6,-0.45);
path (0.8,0);}},
N/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) -- (0.6,-0.4) --
(0.6,0.45);
path (0.8,0);}},
O/.style={code={draw[line width=5] (0.3,0) circle(0.3 and 0.48);
path (0.8,0);}},
P/.style={code={draw[line width=5,{ink[bend]}-] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0);
path (0.6,0);}},
Q/.style={code={draw[line width=5]
(0.3,0) circle(0.3 and 0.48);
draw[line width=5,{ink[bend]}-{ink[bend]}](0.35,-0.25) -- (0.6,-0.45);
path (0.8,0);}},
R/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0.05,0) -- (0.4,-0.45);
path (0.6,0);}},
S/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,0.4)
to[out=160,in=165,looseness=2] (0.3,0)
to[out=-15,in=-20,looseness=2] (0.1,-0.4);
path (0.65,0);}},
T/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.35,-0.45) -- (0.35,0.45) (0,0.45) -- (0.7,0.45);
path (0.85,0);}},
U/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0,0) to[out=-90,in=-90,looseness=2.5]
(0.6,0) -- (0.6,0.5);
path (0.8,0);}},
V/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0.3,-0.4) -- (0.6,0.5);
path (0.8,0);}},
W/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) -- (0.3,-0.4) -- (0.45,-0.1)
-- (0.6,-0.4) -- (0.9,0.45);
path (1.1,0);}},
X/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.6,-0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Y/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.3,0);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Z/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) --(0.6,0.45) -- (0,-0.45)
-- (0.6,-0.45);
path (0.8,0);}},
space/.style={code={path (0,0) (0.2,0);}},
}
begin{tikzpicture}[blue!80!black]
pic[local bounding box=box1,scale=2] at (0,0) {A};
foreach X [count=Y,evaluate=Y as Z using {int(Y+1)}] in {B,...,Z}
{edeftemp{noexpandpic[right=0mm of boxY,local bounding box=boxZ,scale=2]
{X};}
temp}
end{tikzpicture}
end{document}
(Yes, obviously these are not at all as beautiful as dedicated fonts. However, one can subject them to nonlinear transformation, such as those of this impressive master piece. I spare this application for another day. Also because arrow tips and nonlinear transformations require some extra work.)
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. withpdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.
– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
add a comment |
Can one add such arrow tips? Sure. Am I sure that my proposal is the best inky tip ever? Absolutely not. However, this should give you an idea how to approach the "best inky tip ever". ;-)
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.05pgfarrowlength}{-0.95pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-0.9pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.3pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
Or, if you wish to have a more pronounced tip, this can also be done.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-1.35pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-1.1pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
And one could also add some randomness.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
BONUS: Some quick and dirty "inky" letters.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
usetikzlibrary{positioning}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
tikzset{pics/.cd,
A/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.55) -- (0.3,0.4) -- (0.6,-0.55);
draw[line width=5](0.1,1/3-0.45) --
(0.5,1/3-0.45);
path (0.7,0);}},
B/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0) to[out=0,in=0,looseness=3] cycle;}},
C/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5,-{ink[bend]}](0,0) to[out=-90,in=-110,looseness=2] (0.5,-0.25);
path (0.7,0);}},
D/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.25] cycle;
path (0.7,0);}},
E/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0.5,-0.45) --(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
F/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
G/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5] (0,0) to[out=-90,in=-110,looseness=2]
(0.5,-0.25);
draw[line width=5,-{ink[bend]}] (0.54,-0.25) to (0.3,-0.25);
path (0.7,0);}},
H/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.5) -- (0,0.5);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,-0.5) -- (0.5,0.5);
draw[line width=5] (0,0) -- (0.5,0);
path (0.7,0);}},
I/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45);
path (0.25,0);}},
J/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.2,0.45) -- (0.2,-0.35) to[out=-90,in=0]
(0.1,-0.45) to[out=180,in=-90] (0,-0.35);
path (0.45,0);}},
K/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.4,0.45) -- (0.02,0) -- (0.4,-0.45);
path (0.6,0);}},
L/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.5) -- (0,-0.45) -- (0.4,-0.45);
path (0.6,0);}},
M/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) --
(0.3,0.25) -- (0.6,0.45) -- (0.6,-0.45);
path (0.8,0);}},
N/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) -- (0.6,-0.4) --
(0.6,0.45);
path (0.8,0);}},
O/.style={code={draw[line width=5] (0.3,0) circle(0.3 and 0.48);
path (0.8,0);}},
P/.style={code={draw[line width=5,{ink[bend]}-] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0);
path (0.6,0);}},
Q/.style={code={draw[line width=5]
(0.3,0) circle(0.3 and 0.48);
draw[line width=5,{ink[bend]}-{ink[bend]}](0.35,-0.25) -- (0.6,-0.45);
path (0.8,0);}},
R/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0.05,0) -- (0.4,-0.45);
path (0.6,0);}},
S/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,0.4)
to[out=160,in=165,looseness=2] (0.3,0)
to[out=-15,in=-20,looseness=2] (0.1,-0.4);
path (0.65,0);}},
T/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.35,-0.45) -- (0.35,0.45) (0,0.45) -- (0.7,0.45);
path (0.85,0);}},
U/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0,0) to[out=-90,in=-90,looseness=2.5]
(0.6,0) -- (0.6,0.5);
path (0.8,0);}},
V/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0.3,-0.4) -- (0.6,0.5);
path (0.8,0);}},
W/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) -- (0.3,-0.4) -- (0.45,-0.1)
-- (0.6,-0.4) -- (0.9,0.45);
path (1.1,0);}},
X/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.6,-0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Y/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.3,0);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Z/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) --(0.6,0.45) -- (0,-0.45)
-- (0.6,-0.45);
path (0.8,0);}},
space/.style={code={path (0,0) (0.2,0);}},
}
begin{tikzpicture}[blue!80!black]
pic[local bounding box=box1,scale=2] at (0,0) {A};
foreach X [count=Y,evaluate=Y as Z using {int(Y+1)}] in {B,...,Z}
{edeftemp{noexpandpic[right=0mm of boxY,local bounding box=boxZ,scale=2]
{X};}
temp}
end{tikzpicture}
end{document}
(Yes, obviously these are not at all as beautiful as dedicated fonts. However, one can subject them to nonlinear transformation, such as those of this impressive master piece. I spare this application for another day. Also because arrow tips and nonlinear transformations require some extra work.)
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. withpdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.
– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
add a comment |
Can one add such arrow tips? Sure. Am I sure that my proposal is the best inky tip ever? Absolutely not. However, this should give you an idea how to approach the "best inky tip ever". ;-)
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.05pgfarrowlength}{-0.95pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-0.9pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.3pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
Or, if you wish to have a more pronounced tip, this can also be done.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-1.35pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-1.1pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
And one could also add some randomness.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
BONUS: Some quick and dirty "inky" letters.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
usetikzlibrary{positioning}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
tikzset{pics/.cd,
A/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.55) -- (0.3,0.4) -- (0.6,-0.55);
draw[line width=5](0.1,1/3-0.45) --
(0.5,1/3-0.45);
path (0.7,0);}},
B/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0) to[out=0,in=0,looseness=3] cycle;}},
C/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5,-{ink[bend]}](0,0) to[out=-90,in=-110,looseness=2] (0.5,-0.25);
path (0.7,0);}},
D/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.25] cycle;
path (0.7,0);}},
E/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0.5,-0.45) --(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
F/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
G/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5] (0,0) to[out=-90,in=-110,looseness=2]
(0.5,-0.25);
draw[line width=5,-{ink[bend]}] (0.54,-0.25) to (0.3,-0.25);
path (0.7,0);}},
H/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.5) -- (0,0.5);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,-0.5) -- (0.5,0.5);
draw[line width=5] (0,0) -- (0.5,0);
path (0.7,0);}},
I/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45);
path (0.25,0);}},
J/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.2,0.45) -- (0.2,-0.35) to[out=-90,in=0]
(0.1,-0.45) to[out=180,in=-90] (0,-0.35);
path (0.45,0);}},
K/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.4,0.45) -- (0.02,0) -- (0.4,-0.45);
path (0.6,0);}},
L/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.5) -- (0,-0.45) -- (0.4,-0.45);
path (0.6,0);}},
M/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) --
(0.3,0.25) -- (0.6,0.45) -- (0.6,-0.45);
path (0.8,0);}},
N/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) -- (0.6,-0.4) --
(0.6,0.45);
path (0.8,0);}},
O/.style={code={draw[line width=5] (0.3,0) circle(0.3 and 0.48);
path (0.8,0);}},
P/.style={code={draw[line width=5,{ink[bend]}-] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0);
path (0.6,0);}},
Q/.style={code={draw[line width=5]
(0.3,0) circle(0.3 and 0.48);
draw[line width=5,{ink[bend]}-{ink[bend]}](0.35,-0.25) -- (0.6,-0.45);
path (0.8,0);}},
R/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0.05,0) -- (0.4,-0.45);
path (0.6,0);}},
S/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,0.4)
to[out=160,in=165,looseness=2] (0.3,0)
to[out=-15,in=-20,looseness=2] (0.1,-0.4);
path (0.65,0);}},
T/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.35,-0.45) -- (0.35,0.45) (0,0.45) -- (0.7,0.45);
path (0.85,0);}},
U/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0,0) to[out=-90,in=-90,looseness=2.5]
(0.6,0) -- (0.6,0.5);
path (0.8,0);}},
V/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0.3,-0.4) -- (0.6,0.5);
path (0.8,0);}},
W/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) -- (0.3,-0.4) -- (0.45,-0.1)
-- (0.6,-0.4) -- (0.9,0.45);
path (1.1,0);}},
X/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.6,-0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Y/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.3,0);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Z/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) --(0.6,0.45) -- (0,-0.45)
-- (0.6,-0.45);
path (0.8,0);}},
space/.style={code={path (0,0) (0.2,0);}},
}
begin{tikzpicture}[blue!80!black]
pic[local bounding box=box1,scale=2] at (0,0) {A};
foreach X [count=Y,evaluate=Y as Z using {int(Y+1)}] in {B,...,Z}
{edeftemp{noexpandpic[right=0mm of boxY,local bounding box=boxZ,scale=2]
{X};}
temp}
end{tikzpicture}
end{document}
(Yes, obviously these are not at all as beautiful as dedicated fonts. However, one can subject them to nonlinear transformation, such as those of this impressive master piece. I spare this application for another day. Also because arrow tips and nonlinear transformations require some extra work.)
Can one add such arrow tips? Sure. Am I sure that my proposal is the best inky tip ever? Absolutely not. However, this should give you an idea how to approach the "best inky tip ever". ;-)
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.05pgfarrowlength}{-0.95pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-0.9pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.3pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
Or, if you wish to have a more pronounced tip, this can also be done.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-1.35pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-1.1pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.8pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.55pgflinewidth}}{%
pgfpoint{-01pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
And one could also add some randomness.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
begin{tikzpicture}
draw [line width=1mm,{ink[bend]}-{ink[bend]},blue!80!black] (0,0) to [bend left] (3,0);
end{tikzpicture}
end{document}
BONUS: Some quick and dirty "inky" letters.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{arrows.meta}
usetikzlibrary{bending}
usetikzlibrary{positioning}
pgfdeclarearrow{
name=ink,
parameters= {thepgfarrowlength},
setup code={
pgfarrowssettipend{0pt}
pgfarrowssetlineend{-pgfarrowlength}
pgfarrowlinewidth=pgflinewidth
pgfarrowssavethepgfarrowlength
},
drawing code={
pgfpathmoveto{pgfpoint{-pgfarrowlength}{0.5pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.75pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{-0.01pgfarrowlength}{0.6pgflinewidth}}{%
pgfpoint{0pt}{0pt}}
pgfpathcurveto{pgfpoint{-0.01pgfarrowlength}{-0.5pgflinewidth}}{%
pgfpoint{-0.2pgfarrowlength}{-(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.3pgfarrowlength}{-0.8*(1+0.3*rnd)*pgflinewidth}}
pgfpathcurveto{pgfpoint{-0.4pgfarrowlength}{-0.6*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-0.6pgfarrowlength}{-0.3*(1+0.3*rnd)*pgflinewidth}}{%
pgfpoint{-1pgfarrowlength}{-0.5pgflinewidth}}
pgfusepathqfill
},
defaults = { length = 12pt }
}
begin{document}
tikzset{pics/.cd,
A/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.55) -- (0.3,0.4) -- (0.6,-0.55);
draw[line width=5](0.1,1/3-0.45) --
(0.5,1/3-0.45);
path (0.7,0);}},
B/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0) to[out=0,in=0,looseness=3] cycle;}},
C/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5,-{ink[bend]}](0,0) to[out=-90,in=-110,looseness=2] (0.5,-0.25);
path (0.7,0);}},
D/.style={code={draw[line width=5] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.25] cycle;
path (0.7,0);}},
E/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0.5,-0.45) --(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
F/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45) -- (0.5,0.45);
draw[line width=5,-{ink[bend]}] (0,0) -- (0.5,0);
path (0.7,0);}},
G/.style={code={draw[line width=5,-{ink[bend]}]
(0,0) to[out=90,in=110,looseness=2] (0.5,0.25);
draw[line width=5] (0,0) to[out=-90,in=-110,looseness=2]
(0.5,-0.25);
draw[line width=5,-{ink[bend]}] (0.54,-0.25) to (0.3,-0.25);
path (0.7,0);}},
H/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.5) -- (0,0.5);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,-0.5) -- (0.5,0.5);
draw[line width=5] (0,0) -- (0.5,0);
path (0.7,0);}},
I/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45);
path (0.25,0);}},
J/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.2,0.45) -- (0.2,-0.35) to[out=-90,in=0]
(0.1,-0.45) to[out=180,in=-90] (0,-0.35);
path (0.45,0);}},
K/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.4,0.45) -- (0.02,0) -- (0.4,-0.45);
path (0.6,0);}},
L/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.5) -- (0,-0.45) -- (0.4,-0.45);
path (0.6,0);}},
M/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) --
(0.3,0.25) -- (0.6,0.45) -- (0.6,-0.45);
path (0.8,0);}},
N/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,-0.45) -- (0,0.45) -- (0.6,-0.4) --
(0.6,0.45);
path (0.8,0);}},
O/.style={code={draw[line width=5] (0.3,0) circle(0.3 and 0.48);
path (0.8,0);}},
P/.style={code={draw[line width=5,{ink[bend]}-] (0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0,0);
path (0.6,0);}},
Q/.style={code={draw[line width=5]
(0.3,0) circle(0.3 and 0.48);
draw[line width=5,{ink[bend]}-{ink[bend]}](0.35,-0.25) -- (0.6,-0.45);
path (0.8,0);}},
R/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,-0.45) -- (0,0.45)
to[out=0,in=0,looseness=2.5] (0.05,0) -- (0.4,-0.45);
path (0.6,0);}},
S/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.5,0.4)
to[out=160,in=165,looseness=2] (0.3,0)
to[out=-15,in=-20,looseness=2] (0.1,-0.4);
path (0.65,0);}},
T/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0.35,-0.45) -- (0.35,0.45) (0,0.45) -- (0.7,0.45);
path (0.85,0);}},
U/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0,0) to[out=-90,in=-90,looseness=2.5]
(0.6,0) -- (0.6,0.5);
path (0.8,0);}},
V/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.5) -- (0.3,-0.4) -- (0.6,0.5);
path (0.8,0);}},
W/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) -- (0.3,-0.4) -- (0.45,-0.1)
-- (0.6,-0.4) -- (0.9,0.45);
path (1.1,0);}},
X/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.6,-0.45);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Y/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}]
(0,0.45) -- (0.3,0);
draw[line width=5,{ink[bend]}-{ink[bend]}] (0.6,0.45)
-- (0,-0.45);
path (0.8,0);}},
Z/.style={code={draw[line width=5,{ink[bend]}-{ink[bend]}] (0,0.45) --(0.6,0.45) -- (0,-0.45)
-- (0.6,-0.45);
path (0.8,0);}},
space/.style={code={path (0,0) (0.2,0);}},
}
begin{tikzpicture}[blue!80!black]
pic[local bounding box=box1,scale=2] at (0,0) {A};
foreach X [count=Y,evaluate=Y as Z using {int(Y+1)}] in {B,...,Z}
{edeftemp{noexpandpic[right=0mm of boxY,local bounding box=boxZ,scale=2]
{X};}
temp}
end{tikzpicture}
end{document}
(Yes, obviously these are not at all as beautiful as dedicated fonts. However, one can subject them to nonlinear transformation, such as those of this impressive master piece. I spare this application for another day. Also because arrow tips and nonlinear transformations require some extra work.)
edited Nov 20 at 3:33
answered Nov 19 at 22:59
marmot
86.4k499184
86.4k499184
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. withpdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.
– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
add a comment |
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. withpdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.
– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
Nov 19 at 23:31
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
How to convert your font such that it becomes install-able on my machine?
– God Must Be Crazy
Nov 20 at 6:07
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. with
pdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.– marmot
Nov 20 at 6:15
@ArtificialStupidity There is no font that you need to install. You can compile the code on your machine, I think, without adding anything e.g. with
pdflatex
. And there is no font, I just drew the characters (very quickly and in a very dirty way) with TikZ. And since this is no font, you can not do anything sophisticated with it, in particular not typeset any formulae, which TeX is originally made for. The only conceivable use of this is that you can subject the "characters" to nontrivial transformations.– marmot
Nov 20 at 6:15
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– God Must Be Crazy
Nov 20 at 6:34
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%2f460836%2fcustom-line-cap-to-simulate-inked-line-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
Related: tex.stackexchange.com/questions/14283
– Andrew
Nov 19 at 22:47