Take the 2-minute tour ×
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.

Consider this MWE:

\documentclass[12pt]{article}
\usepackage{tkz-graph, tikz-cd}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.markings}
\begin{document}

Blah ... blah.

\begin{tikzpicture}[scale=2,auto]
\tikzset{EdgeStyle/.style={postaction=decorate},
MyLabel/.style={
auto=right,
fill=none,
outer sep=0.2ex}}
\node [anchor=east] at (-.1,3) {$XYZ$};
\node (n1) at (0,1) {$Ay$};
\node (n2) at (1,3) {$Bx$};
\node (n3) at (2,2) {$Cy$};
\node (n4) at (4,4) {$Dx$};
\draw [line width = 1 pt, |->,bend left = 20] (n1) edge node {$V$}  (n2);
\draw [line width = 1 pt, ->] (n2) edge node[swap] {$W$} (n3);
\begin{scope}[commutative diagrams/.cd, every arrow, every label]
\draw [line width = 1 pt, |->,bend left = 60] (n2) edge node[swap] (aux) {$Z$} (n4);
\draw [line width = 1 pt, |->,bend right = 60] (n3) edge node[swap] (aux) {$Y$} (aux);
\end{scope}
\draw [line width = 1 pt, double equal sign distance] (n1) -- (n3);
\draw [line width = 1 pt, white,-,line width=8pt,->, bend right=10] (n2) edge (n4);
\draw [line width = 1 pt, ->, bend right=10] (n2) edge (n4);
\Edge[style={bend right = 60},label={$f$},labelstyle={MyLabel}](n1)(n4)
\Edge[style={bend left = 60},label={$g$},labelstyle={MyLabel,swap}](n1)(n2)
\end{tikzpicture}
\end{document}

enter image description here

The different arrows and edges are easily mixed in this nonsense minimal example.

But some labels are larger in size than others. Those labels which are in a scope bracket are smaller than those arrows not in such a bracket. Can this be fixed? Can the labels by made in size corresponding to the size 12 font used everywhere else in the document?

For instance, can an arrow going from a node to a label, like in the above example, be created here without relying on the scope command? Can a label be designated as a node so that several nodes can be linked with arrows to it, if nonlinear diagrams cannot be reduced into several scope blocks which do not include such node-to-label arrows in between them? This would naturally remove the scope command if possible and solve the size problem too.

How does on draw right or left loops (I know it can be done easily in tikz-cd, say

f(x)
\arrow[mapsto,loop left]{r}{g}

is a mapsto loop labeled g,but what is the parameter here in tikzpicture) that is compatible with these arrows in sense that the have labels identical in size to labels or tikzpicture arrows?

How do I specify size or arrowheads and thickness of lines manually. Maybe that is the answer to the problem? I have used line width = x pt, but can I make arrow heads and ends of arrows larger without making lines themselves thicker? If I delete the line width = x pt I get very tiny arrowheads...

Maybe edge commands can be made into arrows? into arrows (with decoration)?

Can someone refer me a complete list of arrows such as ->, ->>, |->, double equal sign distance, which correspond to the arrows available in tikz-cd?

UPDATE:

This is how I made arrows to be larger while preserving tail lines in mapsto (|->) arrows:

\documentclass[112pt]{article}
\usepackage{tikz, tkz-graph, tikz-cd}
\usetikzlibrary{arrows,calc} 
\pgfarrowsdeclare{btip}{usertip}{\setlength{\arrowsize}{0.3pt}  
\addtolength{\arrowsize}{.5\pgflinewidth}  
\pgfarrowsrightextend{0}  
\pgfarrowsleftextend{-5\arrowsize}}  
{\setlength{\arrowsize}{0.4pt}  
\addtolength{\arrowsize}{.5\pgflinewidth}  
\pgfpathmoveto{\pgfpoint{-5\arrowsize}{4\arrowsize}}  
\pgfpathlineto{\pgfpointorigin}  
\pgfpathlineto{\pgfpoint{-5\arrowsize}{-4\arrowsize}}  
\pgfusepathqstroke}  
\begin{document}
\begin{tikzpicture}[scale=2,auto]
\tikzset{EdgeStyle/.style={postaction=decorate},
MyLabel/.style={
auto=right,
fill=none,
outer sep=0.2ex}}
\node [anchor=east] at (-.1,3) {$XYZ$};
\node (n1) at (0,1) {$Ay$};
\node (n2) at (1,3) {$Bx$};
\node (n3) at (2,2) {$Cy$};
\node (n4) at (4,4) {$Dx$};
\draw [-btip, line width = 1 pt, bend left = 20] (n1) edge node {$V$}  (n2);
\draw [-btip, line width = 1 pt] (n2) edge node[swap] {$W$} (n3);
\begin{scope}[commutative diagrams/.cd, every arrow, every label]
\draw [-btip, line width = 1 pt, bend left = 60] (n2) edge node[swap] (aux) {$Z$} (n4);
\draw [-btip, line width = 1 pt, bend right = 60] (n3) edge node[swap] (aux) {$Y$} (aux);
\end{scope}
\draw [line width = 1 pt, double equal sign distance] (n1) -- (n3);
\draw [white,-,line width=8pt,->, bend right=10] (n2) edge (n4);
\draw [-btip, line width = 1 pt, bend right=10] (n2) edge (n4);
\draw [|->, line width = 1 pt, bend right=10] (n2) edge (n4);
\draw [-btip, line width = 1 pt, bend right=60] (n1) edge (n4);
\draw [-btip, line width = 1 pt, bend left=60] (n1) edge (n2);
\end{tikzpicture}
\end{document}

But I can't get this to work with forms like |->. It seems that inserting the |-> parameter together with -btip results in the |-> arrow overwriting -btip, or -btip overwriting |->. So far, I can only create two arrows, one -btip and one |-> following same path so that both the tail and the arrowhead show up, but this is bad style and with complex diagrams overly complicates code. Is this the only trick to customizing these sorts of arrows?

Thanks!

share|improve this question

closed as unclear what you're asking by Qrrbrbirlbel, Guido, Claudio Fiandrino, Kurt, Nils L Oct 7 '13 at 7:52

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

    
What is the question here exactly? Seems like two to three different questions. Why are you mixing tkz-* and tikz-cd? Only use one of it for the same diagram. Why are you using tikz-cd’s styles only for a few edges and not all of them? What has that to do with loops? Where’s the problem here? And how does your custom arrow tip come in play with that? You can only have one arrow tip at each end of the path. What do you want? > or btip? Or a combination of both (see the \pgfarrowsdeclarecombine macro in the manual)? –  Qrrbrbirlbel Oct 7 '13 at 2:05

Browse other questions tagged or ask your own question.