Drawing a german abacus as in the books of Adam RiesDrawing complex integrationDrawing vertical hierarchical...
Do I have an "anti-research" personality?
How to write a column outside the braces in a matrix?
Should the Death Curse affect an undead PC in the Tomb of Annihilation adventure?
Can I criticise the more senior developers around me for not writing clean code?
How does a program know if stdout is connected to a terminal or a pipe?
"You've called the wrong number" or "You called the wrong number"
How could Tony Stark make this in Endgame?
Minor Revision with suggestion of an alternative proof by reviewer
What's the polite way to say "I need to urinate"?
Is it idiomatic to construct against `this`
Aliens crash on Earth and go into stasis to wait for technology to fix their ship
How to stop co-workers from teasing me because I know Russian?
How to pronounce 'c++' in Spanish
What's the name of these pliers?
Can an Area of Effect spell cast outside a Prismatic Wall extend inside it?
Is this homebrew Wind Wave spell balanced?
Size of electromagnet needed to replicate Earth's magnetic field
How to limit Drive Letters Windows assigns to new removable USB drives
What happens to Mjolnir (Thor's hammer) at the end of Endgame?
Why was the Spitfire's elliptical wing almost uncopied by other aircraft of World War 2?
Check if a string is entirely made of the same substring
Dynamic SOQL query relationship with field visibility for Users
Was Dennis Ritchie being too modest in this quote about C and Pascal?
Solving polynominals equations (relationship of roots)
Drawing a german abacus as in the books of Adam Ries
Drawing complex integrationDrawing vertical hierarchical n-ary tree in tikztikz drawing a partitioned rectangleSpiral around cylinderDrawing cyclic quiverDraw diagram in TikZHow to draw the following pictures?How to draw the deformation of contour of integration in the complex plane?Drawing a model diagram in LaTeX using TikZHow to draw the following pictures in LaTex?
I am teaching a course in history of mathematics and would like to draw something like the following:
The bullet points should be possible to draw on the lines and in between. Can anyone help me? Thank you very much!
tikz-pgf
New contributor
add a comment |
I am teaching a course in history of mathematics and would like to draw something like the following:
The bullet points should be possible to draw on the lines and in between. Can anyone help me? Thank you very much!
tikz-pgf
New contributor
5
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
2
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Just a random thought: You can tweakqcircuit
– pushpen.paul
yesterday
add a comment |
I am teaching a course in history of mathematics and would like to draw something like the following:
The bullet points should be possible to draw on the lines and in between. Can anyone help me? Thank you very much!
tikz-pgf
New contributor
I am teaching a course in history of mathematics and would like to draw something like the following:
The bullet points should be possible to draw on the lines and in between. Can anyone help me? Thank you very much!
tikz-pgf
tikz-pgf
New contributor
New contributor
New contributor
asked yesterday
rkrapfrkrapf
562
562
New contributor
New contributor
5
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
2
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Just a random thought: You can tweakqcircuit
– pushpen.paul
yesterday
add a comment |
5
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
2
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Just a random thought: You can tweakqcircuit
– pushpen.paul
yesterday
5
5
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
2
2
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Just a random thought: You can tweak
qcircuit
– pushpen.paul
yesterday
Just a random thought: You can tweak
qcircuit
– pushpen.paul
yesterday
add a comment |
2 Answers
2
active
oldest
votes
As you intend to draw "quite a few" of these you'll need a reasonable interface, so how about using code like this
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
to produce something like this:
The way that this works is that the abacus
command accepts a comma separated list of "abacus rows", which start from the bottom of the abacus and climb upwards. Each "abacus row" is itself a comma separated list that gives the number of balls in each column of the abacus, from left to right.
Here's the full code:
documentclass{article}
usepackage{tikz}
tikzset{
pics/abacus/.style = {
code={
ifnum#1>0% have to treat 0 separately
foreach ball [evaluate=ball as x
using {(ball-0.5-#1/2)*0.2}] in {1,...,#1} {
fill[black] (x,0) circle (2.5pt);
}
fi
}
},
/tikz/abacus/.is family,% default values
/tikz/abacus,
xscale/.initial=1, % default xscale=1 (no scaling)
yscale/.initial=0.6,% default yscale=0.6
columns/.initial=2, % default of 2 vertical rules
rows/.initial=4 % default of 4 horizontal rules
}
% shortcut for accessing options
newcommandAbacusOption[1]{pgfkeysvalueof{/tikz/abacus/#1}}
newcommandabacus[2][]{tikzset{abacus, #1}%
begin{tikzpicture}[
xscale=AbacusOption{xscale},
yscale=AbacusOption{yscale}
]
foreach ypos in {1,...,AbacusOption{rows}} {
draw(0,2*ypos-1)--++(2*AbacusOption{columns},0);
}
foreach xpos in {1,...,AbacusOption{columns}} {
draw(2*xpos, 0)--++(0,2*AbacusOption{rows});
}
foreach row [count=ypos] in {#2} {
foreach col [count=xpos] in row {
draw (2*xpos-1,ypos) pic{abacus={col}};
}
}
end{tikzpicture}%
}
begin{document}
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
end{document}
The abacus
command accepts an optional argument that accepts a comma separated list of key-value pairs for changing the default number of rows and columns and the x and y scaling. For example,
abacus[rows=2, columns=3, xscale=0.5, yscale=0.3]{{1,2,3,4},{0,3,1}}
produces:
add a comment |
Here I draw the first picture. You can draw the other based on this.
documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}[x=1.5cm]
foreach i in {1,2} draw (i,-.2) -- (i,3.2);
foreach i in {0,1,2,3} draw (0,i) -- (3,i);
foreach x/y in {
.5/0,
.4/2,
.6/2,
.5/2.5
} fill (x,y) circle (2pt);
end{tikzpicture}
end{document}
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
});
}
});
rkrapf is a new contributor. Be nice, and check out our Code of Conduct.
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%2f487508%2fdrawing-a-german-abacus-as-in-the-books-of-adam-ries%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
As you intend to draw "quite a few" of these you'll need a reasonable interface, so how about using code like this
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
to produce something like this:
The way that this works is that the abacus
command accepts a comma separated list of "abacus rows", which start from the bottom of the abacus and climb upwards. Each "abacus row" is itself a comma separated list that gives the number of balls in each column of the abacus, from left to right.
Here's the full code:
documentclass{article}
usepackage{tikz}
tikzset{
pics/abacus/.style = {
code={
ifnum#1>0% have to treat 0 separately
foreach ball [evaluate=ball as x
using {(ball-0.5-#1/2)*0.2}] in {1,...,#1} {
fill[black] (x,0) circle (2.5pt);
}
fi
}
},
/tikz/abacus/.is family,% default values
/tikz/abacus,
xscale/.initial=1, % default xscale=1 (no scaling)
yscale/.initial=0.6,% default yscale=0.6
columns/.initial=2, % default of 2 vertical rules
rows/.initial=4 % default of 4 horizontal rules
}
% shortcut for accessing options
newcommandAbacusOption[1]{pgfkeysvalueof{/tikz/abacus/#1}}
newcommandabacus[2][]{tikzset{abacus, #1}%
begin{tikzpicture}[
xscale=AbacusOption{xscale},
yscale=AbacusOption{yscale}
]
foreach ypos in {1,...,AbacusOption{rows}} {
draw(0,2*ypos-1)--++(2*AbacusOption{columns},0);
}
foreach xpos in {1,...,AbacusOption{columns}} {
draw(2*xpos, 0)--++(0,2*AbacusOption{rows});
}
foreach row [count=ypos] in {#2} {
foreach col [count=xpos] in row {
draw (2*xpos-1,ypos) pic{abacus={col}};
}
}
end{tikzpicture}%
}
begin{document}
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
end{document}
The abacus
command accepts an optional argument that accepts a comma separated list of key-value pairs for changing the default number of rows and columns and the x and y scaling. For example,
abacus[rows=2, columns=3, xscale=0.5, yscale=0.3]{{1,2,3,4},{0,3,1}}
produces:
add a comment |
As you intend to draw "quite a few" of these you'll need a reasonable interface, so how about using code like this
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
to produce something like this:
The way that this works is that the abacus
command accepts a comma separated list of "abacus rows", which start from the bottom of the abacus and climb upwards. Each "abacus row" is itself a comma separated list that gives the number of balls in each column of the abacus, from left to right.
Here's the full code:
documentclass{article}
usepackage{tikz}
tikzset{
pics/abacus/.style = {
code={
ifnum#1>0% have to treat 0 separately
foreach ball [evaluate=ball as x
using {(ball-0.5-#1/2)*0.2}] in {1,...,#1} {
fill[black] (x,0) circle (2.5pt);
}
fi
}
},
/tikz/abacus/.is family,% default values
/tikz/abacus,
xscale/.initial=1, % default xscale=1 (no scaling)
yscale/.initial=0.6,% default yscale=0.6
columns/.initial=2, % default of 2 vertical rules
rows/.initial=4 % default of 4 horizontal rules
}
% shortcut for accessing options
newcommandAbacusOption[1]{pgfkeysvalueof{/tikz/abacus/#1}}
newcommandabacus[2][]{tikzset{abacus, #1}%
begin{tikzpicture}[
xscale=AbacusOption{xscale},
yscale=AbacusOption{yscale}
]
foreach ypos in {1,...,AbacusOption{rows}} {
draw(0,2*ypos-1)--++(2*AbacusOption{columns},0);
}
foreach xpos in {1,...,AbacusOption{columns}} {
draw(2*xpos, 0)--++(0,2*AbacusOption{rows});
}
foreach row [count=ypos] in {#2} {
foreach col [count=xpos] in row {
draw (2*xpos-1,ypos) pic{abacus={col}};
}
}
end{tikzpicture}%
}
begin{document}
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
end{document}
The abacus
command accepts an optional argument that accepts a comma separated list of key-value pairs for changing the default number of rows and columns and the x and y scaling. For example,
abacus[rows=2, columns=3, xscale=0.5, yscale=0.3]{{1,2,3,4},{0,3,1}}
produces:
add a comment |
As you intend to draw "quite a few" of these you'll need a reasonable interface, so how about using code like this
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
to produce something like this:
The way that this works is that the abacus
command accepts a comma separated list of "abacus rows", which start from the bottom of the abacus and climb upwards. Each "abacus row" is itself a comma separated list that gives the number of balls in each column of the abacus, from left to right.
Here's the full code:
documentclass{article}
usepackage{tikz}
tikzset{
pics/abacus/.style = {
code={
ifnum#1>0% have to treat 0 separately
foreach ball [evaluate=ball as x
using {(ball-0.5-#1/2)*0.2}] in {1,...,#1} {
fill[black] (x,0) circle (2.5pt);
}
fi
}
},
/tikz/abacus/.is family,% default values
/tikz/abacus,
xscale/.initial=1, % default xscale=1 (no scaling)
yscale/.initial=0.6,% default yscale=0.6
columns/.initial=2, % default of 2 vertical rules
rows/.initial=4 % default of 4 horizontal rules
}
% shortcut for accessing options
newcommandAbacusOption[1]{pgfkeysvalueof{/tikz/abacus/#1}}
newcommandabacus[2][]{tikzset{abacus, #1}%
begin{tikzpicture}[
xscale=AbacusOption{xscale},
yscale=AbacusOption{yscale}
]
foreach ypos in {1,...,AbacusOption{rows}} {
draw(0,2*ypos-1)--++(2*AbacusOption{columns},0);
}
foreach xpos in {1,...,AbacusOption{columns}} {
draw(2*xpos, 0)--++(0,2*AbacusOption{rows});
}
foreach row [count=ypos] in {#2} {
foreach col [count=xpos] in row {
draw (2*xpos-1,ypos) pic{abacus={col}};
}
}
end{tikzpicture}%
}
begin{document}
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
end{document}
The abacus
command accepts an optional argument that accepts a comma separated list of key-value pairs for changing the default number of rows and columns and the x and y scaling. For example,
abacus[rows=2, columns=3, xscale=0.5, yscale=0.3]{{1,2,3,4},{0,3,1}}
produces:
As you intend to draw "quite a few" of these you'll need a reasonable interface, so how about using code like this
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
to produce something like this:
The way that this works is that the abacus
command accepts a comma separated list of "abacus rows", which start from the bottom of the abacus and climb upwards. Each "abacus row" is itself a comma separated list that gives the number of balls in each column of the abacus, from left to right.
Here's the full code:
documentclass{article}
usepackage{tikz}
tikzset{
pics/abacus/.style = {
code={
ifnum#1>0% have to treat 0 separately
foreach ball [evaluate=ball as x
using {(ball-0.5-#1/2)*0.2}] in {1,...,#1} {
fill[black] (x,0) circle (2.5pt);
}
fi
}
},
/tikz/abacus/.is family,% default values
/tikz/abacus,
xscale/.initial=1, % default xscale=1 (no scaling)
yscale/.initial=0.6,% default yscale=0.6
columns/.initial=2, % default of 2 vertical rules
rows/.initial=4 % default of 4 horizontal rules
}
% shortcut for accessing options
newcommandAbacusOption[1]{pgfkeysvalueof{/tikz/abacus/#1}}
newcommandabacus[2][]{tikzset{abacus, #1}%
begin{tikzpicture}[
xscale=AbacusOption{xscale},
yscale=AbacusOption{yscale}
]
foreach ypos in {1,...,AbacusOption{rows}} {
draw(0,2*ypos-1)--++(2*AbacusOption{columns},0);
}
foreach xpos in {1,...,AbacusOption{columns}} {
draw(2*xpos, 0)--++(0,2*AbacusOption{rows});
}
foreach row [count=ypos] in {#2} {
foreach col [count=xpos] in row {
draw (2*xpos-1,ypos) pic{abacus={col}};
}
}
end{tikzpicture}%
}
begin{document}
abacus{{2,1},{1,1},{3,3,2},{},{4,2},{1}}
qquad
abacus{{1},{},{},{},{2},{1}}
end{document}
The abacus
command accepts an optional argument that accepts a comma separated list of key-value pairs for changing the default number of rows and columns and the x and y scaling. For example,
abacus[rows=2, columns=3, xscale=0.5, yscale=0.3]{{1,2,3,4},{0,3,1}}
produces:
edited yesterday
answered yesterday
AndrewAndrew
31.5k34483
31.5k34483
add a comment |
add a comment |
Here I draw the first picture. You can draw the other based on this.
documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}[x=1.5cm]
foreach i in {1,2} draw (i,-.2) -- (i,3.2);
foreach i in {0,1,2,3} draw (0,i) -- (3,i);
foreach x/y in {
.5/0,
.4/2,
.6/2,
.5/2.5
} fill (x,y) circle (2pt);
end{tikzpicture}
end{document}
add a comment |
Here I draw the first picture. You can draw the other based on this.
documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}[x=1.5cm]
foreach i in {1,2} draw (i,-.2) -- (i,3.2);
foreach i in {0,1,2,3} draw (0,i) -- (3,i);
foreach x/y in {
.5/0,
.4/2,
.6/2,
.5/2.5
} fill (x,y) circle (2pt);
end{tikzpicture}
end{document}
add a comment |
Here I draw the first picture. You can draw the other based on this.
documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}[x=1.5cm]
foreach i in {1,2} draw (i,-.2) -- (i,3.2);
foreach i in {0,1,2,3} draw (0,i) -- (3,i);
foreach x/y in {
.5/0,
.4/2,
.6/2,
.5/2.5
} fill (x,y) circle (2pt);
end{tikzpicture}
end{document}
Here I draw the first picture. You can draw the other based on this.
documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}[x=1.5cm]
foreach i in {1,2} draw (i,-.2) -- (i,3.2);
foreach i in {0,1,2,3} draw (0,i) -- (3,i);
foreach x/y in {
.5/0,
.4/2,
.6/2,
.5/2.5
} fill (x,y) circle (2pt);
end{tikzpicture}
end{document}
answered yesterday
JouleVJouleV
16.1k22667
16.1k22667
add a comment |
add a comment |
rkrapf is a new contributor. Be nice, and check out our Code of Conduct.
rkrapf is a new contributor. Be nice, and check out our Code of Conduct.
rkrapf is a new contributor. Be nice, and check out our Code of Conduct.
rkrapf is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f487508%2fdrawing-a-german-abacus-as-in-the-books-of-adam-ries%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
5
Welcome to TeX.SE! Can you please add the code you have tried so far?
– Kurt
yesterday
2
You will find a tutorial for such shapes at the beginning of TikZ manual (the one dedicated to drawing algorithm). It is very well explained. All you have to do is to turn the white circles of its example into black.
– sztruks
yesterday
Are the grid sizes fixed as in your MWE (4 horizontal lines and 2 vertical), or are they also variable?
– Andrew
yesterday
Just a random thought: You can tweak
qcircuit
– pushpen.paul
yesterday