PS

TikZメモ

@deprecated

代わりに Format selector for 1401.7220v2 の source を参照されたし。

圏論の図を描くのに必須らしいlatexのTikZのメモ

f:id:mbps:20131018140748p:plain

\documentclass[convert={density=108}, varwidth, border=5pt]{standalone}

convertで図をpngで出力。varwidthで、図だけがクロップされる。borderは、なぜか必要(後述)。

\usepackage{tikz}
\usepackage{amsmath}

\begin{document}

\tikzset{auto}
\tikzstyle{every node}=[font=\large]
\tikzset{>=stealth}

autoにすると、矢印と  x,f 等のテキストラベルが重ならないようになる。

\newcommand{\dash}{\text{--}}

\textrmでは、添字の場合にうまく表示されない。

\begin{figure}
    \centering

キャプションを付けるにはfigureに入れるらしい。

    \begin{tikzpicture}
        \begin{scope}
            \node (X) at (0,2) {$X$};
            \node (X') at (0,0) {$X'$};

            \draw[->] (X) to node [swap] {$x$} (X');
        \end{scope}

swapでテキストラベルの位置を上部から下部に変えられる。

        \node (Maps) at (1,1) {$\mapsto$};

        \begin{scope}[shift={(2,2)}]
            \node (A) at (0,0) {$A$};
            \node (X) at (2,0) {$X$};

            \draw[->] (A) to node {$f$} (X);
        \end{scope}

nodeは一応入れ子に出来るが、期待したようにはならないので、scopeに入れて座標をshiftする。 nodeの名前も局所化できるようだ。

        \begin{scope}[shift={(2,0)}]
            \node (A) at (0,0) {$A$};
            \node (X) at (2,0) {$X$};
            \node (X') at (4,0) {$X'$};

            \draw[->] (A) to node [swap] {$f$} (X);
            \draw[->] (X) to node [swap] {$x$} (X');
        \end{scope}
        
        \draw[|->, shorten >=0.5cm, shorten <=0.5cm] (3,2) to (3,0);

    \end{tikzpicture} \\
    Hom$(A, \dash)$

ナンバリングなしのキャプションは単純にこうするらしい。(caption*はうまく動かなかった。) captionを使わないと、なぜか文字の下部が途中で切られるので、documentclassborderで水増ししておく。

\end{figure}

\end{document}

参考文献