# Can anyone draw a chiasma in LaTeX?

I am trying to draw a two curved lines that form a chiasmata. I am imagining it would look like an 'X' that is composed of two CURVED lines such that it is wider than it is tall.

I also want to place four words, one at the end of each line. I want it to look something like this:

-
Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format. You wrote "I'm trying to draw...". What have you tried so far? Please post a minimal compilable document showing that you've tried to produce the image and then people will be happy to help you with any specific problems you may have. See minimal working example (MWE) for what needs to go into such a document. –  Jubobs Feb 26 '14 at 9:33
Shouldn't it be called chiasma? I believe that chiasmata is plural. –  egreg Feb 26 '14 at 10:20

With tikz:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\node[align=right,anchor=east] at(0,0) (a) {Tragedy};
\node[below=1cm of a.east,anchor=east] (b) {Appearence};
\node[right=2cm of a,anchor=west] (c) {Comedy};
\node[below=1cm of c.west,anchor=west] (d) {Reality};
\draw (a) edge[out=0, in=180] (d);
\draw (b) edge[out=0, in=180] (c);
\end{tikzpicture}

\end{document}


With bazier curves:

\documentclass[tikz,border=10pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[font=\sffamily]
\node[align=right,anchor=east] at(0,0) (a) {Tragedy};
\node[below=1cm of a.east,anchor=east] (b) {Appearence};
\node[right=2cm of a,anchor=west] (c) {Comedy};
\node[below=1cm of c.west,anchor=west] (d) {Reality};
\draw (a.east) .. controls (2,-0.35) and (0,-0.65).. (d.west);
\draw (b.east) .. controls (2,-0.65) and (0,-0.35).. (c.west);
\end{tikzpicture}

\end{document}


And little cheating ;)

\documentclass[tikz,border=10pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[font=\sffamily]
\node[align=right,anchor=east] at(0,0) (a) {Tragedy};
\node[below=1cm of a.east,anchor=east] (b) {Appearence};
\node[right=2cm of a,anchor=west] (c) {Comedy};
\node[below=1cm of c.west,anchor=west] (d) {Reality};
\draw[olive,thick] (a) edge[out=0,in=0,distance=1.335cm] (b);
\draw[olive,thick] (c) edge[out=180,in=180,distance=1.335cm] (d);
\end{tikzpicture}

\end{document}


And the last change. If you are finding it difficult to handle bazier curve controls, this is just another short cut:

\documentclass[tikz,border=10pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[font=\sffamily]
\node[align=right,anchor=east] at(0,0) (a) {Tragedy};
\node[below=1cm of a.east,anchor=east] (b) {Appearence};
\node[right=2cm of a,anchor=west] (c) {Comedy};
\node[below=1cm of c.west,anchor=west] (d) {Reality};
\path[draw=none] (a) -- (d) coordinate[midway] (m);
\draw (a) edge[out=0,in=90] (m)
(m) edge[out=270,in=180] (d);
\draw (b) edge[out=0,in=270] (m)
(m) edge[out=90,in=180] (c);
\end{tikzpicture}

\end{document}


-
Jeez, no need to JPEG us like that. A simple PNG would absolutely have done it ;) –  Christian Feb 26 '14 at 16:25
OP here. You are awesome! You not only saved my essay, but also I will now have the opportunity to practice using tikz and using \node and \draw. THANK YOU AGAIN!!! –  Jeeves Feb 26 '14 at 22:47
@HarishKumar No, Christian didn't mean that :) He's talking about the image format. –  Manuel Feb 26 '14 at 23:11
Due to copy-paste tragedy: you missed the reality of appearance, hence it's comedy guess where ? :) –  texenthusiast Feb 26 '14 at 23:21
@HarishKumar Thanks for fixing it. Looks much better now :) –  Christian Feb 27 '14 at 10:45

Since the curve has all the appearance of the kappa curve, we can plot the kappa curve with pst-plot, given its polar equation (ρ = a/ tan θ):

        \documentclass[11pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[svgnames,pdf]{pstricks}
\usepackage{pst-plot}

\begin{document}

\psset{unit=0.8cm}
\begin{pspicture}(-4,-4)(4,4)
\sffamily
\psset{linewidth = 1pt, linecolor = IndianRed, plotpoints=200, plotstyle=curve, polarplot, algebraic, labelsep = 0.5em}
\psclip{\pscircle[linestyle=none]{2.5}}%
\psplot{0.5}{3}{1.5*cos(x)/sin(x)}
\psplot{-0.5}{-3}{1.5*cos(x)/sin(x)}
\endpsclip
\uput[r](2.5; 32){Comedy} \uput[r](2.5; -32){Reality}
\uput[l](-2.5; 32){Tragedy} \uput[l](-2.5; -32){Appearance}
\end{pspicture}

\end{document}


This gives:

-
Kudos for genuine fidelity to OP's sample image. The examples that are "emphasizing the crossing" are changing the emphasized meaning of the diagram in the process. Yours preserves the original sense impeccably. –  Jonathan Van Matre Feb 26 '14 at 16:35
The above comment looks a lot sillier now that nearly everyone else has come around to the notion of respecting OP's spec drawing, but at the time you were swimming against the tide. –  Jonathan Van Matre Feb 27 '14 at 23:50

With Metapost:

prologues := 3;
outputtemplate := "%j%c.eps";

beginfig(1);
z0 = right scaled 60;
z1 = -z3 = z0 rotated 30;
z4 = -z2 = z0 rotated -30;

path p[];
p1 = z2 {right} .. {right} z4;
p2 = z3 {right} .. {right} z1;
draw p2; undraw p1 withpen pencircle scaled 4; draw p1;

defaultfont := "phvr8r";
label.lft("Tragedy",z2);
label.lft("Appearance",z3);
label.rt("Comedy",z1);
label.rt("Reality",z4);

endfig;
end.


which tries to place an emphasis on the crossing by making one line fly over the other.

If you would rather keep some ambiguity and make the shape a little less chi-like, you could try bending the paths to the vertical where they cross and perhaps getting rid of the undraw, like this:

p1 = z2 {right} .. {down} origin .. {right} z4;
p2 = z3 {right} .. {up}   origin .. {right} z1;
draw p1; draw p2;


which changes the above picture to produce something more like the OP diagram

-

Done by stacking and rotating text symbols.

\documentclass{article}
\usepackage{graphicx}
\usepackage{stackengine}
\begin{document}
\def\stackalignment{r}\stackanchor[10pt]{Tragedy}{Appearance}
\abovebaseline[-10pt]{\scalebox{3}{\rotatebox{90}{$\bigcup$}\kern-.8pt\rotatebox{90}{$\bigcap$}}}
\def\stackalignment{l}\stackanchor[10pt]{Comedy}{Reality}
\end{document}


-

run with xelatex

\documentclass{article}
\usepackage{pst-node}
\begin{document}
\noindent
\makebox[3cm][r]{\rnode{ul}{Tragedy}}\hspace{3cm}\rnode{ur}{Comedy}\\[1.25cm]
\makebox[3cm][r]{\rnode{ll}{Appearence}}\hspace{3cm}\rnode{lr}{Reality}
\nccurve[nodesep=5pt,angleB=180]{ul}{lr}
\nccurve[nodesep=5pt,angleB=180,border=2pt]{ll}{ur}

\end{document}


-

Warming up with PSTricks.

## Option 1

\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{psmatrix}[colsep=3cm,nodesep=2mm,arm=1.3,linearc=1]
[mcol=r]Tragedy & [mcol=l]Comedy\\
[mcol=r]Appearence & [mcol=l]Appearence
\ncdiag{1,1}{2,1}
\ncdiag[angle=180]{1,2}{2,2}
\end{psmatrix}
\end{document}


## Option 2

\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{psmatrix}[colsep=3cm,nodesep=5pt,angleB=180]
[mcol=r]Tragedy & [mcol=l]Comedy\\
[mcol=r]Appearence & [mcol=l]Appearence
\nccurve{1,1}{2,2}
\nccurve[border=2pt]{2,1}{1,2}
\end{psmatrix}
\end{document}


## Option 3

\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{psmatrix}[colsep=3cm,nodesep=5pt,angleB=180]
[mcol=r]Tragedy & [mcol=l]Comedy\\
[mcol=r]Appearence & [mcol=l]Appearence
\ncdiag{1,1}{2,2}
\ncdiag[border=2pt]{2,1}{1,2}
\end{psmatrix}
\end{document}


-
Due to copy-paste tragedy: you missed the reality of appearance, hence it's comedy guess where ? :) –  texenthusiast Feb 26 '14 at 23:22
@texenthusiast: It was copied from Harish Kumar's answer. See his edit history for the details. –  kiss my armpit Feb 27 '14 at 2:56
yes, i know. appearance was twice and missed the reality tex.stackexchange.com/questions/162475/… –  texenthusiast Feb 27 '14 at 3:43

You can do it with xypic:

\documentclass{article}

\usepackage[all]{xypic}
\usepackage{amsmath}

\begin{document}
\begin{equation*}\xymatrix@R=5mm@C=2cm{
\txt{Tragedy} \ar@{- }@(r,l)[dr] & \txt{Comedy}\\
\txt{Appearance} \ar@{- }@(r,l)[ur] & \txt{Reality}
}\end{equation*}

\end{document}


@R=5mm and @C=2cm set the column and row sizes. @{- } removes arrow heads and @(r,l) gives the lines their curvature. You can do a lot more with xypic.

-