diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex | 219 |
1 files changed, 219 insertions, 0 deletions
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 new file mode 100644 index 00000000000..3d929a2c55c --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-cd/tikz-cd-doc.tex @@ -0,0 +1,219 @@ +\documentclass{article} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,tikz-cd} +\usepackage{pgfmanualstyle} +\usepackage{hyperref} + +\hypersetup{pdftitle={The tikz-cd package}, + pdfauthor={FlorĂȘncio Neves}, + pdfkeywords={commutative diagrams, latex, tikz, pgf}, + colorlinks + } + +\title{The \texttt{tikz-cd} package} +\author{\normalsize FlorĂȘncio Neves\footnote{\emph{E-mail:} \href{mailto:florencioneves@gmail.com}{\texttt{florencioneves@gmail.com}}}} +\date{\normalsize Version 0.1\footnote{\color{red}This is a preliminary version. Future versions may not be backwards-compatible. Comments are welcome.}} + +\makeatletter +\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8} +\def\tikzcd@bgcolor{graphicbackground} +\makeatother + +\newcommand{\displayarrow}[2][]{\texttt{#2} & yelds \tikz[baseline=-2.5pt] \draw[#2-#2, line width=0.44pt, #1] (0,0) -- (1,0);} +\newcommand{\displayarrowstyle}[2][]{\texttt{#2} & yelds \tikz[baseline=-2.5pt] \draw[/commutative diagrams/current arrows, #2, #1] (0,0) -- (0.4,0);} + +\begin{document} +\maketitle + +The general-purpose drawing package \tikzname{} can be used to typeset +commutative diagrams and other kinds of mathematical pictures, +generating high-quality results (see for example \cite{lenders} or +\cite{milne}). The purpose of this package is to make the process of +creation of such diagrams easier by providing a convenient set of +macros and reasonable default settings. This package also includes an +arrow tip library that match closely the arrows present in the +Computer Modern typeface. + +PGF version 2.10 is required. + +\tableofcontents + +\section{Basic usage} +\label{sec:basic-usage} + +Commutative diagrams are created with the |tikzcd| environment. Its +content describes a matrix, like the |\matrix| command in \tikzname{} +or the |align| environment in \LaTeX. Everything is typeset in math +mode, but you will probably want use \texttt{tikzcd} inside an +|equation| environment or inside |\[ \]|, so that the diagram will be +placed on a new line and centered. + +\subsection{Inserting arrows} +\label{sec:inserting-arrows} + +Inside the |tikzcd| environment, the command |\arrow| is provided to +allow insertion of arrows. In its simplest form, it takes one +argument, a string containing the characters |l|, |r|, |u| or |d|, +standing for left, right, up and down, that determine the arrow +target. A label can be placed on this arrow by providing a second +argument. +\begin{codeexample}[] + \begin{tikzcd} + A \arrow{ld} \arrow{l}{\phi} & B \\ + & C + \end{tikzcd} +\end{codeexample} + +You can control the behavior of the arrow by placing an argument +inside square braces before the direction parameter. It may contain +anything that can be passed as an argument to a \tikzname{}'s |edge| +operator. Similarly, the label can be modified by an argument in +square braces right before it. It may contain anything that can be +passed to a |node| operator. +\begin{codeexample}[] +\begin{tikzcd} + A \arrow{l}{\psi} \arrow[color=red]{d} + & B \arrow{d}[color=red]{\psi} \\ + C \arrow[color=red]{l}[color=blue]{\eta} + & D +\end{tikzcd} +\end{codeexample} + +If you want to save typing, the command |\ar| is provided as a +shortcut to |\arrow|. There are also commands |\lar|, |\rar|, |\uar| +and |\dar|, that act like |\arrow{l}|, |\arrow{r}| and so forth. They +can take up to three optional argument:\ one in square braces to +control the arrow, one in square braces to control the label, and one +in curly braces to specify a label. Thus, the previous diagram can be +rewritten as follows. +\begin{codeexample}[] +\begin{tikzcd} + A \lar{\psi} \dar[color=red] + & B \dar[color=red]{\psi} \\ + C \lar[color=red][color=blue]{\eta} + & D +\end{tikzcd} +\end{codeexample} + +\subsection{Changing arrow tips} +\label{sec:changing-arrow-tips} + +If you are familiar with \tikzname, you certainly noticed that you can +produce different kids of arrows by passing arguments like |right hook->| +to the |\arrow| command. This package provides an alternative +way of doing this. Namely, there are styles named after \LaTeX{} +arrow producing commands for this purpose. Thus, instead of +|\arrow[right hook->]{l}|, you can use |\arrow[hookrightarrow]{l}|, as +in the example below. +\begin{codeexample}[] + \begin{tikzcd} + X \arrow[hookrightarrow]{l} \arrow[dashed]{ld} + & \bar{X} \arrow{d}\\ + & Y + \end{tikzcd} +\end{codeexample} + +The complete list of arrow types available so far is given below. It +will be made comprehensive in the future. + +\begin{tabular}{ll} + \displayarrowstyle{rightarrow}\\ + \displayarrowstyle{leftarrow}\\ + \displayarrowstyle{hookrightarrow}\\ + \displayarrowstyle{hookleftarrow}\\ + \displayarrowstyle{hookrightarrow}\\ + \displayarrowstyle{rightharpoonup}\\ + \displayarrowstyle{rightharpoondown}\\ + \displayarrowstyle{leftharpoonup}\\ + \displayarrowstyle{leftharpoondown}\\ +\end{tabular} + +\section{Changing the appearance of diagrams} +\label{sec:chang-appe-diagr} + +In the future, a customization scheme using |pgfkeys| will be implemented. For now, you can change the appearance of diagrams by understanding some of |tikz-cd|'s internals. The |tikzcd| environment generates codes with the following basic structure: +\begin{codeexample}[code only] + \begin{tikzpicture}[ ... ] + \matrix (m) [ ... ] { + & ... & \\ + & ... & \\}; + \path[ ... ] ...; + \end{tikzpicture} +\end{codeexample} +There are styles +\begin{quote} +|/commutative diagrams/picture style|,\\ +|/commutative diagrams/matrix style|, and\\ +|/commutative diagrams/path style|\\ +\end{quote} +that are applied at the relevant places. By appending things to these styles, you can control the behavior of diagrams quite arbitrarily. The arrow tip styles are stored in |/commutative diagrams/current arrows|. + + +\section{Computer Modern arrow tips} +\label{sec:comp-modern-arrow} + +By using the mechanism explained in \S\ref{sec:changing-arrow-tips}, it is not necessary to know the technical details in this section. + +The naming scheme of the Computer Modern-like arrow tips provided by this package follows that of |pgf|'s |arrows| library, as described in Section 23 of the |pgf| manual. You can of course use these arrow tips outside the |tikzcd| environment; in this case, you will probably want to know that in order to match the Computer Modern font at size $10\,\mathrm{pt}$, it is necessary to set \texttt{line width} to $0.4\,\mathrm{pt}$; for larger font sizes, scale this parameter accordingly. + + +\begin{description} +\item[Basic arrow tips]\ \\ +\begin{tabular}{ll} + \displayarrow{cm to}\\ + \displayarrow{cm to reversed}\\ + \displayarrow[line width=0.66pt]{cm bold to} (with a line 50\% thicker)\\ + \texttt{cm \char`\|} & yelds \tikz[baseline=-2.5pt] \draw[cm |-cm |, line width=0.44pt] (0,0) -- (1,0);\\ + \displayarrow{cm o}\\ + \displayarrow{cm *}\\ + \displayarrow{cm cap}\\ +\end{tabular} + +\item[Hooks]\ \\ +\begin{tabular}{ll} + \displayarrow{cm left hook}\\ + \displayarrow{cm right hook}\\ +\end{tabular} + + +\item[Double arrow tips]\ \\ +\begin{tabular}{ll} + \displayarrow{cm double to}\\ + \displayarrow{cm double to reversed}\\ +\end{tabular} + +\item[Partial arrow tips]\ \\ +\begin{tabular}{ll} + \displayarrow{cm left to}\\ + \displayarrow{cm left to reversed}\\ + \displayarrow{cm right to}\\ + \displayarrow{cm right to reversed}\\ +\end{tabular} +\end{description} + +\section{Some examples} +\label{sec:some-examples} + +The following example is taken from \cite{milne}. +\begin{codeexample}[] +\begin{tikzcd} + T + \arrow[bend left]{dll}{x} + \arrow[bend right]{ddl}{y} + \arrow[dotted]{dl}[description]{(x,y)} & & \\ + & X \times_Z Y \arrow{l}{p} \arrow{d}{q} & X \arrow{d}{f} \\ + & Y \arrow{l}{g} & Z +\end{tikzcd} +\end{codeexample} + +\begin{thebibliography}{9} +\bibitem{lenders} + Felix Lenders, + \emph{Commutative diagrams using TikZ}. + Available at \url{http://www.felixl.de/commu.pdf}. +\bibitem{milne} + James Milne, + \emph{Guide to commutative diagrams}. + Available at \url{http://www.jmilne.org/not/CDGuide.html}. +\end{thebibliography} +\end{document} |