Custom line cap to simulate inked line in TikZ











up vote
3
down vote

favorite
1












Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.enter image description here










share|improve this question






















  • Related: tex.stackexchange.com/questions/14283
    – Andrew
    yesterday















up vote
3
down vote

favorite
1












Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.enter image description here










share|improve this question






















  • Related: tex.stackexchange.com/questions/14283
    – Andrew
    yesterday













up vote
3
down vote

favorite
1









up vote
3
down vote

favorite
1






1





Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.enter image description here










share|improve this question













Looking for a way to add a custom line cap (slight bulbous) like one would get when inking a line on real paper.enter image description here







tikz-pgf






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked yesterday









user2501235

395




395












  • Related: tex.stackexchange.com/questions/14283
    – Andrew
    yesterday


















  • Related: tex.stackexchange.com/questions/14283
    – Andrew
    yesterday
















Related: tex.stackexchange.com/questions/14283
– Andrew
yesterday




Related: tex.stackexchange.com/questions/14283
– Andrew
yesterday










1 Answer
1






active

oldest

votes

















up vote
5
down vote



accepted










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}


enter image description here



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}


enter image description here



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}


enter image description here



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}


enter image description here



(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.)






share|improve this answer























  • Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
    – user2501235
    yesterday










  • How to convert your font such that it becomes install-able on my machine?
    – Artificial Stupidity
    yesterday












  • @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
    yesterday












  • @marmot: My idea is to create a font with TikZ and use it everywhere. :-)
    – Artificial Stupidity
    yesterday











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',
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
});


}
});














 

draft saved


draft discarded


















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








up vote
5
down vote



accepted










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}


enter image description here



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}


enter image description here



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}


enter image description here



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}


enter image description here



(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.)






share|improve this answer























  • Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
    – user2501235
    yesterday










  • How to convert your font such that it becomes install-able on my machine?
    – Artificial Stupidity
    yesterday












  • @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
    yesterday












  • @marmot: My idea is to create a font with TikZ and use it everywhere. :-)
    – Artificial Stupidity
    yesterday















up vote
5
down vote



accepted










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}


enter image description here



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}


enter image description here



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}


enter image description here



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}


enter image description here



(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.)






share|improve this answer























  • Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
    – user2501235
    yesterday










  • How to convert your font such that it becomes install-able on my machine?
    – Artificial Stupidity
    yesterday












  • @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
    yesterday












  • @marmot: My idea is to create a font with TikZ and use it everywhere. :-)
    – Artificial Stupidity
    yesterday













up vote
5
down vote



accepted







up vote
5
down vote



accepted






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}


enter image description here



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}


enter image description here



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}


enter image description here



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}


enter image description here



(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.)






share|improve this answer














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}


enter image description here



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}


enter image description here



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}


enter image description here



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}


enter image description here



(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.)







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









marmot

76.7k487161




76.7k487161












  • Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
    – user2501235
    yesterday










  • How to convert your font such that it becomes install-able on my machine?
    – Artificial Stupidity
    yesterday












  • @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
    yesterday












  • @marmot: My idea is to create a font with TikZ and use it everywhere. :-)
    – Artificial Stupidity
    yesterday


















  • Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
    – user2501235
    yesterday










  • How to convert your font such that it becomes install-able on my machine?
    – Artificial Stupidity
    yesterday












  • @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
    yesterday












  • @marmot: My idea is to create a font with TikZ and use it everywhere. :-)
    – Artificial Stupidity
    yesterday
















Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
yesterday




Wow, perfect thank you! And, in my book, those would count as some pretty perfect inky tips to me.
– user2501235
yesterday












How to convert your font such that it becomes install-able on my machine?
– Artificial Stupidity
yesterday






How to convert your font such that it becomes install-able on my machine?
– Artificial Stupidity
yesterday














@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
yesterday






@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
yesterday














@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– Artificial Stupidity
yesterday




@marmot: My idea is to create a font with TikZ and use it everywhere. :-)
– Artificial Stupidity
yesterday


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














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





















































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







Popular posts from this blog

Costa Masnaga

Fotorealismo

Sidney Franklin