Dear Nick, (cc. the list)
The following code works correctly to export into LaTeX, but the caption function fails in html. But caption works in html when it is above a table written in org-mode.
#+OPTIONS: LaTeX:verbatim
#+LaTeX_CLASS: org-article
#+LaTeX_CLASS_OPTIONS: [koma,a4paper,11pt]
#+LaTeX_CLASS_OPTIONS: [times]
#+LANGUAGE: en
#+OPTIONS: ':t
#+OPTIONS: tex:t
#+LATEX_HEADER: \usepackage{tikz}
#+LaTeX_CLASS_OPTIONS: [captions=tableheading]
#+OPTIONS: tex:imagemagick
#+CAPTION: Classical square of opposition
#+BEGIN_FIGURE
\begin{tikzpicture}
\draw[<-, >=latex][thick] (0,0) -- (1.6,0) node[right] {Subcontrary};
\draw[->,>=latex] [thick] (3.6,0) -- (5,0) node[right] { \((\mathbf{O})\)~ \(\underset{\land \exists x(Sx)}{\exists x(Sx \land \neg Px)}\)};
\draw[->,>=latex] [thick] (1.6,0) -- (0,0) node[left] {\(\underset{\land \exists x(Sx)}{\exists x(Sx \land Px)}\)~ \((\mathbf{I})\)};
\draw[<->,>=latex][thick] (5,0) -- (0,5) node[left] {\(\underset{\land \exists x(Sx)}{\forall x(Sx \to Px)}\)~ \((\mathbf{A})\)} node[midway] {CONTRADICTORY} ;
\draw[<->,>=latex][thick] (0,0) -- (5,5);
\draw[-,>=latex][thick] (0,5) -- (0,2.5) node[below] {Subaltern};
\draw[->,>=latex][thick] (0,2) -- (0,0);
\draw[-,>=latex][thick] (5,5) -- (5,2.5) node[below] {Subaltern};
\draw[<-,>=latex][thick] (0,5) -- (1.7,5) node[right] {Contrary};
\draw[->,>=latex][thick] (3.2,5) -- (5,5) node[right]{\((\mathbf{E})\)~ \(\underset{\land \exists x(Sx)}{\forall x(Sx \to \neg Px)}\)};
\draw[->,>=latex][thick] (5,2) -- (5,0);
\end{tikzpicture}
#+END_FIGURE