summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-03-09 00:12:30 +0000
committerKarl Berry <karl@freefriends.org>2014-03-09 00:12:30 +0000
commit43a57ed22fe612f300d51efd5fed0ff2d8a7df48 (patch)
tree8a5c1e5e9896f9fd7a1186ea84957480cfdf74a6
parentc3d483970e1b19c27183b44654a77ef45f9a1dc6 (diff)
tikz-cd (8mar14)
git-svn-id: svn://tug.org/texlive/trunk@33126 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.pdfbin339276 -> 350206 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex125
-rw-r--r--Master/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty4
-rw-r--r--Master/texmf-dist/tex/tex/generic/tikz-cd/tikzlibrarycd.code.tex (renamed from Master/texmf-dist/tex/latex/tikz-cd/tikzlibrarycd.code.tex)273
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds7
5 files changed, 123 insertions, 286 deletions
diff --git a/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.pdf b/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.pdf
index be878f26e8f..56fd4656dcd 100644
--- a/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.pdf
+++ b/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex b/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex
index 2d0e1b53c2c..0e8e93f2921 100644
--- a/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex
+++ b/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex
@@ -1,4 +1,4 @@
-% Copyright 2011, 2012, 2014 by Florêncio Neves
+% Copyright 2011, 2012, 2014 by Florêncio Neves <florencioneves@gmail.com>
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -126,12 +126,8 @@
inner ysep=0.5cm}
}
-\usepackage{iftex,tikz-cd,xr}
-\ifLuaTeX
- \usepackage{fontspec}
-\else
- \usepackage[utf8]{inputenc}
-\fi
+\usepackage{tikz-cd,xr,multicol,microtype}
+\usepackage[utf8]{inputenc}
\hypersetup{unicode,
pdftitle={The tikz-cd package},
@@ -153,25 +149,11 @@
\title{The \texttt{tikz-cd} package}
\author{Florêncio Neves}
-\date{Version 0.9, of February 28, 2014}
+\date{Version 0.9b, of March 8, 2014}
\tikzset{/codeexample/every codeexample/.append style={/tikz/commutative diagrams/background color=graphicbackground}}
-\pgfarrowsdeclare{gray x}{gray x}
-{
- \pgfarrowsrightextend{4\pgflinewidth}
-}
-{
- \pgfsetdash{}{0pt}
- \pgfsetlinewidth{0.8\pgflinewidth}
- \pgfsetstrokecolor{gray}
- \pgfpathmoveto{\pgfpoint{5\pgflinewidth}{5\pgflinewidth}}
- \pgfpathlineto{\pgfpoint{-5\pgflinewidth}{-5\pgflinewidth}}
- \pgfusepathqstroke
- \pgfpathmoveto{\pgfpoint{-5\pgflinewidth}{5\pgflinewidth}}
- \pgfpathlineto{\pgfpoint{5\pgflinewidth}{-5\pgflinewidth}}
- \pgfusepathqstroke
-}
+\tikzset{gray x/.tip={Rays[color=gray]}}
\newcommand{\displayarrow}[2][]{%
\index{#2@\protect\texttt{#2} arrow tip}%
@@ -189,8 +171,6 @@
\tikz[baseline=-axis_height, line width=rule_thickness] \draw[arrows=gray
x-gray x,commutative diagrams/.cd, #1] (0,0) -- (0.6,0);}
-\usepackage{multicol,microtype,ellipsis}
-
\begin{document}
\maketitle
@@ -202,8 +182,8 @@ reasonable default settings. Familiarity with Ti\emph{k}Z is helpful
but not necessary, since the examples contained here cover the most
common situations.
-This software is distributed under the GNU General Public License,
-version 3 or later.
+This software is distributed under the terms of the GNU General Public
+License, version 3 or later.
\tableofcontents
@@ -254,7 +234,7 @@ between matrix entries can be created with the |\arrow| command
described below.
Everything inside |{tikzcd}| is typeset in math mode, but you will
-probably want use it inside an |{equation}| environment or |\[| \dots\
+probably want use it inside an |{equation}| environment or |\[| \dots
|\]|, so that the diagram is placed on a new line and centered.
It is important to note that \textsc{dvi} viewers will not display
@@ -322,8 +302,7 @@ of the arrow.
\end{tikzcd}
\end{codeexample}
-We provide one more example, reproduced from the
-X\raisebox{-0.3ex}{Y}-pic user's guide.
+We provide two real-life examples.
\begin{codeexample}[]
\begin{tikzcd}
@@ -338,6 +317,21 @@ X\raisebox{-0.3ex}{Y}-pic user's guide.
\end{tikzcd}
\end{codeexample}
+\begin{codeexample}[]
+\begin{tikzcd}[column sep=tiny]
+ & \pi_1(U_1) \ar[dr] \ar[drr, "j_1", bend left=20]
+ &
+ &[1.5em] \\
+ \pi_1(U_1\cap U_2) \ar[ur, "i_1"] \ar[dr, "i_2"']
+ &
+ & \pi_1(U_1) \ast_{ \pi_1(U_1\cap U_2)} \pi_1(U_2) \ar[r, dashed, "\simeq"]
+ & \pi_1(X) \\
+ & \pi_1(U_2) \ar[ur]\ar[urr, "j_2"', bend right=20]
+ &
+ &
+\end{tikzcd}
+\end{codeexample}
+
\subsection{Changing arrow tips}
\label{sec:changing-arrow-tips}
@@ -374,6 +368,8 @@ style key located in |/tikz/commutative diagrams|).
\displayarrowstyle{maps to}\\
\displayarrowstyle{mapsto}\\
\displayarrowstyle{mapsfrom}\\
+ \displayarrowstyle{Mapsto}\\
+ \displayarrowstyle{Mapsfrom}\\
\end{tabular}
\subsubsection*{Arrows with hook}
@@ -432,18 +428,9 @@ style key located in |/tikz/commutative diagrams|).
\end{tabular}
\end{multicols}
-A gray cross
-(\begin{tikzpicture}[baseline=0pt, yshift=axis_height]
- \pgfsetdash{}{0pt} \pgfsetlinewidth{0.8\pgflinewidth}
- \pgfsetstrokecolor{gray}
- \pgfpathmoveto{\pgfpoint{5\pgflinewidth}{5\pgflinewidth}}
- \pgfpathlineto{\pgfpoint{-5\pgflinewidth}{-5\pgflinewidth}}
- \pgfusepathqstroke
- \pgfpathmoveto{\pgfpoint{-5\pgflinewidth}{5\pgflinewidth}}
- \pgfpathlineto{\pgfpoint{5\pgflinewidth}{-5\pgflinewidth}}
- \pgfusepathqstroke
-\end{tikzpicture}) in the samples above indicates that the corresponding tip
-is kept unchanged. This allows several arrow styles to be superimposed.
+A gray cross (\tikz \path[/pgf/tips=true,gray x-] (0,0) -- (1mm,0);)
+in the samples above indicates that the corresponding tip is kept
+unchanged. This allows several arrow styles to be superimposed.
\begin{codeexample}[]
\begin{tikzcd}
@@ -726,28 +713,21 @@ Section \ref*{pgfman-section-matrices}.3.2 of the \pgfname{} manual
This key appends \meta{options} to the style |every arrow|.
\end{key}
-\begin{key}{/tikz/commutative diagrams/arrow style=\meta{style} (initially Computer Modern)}
+\begin{key}{/tikz/commutative diagrams/arrow style=\meta{style}}
This key determines which collection of arrow tips is used by the
arrow tip selection styles listed in
- \S\ref{sec:changing-arrow-tips}. Currently, \meta{style} can be one
- of the following:
+ \S\ref{sec:changing-arrow-tips}. The initial setting is suitable
+ for documents using the Computer Modern font at any size. The
+ available choices for \meta{style} are:
\begin{description}
- \item[\texttt{Computer Modern}] This is the initial setting and is suitable
- for documents using the Computer Modern font.
- \item[\texttt{Latin Modern}] A small variant of the above, intended
- for documents using the Latin Modern font.
+ \item[\texttt{Latin Modern}] A small variant of the initial
+ settings, intended for documents using the Latin Modern font at
+ any size.
\item[\texttt{math font}] This setting uses the |Glyph| meta arrow
tip described in \S\ref{sec:font-arrow-tips}.
- \item[\texttt{arrows.meta}] This setting uses the arrow tips defined
- in \tikzname's |arrows.meta| library (which has to be loaded
- manually before setting this option). It honors the option
- |/tikz/>|.
\item[\texttt{tikz}] This setting uses the arrow tips defined in
- \tikzname's older \texttt{arrows} library (which has to be loaded
- manually before setting this option). It honors the option
- |/tikz/>|. Unless you have backwards compatibility requirements,
- you should use the \texttt{arrows.meta} option and library
- instead.
+ \tikzname's |arrows.meta| library. It honors the option
+ |/tikz/>|.
\end{description}
\end{key}
@@ -756,15 +736,13 @@ Modern, you may find the best results by selecting the |math font|
style. As detailed in \S\ref{sec:font-arrow-tips}, this is not
guaranteed to work perfectly with all fonts, but gives good results in
many cases. If the \texttt{math font} style gives unsatisfactory
-results, you can try selecting the \texttt{arrows.meta} style, and
-setting |/tikz/>| to the value that best matches your font (among
-those shown in \cite[\S\ref*{pgfman-section-arrows-meta}]{pgfman}).
+results, you can try selecting the \texttt{tikz} style, and setting
+|/tikz/>| to the value that best matches your font (among those shown
+in \cite[\S\ref*{pgfman-section-arrows-meta}]{pgfman}).
\begin{codeexample}[]
-\usetikzlibrary{arrows.meta}
-
\tikzcdset{
- arrow style=arrows.meta,
+ arrow style=tikz,
diagrams={>={Straight Barb[scale=0.8]}}
}
@@ -1173,7 +1151,7 @@ line to your document after all packages have been loaded:
|\def\temp{&} \catcode`&=\active \let&=\temp|
\end{quote}
However, this may interfere in unexpected ways with other
-packages. Use it at your own risk.
+packages. Use this trick at your own risk.
\section{Additional goodies}
\label{sec:general-infra}
@@ -1185,7 +1163,8 @@ its goals. These additional goodies are documented in this section.
\label{sec:asymm-rect-shape}
The following shape is used inside |{tikzcd}| to ensure that arrows
-between nodes in the same row are horizontal.
+between nodes in the same row are perfectly horizontal, even if the
+nodes contain text with different heights and depths.
\begin{shape}{asymmetrical rectangle}
This shape is similar to the |rectangle| shape, but its |center| is
@@ -1254,8 +1233,6 @@ The following arrow tips mimic the Computer Modern designs. It is
useful to know that at size 10\,pt, the Computer Modern arrow stems
are 0.4\,pt thick; for larger font sizes, this parameter should be
scaled accordingly, or replaced by the equivalent figure 0.0928\,ex.
-Two tips that look significantly different in the Latin Modern font
-are also supplied.
Notice that by using the mechanism explained in
\S\ref{sec:changing-arrow-tips}, it is not necessary, and in fact not
@@ -1268,19 +1245,15 @@ inside a |{tikzcd}|.
\displayarrow[/tikz/commutative diagrams/double line]{cm implies}\\
\displayarrow[line width=1.5*rule_thickness]{cm bold to}\\
\displayarrow{cm double to}\\
- \displayarrow{cm left hook}\\
- \displayarrow{cm right hook}\\
+ \displayarrow{cm to reversed}\\
\end{tabular}
\begin{tabular}{ll}
\displayarrow{cm bar}\\
-% \displayarrow{cm o}\\
-% \displayarrow{cm *}\\
\displayarrow{cm left to}\\
\displayarrow{cm right to}\\
- \displayarrow{cm to reversed}\\
- \displayarrow{lm left hook}\\
- \displayarrow{lm bar}\\
+ \displayarrow{cm left hook}\\
+ \displayarrow{cm right hook}\\
\end{tabular}
\end{multicols}
@@ -1380,7 +1353,7 @@ cases where unusual design choices are made.
\bibitem{pgfman}
Till Tantau,
\emph{The \tikzname{} and \pgfname{} packages: Manual for version 3.0.0}.
- Available at \url{http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}.
+ Available at \url{http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf}.
\end{thebibliography}
\printindex
diff --git a/Master/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty b/Master/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty
index cabf3aab1e4..191924cbf19 100644
--- a/Master/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty
+++ b/Master/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty
@@ -1,4 +1,4 @@
-% Copyright 2011, 2012, 2014 by Florêncio Neves
+% Copyright 2011, 2012, 2014 by Florêncio Neves <florencioneves@gmail.com>
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
-\ProvidesPackage{tikz-cd}[2014/02/28 v0.9 Commutative diagrams with tikz]
+\ProvidesPackage{tikz-cd}[2014/03/08 v0.9b Commutative diagrams with tikz]
\RequirePackage{tikz}[2013/12/13] % pgf version 3.0.0 required
\usetikzlibrary{cd}
diff --git a/Master/texmf-dist/tex/latex/tikz-cd/tikzlibrarycd.code.tex b/Master/texmf-dist/tex/tex/generic/tikz-cd/tikzlibrarycd.code.tex
index f14c162c5a9..43b204c29e2 100644
--- a/Master/texmf-dist/tex/latex/tikz-cd/tikzlibrarycd.code.tex
+++ b/Master/texmf-dist/tex/tex/generic/tikz-cd/tikzlibrarycd.code.tex
@@ -1,21 +1,21 @@
-% Copyright 2011, 2012, 2014 by Florêncio Neves
+% tikzlibrarycd.code.tex [2014/03/08 v0.9b Commutative diagrams with tikz]
+%
+% Copyright 2011, 2012, 2014 by Florêncio Neves <florencioneves@gmail.com>
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
-
+%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
-
+%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
-\ProvidesFile{tikzlibrarycd.code.tex}[2014/02/28 v0.9 Commutative diagrams with tikz]
-
-\usetikzlibrary{matrix,quotes}
+\usetikzlibrary{matrix,quotes,arrows.meta}
\newif\iftikzcd@mathmode
@@ -92,7 +92,8 @@
% The `tikzcd' environment
\def\tikzcd{%
- \pgfutil@ifnextchar&%
+ \iffalse{\fi\ifnum0=`}\fi% standard trick to allow nesting of tabular-like environments (cf. the tabularx manual)
+ \pgfutil@ifnextchar&% if we get an & here, it will be returned with the wrong catcode to the input stream
{\expandafter\tikzcd@@\expandafter\pgfmatrixnextcell\pgfutil@gobble}%
{\tikzcd@@}}
@@ -100,8 +101,11 @@
\def\tikzcd@[#1]{%
\tikzpicture[/tikz/commutative diagrams/.cd,every diagram,#1]%
- \def\arrow{\tikzcd@arrow}%
- \def\ar{\tikzcd@arrow}%
+ \ifx\arrow\tikzcd@arrow%
+ \pgfutil@packageerror{tikz-cd}{Diagrams cannot be nested}{}
+ \fi%
+ \let\arrow\tikzcd@arrow%
+ \let\ar\tikzcd@arrow%
\def\rar{\tikzcd@xar{r}}%
\def\lar{\tikzcd@xar{l}}%
\def\dar{\tikzcd@xar{d}}%
@@ -125,7 +129,8 @@
\tikzcd@patcherrmsg%
\tikzcd@savedpaths%
\endgroup%
- \endtikzpicture}
+ \endtikzpicture%
+ \ifnum0=`{}\fi}
% The arrow commands
\def\tikzcd@arrow{%
@@ -331,149 +336,31 @@
}%
}%
-% Computer modern arrow tips
-\pgfdeclarearrow{
- name=cm to,
- parameters={\ifpgfarrowharpoon h\fi},
- setup code={%
- \pgfarrowssetbackend{-5.8\pgflinewidth}%
- \pgfarrowssettipend{0.5\pgflinewidth}},
- drawing code={
- \pgfsetdash{}{+0pt}%
- \pgfsetroundcap%
- \pgfsetroundjoin%
- \pgfpathmoveto{\pgfqpoint{-5.3\pgflinewidth}{6\pgflinewidth}}%
- \pgfpathcurveto%
- {\pgfqpoint{\ifpgfarrowharpoon-4\else-4.5\fi\pgflinewidth}{\ifpgfarrowharpoon3\else2.5\fi\pgflinewidth}}%
- {\pgfqpoint{\ifpgfarrowharpoon-2\else-2.133\fi\pgflinewidth}{\ifpgfarrowharpoon1\else0.6\fi\pgflinewidth}}%
- {\pgfpointorigin}%
- \ifpgfarrowharpoon\else%
- \pgfpathcurveto%
- {\pgfqpoint{-2.133\pgflinewidth}{-0.6\pgflinewidth}}%
- {\pgfqpoint{-4.5\pgflinewidth}{-2.5\pgflinewidth}}%
- {\pgfqpoint{-5.3\pgflinewidth}{-6\pgflinewidth}}%
- \fi%
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{
- name=cm implies,
- setup code={%
- \pgfarrowssetbackend{\pgfinnerlinewidth\pgf@x=0.25\pgf@x\advance\pgf@x by-0.792\pgflinewidth}%
- \pgfarrowssettipend{\pgfinnerlinewidth\pgf@x=-0.25\pgf@x\advance\pgf@x by1.094\pgflinewidth}},
- drawing code={%
- \pgfutil@tempdima\pgflinewidth%
- \pgfsetlinewidth{.5\pgflinewidth-.5*\pgfinnerlinewidth}%
- \pgfsetdash{}{+0pt}%
- \pgfsetroundcap%
- \pgfsetroundjoin%
- \pgfpathmoveto{\pgfqpoint{-0.542\pgfutil@tempdima}{1.1\pgfutil@tempdima}}%
- \pgfpathcurveto%
- {\pgfqpoint{-0.2\pgfutil@tempdima}{0.5\pgfutil@tempdima}}%
- {\pgfqpoint{0.29\pgfutil@tempdima}{0.114\pgfutil@tempdima}}%
- {\pgfqpoint{0.844\pgfutil@tempdima}{0pt}}%
- \pgfpathcurveto%
- {\pgfqpoint{0.29\pgfutil@tempdima}{-0.114\pgfutil@tempdima}}%
- {\pgfqpoint{-0.2\pgfutil@tempdima}{-0.5\pgfutil@tempdima}}%
- {\pgfqpoint{-0.542\pgfutil@tempdima}{-1.1\pgfutil@tempdima}}%
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{
- name=cm bold to,
- setup code={
- \pgfarrowssetbackend{-4.035\pgflinewidth}
- \pgfarrowssettipend{0.5\pgflinewidth}},
- drawing code={%
- \pgfutil@tempdima=0.667\pgflinewidth%
- \pgfsetdash{}{+0pt}
- \pgfsetroundcap
- \pgfsetroundjoin
- \pgfpathmoveto{\pgfqpoint{-5.3\pgfutil@tempdima}{6\pgfutil@tempdima}}
- \pgfpathcurveto
- {\pgfqpoint{-4.5\pgfutil@tempdima}{2.5\pgfutil@tempdima}}
- {\pgfqpoint{-2.133\pgfutil@tempdima}{0.6\pgfutil@tempdima}}
- {\pgfpointorigin}
- \pgfpathcurveto
- {\pgfqpoint{-2.133\pgfutil@tempdima}{-0.6\pgfutil@tempdima}}
- {\pgfqpoint{-4.5\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}
- {\pgfqpoint{-5.3\pgfutil@tempdima}{-6\pgfutil@tempdima}}
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{,
- name=cm bar,
- setup code={%
- \pgfarrowssetbackend{-0.5\pgflinewidth}%
- \pgfarrowssettipend{0.5\pgflinewidth}},
- drawing code={%
- \pgfsetdash{}{+0pt}%
- \pgfsetroundcap%
- \pgfpathmoveto{\pgfqpoint{0pt}{-4.1\pgflinewidth}}%
- \pgfpathlineto{\pgfqpoint{0pt}{4.1\pgflinewidth}}%
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{
- name=cm left hook,
- setup code={%
- \pgfarrowssetbackend{-0.5\pgflinewidth}%
- \pgfarrowssettipend{3.5\pgflinewidth}},
- drawing code={%
- \pgfsetdash{}{+0pt}%
- \pgfsetroundcap%
- \pgfpathmoveto{\pgfqpoint{0pt}{4.8\pgflinewidth}}%
- \pgfpathcurveto%
- {\pgfqpoint{4\pgflinewidth}{4.8\pgflinewidth}}%
- {\pgfqpoint{4\pgflinewidth}{0pt}}%
- {\pgfpointorigin}%
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{
- name=cm *,
- parameters={\ifpgfarrowopen o\fi},
- setup code={
- \pgfarrowssetbackend{-.5\pgflinewidth}
- \pgfarrowssettipend{7.167\pgflinewidth}},
- drawing code={
- \pgfpathcircle{\pgfqpoint{3.333\pgflinewidth}{0pt}}{3.333\pgflinewidth}
- \ifpgfarrowopen\pgfusepathqstroke\else\pgfusepathqfillstroke\fi}}
-
-\pgfdeclarearrow{
- name=lm left hook,
- setup code={
- \pgfarrowssetbackend{+-2\pgflinewidth}%
- \pgfarrowssettipend{+3.5\pgflinewidth}},
- drawing code={
- \pgfsetdash{}{+0pt}
- \pgfsetroundcap
- \pgfpathmoveto{\pgfqpoint{+-1.5\pgflinewidth}{+7\pgflinewidth}}
- \pgfpathcurveto
- {\pgfqpoint{+4.3\pgflinewidth}{+7\pgflinewidth}}
- {\pgfqpoint{+4.3\pgflinewidth}{+\pgflinewidth}}
- {\pgfpointorigin}
- \pgfusepathqstroke}}
-
-\pgfdeclarearrow{
- name=lm bar,
- setup code={%
- \pgfarrowssetbackend{+-0.5\pgflinewidth}%
- \pgfarrowssettipend{+0.5\pgflinewidth}},
- drawing code={%
- \pgfsetdash{}{+0pt}%
- \pgfsetroundcap%
- \pgfpathmoveto{\pgfqpoint{0pt}{-6\pgflinewidth}}%
- \pgfpathlineto{\pgfqpoint{0pt}{6\pgflinewidth}}%
- \pgfusepathqstroke}}
+% ConTeXt-specific stuff
+\pgfutil@IfUndefined{starttikzpicture}{}{%
+ \def\starttikzcd{\tikzcd}%
+ \def\stoptikzcd{\endtikzcd}}
+% Computer modern arrow tips
\pgfkeys{
+ cm to/.tip={Computer Modern Rightarrow[length=+0pt 6.2]},
+ cm bold to/.tip={cm to[scale=0.667]},
+ cm double to/.tip={cm to[sep=+0pt -2.6]cm to},
+ cm bar/.tip={Bar[width=+0pt 8.2 0.89,line cap=round]},
+ cm left hook/.tip={Hooks[width=+0pt 10.8,length=+0pt 3.6,harpoon,line cap=round]},
+ cm implies/.tip={Implies},
cm left to/.tip={cm to[left]},
cm right to/.tip={cm to[right]},
cm right hook/.tip={cm left hook[swap]},
- cm double to/.tip={cm to[sep=0pt -2.8]cm to},
cm to reversed/.tip={cm to[reversed]},
+ cm */.tip={Circle[length=+0pt 7.6]},
cm o/.tip={cm *[open]},
cm |/.tip={cm bar}}%|
% The `Glyph' meta arrow tip
\pgfqkeys{/pgf/arrow keys}{
- glyph math command/.code={\pgfarrowsaddtooptions{\def\tikzcd@glyph{$\csname #1\endcsname$}}},
+ glyph math command/.code={% if csname #1 is undefined, we want it to remain so
+ \pgfarrowsaddtooptions{\def\tikzcd@glyph{$\begingroup\expandafter\endgroup\csname #1\endcsname$}}},
glyph axis/.code={\pgfarrowsaddtooptions{\pgfmathsetlengthmacro\tikzcd@glyph@axis{#1}}},
glyph length/.code={\pgfarrowsaddtooptions{\pgfmathsetlengthmacro\tikzcd@glyph@len{#1}}},
glyph shorten/.code={\pgfarrowsaddtooptions{\pgfmathsetlengthmacro\tikzcd@glyph@shorten{#1}}}}
@@ -496,27 +383,24 @@
\pgftransformyshift{+-\tikzcd@glyph@axis}%
\pgftext[right,base]{\tikzcd@glyph}}}
-% ConTeXt-specific stuff
-\pgfutil@IfUndefined{starttikzpicture}{}{%
- \def\starttikzcd{\tikzcd}%
- \def\stoptikzcd{\endtikzcd}}
-
-% Generic arrow tip selection styles
+% Arrow tip selection styles
\tikzcdset{
- arrow style/.initialize/.style={
- double line/.code={\tikzset{double=\pgfkeysvalueof{/tikz/commutative diagrams/background color}}},
- squiggly/.default={},
- tikzcd to/.tip={>},
- tikzcd bar/.tip={cm bar},
- tikzcd left hook/.tip={cm left hook},
- tikzcd right hook/.tip={tikzcd left hook[swap]},
- tikzcd left to/.tip={tikzcd to[harpoon]},
- tikzcd right to/.tip={tikzcd left to[swap]},
- tikzcd double to/.tip={tikzcd to[]tikzcd to},
- tikzcd to reversed/.tip={tikzcd to[reversed]},
- tikzcd cap/.tip={},
- tikzcd implies cap/.tip={},
- tikzcd implies/.tip={cm implies}},
+ double line/.code={\tikzset{%
+ double equal sign distance,
+ double=\pgfkeysvalueof{/tikz/commutative diagrams/background color}}},
+ dashed/.style={/tikz/dash pattern={on 7\pgflinewidth off 4\pgflinewidth}},
+ tikzcd to/.tip={cm to},
+ tikzcd bar/.tip={cm bar},
+ tikzcd left hook/.tip={cm left hook},
+ tikzcd double to/.tip={cm double to},
+ tikzcd implies/.tip={Implies},
+ tikzcd right hook/.tip={tikzcd left hook[swap]},
+ tikzcd left to/.tip={tikzcd to[harpoon]},
+ tikzcd right to/.tip={tikzcd left to[swap]},
+ tikzcd to reversed/.tip={tikzcd to[reversed]},
+ tikzcd cap/.tip={},
+ tikzcd implies cap/.tip={},
+ tikzcd implies bar/.tip={tikzcd bar},
no tail/.code={\pgfsetarrowsstart{tikzcd cap}},
to head/.code={\pgfsetarrowsend{tikzcd to}},
maps to/.code={\pgfsetarrowsstart{tikzcd bar}},
@@ -534,6 +418,8 @@
Leftrightarrow/.code={\tikzcdset{double line}\pgfsetarrows{tikzcd implies-tikzcd implies}},
mapsto/.code={\pgfsetarrows{tikzcd bar-tikzcd to}},
mapsfrom/.code={\pgfsetarrows{tikzcd to-tikzcd bar}},
+ Mapsto/.code={\tikzcdset{double line}\pgfsetarrows{tikzcd implies bar-tikzcd implies}},
+ Mapsfrom/.code={\tikzcdset{double line}\pgfsetarrows{tikzcd implies-tikzcd implies bar}},
hookrightarrow/.code={\pgfsetarrows{tikzcd right hook-tikzcd to}},
hookleftarrow/.code={\pgfsetarrows{tikzcd to-tikzcd left hook}},
rightharpoonup/.code={\pgfsetarrows{tikzcd cap-tikzcd left to}},
@@ -567,24 +453,25 @@
pre=lineto, pre length=6\pgflinewidth,
#1}}}}
-% The `Computer Modern' arrow style
-\pgfkeysdef{/tikz/commutative diagrams/arrow style/Computer Modern}{%
- \tikzcdset{
- arrow style/.initialize,
- double line/.append code={\tikzset{double distance=3.85\pgflinewidth}},
- tikzcd to/.tip={cm to},
- tikzcd double to/.tip={cm double to},
- dashed/.style={/tikz/dash pattern={on 7\pgflinewidth off 4\pgflinewidth}}}}
-
% The `Latin Modern' arrow style
\pgfkeysdef{/tikz/commutative diagrams/arrow style/Latin Modern}{%
\tikzcdset{
- arrow style=Computer Modern,
- tikzcd left hook/.tip={lm left hook},
- tikzcd bar/.tip={lm bar}}}
+ tikzcd bar/.tip={Bar[width=+0pt 12 .992,line cap=round]},
+ tikzcd left hook/.tip={Hooks[width=+0pt 15,length=+0pt 4.2,arc=190,harpoon,line cap=round]}}}
+
+% The `tikz' arrow style
+\pgfkeysdef{/tikz/commutative diagrams/arrow style/tikz}{%
+ \tikzcdset{
+ tikzcd to/.tip={>},
+ tikzcd bar/.tip={Bar[width=+3pt 4 0.9]},
+ tikzcd left hook/.tip={Hooks[harpoon]},
+ tikzcd double to/.tip={tikzcd to[]tikzcd to}}}
% The `math font' arrow style
%
+% If your font does not define the command \mapsfrom, do so by saying
+% \def\mapsfrom{\pgfpicture\pgfsetbaseline{+0pt}\pgftransformxscale{-1}\pgftext[base]{$\mapsto$}\endpgfpicture}
+%
% The method used to guess the correct value of `double distance'
% inside the `double line' style is not robust at all. If it fails,
% set
@@ -592,20 +479,18 @@
% and find the correct value for `double distance' by trial and error
% (or measure the distance between the \Rightarrow stems in a font
% editor).
+%
\pgfkeysdef{/tikz/commutative diagrams/arrow style/math font}{%
- \pgfutil@IfUndefined{mapsfrom}
- {\def\tikzcd@mapsfrom{\pgfpicture\pgfsetbaseline{+0pt}\pgftransformxscale{-1}\pgftext[base]{$\mapsto$}\endpgfpicture}}
- {\def\tikzcd@mapsfrom{\mapsfrom}}
\tikzcdset{
- arrow style/.initialize,
tikzcd to/.tip={Glyph[glyph math command=rightarrow]},
tikzcd cap/.tip={Glyph[glyph math command=leftarrow]},
tikzcd to reversed/.tip={Glyph[glyph math command=leftarrowtail]},
- tikzcd bar/.tip={Glyph[glyph math command=tikzcd@mapsfrom]},
+ tikzcd bar/.tip={Glyph[glyph math command=mapsfrom]},
tikzcd left hook/.tip={Glyph[glyph math command=hookleftarrow]},
tikzcd right hook/.tip={Glyph[glyph math command=hookleftarrow, swap]},
tikzcd implies/.tip={Glyph[glyph math command=Rightarrow, glyph length=1.2ex]},
tikzcd implies cap/.tip={Glyph[glyph math command=Leftarrow]},
+ tikzcd implies bar/.tip={Glyph[glyph math command=Mapsfrom]},
tikzcd double to/.tip={Glyph[glyph math command=twoheadrightarrow, glyph length=1.4ex]},
tikzcd left to/.tip={Glyph[glyph math command=rightharpoonup]},
tikzcd right to/.tip={Glyph[glyph math command=rightharpoonup,swap]},
@@ -613,33 +498,6 @@
dashed/.code={\tikzset{dash pattern=on 0.8ex off 0.4ex, dash phase=0.8ex}},
squiggly/.default={pre length=1ex, post length=1ex}}}
-% The `arrows.meta' arrow style
-\pgfkeysdef{/tikz/commutative diagrams/arrow style/arrows.meta}{%
- \pgfutil@ifundefined{tikz@library@arrows.meta@loaded}%
- {\pgfutil@packageerror{tikz-cd}{You need to say %
- \string\usetikzlibrary{arrows.meta} to use the `arrows.meta' arrow style}{}}{}%
- \tikzcdset{
- arrow style/.initialize,
- double line/.append style={/tikz/double equal sign distance},
- tikzcd bar/.tip={Bar},
- tikzcd left hook/.tip={Hooks[harpoon]},
- tikzcd implies/.tip={Implies},
- dashed/.style={/tikz/dashed}}}
-
-% The `tikz' arrow style
-\pgfkeysdef{/tikz/commutative diagrams/arrow style/tikz}{%
- \pgfutil@ifundefined{tikz@library@arrows@loaded}%
- {\pgfutil@packageerror{tikz-cd}{You need to say %
- \string\usetikzlibrary{arrows} to use the `tikz' arrow style}{}}{}%
- \tikzcdset{
- arrow style/.initialize,
- double line/.append style={/tikz/double equal sign distance},
- tikzcd bar/.tip={|},%|
- tikzcd left hook/.tip={left hook},
- tikzcd left to/.tip={left to},
- tikzcd implies/.tip={implies},
- dashed/.style={/tikz/dashed}}}
-
% Default settings
\tikzcdset{
every arrow/.style={
@@ -659,8 +517,7 @@
/tikz/commutative diagrams/row sep=normal,
/tikz/commutative diagrams/column sep=normal,
/tikz/baseline=+0pt},
- arrow style=Computer Modern,
- 1-row diagram/.style={/tikz/baseline=(\tikzcdmatrixname.base)},
+ 1-row diagram/.style={/tikz/baseline/.expanded=(\tikzcdmatrixname.base)},
math mode=true,
center yshift/.initial=axis_height,
row sep/huge/.initial=+3.6em,
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 4ef22e1d4f7..43159994345 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1196,6 +1196,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'splitindex' => '&POST_do_man',
'tap', => '&POSTtap',
'texdraw', => '&POSTtexdraw',
+ 'tikz-cd', => '&POSTtikz_cd',
'tipa-de' => '&POST_rmsymlink',
'xecyr' => '&POSTxecyr',
'xetex-pstricks' => '&POSTxetexpstricks',
@@ -5660,6 +5661,12 @@ sub POSTtexdraw {
# or forcing the output file name.
}
+sub POSTtikz_cd {
+ print "POST$package - generic file in generic subdirectory\n";
+ &xchdir ("$TOPDEST/texmf-dist/tex");
+ &mv_with_mkdir ("latex/tikz-cd/tikzlibrary*tex", "tex/generic/tikz-cd/");
+}
+
sub POSTxecyr {
print "POST$package - handling bat, moving language.dat.add from runtime\n";
&SYSTEM ("$MV $DEST/tex/generic/xecyr/language.dat.add"