From 349fe493a0e1eb1b89143d34c91ab4403430d36f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 9 Mar 2017 22:50:25 +0000 Subject: tikz-palattice (8mar17) git-svn-id: svn://tug.org/texlive/trunk@43442 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/tikz-palattice/tikz-palattice.sty | 92 ++++++++++++++++++---- 1 file changed, 78 insertions(+), 14 deletions(-) (limited to 'Master/texmf-dist/tex/latex/tikz-palattice') diff --git a/Master/texmf-dist/tex/latex/tikz-palattice/tikz-palattice.sty b/Master/texmf-dist/tex/latex/tikz-palattice/tikz-palattice.sty index 064d990b97f..242c0cd85e5 100644 --- a/Master/texmf-dist/tex/latex/tikz-palattice/tikz-palattice.sty +++ b/Master/texmf-dist/tex/latex/tikz-palattice/tikz-palattice.sty @@ -1,5 +1,5 @@ %% tikz-palattice.sty -%% Copyright 2015 J. Schmidt +%% Copyright 2017 J. Schmidt %% tikz-palattice LaTeX package % % This work may be distributed and/or modified under the @@ -18,13 +18,14 @@ % and the 5 example files example1_linear.tex, example2_circular.tex, % example3_coordinates.tex, example4_labels.tex and elsa.tex -\ProvidesPackage{tikz-palattice}[2015/03/18 v2.21] +\ProvidesPackage{tikz-palattice}[2017/03/09 v2.3] \RequirePackage{tikz} \RequirePackage{ifthen} \RequirePackage{siunitx} \RequirePackage{xargs} \RequirePackage{etoolbox} -\usetikzlibrary{calc,positioning,fit} +\RequirePackage{iflang} +\usetikzlibrary{calc,positioning,fit,chains} \usetikzlibrary{scopes} \pgfdeclarelayer{background} \pgfsetlayers{background,main} @@ -67,6 +68,9 @@ \global\providetoggle{sourc} \global\settoggle{sourc}{false} \global\providetoggle{scree} \global\settoggle{scree}{false} \global\providetoggle{valv} \global\settoggle{valv}{false} +% custom legend +\pgfkeys{/pal/customlegendkeys/.initial = {nix}} +\def\emptycustomlegendkeys{nix} }{% %end \endtikzpicture @@ -167,6 +171,51 @@ } } + + +% legend text defaults +\IfLanguageName{ngerman}{% +\pgfkeyssetvalue{/pal/legendtxt/dipole}{Dipol} +\pgfkeyssetvalue{/pal/legendtxt/quadrupole}{Quadrupol} +\pgfkeyssetvalue{/pal/legendtxt/sextupole}{Sextupol} +\pgfkeyssetvalue{/pal/legendtxt/kicker}{Kicker} +\pgfkeyssetvalue{/pal/legendtxt/corrector}{Korrektor} +\pgfkeyssetvalue{/pal/legendtxt/solenoid}{Solenoid} +\pgfkeyssetvalue{/pal/legendtxt/cavity}{Hochfrequenz} +\pgfkeyssetvalue{/pal/legendtxt/source}{Quelle} +\pgfkeyssetvalue{/pal/legendtxt/screen}{Schirm} +\pgfkeyssetvalue{/pal/legendtxt/valve}{Ventil} +}{% +\pgfkeyssetvalue{/pal/legendtxt/dipole}{Dipole} +\pgfkeyssetvalue{/pal/legendtxt/quadrupole}{Quadrupole} +\pgfkeyssetvalue{/pal/legendtxt/sextupole}{Sextupole} +\pgfkeyssetvalue{/pal/legendtxt/kicker}{Kicker} +\pgfkeyssetvalue{/pal/legendtxt/corrector}{Corrector} +\pgfkeyssetvalue{/pal/legendtxt/solenoid}{Solenoid} +\pgfkeyssetvalue{/pal/legendtxt/cavity}{Cavity} +\pgfkeyssetvalue{/pal/legendtxt/source}{Source} +\pgfkeyssetvalue{/pal/legendtxt/screen}{Screen} +\pgfkeyssetvalue{/pal/legendtxt/valve}{Valve} +} + +% change legend text +\newcommand{\setlegendtext}[2]{% + \pgfkeys{/pal/legendtxt/#1=#2} +} + + +% add custom legend entry +\newcommand{\addlegendentry}[2]{% + \pgfkeys{/pal/customlegendkeys/.get = \lktemp} + \ifdefequal{\lktemp}{\emptycustomlegendkeys}{% + \pgfkeyssetvalue{/pal/customlegendkeys}{#1}% + }{% + \pgfkeys{/pal/customlegendkeys/.append = {,#1}}% + }% + \pgfkeys{/pal/customlegendimg/#1/.style = {#2}}% +} + + %legend (types that occured in the lattice before this command) \newcommandx{\legend}[2][2=1]{% \coordinate (legendstart) at ($(0,0)!\scal*20!#1$); @@ -186,27 +235,42 @@ \tikzset{drift/.append style={draw=none}} \northlabels% \setlabelcolor{black}% - \iftoggle{dip}{\dipole{Dipole}{\l}{0}[s][\h]\xdef\points{(elementlabel\j) - \points}\drift{\dist}}{}% - \iftoggle{quad}{\quadrupole{Quadrupole}{\l}[\h]\xdef\points{(elementlabel\j) +\setlabeldistance{\h}% +\setlabelfont{\normalsize}% + \iftoggle{dip}{\dipole{\pgfkeysvalueof{/pal/legendtxt/dipole}}{\l}{0}[r][\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{sext}{\sextupole{Sextupole}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{quad}{\quadrupole{\pgfkeysvalueof{/pal/legendtxt/quadrupole}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{correct}{\corrector{Corrector}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{sext}{\sextupole{\pgfkeysvalueof{/pal/legendtxt/sextupole}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{kick}{\kicker{Kicker}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{correct}{\corrector{\pgfkeysvalueof{/pal/legendtxt/corrector}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{cav}{\cavity{Cavity}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{kick}{\kicker{\pgfkeysvalueof{/pal/legendtxt/kicker}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{sol}{\solenoid{Solenoid}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{cav}{\cavity{\pgfkeysvalueof{/pal/legendtxt/cavity}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{sourc}{\source{Source}{\l}[\h]\xdef\points{(elementlabel\j) + \iftoggle{sol}{\solenoid{\pgfkeysvalueof{/pal/legendtxt/solenoid}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{scree}{\screen{Screen}[\l]\xdef\points{(elementlabel\j) + \iftoggle{sourc}{\source{\pgfkeysvalueof{/pal/legendtxt/source}}{\l}[\h]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% - \iftoggle{valv}{\drift{\dist}\valve{Valve}\xdef\points{(elementlabel\j) + \iftoggle{scree}{\screen{\pgfkeysvalueof{/pal/legendtxt/screen}}[\l]\xdef\points{(elementlabel\j) \points}\drift{\dist}}{}% + \iftoggle{valv}{\drift{\dist}\valve{\pgfkeysvalueof{/pal/legendtxt/valve}}\xdef\points{(elementlabel\j) + \points}\drift{\dist}\drift{\dist}}{}% \end{scope} + % custom entries (addlegendentry) + \edef\mylist{\pgfkeysvalueof{/pal/customlegendkeys}}% + \ifdefequal{\mylist}{\emptycustomlegendkeys}{}{% + \node[anchor=north west,inner sep=0,outer sep=0,xshift=#2*-2mm] at (east\j) { + \begin{tikzpicture}[start chain=going below,node distance=2mm,scale=#2,transform shape] + \foreach \ele in \mylist {% + \node[on chain, draw, thin,/pal/customlegendimg/\ele, minimum width=\h*10mm, minimum height=\l*10mm] (n) {};% + \node[anchor=west,xshift=5.15mm] (ntxt) at (n.center) {\ele};% + \xdef\points{($(ntxt.south east)+#2*(2mm,-2mm)$)\points}% + } + \end{tikzpicture} + }; + } \node[draw=black, rounded corners, fit=\points] {}; \pgfmathsetmacro{\scal}{\savescal} \pgfmathsetmacro{\angle}{\saveang} -- cgit v1.2.3