From 1c41e85629a5e3d3cc256b6912968a767561b3c3 Mon Sep 17 00:00:00 2001 From: Martin Scheidt Date: Wed, 1 Jun 2022 14:32:52 +0200 Subject: [PATCH] handeling color background and foreground with native xcolor alias "\colorlet{}{}" instead of pgf macro --- CHANGELOG.md | 15 ++- doc/examples/station_berg.tex | 2 +- doc/examples/station_chamstadt.tex | 2 +- doc/manual.pdf | Bin 245411 -> 245458 bytes doc/manual.tex | 14 +- doc/versionhistory.tex | 3 + src/tikz-trackschematic.sty | 3 + src/tikzlibrarytrackschematic.code.tex | 3 + ...brarytrackschematic.constructions.code.tex | 50 +++---- ...kzlibrarytrackschematic.electrics.code.tex | 68 +++++----- ...ikzlibrarytrackschematic.measures.code.tex | 30 ++--- ...ikzlibrarytrackschematic.topology.code.tex | 122 ++++++++---------- ...rarytrackschematic.trafficcontrol.code.tex | 94 ++++++-------- ...ikzlibrarytrackschematic.vehicles.code.tex | 36 ++---- test/a0_landscape_adjustbox.tex | 2 +- test/a0_landscape_native.tex | 2 +- test/a5_landscape_adjustbox.tex | 2 +- test/a5_landscape_native.tex | 2 +- 18 files changed, 212 insertions(+), 238 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e142fd4..6acf4ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Changelog + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), @@ -8,10 +9,18 @@ Categories: Added, Changed, Deprecated, Removed, Fixed, and Security. ## [Unreleased] -### Added +### Todo * i18n option + +## Version [0.7.1] - 2022-06-02 + +### Changed + + * handeling color background and foreground with native xcolor alias "\colorlet{}{}" instead of pgf macro + + ## Version [0.7.0] - 2022-04-02 ### Added @@ -31,6 +40,7 @@ Categories: Added, Changed, Deprecated, Removed, Fixed, and Security. * foreground of sidetrack (alias) * PackageWarning Error in development mode + ## Version [0.6.3] - 2022-02-15 ### Added @@ -149,7 +159,8 @@ Categories: Added, Changed, Deprecated, Removed, Fixed, and Security. Basic concept of a library with railway topology symbols and some examples. -[Unreleased]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.7.0...master +[Unreleased]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.7.1...master +[0.7.1]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.7.0...v0.7.1 [0.7.0]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.6.3...v0.7.0 [0.6.3]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.6.2...v0.6.3 [0.6.2]: https://github.com/railtoolkit/tikz-trackschematic/compare/v0.6.1...v0.6.2 diff --git a/doc/examples/station_berg.tex b/doc/examples/station_berg.tex index b925392..bb7b9cf 100644 --- a/doc/examples/station_berg.tex +++ b/doc/examples/station_berg.tex @@ -9,7 +9,7 @@ \begin{document} \begin{tikzpicture}[font=\sffamily] { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 2,1.3) {to and from\\ Arnau}; \node at (21,3.3) {{\LARGE Bf Berg}}; \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt}; diff --git a/doc/examples/station_chamstadt.tex b/doc/examples/station_chamstadt.tex index 1824785..79ba07c 100644 --- a/doc/examples/station_chamstadt.tex +++ b/doc/examples/station_chamstadt.tex @@ -9,7 +9,7 @@ \begin{document} \begin{tikzpicture}[font=\sffamily] { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 5,1.3) {to and from\\ Berg}; \node at (21,3.9) {{\LARGE Bf Chamstadt}}; \node[left,align=right] at (37.5,1.3) {to and from\\ Dornroda}; diff --git a/doc/manual.pdf b/doc/manual.pdf index 9f87d7b594ca33cde35ad70aa4e9a357c71ae506..bf1605111c894992af6d3fe8d8a901ed049b050a 100644 GIT binary patch delta 33899 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,>={Stealth[\foreground,inset=0pt,angle=50:0.2cm]},shorten <=1pt,shorten >=1pt] (#2) -- (#4)% arrow tips - node[hectometer base=(current bounding box.center),text=\foreground,midway,sloped,rotate=90] {#6};% label + \path[draw=background,<->,>={Stealth[foreground,inset=0pt,angle=50:0.2cm]},shorten <=1pt,shorten >=1pt] (#2) -- (#4)% arrow tips + node[hectometer base=(current bounding box.center),text=foreground,midway,sloped,rotate=90] {#6};% label }% % symbology entry \tikzset{% @@ -230,7 +222,7 @@ (0,0) -- (ts-hm-b1) -- (ts-hm-b2) -- (ts-hm-l);% %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \node[font=\sffamily,text=\hectometercolor,rotate=-90,\orientation,align=\align,fill=\background] at (ts-hm-l) {\labelcontent};% + \node[font=\sffamily,text=\hectometercolor,rotate=-90,\orientation,align=\align,fill=background] at (ts-hm-l) {\labelcontent};% }% }},% END % symbology entry diff --git a/src/tikzlibrarytrackschematic.topology.code.tex b/src/tikzlibrarytrackschematic.topology.code.tex index 4d98af5..c0e5f1a 100644 --- a/src/tikzlibrarytrackschematic.topology.code.tex +++ b/src/tikzlibrarytrackschematic.topology.code.tex @@ -18,14 +18,6 @@ \pgfkeys{% /tikz/trackschematic/.is family,% /tikz/trackschematic/.cd,% - %% color foreground - foreground/.store in=\foreground,% - foreground=black,% DEFAULT - /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% - %% color background - background/.store in=\background,% - background=white,% DEFAULT - /tikz/background/.forward to=/tikz/trackschematic/background,% %% face face/.value required,% forward OR backward face/.store in=\face,% @@ -67,11 +59,11 @@ % % commands \newcommand\maintrack{}% just for safety -\def\maintrack{\path[draw=\foreground,MainTrack]}% \maintrack (coord1) -- (coord2); +\def\maintrack{\path[draw=foreground,MainTrack]}% \maintrack (coord1) -- (coord2); \newcommand\secondarytrack{}% just for safety -\def\secondarytrack{\path[draw=\foreground,SecondaryTrack]}% \secondarytrack (coord1) -- (coord2); +\def\secondarytrack{\path[draw=foreground,SecondaryTrack]}% \secondarytrack (coord1) -- (coord2); \newcommand\sidetrack{}% just for safety -\def\sidetrack{\path[draw=\foreground,SecondaryTrack]}% alias for \secondarytrack +\def\sidetrack{\path[draw=foreground,SecondaryTrack]}% alias for \secondarytrack % %% symbol definition \tikzset{% @@ -109,7 +101,7 @@ \def\labelcontent{#3} %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={fill=\background,text=\foreground}};% + \tikzset{every node/.style={fill=background,text=foreground}};% \coordinate (ts-tl-l) at (0,0);% \ifdefstring{\labelcoord}{(none)}{% default coord }{% initialize if NOT default @@ -163,12 +155,12 @@ }% end \ifdefstring{\face} %% symbol \ifdefstring{\friction}{none}{% none friction - \path[draw=\foreground, line width=1pt]% + \path[draw=foreground, line width=1pt]% ($\facefactor*(-0.1,0) + (0,0.2)$) -- ++($\facefactor*( 0.1,0)$) -- ++(0,-0.4) -- ++ ($\facefactor*(-0.1,0)$);% bufferstop marker }{% friction - \path[draw=\foreground, line width=1pt]% + \path[draw=foreground, line width=1pt]% ($\facefactor*(-\friction,0) + \facefactor*(-0.05,0) + (0,0.2)$) -- ++($\facefactor*(0.1,0)$) -- ++(0,-0.4) -- ++ ($\facefactor*(-0.1,0)$);% bufferstop marker - \fill[\foreground] (0,0) circle (0.06);% track closure indicator + \fill[foreground] (0,0) circle (0.06);% track closure indicator }% }},% END pics/bufferstop/.style args={#1} % @@ -200,8 +192,8 @@ %% settings \def\coordcommand{#1} % beware of leading and tailing spaces! %% - \fill[\foreground] (0,0) circle (0.06);% track closure indicator - % \path[fill=\foreground] (0.04,0.02) -- (0.04,-0.02) -- (0.02,-0.04) -- (-0.02,-0.04) -- (-0.04,-0.02) -- (-0.04,0.02) -- (-0.02,0.04) -- (0.02,0.04) -- cycle;% label + \fill[foreground] (0,0) circle (0.06);% track closure indicator + % \path[fill=foreground] (0.04,0.02) -- (0.04,-0.02) -- (0.02,-0.04) -- (-0.02,-0.04) -- (-0.04,-0.02) -- (-0.04,0.02) -- (-0.02,0.04) -- (0.02,0.04) -- cycle;% label }},% END pics/track_closure/.style args={#1} % % symbology entry @@ -272,13 +264,13 @@ \def\patterntype{north east lines}% }% }% - \path[draw=\foreground,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + \path[draw=foreground,pattern=\patterntype, pattern color=foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker }{% \ifdefstring{\operationmode}{remote}{% operation=remote - \path[fill=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + \path[fill=foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker }{% \ifdefstring{\operationmode}{none}{ - \path[draw=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + \path[draw=foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker }{% \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “remote“ OR “none“ as key required}}% }% @@ -287,7 +279,7 @@ % %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={text=\foreground}};% + \tikzset{every node/.style={text=foreground}};% \coordinate (ts-y-l) at ($\branchfactor*(0,-8pt)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-y-l) at ($(ts-y-l)+(\x1,\y1)$);% @@ -297,29 +289,29 @@ % %% fouling point indicator \iftoggle{fouling_point}{% - \path[draw=\foreground] ($\facefactor*(0.7,0)$) -- ++($\branchfactor*(0,0.7)$);% fouling point indicator + \path[draw=foreground] ($\facefactor*(0.7,0)$) -- ++($\branchfactor*(0,0.7)$);% fouling point indicator }{}% % %% points \ifdefstring{\points}{left}{% points left \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,0.1)$) -- ++($\facefactor*(0.2,0)+(0,0.2)$);% + \path[draw=foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,0.1)$) -- ++($\facefactor*(0.2,0)+(0,0.2)$);% }{% - \path[draw=\foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,0.1)$) -- ++($\facefactor*( 0.265,0 )$);% + \path[draw=foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,0.1)$) -- ++($\facefactor*( 0.265,0 )$);% }% }{% \ifdefstring{\points}{right}{% points right \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,-0.1)$) -- ++($\facefactor*( 0.265,0 )$);% + \path[draw=foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,-0.1)$) -- ++($\facefactor*( 0.265,0 )$);% }{% - \path[draw=\foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,-0.1)$) -- ++($\facefactor*(0.2,0)+(0,-0.2)$);% + \path[draw=foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,-0.1)$) -- ++($\facefactor*(0.2,0)+(0,-0.2)$);% }% }{% \ifdefstring{\points}{moving}{% moving points - \fill[\foreground] ($\facefactor*(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($\facefactor*(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($\facefactor*(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right - \fill[\foreground] ($\facefactor*(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right + \fill[foreground] ($\facefactor*(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($\facefactor*(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($\facefactor*(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right + \fill[foreground] ($\facefactor*(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right }{% error message \ifdefstring{\points}{none}{% }{% @@ -413,12 +405,12 @@ }{% \def\patterntype{north east lines}% }% - \path[draw,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker - \path[draw,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + \path[draw,pattern=\patterntype, pattern color=foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[draw,pattern=\patterntype, pattern color=foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker }{% operated automaticly \ifdefstring{\operationmode}{remote}{% operation=remote - \path[fill=\foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker - \path[fill=\foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + \path[fill=foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[fill=foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker }{% \ifdefstring{\operationmode}{none}{}{% \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “remote“ OR “none“ as key required}}% @@ -427,30 +419,30 @@ }% %% fouling point indicator \iftoggle{fouling_point}{% - \path[draw=\foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator - \path[draw=\foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator + \path[draw=foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator + \path[draw=foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator }{}% % %% points \ifdefstring{\forwardpoints}{left}{% points left \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] (-0.035,0.1) -- ++(0.2,0.2);% + \path[draw=foreground,line width=1.5pt] (-0.035,0.1) -- ++(0.2,0.2);% }{% - \path[draw=\foreground,line width=1.5pt] ( 0.035,0.1) -- ++(0.265,0);% + \path[draw=foreground,line width=1.5pt] ( 0.035,0.1) -- ++(0.265,0);% }% }{% \ifdefstring{\forwardpoints}{right}{% points right \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] ( 0.035,-0.1) -- ++(0.265,0); + \path[draw=foreground,line width=1.5pt] ( 0.035,-0.1) -- ++(0.265,0); }{% - \path[draw=\foreground,line width=1.5pt] (-0.035,-0.1) -- ++(0.2,-0.2);% + \path[draw=foreground,line width=1.5pt] (-0.035,-0.1) -- ++(0.2,-0.2);% }% }{% \ifdefstring{\forwardpoints}{moving}{% moving points - \fill[\foreground] ($(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right - \fill[\foreground] ($(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right + \fill[foreground] ($(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right + \fill[foreground] ($(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right }{% error message \ifdefstring{\forwardpoints}{none}{% }{% @@ -461,23 +453,23 @@ }% end of \ifdefstring{\forwardpoints} \ifdefstring{\backwardpoints}{left}{% points left \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] (0.035,-0.1) -- ++(-0.2,-0.2);% + \path[draw=foreground,line width=1.5pt] (0.035,-0.1) -- ++(-0.2,-0.2);% }{% - \path[draw=\foreground,line width=1.5pt] (-0.035,-0.1) -- ++(-0.265,0);% + \path[draw=foreground,line width=1.5pt] (-0.035,-0.1) -- ++(-0.265,0);% }% }{% \ifdefstring{\backwardpoints}{right}{% points right \ifdefstring{\branch}{left}{% - \path[draw=\foreground,line width=1.5pt] (-0.035,0.1) -- ++(-0.265,0); + \path[draw=foreground,line width=1.5pt] (-0.035,0.1) -- ++(-0.265,0); }{% - \path[draw=\foreground,line width=1.5pt] (0.035,0.1) -- ++(-0.2,0.2);% + \path[draw=foreground,line width=1.5pt] (0.035,0.1) -- ++(-0.2,0.2);% }% }{% \ifdefstring{\backwardpoints}{moving}{% moving points - \fill[\foreground] ($(-0.075,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($(-0.225,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left - \fill[\foreground] ($(-0.015,0) + \branchfactor*(0,-0.15)$) circle (0.05);% points indicator right - \fill[\foreground] ($(-0.115,0) + \branchfactor*(0,-0.25)$) circle (0.05);% points indicator right + \fill[foreground] ($(-0.075,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($(-0.225,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left + \fill[foreground] ($(-0.015,0) + \branchfactor*(0,-0.15)$) circle (0.05);% points indicator right + \fill[foreground] ($(-0.115,0) + \branchfactor*(0,-0.25)$) circle (0.05);% points indicator right }{% error message \ifdefstring{\backwardpoints}{none}{% }{% @@ -489,14 +481,14 @@ % %% slips \ifdefstring{\slip}{double}{% slip - \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0, 0.1)$) -- ($\branchfactor*( 0.3,0) + (0, 0.4)$);% slip - \path[draw=\foreground,line width=0.75pt] ($\branchfactor*( 0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip + \path[draw=foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0, 0.1)$) -- ($\branchfactor*( 0.3,0) + (0, 0.4)$);% slip + \path[draw=foreground,line width=0.75pt] ($\branchfactor*( 0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip }{% \ifdefstring{\slip}{left}{% - \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0,0.1)$) -- ($\branchfactor*(0.3,0) + (0,0.4)$);% slip + \path[draw=foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0,0.1)$) -- ($\branchfactor*(0.3,0) + (0,0.4)$);% slip }{% \ifdefstring{\slip}{right}{% - \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip + \path[draw=foreground,line width=0.75pt] ($\branchfactor*(0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip }{% \ifdefstring{\slip}{none}{% % @@ -508,7 +500,7 @@ }% % %% label - \tikzset{every node/.style={text=\foreground}};% + \tikzset{every node/.style={text=foreground}};% \ifdefstring{\labelcontentleft}{}{}{% label NOT empty \coordinate (ts-sy-l1) at ($(2pt,0) + \branchfactor*(0, 10pt)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default @@ -563,12 +555,12 @@ }% % %% crossing marker - \path[draw=\foreground] (0,0) -- ++( 0.4,0) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker - \path[draw=\foreground] (0,0) -- ++(-0.4,0) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + \path[draw=foreground] (0,0) -- ++( 0.4,0) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[draw=foreground] (0,0) -- ++(-0.4,0) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker % %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={text=\foreground}};% + \tikzset{every node/.style={text=foreground}};% \coordinate (ts-x-l) at ($(2pt,0) + \branchfactor*(0,-9pt)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-x-l) at ($(ts-x-l)+(\x1,\y1)$);% @@ -578,8 +570,8 @@ % %% fouling point indicator \iftoggle{fouling_point}{% - \path[draw=\foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator - \path[draw=\foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator + \path[draw=foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator + \path[draw=foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator }{}% % }},% end of pics/crossing/.style args={#1/#2/#3} @@ -639,12 +631,12 @@ }% end \ifdefstring{\branch} % %% symbol - \path[draw=\foreground, line width=1pt] (0,0.1) -- ++(0,-0.2);% derailer marker - \path[draw=\foreground,->,>=latex,line width=1pt,dashed] (0,0) -- ++($\facefactor*(0.4,0) + \branchfactor*(0,0.4)$);% derailer arrow + \path[draw=foreground, line width=1pt] (0,0.1) -- ++(0,-0.2);% derailer marker + \path[draw=foreground,->,>=latex,line width=1pt,dashed] (0,0) -- ++($\facefactor*(0.4,0) + \branchfactor*(0,0.4)$);% derailer arrow % %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={text=\foreground}};% + \tikzset{every node/.style={text=foreground}};% \coordinate (ts-dr-l) at ($\branchfactor*(0,-0.3)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-dr-l) at ($(ts-dr-l)+(\x1,\y1)$);% diff --git a/src/tikzlibrarytrackschematic.trafficcontrol.code.tex b/src/tikzlibrarytrackschematic.trafficcontrol.code.tex index 253c5e2..8e6c99d 100644 --- a/src/tikzlibrarytrackschematic.trafficcontrol.code.tex +++ b/src/tikzlibrarytrackschematic.trafficcontrol.code.tex @@ -18,14 +18,6 @@ \pgfkeys{% /tikz/trackschematic/.is family,% /tikz/trackschematic/.cd,% - %% color \foreground - foreground/.store in=\foreground,% - foreground=black,% DEFAULT - /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% - %% color \background - background/.store in=\background,% - background=white,% DEFAULT - /tikz/background/.forward to=/tikz/trackschematic/background,% %% face face/.value required,% forward OR backward face/.store in=\face,% forward OR backward @@ -189,8 +181,8 @@ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% }% }% end \ifdefstring{\face} - \tikzset{every path/.style={draw=\foreground,line width=1pt}};% - \tikzset{every node/.style={text=\foreground,inner sep=1pt}};% + \tikzset{every path/.style={draw=foreground,line width=1pt}};% + \tikzset{every node/.style={text=foreground,inner sep=1pt}};% %% signal pole \path (0,0) -- ++($\trafficfactor*\facefactor*(0,-0.4)$) -- ++($\facefactor*(0.7,0)$);% signal pole % @@ -202,7 +194,7 @@ }% \node[\align] at (ts-s-l) {\footnotesize \labelcontent};% }% - \tikzset{every path/.style={draw=\foreground,line width=1pt,fill=\background},rounded corners=0.1pt};% + \tikzset{every path/.style={draw=foreground,line width=1pt,fill=background},rounded corners=0.1pt};% %% signal marker \iftoggle{is_distant_type}{% marker for distant signal \path ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.35,0)$) --% @@ -250,7 +242,7 @@ }{}% %% speed indicator \ifdefstring{\speed}{}{}{% speed NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \iftoggle{is_speed_type}{% marker for speed signal \node[rotate=\rotate] at ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.85,0)$) {\speed};% }{% @@ -260,7 +252,7 @@ }% }% \ifdefstring{\distantspeed}{}{}{% distant speed NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground,fill=\background,inner sep=0.5pt}};% + \tikzset{every node/.style={font=\sffamily,text=foreground,fill=background,inner sep=0.5pt}};% \node[rotate=\rotate] at ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.2,0)$) {\distantspeed};% }% %% locked @@ -382,7 +374,7 @@ }{% default case \pgfmathsetmacro{\facefactor}{1}% }% end \ifdefstring{\face} - \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \tikzset{every path/.style={draw=foreground,line width=1pt}};% %% marker \path ($\trafficfactor*\facefactor*(0,-0.1)$) -- ++($\trafficfactor*\facefactor*(0,0.2)$);% marker %% sign @@ -400,7 +392,7 @@ }{}% %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \coordinate (ts-cp-l) at ($\trafficfactor*\facefactor*(0,0.25)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-cp-l) at ($(ts-cp-l)+(\x1,\y1)$);% @@ -452,11 +444,11 @@ }% }% end \ifdefstring{\trafficpractice} %% marker - \tikzset{every path/.style={draw=\foreground}};% + \tikzset{every path/.style={draw=foreground}};% \path[line width=1pt] ($\trafficfactor*(0,-0.175)$) -- ++(-0.0625,-0.0625) -- ++(-0.2,0) -- ++(-0.125,0.125) -- ++(-0.1,0) -- ++(0,-0.125) -- ++(0.1,0) -- ++(0.125,0.125) -- ++(0.2,0) -- ++(0.125,-0.125) -- ++(0.2,0) -- ++(0.125,0.125) -- ++(0.1,0) -- ++(0,-0.125) -- ++(-0.1,0) -- ++(-0.125,0.125) -- ++(-0.2,0) -- cycle;% loop marker %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \coordinate (ts-tm-l) at ($\trafficfactor*(0,0.25)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-tm-l) at ($(ts-tm-l)+(\x1,\y1)$);% @@ -567,54 +559,54 @@ %% %%%%%%%%%%%%%%%%%%%% %% 1. marker - \tikzset{every path/.style={draw=\foreground,line width=0.75pt,rounded corners=0.2pt}};% + \tikzset{every path/.style={draw=foreground,line width=0.75pt,rounded corners=0.2pt}};% %% \iftoggle{unnumberd}{% no number has been set %% marker for undefined balises - \path[fill=\background] ($(-0.3,0)$) rectangle ($\trafficfactor*\facefactor*(0,-0.25) + (0.3,0)$);% balise marker + \path[fill=background] ($(-0.3,0)$) rectangle ($\trafficfactor*\facefactor*(0,-0.25) + (0.3,0)$);% balise marker \iftoggle{switched}{% balises can be switched - \path[fill=\foreground] ($\trafficfactor*\facefactor*(0,-0.075) + (-0.225,0)$) rectangle% + \path[fill=foreground] ($\trafficfactor*\facefactor*(0,-0.075) + (-0.225,0)$) rectangle% ($\trafficfactor*\facefactor*(0,-0.175) + ( 0.225,0)$);% switch marker }{}% }{% a number has been set %% marker for numbered balises \ifdefstring{\along}{none}{}{ \foreach \n in \along{% - \path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle% + \path[fill=background] ($\n*\facefactor*(0.2,0)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,-0.25)$);% balise marker \iftoggle{index_number}{% - \node[text=\foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};% + \node[text=foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};% }{}% }% }% \ifdefstring{\oppose}{none}{}{ \foreach \n in \oppose{% - \path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle% + \path[fill=background] ($\n*\facefactor*(0.2,0)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,0.25)$);% balise marker \iftoggle{index_number}{% - \node[text=\foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};% + \node[text=foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};% }{}% }% }% \ifdefstring{\alongswitched}{none}{}{ \foreach \n in \alongswitched{% - \path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle% + \path[fill=background] ($\n*\facefactor*(0.2,0)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,-0.25)$);% balise marker - \path[fill=\foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,-0.05)$) rectangle% + \path[fill=foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,-0.05)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.15,0) + \trafficfactor*\facefactor*(0,-0.2)$);% switch marker \iftoggle{index_number}{% - \node[text=\background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};% + \node[text=background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};% }{}% }% }% \ifdefstring{\opposeswitched}{none}{}{ \foreach \n in \opposeswitched{% - \path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle% + \path[fill=background] ($\n*\facefactor*(0.2,0)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,0.25)$);% balise marker - \path[fill=\foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,0.05)$) rectangle% + \path[fill=foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,0.05)$) rectangle% ($\n*\facefactor*(0.2,0) + (0.15,0) + \trafficfactor*\facefactor*(0,0.2)$);% switch marker \iftoggle{index_number}{% - \node[text=\background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};% + \node[text=background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};% }{}% }% }% @@ -633,7 +625,7 @@ \path let \p1=\labelcoord in coordinate (label-coord) at ($(label-coord)+(\x1,\y1)$);% }% %% label style - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% % \ifdefstring{\trafficpractice}{left}{% \tikzset{every node/.append style={left,align=right}};% @@ -695,11 +687,11 @@ }% }% end \ifdefstring{\trafficpractice} %% arrow - \path[draw=\foreground,<-,>=latex,line width=1pt]% + \path[draw=foreground,<-,>=latex,line width=1pt]% ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow %% eye - \filldraw[\foreground] ($\facefactor*(0.4,0) + \facefactor*\trafficfactor*(0,-0.4)$) circle (0.1);% pupil - \path[draw=\foreground, line width=1pt]% eye contour + \filldraw[foreground] ($\facefactor*(0.4,0) + \facefactor*\trafficfactor*(0,-0.4)$) circle (0.1);% pupil + \path[draw=foreground, line width=1pt]% eye contour ($\facefactor*(0.4, 0) + \facefactor*\trafficfactor*(0,-0.15)$) .. controls% ($\facefactor*(0.25,0) + \facefactor*\trafficfactor*(0,-0.25)$) and% ($\facefactor*(0.25,0) + \facefactor*\trafficfactor*(0,-0.55)$) ..% @@ -754,16 +746,16 @@ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% }% }% end \ifdefstring{\face} - \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \tikzset{every path/.style={draw=foreground,line width=1pt}};% %% marker \path ($\trafficfactor*\facefactor*(0,-0.55) + \facefactor*(0.3,0)$) rectangle% ++($\trafficfactor*\facefactor*(0, 0.3) + \facefactor*(0.3,0)$);% %% arrow - \path[draw=\foreground,<-,>=latex,line width=1pt]% + \path[draw=foreground,<-,>=latex,line width=1pt]% ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \coordinate (ts-ma-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(0.3,0)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-ma-l) at ($(ts-ma-l)+(\x1,\y1)$);% @@ -817,17 +809,17 @@ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% }% }% end \ifdefstring{\face} - \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \tikzset{every path/.style={draw=foreground,line width=1pt}};% %% marker \path ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.3,0)$) --% ++($\trafficfactor*\facefactor*(0,-0.15) + \facefactor*(0.25,0)$) --% ++($\trafficfactor*\facefactor*(0, 0.3)$) -- cycle;% signal marker %% arrow - \path[draw=\foreground,<-,>=latex,line width=1pt]% + \path[draw=foreground,<-,>=latex,line width=1pt]% ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \coordinate (ts-bp-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(0.3,0)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-bp-l) at ($(ts-bp-l)+(\x1,\y1)$);% @@ -881,18 +873,18 @@ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% }% }% end \ifdefstring{\face} - \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \tikzset{every path/.style={draw=foreground,line width=1pt}};% %% marker \path ($\trafficfactor*\facefactor*(0,-0.4)$) --% ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*(-0.1,0)$) --% ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*( 0.1,0)$) --% ++($\trafficfactor*\facefactor*(0, 0.1) + \facefactor*( 0.1,0)$) -- cycle;% sign %% arrow - \path[draw=\foreground,<-,>=latex,line width=1pt]% + \path[draw=foreground,<-,>=latex,line width=1pt]% ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.25)$);% arrow %% label \ifdefstring{\labelcontent}{}{}{% label NOT empty - \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \tikzset{every node/.style={font=\sffamily,text=foreground}};% \coordinate (ts-dp-l) at ($\trafficfactor*\facefactor*(0,0.25)$);% \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default \path let \p1=\labelcoord in coordinate (ts-dp-l) at ($(ts-dp-l)+(\x1,\y1)$);% @@ -932,7 +924,7 @@ }% }% end \ifdefstring{\face} %% symbol - \fill[\foreground] ($\facefactor*(-0.175,0)+(0,-0.15)$) --% + \fill[foreground] ($\facefactor*(-0.175,0)+(0,-0.15)$) --% ($\facefactor*(-0.175,0)+(0, 0.15)$) --% ($\facefactor*( 0.175,0)+(0, 0 )$) -- cycle;% }},% END pics/route/.style args={#1} @@ -971,31 +963,31 @@ % %% face setup \ifdefstring{\face}{forward}{% face - \path[draw=\foreground,line width=0.5pt,densely dotted]% + \path[draw=foreground,line width=0.5pt,densely dotted]% ($\trafficfactor*(0,0.1) + (-0.0125,0)$) -- ($\trafficfactor*(0,0.25) + (-0.2125,0)$) -- ($\trafficfactor*(0,0.4) + (-0.0125,0)$) --% ($\trafficfactor*(0,0.325) + (-0.0125,0)$) -- ($\trafficfactor*(0,0.325) + (0.1875,0)$) -- ($\trafficfactor*(0,0.175) + (0.1875,0)$) --% ($\trafficfactor*(0,0.175) + (-0.0125,0)$) -- cycle;% arrow backward - \fill[\foreground]% + \fill[foreground]% ($\trafficfactor*(0,-0.1) + (0.0125,0)$) -- ($\trafficfactor*(0,-0.25) + (0.2125,0)$) -- ($\trafficfactor*(0,-0.4) + (0.0125,0)$) --% ($\trafficfactor*(0,-0.325) + (0.0125,0)$) -- ($\trafficfactor*(0,-0.325)+(-0.1875,0)$) -- ($\trafficfactor*(0,-0.175) + (-0.1875,0)$) --% ($\trafficfactor*(0,-0.175) + (0.0125,0)$) -- cycle;% arrow forward }{% \ifdefstring{\face}{backward}{% face - \fill[\foreground]% + \fill[foreground]% ($\trafficfactor*(0,0.1) + (-0.0125,0)$) -- ($\trafficfactor*(0,0.25) + (-0.2125,0)$) -- ($\trafficfactor*(0,0.4) + (-0.0125,0)$) --% ($\trafficfactor*(0,0.325) + (-0.0125,0)$) -- ($\trafficfactor*(0,0.325) + (0.1875,0)$) -- ($\trafficfactor*(0,0.175) + (0.1875,0)$) --% ($\trafficfactor*(0,0.175) + (-0.0125,0)$) -- cycle;% arrow backward - \path[draw=\foreground,line width=0.5pt,densely dotted]% + \path[draw=foreground,line width=0.5pt,densely dotted]% ($\trafficfactor*(0,-0.1) + (0.0125,0)$) -- ($\trafficfactor*(0,-0.25) + (0.2125,0)$) -- ($\trafficfactor*(0,-0.4) + (0.0125,0)$) --% ($\trafficfactor*(0,-0.325)+(0.0125,0)$) -- ($\trafficfactor*(0,-0.325)+(-0.1875,0)$) -- ($\trafficfactor*(0,-0.175) + (-0.1875,0)$) --% ($\trafficfactor*(0,-0.175) + (0.0125,0)$) -- cycle;% arrow forward }{ \ifdefstring{\face}{bidirectional}{% face - \path[draw=\foreground,line width=0.5pt]% + \path[draw=foreground,line width=0.5pt]% ($\trafficfactor*(0,0.1) + (-0.0125,0)$) -- ($\trafficfactor*(0,0.25) + (-0.2125,0)$) -- ($\trafficfactor*(0,0.4) + (-0.0125,0)$) --% ($\trafficfactor*(0,0.325) +(-0.0125,0)$) -- ($\trafficfactor*(0,0.325) +(0.1875,0)$) -- ($\trafficfactor*(0,0.175) + (0.1875,0)$) --% ($\trafficfactor*(0,0.175) + (-0.0125,0)$) -- cycle;% arrow backward - \path[draw=\foreground,line width=0.5pt]% + \path[draw=foreground,line width=0.5pt]% ($\trafficfactor*(0,-0.1) + (0.0125,0)$) -- ($\trafficfactor*(0,-0.25) + (0.2125,0)$) -- ($\trafficfactor*(0,-0.4) + (0.0125,0)$) --% ($\trafficfactor*(0,-0.325)+(0.0125,0)$) -- ($\trafficfactor*(0,-0.325)+(-0.1875,0)$) -- ($\trafficfactor*(0,-0.175)+(-0.1875,0)$) --% ($\trafficfactor*(0,-0.175) + (0.0125,0)$) -- cycle;% arrow forward @@ -1005,7 +997,7 @@ }% }% end \ifdefstring{\face} %% frame - % \path[draw=\foreground,line width=0.5pt]% + % \path[draw=foreground,line width=0.5pt]% % (-0.3, 0.1) -- (-0.3, 0.5) -- (0.3, 0.5) -- (0.3, 0.1) % (-0.3,-0.1) -- (-0.3,-0.5) -- (0.3,-0.5) -- (0.3,-0.1); }},% END pics/direction_control/.style args={#1} diff --git a/src/tikzlibrarytrackschematic.vehicles.code.tex b/src/tikzlibrarytrackschematic.vehicles.code.tex index bcf7ee4..cdb1c12 100644 --- a/src/tikzlibrarytrackschematic.vehicles.code.tex +++ b/src/tikzlibrarytrackschematic.vehicles.code.tex @@ -23,14 +23,6 @@ \pgfkeys{% /tikz/trackschematic/.is family,% /tikz/trackschematic/.cd,% - %% color foreground - foreground/.store in=\foreground,% - foreground=black,% DEFAULT - /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% - %% color background - background/.store in=\background,% - background=white,% DEFAULT - /tikz/background/.forward to=/tikz/trackschematic/background,% %% face face/.value required,% forward OR backward face/.store in=\face,% @@ -274,12 +266,12 @@ %% 2. vehicle style \iftoggle{in_train_mode}{% train mode \iftoggle{train_is_a_ghost}{% ghost train - \tikzset{every path/.style={draw=\foreground, line width=0.8pt, dashed}};% + \tikzset{every path/.style={draw=foreground, line width=0.8pt, dashed}};% }{% normal train - \tikzset{every path/.style={draw=\foreground, line width=1pt, fill=\background}};% + \tikzset{every path/.style={draw=foreground, line width=1pt, fill=background}};% }% }{% shunting mode - \tikzset{every path/.style={draw=\foreground, double, double distance=0.5mm, line width=0.3pt, fill=\background}};% + \tikzset{every path/.style={draw=foreground, double, double distance=0.5mm, line width=0.3pt, fill=background}};% }% %% %%%%%%%%%%%%%%%%%%%% @@ -287,11 +279,11 @@ %% (order before vehicle shape due to background fill!) \iftoggle{is_shunting}{% arrow for shunting \iftoggle{in_shunting_mode}{% shunting mode - \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + \fill[draw=none,fill=background] ($\facefactor*(-0.3, 0.3)$) --% ($\facefactor*(-0.1, 0.3)$) --% ($\facefactor*( 0.2, 0 )$) --% ($\facefactor*(-0.1,-0.3)$) --% - ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + ($\facefactor*(-0.3,-0.3)$) -- cycle;% background fill \path[line cap=rect,fill=none] ($\facefactor*(-0.1, 0.3)$) --% ($\facefactor*( 0.2, 0 )$) --% ($\facefactor*(-0.1,-0.3)$);% arrow shape @@ -302,11 +294,11 @@ \ifdefstring{\trainrun}{none}{}{% DEFAULT no arrow for train \iftoggle{in_train_mode}{% train mode \ifdefstring{\trainrun}{slow}{% - \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + \fill[draw=none,fill=background] ($\facefactor*(-0.3, 0.3)$) --% ($\facefactor*(-0.1, 0.3)$) --% ($\facefactor*( 0.2, 0 )$) --% ($\facefactor*(-0.1,-0.3)$) --% - ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + ($\facefactor*(-0.3,-0.3)$) -- cycle;% background fill \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% ($\facefactor*(-0.1 , 0.3)$) --% ($\facefactor*( 0.2 , 0 )$) --% @@ -314,11 +306,11 @@ ($\facefactor*(-0.15,-0.3)$);% arrow shape }{% \ifdefstring{\trainrun}{normal}{% - \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + \fill[draw=none,fill=background] ($\facefactor*(-0.3, 0.3)$) --% ($\facefactor*( 0.1, 0.3)$) --% ($\facefactor*( 0.4, 0 )$) --% ($\facefactor*( 0.1,-0.3)$) --% - ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + ($\facefactor*(-0.3,-0.3)$) -- cycle;% background fill \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% ($\facefactor*(-0.1 , 0.3)$) --% ($\facefactor*( 0.2 , 0 )$) --% @@ -332,11 +324,11 @@ % }{% \ifdefstring{\trainrun}{fast}{% - \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + \fill[draw=none,fill=background] ($\facefactor*(-0.3, 0.3)$) --% ($\facefactor*( 0.3, 0.3)$) --% ($\facefactor*( 0.6, 0 )$) --% ($\facefactor*( 0.3,-0.3)$) --% - ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + ($\facefactor*(-0.3,-0.3)$) -- cycle;% background fill \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% ($\facefactor*(-0.1 , 0.3)$) --% ($\facefactor*( 0.2 , 0 )$) --% @@ -374,10 +366,10 @@ %% 5. operation mode \iftoggle{is_parked}{}{% vehicle NOT parked \ifdefstring{\operationmode}{manual}{% - \path[draw=none, fill=\foreground] ($\facefactor*(-0.4,0)$) circle (0.15);% dot + \path[draw=none, fill=foreground] ($\facefactor*(-0.4,0)$) circle (0.15);% dot }{ \ifdefstring{\operationmode}{automatic}{% - \path[draw=none, fill=\foreground] ($\facefactor*(-0.15,0)$) -- ++($\facefactor*(-0.15,0) +(0,0.15)$) -- ++(0,-0.3) -- cycle;% triangle + \path[draw=none, fill=foreground] ($\facefactor*(-0.15,0)$) -- ++($\facefactor*(-0.15,0) +(0,0.15)$) -- ++(0,-0.3) -- cycle;% triangle }{% \ifdefstring{\operationmode}{undefined}{}{% \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “automatic“ OR “undefined“ as key required}}% @@ -419,7 +411,7 @@ }% \ifdefstring{\labelalign}{right} }% \ifdefstring{\labelalign}{left} }% \ifdefstring{\labelalign}{center} - \node[text=\foreground,anchor=\labelanchor,align=\labelalign] at (ts-v-l) {\footnotesize \labelcontent};% label + \node[text=foreground,anchor=\labelanchor,align=\labelalign] at (ts-v-l) {\footnotesize \labelcontent};% label }% }},% END pics/vehicles/.style args={#1/#2/#3} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/test/a0_landscape_adjustbox.tex b/test/a0_landscape_adjustbox.tex index d8564e0..f6c9398 100644 --- a/test/a0_landscape_adjustbox.tex +++ b/test/a0_landscape_adjustbox.tex @@ -16,7 +16,7 @@ \begin{adjustbox}{width=\textwidth} \begin{tikzpicture} { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 2,1.3) {to and from\\ Arnau}; \node at (21,3.3) {{\LARGE Bf Berg}}; \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt}; diff --git a/test/a0_landscape_native.tex b/test/a0_landscape_native.tex index 6a95e0d..eb47462 100644 --- a/test/a0_landscape_native.tex +++ b/test/a0_landscape_native.tex @@ -29,7 +29,7 @@ \begin{scaletikzpicturetowidth}{\textwidth} \begin{tikzpicture}[scale=\tikzscale,transform shape] { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 2,1.3) {to and from\\ Arnau}; \node at (21,3.3) {{\LARGE Bf Berg}}; \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt}; diff --git a/test/a5_landscape_adjustbox.tex b/test/a5_landscape_adjustbox.tex index f56603f..1523fe9 100644 --- a/test/a5_landscape_adjustbox.tex +++ b/test/a5_landscape_adjustbox.tex @@ -16,7 +16,7 @@ \begin{adjustbox}{width=\textwidth} \begin{tikzpicture} { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 2,1.3) {to and from\\ Arnau}; \node at (21,3.3) {{\LARGE Bf Berg}}; \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt}; diff --git a/test/a5_landscape_native.tex b/test/a5_landscape_native.tex index 78932de..601fe47 100644 --- a/test/a5_landscape_native.tex +++ b/test/a5_landscape_native.tex @@ -29,7 +29,7 @@ \begin{scaletikzpicturetowidth}{\textwidth} \begin{tikzpicture}[scale=\tikzscale,transform shape] { % station names - \tikzset{every node/.style={\foreground!50!\background}}; + \tikzset{every node/.style={foreground!50!background}}; \node[right,align=left] at ( 2,1.3) {to and from\\ Arnau}; \node at (21,3.3) {{\LARGE Bf Berg}}; \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt};