TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The Born square is supposed to look like this:

Born square
My attempt looks close enough, but the code is a bit unreadable because of the liberal \multicolumn usage.

Born attempt

\documentclass{article}

\begin{document}
\[
\begin{array}{c|c|c}
\cline{2-2}
-S & \multicolumn{1}{|c|}{U} & V\\
\hline
\multicolumn{1}{|c|}{H}  &   & \multicolumn{1}{|c|}{A} \\
\hline
-p & \multicolumn{1}{|c|}{G} & T\\ 
\cline{2-2}
\end{array}
\]
\end{document}

Is there any non-tabu solution that allows for a cleaner code, other than a new command to shorten the \multicolumn command?

share|improve this question
up vote 5 down vote accepted

For fun, here is how you can typeset such tables in ConTeXt. Notice the clean separation between content and presentation!

\definecolor[darkgray][s=0.65]
\definecolor[darkred] [r=0.85]
\startsetups born
  \setupTABLE[framecolor=darkgray, rulethickness=1bp]
  \setupTABLE[width=2.5em, height=2.5em, align={middle,lohi}]
  \setupTABLE[1,3] [1,3][frame=off]
  \setupTABLE[row]   [2][color=darkred]
  \setupTABLE[column][2][color=darkred]
\stopsetups

\starttext
\startTABLE[setups=born]
  \NC $-S$ \NC $U$ \NC $V$ \NC \NR
  \NC $H$  \NC     \NC $A$ \NC \NR
  \NC $-p$ \NC $G$ \NC $T$ \NC \NR
\stopTABLE
\stoptext

enter image description here

share|improve this answer
1  
Yikes. I know no ConTeXt, but this is the solution that impressed me the most. – Kurzd Mar 10 at 2:52

Using TikZ and the positioning library, this isn't too difficult

\documentclass[border=6pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[on grid]
  \node (p) at (0,0) {$-p$};  
  \node [right=0.65cm of p] (G) {$G$};
  \node [right=0.65cm of G] (T) {$T$};
  \node [above=0.65cm of T] (A) {$A$};
  \node [above=0.65cm of p] (H) {$H$};
  \node [above=0.65cm of H] (S) {$-S$};
  \node [right=0.65cm of S] (U) {$U$};
  \node [right=0.65cm of U] (V) {$V$};

  \draw (H.south west) rectangle (A.north east);
  \draw (G.south west) rectangle (U.north east);
\end{tikzpicture}
\end{document}

enter image description here

I generally dislike writing in multiple lines that are essentially the same except for slight changes what can be accomplished a bit more broadly. Here's the same figure, but this time generated by using a \foreach loop and the remember ... as ... key

\documentclass[border=6pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[on grid]

  \node (p) at (0,0) {$-p$};  
  \foreach \myfrontmatter/\myn/\mypos 
    [remember=\myn as \myprev (initially p)]
    in
    {%%
     /G/right,
     /T/right,
     /A/above,
     /V/above,
     /U/left,
    -/S/left,
     /H/below%%
    }
  {
    \node [\mypos=0.65cm of \myprev] (\myn) {$\myfrontmatter\myn$};
  }

  \draw (H.south west) rectangle (A.north east);
  \draw (G.south west) rectangle (U.north east);
\end{tikzpicture}
\end{document}
share|improve this answer

Another solution using tikz / matrix

\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}
  \newcommand{\celldef}{|[draw=black!40, line width=.8pt, font=\color{Yellow4}]|}

  \matrix [matrix of nodes, nodes={minimum width=1cm, minimum height=1cm},
  row sep=-.8pt, column sep=-.8pt]
  {
    -S           & \celldef {U} & V            \\
    \celldef {H} &              & \celldef {A} \\
    -p           & \celldef {G} & T            \\
  };
\end{tikzpicture}
\begin{tikzpicture}
  \newcommand{\celldef}{|[draw=black!40, line width=1pt, font=\color{Red4}]|}

  \matrix [matrix of math nodes, nodes={minimum width=1cm, minimum height=1cm},
  row sep=-1pt, column sep=-1pt]
  {
    -S           & \celldef {U} & V            \\
    \celldef {H} &              & \celldef {A} \\
    -p           & \celldef {G} & T            \\
  };
\end{tikzpicture}
\end{document}

enter image description here

share|improve this answer
    
Math mode should be used in the cells. – egreg Mar 7 at 11:15
    
hence matrix of math nodes would be suitable here. – percusse Mar 7 at 11:57

Here is a very short code with pstricks: I use an ordinary matrix environment, and declare some element as \Rnodes (rectangular nodes), then connect them with an \ncboxnode connection:

\documentclass[x11names]{article}
\usepackage{amsmath}
\usepackage{pst-node}
\usepackage{pst-pdf}

\pagestyle{empty}

\begin{document}

\begin{equation*}
  \begin{postscript}
    \begin{matrix}
      -S & \Rnode{U}{\color{IndianRed3}U} & V \\
      \Rnode{H}{\color{IndianRed3}H} & & \Rnode{A}{\color{IndianRed3}A} \\
      -p & \Rnode{G}{\color{IndianRed3}G} & T
    \end{matrix}
    \psset{\linewidth=0.5pt, linecolor=Snow3, boxsize=1.5ex, nodesep=3pt}
    \ncbox{A}{H}\ncbox{U}{G}
  \end{postscript}
\end{equation*}

\end{document} 

enter image description here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.