7

I have been using tikz-cd to create commutative diagrams. I just upgraded to version 0.9b from 0.3c and now there is a problem with the arrow tips. I like to use the 'tikz' solid tips. The following diagram is fine:

\documentclass[11pt]{article}

\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\title{}
\date{}  
\tikzset{
   commutative diagrams/.cd,
   diagrams={>=latex}}

\begin{document}
\begin{tikzcd}[row sep=scriptsize, column sep=scriptsize]
 & f^* E_V \arrow[dl] \arrow[rr] \arrow[dd] & & E_V \arrow[dl] \arrow[dd] \\ 
 f^* E \arrow[rr, crossing over] \arrow[dd] & & E \\ 
 & U \arrow[dl] \arrow[rr] & & V \arrow[dl] \\ 
 M \arrow[rr] & & N \arrow[uu, crossing over, leftarrow]\\
\end{tikzcd}
\end{document}

and gives the following output:

Normal behaviour

However, if I change to solid tips (which take up less room and look better on the rather larger diagram I am really building) by adding an arrow style specification to the tikzset:

\documentclass[11pt]{article}

\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\title{}
\date{}  
\tikzset{
   commutative diagrams/.cd,
   arrow style=tikz,
   diagrams={>=latex}}

\begin{document}
\begin{tikzcd}[row sep=scriptsize, column sep=scriptsize]
 & f^* E_V \arrow[dl] \arrow[rr] \arrow[dd] & & E_V \arrow[dl] \arrow[dd] \\ 
 f^* E \arrow[rr, crossing over] \arrow[dd] & & E \\ 
 & U \arrow[dl] \arrow[rr] & & V \arrow[dl] \\ 
 M \arrow[rr] & & N \arrow[uu, crossing over, leftarrow]\\
\end{tikzcd}
\end{document}

I now get the following output in which the tips are missing from all lines that use the 'crossing over' feature PLUS the two diagonals from U and V and the horizontal from M to N:

Arrow tips missing on crossing over lines

This behaviour was not exhibited in v.0.3c. Any ideas how to fix it?

Thank you.

1 Answer 1

4

This is a bug in the crossing over style. The following seems to fix it:

Sample ouptut

\documentclass[11pt]{article}

\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\tikzset{
   commutative diagrams/.cd,
   arrow style=tikz,
   diagrams={>=latex}}
\tikzcdset{  crossing over/.style={
    /tikz/preaction={
      /tikz/draw,
      /tikz/color=\pgfkeysvalueof{/tikz/commutative diagrams/background color},
      /tikz/arrows=-,
      /tikz/line width=\pgfkeysvalueof{/tikz/commutative
      diagrams/crossing over clearance}}}}

\begin{document}
\begin{tikzcd}[row sep=scriptsize, column sep=scriptsize]
 & f^* E_V \arrow[dl] \arrow[rr] \arrow[dd] & & E_V \arrow[dl] \arrow[dd] \\ 
 f^* E \arrow[dd] \arrow[rr,crossing over]  & & E \\ 
 & U \arrow[dl] \arrow[rr] & & V \arrow[dl] \\ 
 M \arrow[rr] & & N \arrow[uu, crossing over, leftarrow]\\
\end{tikzcd}
\end{document}

The original style is

  crossing over/.style={
    /tikz/preaction={
      /tikz/draw=\pgfkeysvalueof{/tikz/commutative diagrams/background color},
      /tikz/arrows=-,
      /tikz/line width=\pgfkeysvalueof{/tikz/commutative diagrams/crossing over clearance}}}

I have separated out the color specification from the draw option.

6
  • I didn't test it but I think if you expand the value, /tikz/draw/expanded it should also work.
    – percusse
    Apr 4, 2014 at 11:37
  • @percusse I presume you mean /tikz/draw/.expanded. If so, unfortunately that does not work. Apr 4, 2014 at 11:49
  • @AndrewSwann Oh OK. Thank you though
    – percusse
    Apr 4, 2014 at 12:12
  • In version 0.9 the error is not yet existing. But If I use your and the original version of crossing over, there is no change visible. I do not know if Mr. Neves has changed something or if the bug was somewhere else.
    – LaRiFaRi
    Jan 29, 2016 at 9:36
  • @LaRiFaRi This seems to be fixed in 0.9e. Jan 29, 2016 at 13:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .