You could place the labels manually by using \node at (<x>,<y>) {$A \cap C$};
, but you'd have to find the coordinates by trial and error.
A more "proper" way is using the intersections
library. To use it, you name the paths you want to intersect using unique names (name path=<name>
), in this case the circles.
Then you can find the intersections by issuing name intersections = {of=<firstpath> and <secondpath>}
as an argument to a path
or a draw
command.
The intersections will be available as coordinate nodes with the naming scheme intersection-<number>
. You can now define a path between two intersections, and place a node halfway between the intersections using node [pos=0.5] {<label>}
in the path
.
For labelling the central overlap, you could use the calc
library to specify the average of the circle coordinates using ($0.33*(A)+0.33*(B)+0.33*(C)$)
:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}
\usetikzlibrary{calc}
\begin{document}
\def\firstcircle{[name path=firstcircle] (0,0) circle (2cm)}
\def\secondcircle{[name path=secondcircle] (55:2.67cm) circle (2cm)}
\def\thirdcircle{[name path=thirdcircle] (0:3cm) circle (2cm)}
% Now we can draw the sets:
\begin{tikzpicture}
\draw \firstcircle node[below,name=A] {$A$};
\draw \secondcircle node [above,name=B] {$B$};
\draw \thirdcircle node [below,name=C] {$C$};
\path [ name intersections = {of = firstcircle and secondcircle } ] (intersection-1) -- (intersection-2) node [pos=0.5] {$A \cap B$};
\path [ name intersections = {of = secondcircle and thirdcircle } ] (intersection-1) -- (intersection-2) node [pos=0.5] {$B \cap C$};
\path [ name intersections = {of = firstcircle and thirdcircle } ] (intersection-1) -- (intersection-2) node [pos=0.5] {$A \cap C$};
\node at ($0.33*(B)+0.33*(C)+0.33*(A)$) {$A \cap B \cap C$};
\end{tikzpicture}
\end{document}