Venndiagram 패키지의 다양한 색상

Venndiagram 패키지의 다양한 색상

패키지 를 사용하여 벤다이어그램을 만들고 있습니다 venndiagram. 문서에서는 음영 색상 변경을 허용하지만 벤 다이어그램의 다른 부분을 다른 색상으로 음영 처리하는 방법을 알 수 없습니다. 이상적으로는 왼쪽에 노란색을, 오른쪽에 파란색을 사용한 다음 가운데에서 혼합하고 싶습니다.

tikzpicture나는 이것이 겹치는 원으로 그려서 이루어질 수 있다는 것을 알고 있습니다 . 그러나 나는 이미 Venn 다이어그램 패키지를 사용하고 있으며 그 기능이 마음에 듭니다. 그래서 수동으로 설정하는 대신 이 작업을 수행할 수 있기를 바라고 있습니다. 포함된 명령 으로 실행 가능해야 할 것 같지만 \fill작동시키지 못하는 것 같습니다.

\documentclass{book}
\usepackage{tikz}
\usepackage{venndiagram}     
\begin{document}
\pagestyle{empty}
    \begin{venndiagram2sets}[labelA={},labelB={}, labelOnlyA={E}, labelOnlyB={F}, labelAB={$E\cap F$}, showframe={false}, radius = {2cm}, overlap={1.5cm}]
    \end{venndiagram2sets}
\end{document} 

답변1

매크로를 사용하여 다음과 같이 환경 \setkeys{venn}{...}내에서 옵션을 변경할 수 있습니다 venndiagramm.

\documentclass[border=10pt]{standalone}
\usepackage{venndiagram}

\begin{document}
\pagestyle{empty}
\begin{venndiagram2sets}[
    labelA={},
    labelB={},
    labelOnlyA={$E$}, 
    labelOnlyB={$F$}, 
    labelAB={$E\cap F$}, 
    showframe={false}, 
    radius={2cm}, 
    overlap={1.5cm}
]

\setkeys{venn}{shade=yellow}
\fillA

\setkeys{venn}{shade=cyan}
\fillB

\setkeys{venn}{shade=yellow!50!cyan}
\fillACapB

\end{venndiagram2sets}
\end{document} 

여기에 이미지 설명을 입력하세요

답변2

더 많은 제어권을 얻기 위해 레이블이 E왼쪽으로 이동하고 레이블이 F오른쪽으로 이동하는 등 두 가지 대안을 제공합니다.

일반 TikZ

여기에 이미지 설명을 입력하세요

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[declare function={r=1.5;d=.9;}]
\def\pathE{(-d,0) circle(r)}
\def\pathF{(d,0) circle(r)}

\fill[yellow] \pathE;
\fill[cyan] \pathF;

\begin{scope}
\clip \pathE;
\fill[yellow!50!cyan] \pathF;
\end{scope}

\draw (0,0) node{$E\cap F$}
\pathE node[left]{$E$} 
\pathF node[right]{$F$}
;
\end{tikzpicture}
\end{document}

일반 점근선

여기에 이미지 설명을 입력하세요

// http://asymptote.ualberta.ca/
size(5cm);
pair A=(0,0), B=(1,0);
path pathL=circle(A,1);
path pathR=circle(B,1);
// https://tex.stackexchange.com/a/9698/140722
path inter=buildcycle(arc(A,1,-90,90),arc(B,1,90,270));
pen penL=lightblue;
pen penR=lightgreen;
fill(pathL,penL);
fill(pathR,penR);
fill(inter,penL+penR);
draw(pathL^^inter^^pathR);
label("$E$",align=5W,A);
label("$F$",align=5E,B);
label("$E\cap F$",(A+B)/2);

//shipout(bbox(5mm,invisible));

관련 정보