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.

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.

  • I didn't test it but I think if you expand the value, /tikz/draw/expanded it should also work. – percusse Apr 4 '14 at 11:37
  • @percusse I presume you mean /tikz/draw/.expanded. If so, unfortunately that does not work. – Andrew Swann Apr 4 '14 at 11:49
  • @AndrewSwann Oh OK. Thank you though – percusse Apr 4 '14 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 '16 at 9:36
  • @LaRiFaRi This seems to be fixed in 0.9e. – Andrew Swann Jan 29 '16 at 13:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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