How can I draw a rectangle around venn Diagrams?How can I invert a 'clip' selection within TikZ?Shade part of...
In a series of books, what happens after the coming of age?
How to make a kid's bike easier to pedal
Picking a theme as a discovery writer
Good introductory book to type theory?
What is the meaning of "matter" in physics?
My large rocket is still flipping over
If quadruped mammals evolve to become bipedal will their breast or nipple change position?
Can anyone identify this unknown 1988 PC card from The Palantir Corporation?
Translation of "invincible independence"
What does “two-bit (jerk)” mean?
What detail can Hubble see on Mars?
Why doesn't a particle exert force on itself?
Convert Numbers To Emoji Math
How is it believable that Euron could so easily pull off this ambush?
How to get the decimal part of a number in apex
All of my Firefox add-ons have been disabled suddenly, how can I re-enable them?
What happens when the drag force exceeds the weight of an object falling into earth?
An adjective or a noun to describe a very small apartment / house etc
Why was Gemini VIII terminated after recovering from the OAMS thruster failure?
How do I give a darkroom course without negs from the attendees?
Appropriate age to involve kids in life changing decisions
What’s the interaction between darkvision and the Eagle Aspect of the beast, if you have Darkvision past 100 feet?
What does the copyright in a dissertation protect exactly?
Saying the right thing then saying the wrong thing toch kedai dibur
How can I draw a rectangle around venn Diagrams?
How can I invert a 'clip' selection within TikZ?Shade part of a Venn diagramHow can I draw the outline of a path in tikz?venn diagrams using tikzNumerical conditional within tikz keys?How do I draw a box around a venn diagramTikZ: Drawing an arc from an intersection to an intersectionLine up nested tikz enviroments or how to get rid of themProblems with nested TikZpicturesDraw a rectangle to given Venn DiagramSet of Venn DiagramsDrawing Venn Diagrams
I have tried some of the solutions to similar questions, but none of them included minipages, which seems to be the problem (I`m fairly new to LaTeX)
So, here's the coding:
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{grey!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
% Set A or B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{minipage}
end{tikzpicture}
% Set A and B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$}
end{minipage}
end{tikzpicture}
Also, if you know how to put the "B" in the center of the circle on the right I`d appreciate your help! Thank you.
tikz-pgf bounding-box venn-diagrams
New contributor
add a comment |
I have tried some of the solutions to similar questions, but none of them included minipages, which seems to be the problem (I`m fairly new to LaTeX)
So, here's the coding:
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{grey!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
% Set A or B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{minipage}
end{tikzpicture}
% Set A and B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$}
end{minipage}
end{tikzpicture}
Also, if you know how to put the "B" in the center of the circle on the right I`d appreciate your help! Thank you.
tikz-pgf bounding-box venn-diagrams
New contributor
Welcome to TeX.SE!
– Kurt
1 hour ago
You should not useminipage
inside TikZ pictures
– JouleV
1 hour ago
add a comment |
I have tried some of the solutions to similar questions, but none of them included minipages, which seems to be the problem (I`m fairly new to LaTeX)
So, here's the coding:
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{grey!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
% Set A or B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{minipage}
end{tikzpicture}
% Set A and B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$}
end{minipage}
end{tikzpicture}
Also, if you know how to put the "B" in the center of the circle on the right I`d appreciate your help! Thank you.
tikz-pgf bounding-box venn-diagrams
New contributor
I have tried some of the solutions to similar questions, but none of them included minipages, which seems to be the problem (I`m fairly new to LaTeX)
So, here's the coding:
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{grey!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
% Set A or B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{minipage}
end{tikzpicture}
% Set A and B
begin{tikzpicture}
begin{minipage}[t][2cm][t]{.48textwidth}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$}
end{minipage}
end{tikzpicture}
Also, if you know how to put the "B" in the center of the circle on the right I`d appreciate your help! Thank you.
tikz-pgf bounding-box venn-diagrams
tikz-pgf bounding-box venn-diagrams
New contributor
New contributor
New contributor
asked 1 hour ago
Matheus ChebliMatheus Chebli
161
161
New contributor
New contributor
Welcome to TeX.SE!
– Kurt
1 hour ago
You should not useminipage
inside TikZ pictures
– JouleV
1 hour ago
add a comment |
Welcome to TeX.SE!
– Kurt
1 hour ago
You should not useminipage
inside TikZ pictures
– JouleV
1 hour ago
Welcome to TeX.SE!
– Kurt
1 hour ago
Welcome to TeX.SE!
– Kurt
1 hour ago
You should not use
minipage
inside TikZ pictures– JouleV
1 hour ago
You should not use
minipage
inside TikZ pictures– JouleV
1 hour ago
add a comment |
3 Answers
3
active
oldest
votes
Welcome to TeX.SE! It is good that you included your code. In terms of drawing a rectangle around the venn diagram, you could import the fit
library from Tikz using usetikzlibrary{fit}
. I have completed an example to illustrate. Also, I have changed the code a little bit. You now have one tikzpicture
(with no minipage). The first venn diagram has its own scope and the second has its own as well. I have changed the placement of M
so that it would be easier to read. There are two types overall in terms of appearance, you choose the one you like.
documentclass[margin=1cm, tikz]{standalone}
usepackage{tikz,xcolor,color}
usetikzlibrary{fit}
begin{document}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{tikzpicture}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
%
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
%
begin{scope}[local bounding box = orScope]
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (orScope.north){$M$};
node[anchor=north] at (orScope.south) {$A cup B$};
end{scope}
node[fit=(orScope), draw] {};% The frame around the scope
%
begin{scope}[xshift = 7cm,local bounding box = andScope]
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (andScope.north) {$M$};
node[anchor=west] at (andScope.south east) {$A cap B$};
end{scope}
node[fit=(andScope), draw] {};
end{tikzpicture}
end{document}
add a comment |
Another solution:
If you really wants to use minipage
, you have to put the environment outside tikzpicture
. Literally minipage
does nothing for you here, but it does many things against you.
However, for figures side-by-side, a subfigure
environment (from subcaption
) is better in this case.
And, to draw a rectangle, you can use the special node current bounding box
, with some shifts if needed.
Btw your diagrams are too wide for the normal margin.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{document}
noindentbegin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{tikzpicture}
end{minipage}%
begin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$};
draw ([shift={(-1ex,1ex)}]current bounding box.north west) rectangle
([shift={(1ex,-1ex)}]current bounding box.south east);
end{tikzpicture}
end{minipage}
end{document}
add a comment |
There are dedicated packages for that. Assuming you do not want to use any of those, I'd like to advertize some styles that help you drawing these diagrams. These are not inside
, inside
to specify the sets and frame
for drawing a frame around these pictures. Your first picture is easy, you only need to fill the circles. The second one can be achieved with
pgfkeys{inside/.list={pathA,pathB},shade=gray}
and the frames can be done with
draw[frame=5pt];
where 5pt
indicates the margin.
Here are code and result.
documentclass{article}
usepackage{tikz}
usetikzlibrary{backgrounds}
% based on https://tex.stackexchange.com/a/12033/121799
tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle
(current bounding box.north east)} },
use path/.code={pgfsetpath#1},%learned from Kpym
frame/.style={insert path={
([xshift=-#1,yshift=-#1]current bounding box.south west) rectangle
([xshift=#1,yshift=#1]current bounding box.north east)}}
}
begin{document}
pgfkeys{not inside/.code={clip[use path=#1,reverseclip];},
inside/.code={clip[use path=#1];},
shade/.code=fill[#1] (current bounding box.south west)rectangle
(current bounding box.north east);}
begin{tikzpicture}
draw[thick,fill=gray] (-1,0) node{$A$} circle [radius=1.5cm]
(1,0) node{$B$} circle[radius=1.5cm] (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acup B$};
draw[frame=5pt];
end{tikzpicture}~%
begin{tikzpicture}
draw[thick,save path=pathA] (-1,0) node{$A$} circle [radius=1.5cm];
draw[thick,save path=pathB] (1,0) node{$B$} circle[radius=1.5cm];
path (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acap B$};
begin{scope}[on background layer]
pgfkeys{inside/.list={pathA,pathB},shade=gray}
end{scope}
draw[frame=5pt];
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
});
}
});
Matheus Chebli 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%2f489535%2fhow-can-i-draw-a-rectangle-around-venn-diagrams%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Welcome to TeX.SE! It is good that you included your code. In terms of drawing a rectangle around the venn diagram, you could import the fit
library from Tikz using usetikzlibrary{fit}
. I have completed an example to illustrate. Also, I have changed the code a little bit. You now have one tikzpicture
(with no minipage). The first venn diagram has its own scope and the second has its own as well. I have changed the placement of M
so that it would be easier to read. There are two types overall in terms of appearance, you choose the one you like.
documentclass[margin=1cm, tikz]{standalone}
usepackage{tikz,xcolor,color}
usetikzlibrary{fit}
begin{document}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{tikzpicture}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
%
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
%
begin{scope}[local bounding box = orScope]
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (orScope.north){$M$};
node[anchor=north] at (orScope.south) {$A cup B$};
end{scope}
node[fit=(orScope), draw] {};% The frame around the scope
%
begin{scope}[xshift = 7cm,local bounding box = andScope]
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (andScope.north) {$M$};
node[anchor=west] at (andScope.south east) {$A cap B$};
end{scope}
node[fit=(andScope), draw] {};
end{tikzpicture}
end{document}
add a comment |
Welcome to TeX.SE! It is good that you included your code. In terms of drawing a rectangle around the venn diagram, you could import the fit
library from Tikz using usetikzlibrary{fit}
. I have completed an example to illustrate. Also, I have changed the code a little bit. You now have one tikzpicture
(with no minipage). The first venn diagram has its own scope and the second has its own as well. I have changed the placement of M
so that it would be easier to read. There are two types overall in terms of appearance, you choose the one you like.
documentclass[margin=1cm, tikz]{standalone}
usepackage{tikz,xcolor,color}
usetikzlibrary{fit}
begin{document}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{tikzpicture}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
%
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
%
begin{scope}[local bounding box = orScope]
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (orScope.north){$M$};
node[anchor=north] at (orScope.south) {$A cup B$};
end{scope}
node[fit=(orScope), draw] {};% The frame around the scope
%
begin{scope}[xshift = 7cm,local bounding box = andScope]
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (andScope.north) {$M$};
node[anchor=west] at (andScope.south east) {$A cap B$};
end{scope}
node[fit=(andScope), draw] {};
end{tikzpicture}
end{document}
add a comment |
Welcome to TeX.SE! It is good that you included your code. In terms of drawing a rectangle around the venn diagram, you could import the fit
library from Tikz using usetikzlibrary{fit}
. I have completed an example to illustrate. Also, I have changed the code a little bit. You now have one tikzpicture
(with no minipage). The first venn diagram has its own scope and the second has its own as well. I have changed the placement of M
so that it would be easier to read. There are two types overall in terms of appearance, you choose the one you like.
documentclass[margin=1cm, tikz]{standalone}
usepackage{tikz,xcolor,color}
usetikzlibrary{fit}
begin{document}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{tikzpicture}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
%
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
%
begin{scope}[local bounding box = orScope]
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (orScope.north){$M$};
node[anchor=north] at (orScope.south) {$A cup B$};
end{scope}
node[fit=(orScope), draw] {};% The frame around the scope
%
begin{scope}[xshift = 7cm,local bounding box = andScope]
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (andScope.north) {$M$};
node[anchor=west] at (andScope.south east) {$A cap B$};
end{scope}
node[fit=(andScope), draw] {};
end{tikzpicture}
end{document}
Welcome to TeX.SE! It is good that you included your code. In terms of drawing a rectangle around the venn diagram, you could import the fit
library from Tikz using usetikzlibrary{fit}
. I have completed an example to illustrate. Also, I have changed the code a little bit. You now have one tikzpicture
(with no minipage). The first venn diagram has its own scope and the second has its own as well. I have changed the placement of M
so that it would be easier to read. There are two types overall in terms of appearance, you choose the one you like.
documentclass[margin=1cm, tikz]{standalone}
usepackage{tikz,xcolor,color}
usetikzlibrary{fit}
begin{document}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{tikzpicture}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
%
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
%
begin{scope}[local bounding box = orScope]
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (orScope.north){$M$};
node[anchor=north] at (orScope.south) {$A cup B$};
end{scope}
node[fit=(orScope), draw] {};% The frame around the scope
%
begin{scope}[xshift = 7cm,local bounding box = andScope]
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (andScope.north) {$M$};
node[anchor=west] at (andScope.south east) {$A cap B$};
end{scope}
node[fit=(andScope), draw] {};
end{tikzpicture}
end{document}
answered 57 mins ago
M. Al JumailyM. Al Jumaily
516128
516128
add a comment |
add a comment |
Another solution:
If you really wants to use minipage
, you have to put the environment outside tikzpicture
. Literally minipage
does nothing for you here, but it does many things against you.
However, for figures side-by-side, a subfigure
environment (from subcaption
) is better in this case.
And, to draw a rectangle, you can use the special node current bounding box
, with some shifts if needed.
Btw your diagrams are too wide for the normal margin.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{document}
noindentbegin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{tikzpicture}
end{minipage}%
begin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$};
draw ([shift={(-1ex,1ex)}]current bounding box.north west) rectangle
([shift={(1ex,-1ex)}]current bounding box.south east);
end{tikzpicture}
end{minipage}
end{document}
add a comment |
Another solution:
If you really wants to use minipage
, you have to put the environment outside tikzpicture
. Literally minipage
does nothing for you here, but it does many things against you.
However, for figures side-by-side, a subfigure
environment (from subcaption
) is better in this case.
And, to draw a rectangle, you can use the special node current bounding box
, with some shifts if needed.
Btw your diagrams are too wide for the normal margin.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{document}
noindentbegin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{tikzpicture}
end{minipage}%
begin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$};
draw ([shift={(-1ex,1ex)}]current bounding box.north west) rectangle
([shift={(1ex,-1ex)}]current bounding box.south east);
end{tikzpicture}
end{minipage}
end{document}
add a comment |
Another solution:
If you really wants to use minipage
, you have to put the environment outside tikzpicture
. Literally minipage
does nothing for you here, but it does many things against you.
However, for figures side-by-side, a subfigure
environment (from subcaption
) is better in this case.
And, to draw a rectangle, you can use the special node current bounding box
, with some shifts if needed.
Btw your diagrams are too wide for the normal margin.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{document}
noindentbegin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{tikzpicture}
end{minipage}%
begin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$};
draw ([shift={(-1ex,1ex)}]current bounding box.north west) rectangle
([shift={(1ex,-1ex)}]current bounding box.south east);
end{tikzpicture}
end{minipage}
end{document}
Another solution:
If you really wants to use minipage
, you have to put the environment outside tikzpicture
. Literally minipage
does nothing for you here, but it does many things against you.
However, for figures side-by-side, a subfigure
environment (from subcaption
) is better in this case.
And, to draw a rectangle, you can use the special node current bounding box
, with some shifts if needed.
Btw your diagrams are too wide for the normal margin.
documentclass{article}
usepackage[margin=1in]{geometry}
usepackage{tikz}
% Definition of circles
deffirstcircle{(0,0) circle (1.5cm)}
defsecondcircle{(0:2cm) circle (1.5cm)}
colorlet{circle edge}{black!50}
colorlet{circle area}{gray!20}
tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick}}
setlength{parskip}{5mm}
begin{document}
noindentbegin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
draw[filled] firstcircle node {$A$}
secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
end{tikzpicture}
end{minipage}%
begin{minipage}[t]{.5textwidth}
centering%
begin{tikzpicture}
begin{scope}
clip firstcircle;
fill[filled] secondcircle;
end{scope}
draw[outline] firstcircle node {$A$};
draw[outline] secondcircle node {$B$};
node[anchor=south] at (current bounding box.north) {$M$};
node[anchor=west] at (current bounding box.east) {$A cap B$};
draw ([shift={(-1ex,1ex)}]current bounding box.north west) rectangle
([shift={(1ex,-1ex)}]current bounding box.south east);
end{tikzpicture}
end{minipage}
end{document}
answered 49 mins ago
JouleVJouleV
16.4k22668
16.4k22668
add a comment |
add a comment |
There are dedicated packages for that. Assuming you do not want to use any of those, I'd like to advertize some styles that help you drawing these diagrams. These are not inside
, inside
to specify the sets and frame
for drawing a frame around these pictures. Your first picture is easy, you only need to fill the circles. The second one can be achieved with
pgfkeys{inside/.list={pathA,pathB},shade=gray}
and the frames can be done with
draw[frame=5pt];
where 5pt
indicates the margin.
Here are code and result.
documentclass{article}
usepackage{tikz}
usetikzlibrary{backgrounds}
% based on https://tex.stackexchange.com/a/12033/121799
tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle
(current bounding box.north east)} },
use path/.code={pgfsetpath#1},%learned from Kpym
frame/.style={insert path={
([xshift=-#1,yshift=-#1]current bounding box.south west) rectangle
([xshift=#1,yshift=#1]current bounding box.north east)}}
}
begin{document}
pgfkeys{not inside/.code={clip[use path=#1,reverseclip];},
inside/.code={clip[use path=#1];},
shade/.code=fill[#1] (current bounding box.south west)rectangle
(current bounding box.north east);}
begin{tikzpicture}
draw[thick,fill=gray] (-1,0) node{$A$} circle [radius=1.5cm]
(1,0) node{$B$} circle[radius=1.5cm] (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acup B$};
draw[frame=5pt];
end{tikzpicture}~%
begin{tikzpicture}
draw[thick,save path=pathA] (-1,0) node{$A$} circle [radius=1.5cm];
draw[thick,save path=pathB] (1,0) node{$B$} circle[radius=1.5cm];
path (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acap B$};
begin{scope}[on background layer]
pgfkeys{inside/.list={pathA,pathB},shade=gray}
end{scope}
draw[frame=5pt];
end{tikzpicture}
end{document}
add a comment |
There are dedicated packages for that. Assuming you do not want to use any of those, I'd like to advertize some styles that help you drawing these diagrams. These are not inside
, inside
to specify the sets and frame
for drawing a frame around these pictures. Your first picture is easy, you only need to fill the circles. The second one can be achieved with
pgfkeys{inside/.list={pathA,pathB},shade=gray}
and the frames can be done with
draw[frame=5pt];
where 5pt
indicates the margin.
Here are code and result.
documentclass{article}
usepackage{tikz}
usetikzlibrary{backgrounds}
% based on https://tex.stackexchange.com/a/12033/121799
tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle
(current bounding box.north east)} },
use path/.code={pgfsetpath#1},%learned from Kpym
frame/.style={insert path={
([xshift=-#1,yshift=-#1]current bounding box.south west) rectangle
([xshift=#1,yshift=#1]current bounding box.north east)}}
}
begin{document}
pgfkeys{not inside/.code={clip[use path=#1,reverseclip];},
inside/.code={clip[use path=#1];},
shade/.code=fill[#1] (current bounding box.south west)rectangle
(current bounding box.north east);}
begin{tikzpicture}
draw[thick,fill=gray] (-1,0) node{$A$} circle [radius=1.5cm]
(1,0) node{$B$} circle[radius=1.5cm] (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acup B$};
draw[frame=5pt];
end{tikzpicture}~%
begin{tikzpicture}
draw[thick,save path=pathA] (-1,0) node{$A$} circle [radius=1.5cm];
draw[thick,save path=pathB] (1,0) node{$B$} circle[radius=1.5cm];
path (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acap B$};
begin{scope}[on background layer]
pgfkeys{inside/.list={pathA,pathB},shade=gray}
end{scope}
draw[frame=5pt];
end{tikzpicture}
end{document}
add a comment |
There are dedicated packages for that. Assuming you do not want to use any of those, I'd like to advertize some styles that help you drawing these diagrams. These are not inside
, inside
to specify the sets and frame
for drawing a frame around these pictures. Your first picture is easy, you only need to fill the circles. The second one can be achieved with
pgfkeys{inside/.list={pathA,pathB},shade=gray}
and the frames can be done with
draw[frame=5pt];
where 5pt
indicates the margin.
Here are code and result.
documentclass{article}
usepackage{tikz}
usetikzlibrary{backgrounds}
% based on https://tex.stackexchange.com/a/12033/121799
tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle
(current bounding box.north east)} },
use path/.code={pgfsetpath#1},%learned from Kpym
frame/.style={insert path={
([xshift=-#1,yshift=-#1]current bounding box.south west) rectangle
([xshift=#1,yshift=#1]current bounding box.north east)}}
}
begin{document}
pgfkeys{not inside/.code={clip[use path=#1,reverseclip];},
inside/.code={clip[use path=#1];},
shade/.code=fill[#1] (current bounding box.south west)rectangle
(current bounding box.north east);}
begin{tikzpicture}
draw[thick,fill=gray] (-1,0) node{$A$} circle [radius=1.5cm]
(1,0) node{$B$} circle[radius=1.5cm] (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acup B$};
draw[frame=5pt];
end{tikzpicture}~%
begin{tikzpicture}
draw[thick,save path=pathA] (-1,0) node{$A$} circle [radius=1.5cm];
draw[thick,save path=pathB] (1,0) node{$B$} circle[radius=1.5cm];
path (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acap B$};
begin{scope}[on background layer]
pgfkeys{inside/.list={pathA,pathB},shade=gray}
end{scope}
draw[frame=5pt];
end{tikzpicture}
end{document}
There are dedicated packages for that. Assuming you do not want to use any of those, I'd like to advertize some styles that help you drawing these diagrams. These are not inside
, inside
to specify the sets and frame
for drawing a frame around these pictures. Your first picture is easy, you only need to fill the circles. The second one can be achieved with
pgfkeys{inside/.list={pathA,pathB},shade=gray}
and the frames can be done with
draw[frame=5pt];
where 5pt
indicates the margin.
Here are code and result.
documentclass{article}
usepackage{tikz}
usetikzlibrary{backgrounds}
% based on https://tex.stackexchange.com/a/12033/121799
tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle
(current bounding box.north east)} },
use path/.code={pgfsetpath#1},%learned from Kpym
frame/.style={insert path={
([xshift=-#1,yshift=-#1]current bounding box.south west) rectangle
([xshift=#1,yshift=#1]current bounding box.north east)}}
}
begin{document}
pgfkeys{not inside/.code={clip[use path=#1,reverseclip];},
inside/.code={clip[use path=#1];},
shade/.code=fill[#1] (current bounding box.south west)rectangle
(current bounding box.north east);}
begin{tikzpicture}
draw[thick,fill=gray] (-1,0) node{$A$} circle [radius=1.5cm]
(1,0) node{$B$} circle[radius=1.5cm] (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acup B$};
draw[frame=5pt];
end{tikzpicture}~%
begin{tikzpicture}
draw[thick,save path=pathA] (-1,0) node{$A$} circle [radius=1.5cm];
draw[thick,save path=pathB] (1,0) node{$B$} circle[radius=1.5cm];
path (0,1.5) node[above]{$M$}
(0,-1.5) node[below]{$Acap B$};
begin{scope}[on background layer]
pgfkeys{inside/.list={pathA,pathB},shade=gray}
end{scope}
draw[frame=5pt];
end{tikzpicture}
end{document}
answered 24 mins ago
marmotmarmot
124k6161305
124k6161305
add a comment |
add a comment |
Matheus Chebli is a new contributor. Be nice, and check out our Code of Conduct.
Matheus Chebli is a new contributor. Be nice, and check out our Code of Conduct.
Matheus Chebli is a new contributor. Be nice, and check out our Code of Conduct.
Matheus Chebli 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%2f489535%2fhow-can-i-draw-a-rectangle-around-venn-diagrams%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
Welcome to TeX.SE!
– Kurt
1 hour ago
You should not use
minipage
inside TikZ pictures– JouleV
1 hour ago