From b703296cf7b671ca8049438804e612fc7a4e055a Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 2 Jan 2019 12:10:40 +0100 Subject: updated tikzit.sty to only apply scaling if included by \tikzfig or passed the [tikzfig] style --- tex/sample/sample.tex | 21 +++++++++++++++++++++ tex/sample/tikzit.sty | 24 +++++++++++++++++------- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/tex/sample/sample.tex b/tex/sample/sample.tex index 57ba88c..bbb20e0 100644 --- a/tex/sample/sample.tex +++ b/tex/sample/sample.tex @@ -5,6 +5,8 @@ \begin{document} +This is a demonstration of \texttt{tikzit.sty}, which provides some convenience macros for including \texttt{.tikz} files generated by TikZiT. Note this file is optional, however if you choose to omit it from your \LaTeX{} source, you should at least declare the layers, dummy properties, and \texttt{none} style from \texttt{tikzit.sty} for TikZiT figures to build correctly. + A centered tikz picture: \ctikzfig{fig} @@ -14,5 +16,24 @@ A tikz picture as part of mathematics: \tikzfig{fig} \end{equation} +It is also possible to paste a \texttt{tikzpicture} directly from TikZiT, without using the \texttt{$\backslash$tikzfig} macro. In that case, the \texttt{tikzfig} option should be given to the \texttt{tikzpicture} environment to get the same baseline and scaling as the other figures: +\[ +\begin{tikzpicture}[tikzfig] + \begin{pgfonlayer}{nodelayer} + \node [style=red node] (0) at (0, 1) {}; + \node [style=blue node 2] (1) at (1, 0) {}; + \node [style=blue node] (2) at (-1, 0) {}; + \node [style=yellow square] (3) at (0, -1) {foo}; + \end{pgfonlayer} + \begin{pgfonlayer}{edgelayer} + \draw [in=-90, out=0] (3.center) to (1.center); + \draw [bend right=45, looseness=1.25] (3.center) to (2.center); + \draw (2.center) to (0.center); + \draw (0.center) to (1.center); + \end{pgfonlayer} +\end{tikzpicture} +\] + + \end{document} diff --git a/tex/sample/tikzit.sty b/tex/sample/tikzit.sty index 9c51148..5ca1b46 100644 --- a/tex/sample/tikzit.sty +++ b/tex/sample/tikzit.sty @@ -3,30 +3,40 @@ \usetikzlibrary{arrows} \usetikzlibrary{shapes,shapes.geometric,shapes.misc} -\tikzstyle{every picture}=[baseline=-0.25em,scale=0.5] +% this style is applied by default to any tikzpicture included via \tikzfig +\tikzstyle{tikzfig}=[baseline=-0.25em,scale=0.5] +% these are dummy properties used by TikZiT, but ignored by LaTex \pgfkeys{/tikz/tikzit fill/.initial=0} \pgfkeys{/tikz/tikzit draw/.initial=0} \pgfkeys{/tikz/tikzit shape/.initial=0} \pgfkeys{/tikz/tikzit category/.initial=0} +% standard layers used in .tikz files +\pgfdeclarelayer{edgelayer} +\pgfdeclarelayer{nodelayer} +\pgfsetlayers{background,edgelayer,nodelayer,main} + +% style for blank nodes +\tikzstyle{none}=[inner sep=0mm] + +% include a .tikz file \newcommand{\tikzfig}[1]{% +{\tikzstyle{every picture}=[tikzfig] \IfFileExists{#1.tikz} {\input{#1.tikz}} {% \IfFileExists{./figures/#1.tikz} {\input{./figures/#1.tikz}} {\tikz[baseline=-0.5em]{\node[draw=red,font=\color{red},fill=red!10!white] {\textit{#1}};}}% - }% + }}% } + +% the same as \tikzfig, but in a {center} environment \newcommand{\ctikzfig}[1]{% \begin{center}\rm \tikzfig{#1} \end{center}} -\pgfdeclarelayer{edgelayer} -\pgfdeclarelayer{nodelayer} -\pgfsetlayers{background,edgelayer,nodelayer,main} -\tikzstyle{none}=[inner sep=0mm] +% fix strange self-loops, which are PGF/TikZ default \tikzstyle{every loop}=[] -\tikzstyle{mark coordinate}=[inner sep=0pt,outer sep=0pt,minimum size=3pt,fill=black,circle] -- cgit v1.2.3