diff options
author | Norbert Preining <norbert@preining.info> | 2022-09-25 03:00:53 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-09-25 03:00:53 +0000 |
commit | ce8083552e0d948bf495e72d5c4d2680b505c90b (patch) | |
tree | 6c741e76b2a9e41d5c1b57a15ffa28d74c5317d8 /macros/latex/contrib/wargame/source/natoapp6c | |
parent | 41d1be12f4963b0f5bf9903116883f1458b58960 (diff) |
CTAN sync 202209250300
Diffstat (limited to 'macros/latex/contrib/wargame/source/natoapp6c')
23 files changed, 7244 insertions, 0 deletions
diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx new file mode 100644 index 0000000000..c59e685b20 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx @@ -0,0 +1,39 @@ +%<*cmp> +\CompatSection{\spec{activity}} +\CompatTable{activity}{main}{{ + arrest/{main={arrest}}, + attempted criminal activity/{main={crime,individual}}, + automobile/{main={automobile}}, + demonstration/{main={squashed text=MASS}}, + drive by shooting/{main={rifle},lower={wheeled}}, + drug related activities/{main={squashed text=DRUG}}, + explosion/{main={explosion}}, + extortion 1/{main={text=\textdollar}}, + extortion 2/{main={text=\pounds}}, + extortion 3/{main={text=\texteuro}}, + extortion 4/{main={text=\textyen}}, + fire/{main={squashed text=FIRE}}, + graffiti/{main={graffiti}}, + improvised explosive device explosion/{main={explosion,small text=IED}}, + individual/{main={individual}}, + killing/{main={killing,individual}}, + patrolling/{main={patrolling}}, + pleasure craft/{main={sailing boat}}, + poisoning/{main={poisoning}}, + psychological operations/{main={psychological}}, + radio and television psychological operations/{main={psychological,signal}}, + riot/{main={squashed text=RIOT}}, + searching/{main={searching}}, +}} +\CompatTable{activity}{upper}{{ + assassination/{upper={text=AS}}, + execution/{upper={text=EX}}, + hijack/{upper={text=H}}, + house to house/{upper={house}}, + kidnapping/{upper={text=K}}, + murder/{upper={text=MU}}, + piracy/{upper={text=PI}}, + rape/{upper={text=RA}}, + written/{upper={text=W}}, +}} +%</cmp> diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx new file mode 100644 index 0000000000..286366f81a --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx @@ -0,0 +1,87 @@ +%<*cmp> +\CompatSection{\spec{air}} +\CompatTable{air}{main}{{ + air decoy/{main={air decoy}}, + airborne command post/{main={squashed text=ACP}}, + airborne early warning/{main={squashed text=AEW}}, + anti submarine warfare/{main={squashed text=ASW}}, + anti surface warfare/{main={squashed text=ASUW}}, + attack/{main={text=A}}, + bomber/{main={text=B}}, + cargo/{main={text=C}}, + civilian airship/{main={airship}}, + civilian balloon/{main={balloon}}, + civilian fixed wing/{main={fixed wing}}, + civilian rotary wing/{main={rotary wing}}, + civilian/{main={squashed text=CIV}}, + combat search and rescue/{main={squashed text=CSAR}}, + communications/{main={squashed text=COM}}, + electronic support measures/{main={squashed text=ESM}}, + fighter/{main={text=F}}, + government/{main={squashed text=GOV}}, + jammer/{main={text=J}}, + medic/{main={[fill]medic}}, + military airship/{main={[fill]airship}}, + military balloon/{main={[fill]balloon}}, + military fixed wing/{main={[fill]fixed wing}}, + military rotary wing/{main={[fill]rotary wing}}, + military/{main={squashed text=MIL}}, + mine countermeasures/{main={squashed text=MCM}}, + passenger/{main={text=PX}}, + patrol/{main={text=P}}, + personnel recovery/{main={text=PR}}, + reconnaissance/{main={text=R}}, + search and rescue/{main={squashed text=SAR}}, + special operations forces/{main={squashed text=SOF}}, + suppression of enemy air defence/{main={squashed text=SEAD}}, + tanker/{main={text=K}}, + trainer/{main={text=T}}, + ultra light/{main={text=UL}}, + unmanned aerial vehicle/{main={[fill]unmanned}}, + utility/{main={text=U}}, + vertical short takeoff and landing/{main={text=V}}, + very important person/{main={squashed text=VIP}}, +}} +\CompatTable{air}{upper}{{ + airborne command post/{upper={squashed text=ACP}}, + airborne early warning/{upper={squashed text=AEW}}, + anti submarine warfare/{upper={squashed text=ASW}}, + anti surface warfare/{upper={squashed text=ASUW}}, + cargo/{upper={text=C}}, + combat search and rescue/{upper={squashed text=CSAR}}, + communications/{upper={squashed text=COM}}, + electronic support measures/{upper={squashed text=ESM}}, + escort/{upper={text=E}}, + government flight/{upper={squashed text=GOV}}, + intensive care/{upper={text=IC}}, + jammer/{upper={text=R}}, + medical evacuation/{upper={[fill]medic}}, + mine countermeasures/{upper={squashed text=MCM}}, + passenger plane/{upper={text=PX}}, + patrol/{upper={text=J}}, + photography/{upper={text=PH}}, + reconnaissance/{upper={text=P}}, + search and rescue/{upper={squashed text=SAR}}, + special operations forces/{upper={squashed text=SOF}}, + suppression of enemy air defence/{upper={squashed text=SEAD}}, + tanker/{upper={text=K}}, + trainer/{upper={text=T}}, + ultra light/{upper={text=UL}}, + utility/{upper={text=U}}, + very important person/{upper={squashed text=VIP}}, +}} + +\CompatTable{air}{lower}{{ + boom and drogue/{lower={squashed text=B/D}}, + boom only/{lower={text=B}}, + close range/{lower={text=CR}}, + drogue only/{lower={text=D}}, + heavy/{lower={text=H}}, + light/{lower={text=L}}, + long range/{lower={text=LR}}, + medium range/{lower={text=MR}}, + medium/{lower={text=M}}, + short range/{lower={text=SR}}, +}} +%</cmp> +% diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx new file mode 100644 index 0000000000..d38cb93dbc --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx @@ -0,0 +1,99 @@ +%<*cmp> +\CompatSection{\spec{equipment}} +\CompatTable{equipment}{main}{{ + air defence gun/{main={gun=air defence}}, + air defence missile launcher/{main={missile launcher=air defence}}, + antennae/{main={antenna}}, + anti tank gun/{main={gun=anti tank}}, + anti tank missile launcher/{main={missile launcher=anti tank}}, + anti tank rocket launcher/{main={rocket launcher=anti tank}}, + antipersonnel land mine/{main={land mine=personnel}}, + antitank land mine/{main={land mine=tank}}, + armoured fighting vehicle command and control/{main={armoured fighting vehicle,small text=C2}}, + armoured fighting vehicle/{main={armoured fighting vehicle}}, + armoured medical personnel carrier/{main={{[save clip]armoured personnel carrier},{[scale=.7]medical}}}, + armoured personnel carrier/{main={armoured personnel carrier}}, + armoured protected recovery vehicle/{main={armoured,[scale=.7]maintenance}}, + armoured protected vehicle/{main={armoured}}, + automatic rifle/{main={rifle,type=heavy}}, + bomb/{main={squashed text=BOMB}}, + booby trap/{main={booby trap}}, + bridge mounted on utility vehicle/{main={utility vehicle,[scale=.7]bridge}}, + bridge/{main={bridge}}, + bus/{main={utility vehicle,text=B}}, + chemical biological radiological nuclear equipment/{main={chemical biological radiological nuclear}}, + computer system/{main={computer system}}, + direct fire gun/{main={gun=direct}}, + drill mounted on vehicle/{main={utility vehicle,{[scale=.6,yshift=-3]drilling}}}, + drill/{main={drilling}}, + earthmover/{main={earthmover}}, + fixed bridge/{main={bridge=fixed}}, + flame thrower/{main={flame thrower}}, + folding girder bridge/{main={bridge=folding}}, + generator set/{main={text=G}}, + grenade launcher/{main={grenade launcher}}, + heavy grenade launcher/{main={grenade launcher,[yshift=-.2]type=heavy}}, + heavy machine gun/{main={machine gun,type=heavy}}, + heavy tank/{main={tank,type=vheavy}}, + hollow deck bridge/{main={bridge=hollow}}, + howitzer/{main={howitzer}}, + improvised explosive device/{main={squashed text=IED}}, + land mine/{main={land mine}}, + laser/{main={laser}}, + light grenade launcher/{main={grenade launcher,[yshift=-.2]type=light}}, + light machine gun/{main={machine gun,type=light}}, + light tank/{main={tank,type=vlight}}, + machine gun/{main={machine gun}}, + medical evacuation armoured protected vehicle/{main={armoured,[fill]medic}}, + medical evacuation medical vehicle/{main={utility vehicle,[fill]medical}}, + medium grenade launcher/{main={grenade launcher,[yshift=-.2]type=medium}}, + medium machine gun/{main={machine gun,type=medium}}, + medium tank/{main={tank,type=vmedium}}, + mine clearing equipment/{main={mine clearing equipment}}, + mine clearing vehicle/{main={tank,mine clearing equipment}}, + mine laying equipment/{main={mine},upper={type=light}}, + mine laying vehicle/{main={utility vehicle,mine},upper={type=light}}, + missile launcher/{main={missile launcher}}, + mobile emergency physician/{main={[save clip]utility vehicle,physician}}, + mortar/{main={mortar}}, + multifunctional earthmover/{main={earthmover,text=MF}}, + multiple rocket launcher/{main={rocket launcher=multiple}}, + non lethal grenade launcher/{main={grenade launcher=non lethal}}, + non lethal weapon/{main={non lethal weapon}}, + petroleum oil and lubricants vehicle/{main={utility vehicle,[scale=.6]fuel}}, + psychological operations equipment/{main={psychological}}, + radar/{main={radar}}, + recoilless gun/{main={gun=recoilless}}, + rifle/{main={rifle}}, + semi automatic rifle/{main={rifle,type=medium}}, + semi trailer truck/{main={semi trailer truck}}, + sensor emplaced/{main={sensor},upper={jagged wave}}, + sensor/{main={sensor}}, + single rocket launcher/{main={rocket launcher=single}}, + single shot rifle/{main={rifle,type=light}}, + surface to surface missile launcher/{main={missile launcher=surface to surface}}, + tank recovery vehicle/{main={tank,[scale=.8]maintenance}}, + tank/{main={tank}}, + taser/{main={non lethal weapon,text=Z}}, + train locomotive/{main={train locomotive}}, + utility vehicle/{main={utility vehicle}}, + water cannon/{main={non lethal weapon,text=W}}, + water vehicle/{main={utility vehicle,{[yshift=-3,scale=.6]water}}}, +}} + +\CompatTable{equipment}{lower}{{ + amphibious/{below={amphibious}}, + barge/{below={riverine}}, + over snow/{below={over snow}}, + pack animal/{below={pack animal}}, + railroad/{below={railroad}}, + sled/{below={sled}}, + towed/{below={towed}}, + tracked/{below={tracked}}, + wheeled and tracked/{below={wheeled=and tracked}}, + wheeled cross country/{below={wheeled=cross country}}, + wheeled limited mobility/{below={wheeled=limited}}, + wheeled semi trailer/{below={wheeled=semi}}, +}} +%</cmp> +% diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx new file mode 100644 index 0000000000..0686c01cb0 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx @@ -0,0 +1,43 @@ +%<*cmp> +\CompatSection{\spec{installation}} +\CompatTable{installation}{main}{{ + airport/{main={base},upper={air strip}}, + ammunition cache/{main={ammunition,supply}}, + black list location/{main={squashed text=BLK}}, + broadcast transmitter antenna/{main={antenna}}, + chemical biological radiological nuclear/{main={chemical biological radiological nuclear}}, + civilian telecommunications/{main={civilian telecommunications}}, + electric power/{main={electric power}}, + food distribution/{main={food,supply}}, + grey list location/{main={squashed text=GRAY}}, + mass grave site/{main={{[scale=.7,yshift=-.05]mortuary affairs},{[scale=.7,shift={(-.22,.05)}]mortuary affairs},{[scale=.7,shift={(.22,.05)}]mortuary affairs}}}, + medical treatment facility/{main={medical treatment}}, + medical/{main={medical}}, + mine/{main={quarry}}, + naval/{main={naval}}, + nuclear/{main={nuclear}}, + printed media/{main={printed media}}, + safe house/{main={squashed text=SAFE}}, + transportation/{main={transportation}}, + water treatment/{main={water,{[shift={(-.2,.-.1)}]small squashed text=PURE}}}, + water/{main={water}}, + white list location/{main={squashed text=WHT}}, +}} + +\CompatTable{installation}{upper}{{ + biological/{upper={text=B}}, + chemical/{upper={text=C}}, + coal/{upper={text=CO}}, + geothermal/{upper={text=GT}}, + hydroelectric/{upper={text=HY}}, + natural gas/{upper={text=NG}}, + nuclear energy/{upper={nuclear}}, + nuclear/{upper={text=N}}, + petroleum/{upper={fuel}}, + radio/{upper={text=R}}, + railroad/{upper={railroad}}, + telephone/{upper={text=T}}, + television/{upper={text=TV}}, + yard/{upper={squashed text=YRD}}, +}} +%</cmp> diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx new file mode 100644 index 0000000000..38c3951376 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx @@ -0,0 +1,266 @@ +%<*cmp> +\CompatSection{\spec{land}} +\CompatTable{land}{main}{{ + above corps support/{main={above corps support}}, + administrative/{main={squashed text=ADM}}, + air and naval gunfire liaison company/{main={[fill]artillery,reconnaissance,air traffic},upper={naval}}, + air assault with organic lift/{main={air assault with organic lift}}, + air defence/{main={air defence}}, + air traffic services/{main={air traffic,[fill]individual}}, + ammunition/{main={ammunition}}, + amphibious/{main={amphibious}}, + analysis electronic warfare/{main={analysis,electronic warfare wide}}, + analysis/{main={analysis}}, + anti tank anti armour/{main={anti tank anti armour}}, + armoured engineer/{main={armoured,[scale=.7]engineer}}, + armoured/{main={armoured}}, + aviation composite fixed wing and rotary wing/{main={[fill]fixed and rotary wing}}, + aviation fixed wing/{main={fixed wing}}, + aviation rotary wing/{main={rotary wing}}, + band/{main={squashed text=BAND}}, + broadcast transmitter antenna/{main={antenna}}, + chemical biological radiological nuclear defence/{main={chemical biological radiological nuclear}}, + civil affairs/{main={text=CA}}, + civilian military cooperation/{main={civilian military cooperation}}, + civilian police/{main={civilian police}}, + combat service support/{main={squashed text=CSS}}, + combat support/{main={combat support}}, + combat/{main={squashed text=CBT}}, + combined arms/{main={combined arms}}, + corps support/{main={corps support}}, + counter intelligence/{main={text=CI}}, + criminal investigation division/{main={squashed text=CID}}, + direction finding electronic warfare/{main={direction finding,electronic warfare wide}}, + diving/{main={diving}}, + dog/{main={squashed text=DOG}}, + drilling/{main={drilling}}, + electronic ordinance disposal/{main={squashed text=EOD}}, + electronic ranging/{main={electronic ranging}}, + electronic warfare/{main={text=EW}}, + engineer/{main={engineer}}, + environmental protection/{main={environmental protection}}, + field artillery observer/{main={{[clip]observer},{[scale=.7,shift={(0,-.1)},fill]artillery},reconnaissance}}, + field artillery/{main={[fill]artillery}}, + finance/{main={finance}}, + fire protection/{main={fire protection}}, + geospatial support/{main={squashed text=GEO}}, + government organization/{main={text=GO}}, + headquarters/{main={headquarters}}, + individual/{main={individual}}, + infantry/{main={infantry}}, + information operations/{main={text=IO}}, + intercept electronic warfare/{main={[fill]analysis,electronic warfare wide}}, + intercept/{main={[fill]analysis}}, + internal security force/{main={squashed text=ISF}}, + interrogation/{main={squashed text=IPW}}, + jamming electronic warfare/{main={jamming,text=EW}}, + jamming/{main={jamming}}, + joint fire support/{main={squashed text=JFS}}, + judge advocate general/{main={squashed text=JAG}}, + killing victim/{main={killing,individual}}, + killing victims/{main={killing,group}}, + labour/{main={labour}}, + laundry/{main={laundry}}, + liaison/{main={text=LO}}, + main gun system/{main={main gun}}, + maintenance/{main={maintenance=fill}}, + material/{main={squashed text=MAT}}, + medical treatment facility/{main={medical treatment}}, + medical/{main={medical}}, + meteorological/{main={squashed text=MET}}, + military intelligence/{main={text=MI}}, + military police/{main={text=MP}}, + mine/{main={mine}}, + missile/{main={land missile}}, + morale welfare and recreation/{main={squashed text=MWE}}, + mortar/{main={mortar}}, + mortuary affairs/{main={mortuary affairs}}, + motorized/{main={motorized}}, + naval/{main={naval}}, + observer/{main={observer}}, + ordnance/{main={ordnance}}, + organisation or group/{main={organisation}}, + personnel services/{main={text=PS}}, + petroleum oil and lubricants/{main={fuel}}, + pipeline/{main={pipeline}}, + postal/{main={postal}}, + psychological operations broadcast/{main={antenna,{[scale=.7,fill]psychological}}}, + psychological/{main={psychological}}, + public affairs/{main={text=PA}}, + quartermaster/{main={quartermaster}}, + radar/{main={radar}}, + radio relay:/{main={radio relay}}, + radio teletype centre/{main={radio teletype}}, + radio/{main={radio}}, + reconnaissance/{main={reconnaissance}}, + religious support/{main={squashed text=REL}}, + replacement holding unit/{main={squashed text=RHU}}, + sea air land/{main={squashed text=SEAL}}, + search electronic warfare/{main={search,electronic warfare wide}}, + search/{main={search}}, + security/{main={squashed text=SEC}}, + self propelled field artillery/{main={motorized,artillery}}, + sensor/{main={sensor}}, + shore patrol security police/{main={text=SP}}, + signal radio relay/{main={signal,radio relay}}, + signal radio teletype centre/{main={signal,radio teletype}}, + signal radio/{main={signal,radio}}, + signal tactical satellite/{main={signal,tactical satellite}}, + signal/{main={signal}}, + sniper:/{main={sniper}}, + special forces/{main={text=SF}}, + special operations forces/{main={squashed text=SOF}}, + spy:/{main={squashed text=SPY}}, + supply/{main={supply}}, + surveillance/{main={[fill]observer}}, + survey/{main={survey}}, + sustainment/{main={squashed text=SUST}}, + tactical mortar/{main={armoured,[scale=.6]mortar}}, + tactical satellite/{main={tactical satellite}}, + topographic/{main={topographic}}, + transportation/{main={transportation}}, + unmanned systems/{main={unmanned}}, + victim of an attempted crime/{main={individual,crime}}, + video imagery/{main={video imagery}}, + water purification/{main={water,{[shift={(-.2,.-.1)}]small squashed text=PURE}}}, + water/{main={water}}, +}} + +\CompatTable{land}{upper}{{ + Mil medical role 1/{upper={text=1}}, + Mil medical role 2/{upper={text=2}}, + Mil medical role 3/{upper={text=3}}, + Mil medical role 4/{upper={text=4}}, + air assault/{upper={air assault}}, + area/{upper={squashed text=AREA}}, + assassination/{upper={text=AS}}, + attack/{upper={text=A}}, + biological/{upper={text=B}}, + border/{upper={squashed text=BOR}}, + bridging/{upper={bridge}}, + chemical/{upper={text=C}}, + close protection/{upper={squashed text=CLP}}, + coerced or impressed recruit/{upper={text=C}}, + combat/{upper={squashed text=CBT}}, + command and control/{upper={text=C2}}, + communications contingency package/{upper={squashed text=CCP}}, + construction/{upper={squashed text=CONST}}, + cross cultural communication/{upper={squashed text=CCC}}, + crowd and riot control/{upper={squashed text=CRC}}, + decontamination/{upper={text=D}}, + detention/{upper={squashed text=DET}}, + direct communications/{upper={direct communications}}, + displaced persons refugees and evacuees/{upper={squashed text=DPRE}}, + diving/{upper={diving}}, + division/{upper={text=XX}}, + dog/{upper={squashed text=DOG}}, + drilling/{upper={drilling}}, + electro optical/{upper={text=EO}}, + enhanced/{upper={squashed text=ENH}}, + execution/{upper={text=EX}}, + explosive ordnance disposal/{upper={squashed text=EOD}}, + fire direction centre/{upper={squashed text=FDC}}, + force/{upper={text=F}}, + foreign fighters/{upper={text=FF}}, + forward/{upper={squashed text=FWD}}, + gang member or gang/{upper={squashed text=GANG}}, + government organisation/{upper={text=GO}}, + ground station module/{upper={squashed text=GSM}}, + hijacking/{upper={text=H}}, + kidnapping/{upper={text=K}}, + landing support/{upper={text=LS}}, + large extension node/{upper={squashed text=LEN}}, + leader or leadership/{upper={squashed text=LDR}}, + maintenance:/{upper={maintenance}}, + mine countermeasuure/{upper={squashed text=MCM}}, + missile:/{upper={land missile}}, + mobile advisor and support/{upper={mobile advisor and support}}, + mobile subscriber equipment/{upper={squashed text=MSE}}, + mobility support/{upper={text=MS}}, + movement control centre/{upper={squashed text=MCC}}, + multinational specialized unit/{upper={squashed text=MSU}}, + multinational/{upper={text=MN}}, + multiple rocket launcher/{upper={rocket launcher=multiple head}}, + murder victims/{upper={text=MU}}, + naval/{upper={naval}}, + node centre/{upper={text=NC}}, + non-governmental organization member or non-governmental/{upper={organisation}}, + nuclear:/{upper={text=N}}, + operations:/{upper={squashed text=OPS}}, + piracy:/{upper={text=PI}}, + radar:/{upper={radar}}, + radiological/{upper={squashed text=RAD}}, + rape/{upper={text=RA}}, + religious or religious organisation/{upper={squashed text=REL}}, + runway/{upper={runway}}, + search and rescue/{upper={squashed text=SAR}}, + security/{upper={squashed text=SEC}}, + sensor control module/{upper={squashed text=SEM}}, + sensor/{upper={sensor}}, + signals intelligence/{upper={signals intelligence}}, + single rocket launcher/{upper={rocket launcher=single head}}, + single shelter switch/{upper={squashed text=SSS}}, + smoke/{upper={text=S}}, + sniper/{upper={sniper}}, + sound ranging/{upper={squashed text=SDR}}, + special weapons and tactics/{upper={squashed text=SWAT}}, + survey:/{upper={survey}}, + tactical exploitation/{upper={text=TE}}, + target acquisition/{upper={text=TA}}, + targeted individual or organisation/{upper={squashed text=TGT}}, + terrorist or terrorist organisation/{upper={squashed text=TER}}, + topographic/{upper={topographic}}, + utility/{upper={text=U}}, + video imagery/{upper={video imagery}}, + willing recruit/{upper={text=W}}, +}} + +\CompatTable{land}{lower}{{ + airborne/{lower={airborne}}, + arctic/{lower={arctic}}, + battle damage repair/{lower={squashed text=BDR}}, + bicycle equipped/{lower={bicycle equipped}}, + clearing/{lower={squashed text=CLR}}, + close range/{lower={text=CR}}, + control/{lower={control}}, + decontamination/{lower={text=D}}, + demolition/{lower={squashed text=DEM}}, + dental/{lower={text=D}}, + digital/{lower={squashed text=DIG}}, + enhanced location reporting system/{lower={enhanced location reporting system}}, + equipment/{lower={text=E}}, + heavy/{lower={text=H}}, + intensive care/{lower={text=IC}}, + intermodal/{lower={intermodal}}, + laboratory/{lower={squashed text=LAB}}, + launcher/{lower={launcher}}, + light/{lower={text=L}}, + long range/{lower={text=LR}}, + medium range/{lower={text=MR}}, + mountain/{lower={mountain}}, + multi channel/{lower={text=MC}}, + optical/{lower={squashed text=OPT}}, + pack animal/{lower={pack animal}}, + patient evacuation coordination/{lower={squashed text=PEC}}, + preventative maintenance/{lower={text=PM}}, + psychological/{lower={text=P}}, + radio relay line of sight/{lower={radio relay line of sight}}, + railroad/{lower={railroad}}, + recovery maintenance/{lower={maintenance}}, + recovery unmanned systems/{lower={recovery unmanned systems}}, + rescue coordination centre/{lower={squashed text=RCC}}, + riverine/{lower={riverine}}, + short range/{lower={text=SR}}, + single channel/{lower={text=SC}}, + ski/{lower={ski}}, + strategic/{lower={squashed text=STR}}, + support/{lower={squashed text=SPT}}, + tactical/{lower={squashed text=TAC}}, + towed/{lower={towed}}, + troop/{lower={text=T}}, + vertical of short takeoff and landing/{lower={squashed text=VSTOL}}, + veterinary/{lower={text=V}}, + wheeled/{lower={wheeled}}, +}} +%</cmp> +% diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx new file mode 100644 index 0000000000..db7ea7176d --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx @@ -0,0 +1,14 @@ +%<*cmp> +\CompatSection{\spec{missile}} +\CompatTable{missile}{main}{{ + missile/{main={missile}}, + air/{main={missile},left={text=A}}, + anti ballistic/{main={missile},left={text=AB}}, + ballistic/{main={missile},left={text=B}}, + cruise/{main={missile},left={text=C}}, + space/{main={missile},left={text=SP}}, + sub surface/{main={missile},left={text=SU}}, + surface/{main={missile},left={text=S}}, +}} +%</cmp> +% diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx new file mode 100644 index 0000000000..f4bdbd9d2f --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx @@ -0,0 +1,18 @@ +%<*cmp> +\CompatSection{\spec{sea mine}} +\CompatTable{sea mine}{main}{{ + free/{main={sea mine}}, + free-neutralised/{main={sea mine=neutralised}}, + bottomed/{main={sea mine},lower={bottomed}}, + bottomed-neutralised/{main={sea mine=neutralised},lower={bottomed}}, + moored/{main={sea mine},lower={moored}}, + moored-neutralised/{main={sea mine=neutralized},lower={moored}}, + floating/{main={sea mine},lower={floating}}, + floating-neutralised/{main={sea mine=neutralised},lower={floating}}, + in other position/{main={sea mine,in position}}, + in other position-neutralised/{main={sea mine=neutralised,in position}}, + rising/{main={sea mine},lower={rising}}, + rising-neutralised/{main={sea mine=neutralised},lower={rising}}, +}} +%</cmp> +% diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx new file mode 100644 index 0000000000..2470da3a4b --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx @@ -0,0 +1,131 @@ +%<*cmp> +\CompatSection{\spec{sea surface}} +\CompatTable{sea surface}{main}{{ + ammunition ship/{main={text=AE}}, + amphibious assault ship/{main={squashed text=LHA}}, + amphibious assault/{main={text=LA}}, + amphibious assualt ship helicopter/{main={squashed text=LPH}}, + amphibious command ship/{main={squashed text=LCC}}, + amphibious transport/{main={squashed text=LPD}}, + amphibious warfare ship/{main={amphibious warfare ship}}, + auxiliary flag ship/{main={squashed text=AGF}}, + auxiliary ship/{main={text=AA}}, + barge/{main={ship,[shift={(0,-.05)}]small text=YB}}, + battleship/{main={text=BB}}, + cargo/{main={ship,text=A}}, + carrier/{main={carrier}}, + civilian boat/{main={boat}}, + civilian jetski/{main={jetski}}, + civilian rigid hull inflatable boat/{main={boat,[shift={(0,-.05)}]small text=RB}}, + civilian speedboat/{main={boat,[shift={(0,-.05)}]small text=SP}}, + civilian unmanned surface water vehicle/{main={unmanned}}, + civilian/{main={squashed text=CIV}}, + combat support ship/{main={squashed text=AOE}}, + combatant/{main={combatant}}, + container ship/{main={ship,text=C}}, + convoy/{main={convoy}}, + corvette/{main={text=FS}}, + cruiser guided missile/{main={text=CG}}, + destroyer/{main={text=DD}}, + dredge/{main={ship,text=D}}, + drifter/{main={fishing vessel,text=DF}}, + ferry/{main={ship,text=F}}, + fishing vessel/{main={fishing vessel}}, + frigate/{main={text=FF}}, + harbour tug/{main={text=YT}}, + hazardous material transport ship/{main={ship,[yshift=.-.07]small text=HZ}}, + heavy lift/{main={ship,text=H}}, + hospital ship/{main={text=AH}}, + hovercraft/{main={ship,text=J}}, + intelligence collector/{main={squashed text=AGI}}, + junk/{main={ship,[yshift=-.07]small text=QJ}}, + landing craft/{main={text=LC}}, + landing ship/{main={text=LS}}, + lash carrier/{main={ship,text=L}}, + launch/{main={squashed text=YFT}}, + law enforcement vessel/{main={coast guard vessel}}, + littoral combatant ship/{main={squashed text=LCS}}, + military jetski/{main={[fill]jetski}}, + military rigid hull inflatable boat/{main={{[fill]boat},{[white,scale=.5,yshift=-1.2]small text=RB}}}, + military speedboat/{main={[fill]boat}}, + military unmanned surface water vehicle/{main={[fill]unmanned}}, + military/{main={squashed text=MIL}}, + mine countermeasure support ship/{main={squashed text=MCS}}, + mine countermeasures/{main={squashed text=MCM}}, + mine warfare vessel/{main={mine warfare vessel}}, + minehunter/{main={text=MH}}, + minelayer/{main={text=ML}}, + minesweeper drone/{main={squashed text=MSD}}, + minesweeper/{main={text=MS}}, + multi purpose amphibious assualt ship/{main={squashed text=LHD}}, + naval cargo ship/{main={text=AK}}, + navy task element/{main={navy task,squashed text=TE}}, + navy task force/{main={navy task,squashed text=TF}}, + navy task group/{main={navy task,squashed text=TG}}, + navy task organisation unit/{main={navy task}}, + navy task unit/{main={navy task,squashed text=TU}}, + non combatant/{main={non combatant}}, + non self propelled barge/{main={text=YB}}, + ocean going tug/{main={text=AT}}, + ocean research ship/{main={squashed text=AGO}}, + oiler/{main={squashed text=AOR}}, + passenger ship/{main={ship,text=P}}, + patrol craft/{main={text=PC}}, + patrol ship/{main={text=PG}}, + patrol/{main={patrol}}, + repair ship/{main={text=AR}}, + roll on roll off/{main={ship,text=E}}, + sailing boat/{main={sailing boat}}, + sea surface decoy/{main={decoy}}, + self propelled barge/{main={text=YS}}, + service craft/{main={text=YY}}, + ship/{main={ship}}, + stores ship/{main={text=AF}}, + submarine tender/{main={text=AS}}, + surface combatant/{main={surface combatant}}, + survey ship/{main={squashed text=AGS}}, + tanker/{main={ship,text=O}}, + tow/{main={ship,[yshift=-.09]small text=TW}}, + trawler/{main={fishing vessel,[yshift=-.09]small text=TR}}, + tug/{main={ship,text=T}}, +}} + +\CompatTable{sea surface}{upper}{{ + anti air warfare/{upper={squashed text=AAW}}, + anti submarine warfare/{upper={squashed text=ASW}}, + ballistic missile/{upper={text=B}}, + drone equipped/{upper={[fill]unmanned}}, + electronic warfare/{upper={text=EW}}, + escort/{upper={text=E}}, + guided missile/{upper={text=G}}, + helicopter equipped/{upper={text=H}}, + intelligence surveillance reconnaissance/{upper={squashed text=ISR}}, + medical/{upper={text=ME}}, + mine counter measures/{upper={squashed text=MCM}}, + mine warfare/{upper={text=MW}}, + missile defence/{upper={text=MD}}, + other guided missile/{upper={text=M}}, + remote multi mission vehicle/{upper={squashed text=RMV}}, + special operations force/{upper={squashed text=SOF}}, + surface warfare/{upper={squashed text=SUW}}, + torpedo/{upper={text=T}}, +}} + +\CompatTable{sea surface}{lower}{{ + air cushioned alternate/{lower={text=AC}}, + air cushioned/{lower={text=J}}, + autonomous control/{lower={squashed text=AUT}}, + dock/{lower={text=D}}, + expendable/{lower={squashed text=EXP}}, + fast/{lower={text=F}}, + heavy/{lower={text=H}}, + hydrofoil/{lower={text=K}}, + light/{lower={text=L}}, + logistics/{lower={squashed text=LOG}}, + medium/{lower={text=M}}, + nuclear powered/{lower={text=N}}, + remotely piloted/{lower={text=RP}}, + tank/{lower={text=T}}, + vehicle/{lower={text=V}}, +}} +%</cmp> diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx new file mode 100644 index 0000000000..4a1a421911 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx @@ -0,0 +1,51 @@ +%<*cmp> +\CompatSection{\spec{space}} +\CompatTable{space}{main}{{ + anti satellite weapon/{main={[fill]satellite,[scale=.6]rifle}}, + civilian astronomical satellite/{main={satellite=astronomical}}, + civilian bio satellite/{main={satellite=bio}}, + civilian capsule/{main={capsule}}, + civilian communications satellite/{main={satellite=communications}}, + civilian earth observation satellite/{main={satellite=earth observing}}, + civilian miniaturised satellite/{main={satellite=small}}, + civilian navigational satellite/{main={satellite=navigation}}, + civilian orbiter shuttle/{main={orbiter shuttle}}, + civilian satellite/{main={satellite}}, + civilian space station/{main={space station}}, + civilian tether satellite/{main={satellite=tether}}, + civilian weather satellite/{main={[yshift=-4]satellite,text=WX}}, + military astronomical satellite/{main={[fill]satellite=astronomical}}, + military bio satellite/{main={[fill]satellite=bio}}, + military capsule/{main={[fill]capsule}}, + military communications satellite/{main={[fill]satellite=communications}}, + military earth observation satellite/{main={[fill]satellite=earth observing}}, + military miniaturised satellite/{main={[fill]satellite=small}}, + military navigational satellite/{main={[fill]satellite=navigation}}, + military orbiter shuttle/{main={[fill]orbiter shuttle}}, + military satellite/{main={[fill]satellite=none}}, + military space station/{main={[fill]space station}}, + military tether satellite/{main={[fill]satellite=tether}}, + military weather satellite/{main={{[fill,yshift=-4]satellite},text=WX}}, + planet lander/{main={text=PL}}, + reconnaissance satellite/{main={satellite=reconnaissance}}, + reentry vehicle/{main={text=RV}}, + satellite/{main={squashed text=SAT}}, + space vehicle/{main={text=SV}}, +}} + +\CompatTable{space}{upper}{{ + geostationary orbit/{upper={text=GO}}, + geosynchronous orbit/{upper={squashed text=GSO}}, + high earth orbit/{upper={squashed text=HEO}}, + low earth orbit/{upper={squashed text=LEO}}, + medium earth orbit/{upper={squashed text=MEO}}, + molinya orbit/{upper={text=MO}}, +}} + +\CompatTable{space}{lower}{{ + infra red/{lower={text=IR}}, + optical/{lower={text=O}}, + radar=/{lower={text=R}}, + signals instelligence/{lower={text=SI}}, +}} +%</cmp> diff --git a/macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx b/macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx new file mode 100644 index 0000000000..38a867bdcd --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx @@ -0,0 +1,67 @@ +%<*cmp> +\CompatSection{\spec{sub surface}} +\CompatTable{sub surface}{main}{{ + autonomous underwater vehicle/{main={[fill]unmanned}}, + bottomed sea mine decoy/{main={[fill]sea mine=top half,{[scale=.6,yshift=-6]decoy}},lower={bottomed}}, + bottomed submarine/{main={submarine},lower={bottomed}}, + civilian autonomous underwatervehicle/{main={unmanned}}, + civilian diver/{main={diving}}, + civilian seabed installation/{main={seabed installation}}, + civilian submersible/{main={submersible}}, + civilian/{main={squashed text=CIV}}, + improvised explosive device/{main={squashed text=IED}}, + military diver/{main={diving=military}}, + military seabed installation/{main={[fill]seabed installation}}, + military/{main={squashed text=MIL}}, + moored sea mine decoy/{main={[fill]sea mine=top half,{[yshift=-4,scale=.6]decoy}},lower={[yshift=-2]bottomed,moored}}, + non submarine/{main={small squashed text=NON SUB}}, + other submersible/{main={[fill]submersible}}, + sea mine decoy/{main={[fill]sea mine=top half,{[scale=.6,yshift=-6]decoy}}}, + snorkelling submarine/{main={submarine},upper={[yshift=-8]surfaced,[yshift=-2]type=vlight}}, + submarine/{main={submarine}}, + surfaced submarine/{main={submarine},lower={surfaced}}, + torpedo/{main={torpedo}}, + underwater decoy/{main={decoy},upper={[yshift=-4]bottomed}}, + underwater weapon/{main={squashed text=WPN}}, + unexploded ordnance/{main={unexploded ordnance}}, +}} + +\CompatTable{sub surface}{upper}{{ + anti submarine warfare/{upper={squashed text=ASW}}, + attack/{upper={text=A}}, + auxiliary/{upper={squashed text=AUX}}, + ballistic missile/{upper={text=B}}, + certain submarine/{upper={text=CT}}, + command and control/{upper={text=C2}}, + guided missile/{upper={text=G}}, + intelligence surveillance reconnaissance/{upper={squashed text=ISR}}, + mine countermeasures/{upper={squashed text=MCM}}, + mine warfare/{upper={text=MW}}, + other guided missile/{upper={text=M}}, + possible submarine high 3/{upper={text=P3}}, + possible submarine high 4/{upper={text=P4}}, + possible submarine low 1/{upper={text=P1}}, + possible submarine low 2/{upper={text=P2}}, + probable submarine/{upper={text=PB}}, + special operations force/{upper={squashed text=SOF}}, + surface warfare/{upper={squashed text=SUW}}, +}} + +\CompatTable{sub surface}{lower}{{ + air independent propulsion/{lower={text=AI}}, + autonomous control/{lower={squashed text=AUT}}, + diesel propulsion/{lower={text=D}}, + diesel type 1/{lower={text=D1}}, + diesel type 2/{lower={text=D2}}, + diesel type 3/{lower={text=D3}}, + expendable/{lower={squashed text=EXP}}, + nuclear propulsion/{lower={text=N}}, + nuclear type 1/{lower={text=N1}}, + nuclear type 2/{lower={text=N2}}, + nuclear type 3/{lower={text=N3}}, + nuclear type 4/{lower={text=N4}}, + nuclear type 5/{lower={text=N5}}, + nuclear type 6/{lower={text=N6}}, + remotely piloted/{lower={text=RP}}, +}} +%</cmp> diff --git a/macros/latex/contrib/wargame/source/natoapp6c/core.dtx b/macros/latex/contrib/wargame/source/natoapp6c/core.dtx new file mode 100644 index 0000000000..8a2caf322e --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/core.dtx @@ -0,0 +1,226 @@ +% \iffalse +% ==================================================================== +% \fi +% +% \subsection{The \texttt{wargame.natoapp6c} \TikZ{} library} +% +% In this section we define the code for the Tikz library. The +% library defines a number of \spec{pic} keys we can use to draw +% various parts of a marker. The markers conform to NATO App~6(c) +% specification. The implementation here is heavily inspired by the +% package \textsf{milsymb} \cite{milsymb} available at CTAN. +% +% \iffalse +%<*natoapp6c> +% \fi +% +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Debugging} +% \begin{Macro}{\natoappdbglvl,\n@to@pp@dbg} +% +% Set the debug level, and make debug message. +% +% \begin{macrocode} +\usetikzlibrary{wargame.util} +\usetikzlibrary{calc} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.symbols} +\usetikzlibrary{positioning,intersections} +\newcount\natoappdbglvl\natoappdbglvl=\wargamedbglvl +\def\n@to@pp@dbg#1#2{% + \ifnum#1>\natoappdbglvl\relax\else\message{^^J#2}\fi} +% \end{macrocode} +% \end{Macro} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Colours} +% +% \begin{Macro}{\c@friendly, +% \c@hostile, +% \c@neutral, +% \c@unknown} +% +% Define standard colours for marker affiliations. +% +% \begin{tabular}{|l|c|} +% \hline +% \rowcolor{headbg} +% {\color{headfg}\textbf{Name}} +% & {}\\ +% \hline +% \spec{friendly} & \tikz{\draw[fill=friendly] (0,0) rectangle(1,.2);}\\ +% \spec{hostile} & \tikz{\draw[fill=hostile ] (0,0) rectangle(1,.2);}\\ +% \spec{neutral} & \tikz{\draw[fill=neutral ] (0,0) rectangle(1,.2);}\\ +% \spec{unknown} & \tikz{\draw[fill=unknown ] (0,0) rectangle(1,.2);}\\ +% \hline +% \end{tabular} +% +% \begin{macrocode} +\definecolor{friendly}{RGB}{128, 224, 255} +\definecolor{hostile}{RGB}{255, 128, 128} +\definecolor{neutral}{RGB}{170, 255, 170} +\definecolor{unknown}{RGB}{255, 255, 128} +\tikzset{% + faction/.code={% + \@ifundefined{natoapp@fac}{% + }{\tikzset{fill=\natoapp@fac}}}} +% \end{macrocode} +% \end{Macro} +% +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Some dimensions} +% +% We define a number of dimensions which we will use in the +% following. They provide a rough parameterisation of the node +% shapes, but shouldn't really be changed. We have them here so that +% the code uses as few hard coded numbers as possible. +% +% The dimensions are +% \begin{itemize} +% \item Installation `hat' $x$ coordinate +% \item Installation `hat' height +% \item Activity width of boxes +% \item Height of space bar +% \item Radius of the symbol +% \end{itemize} +% +% \begin{macrocode} +\newdimen\n@to@pp@inst@x\n@to@pp@inst@x=0.2cm +\newdimen\n@to@pp@inst@h\n@to@pp@inst@h=0.15cm +\newdimen\n@to@pp@act@w\n@to@pp@act@w=0.15cm +\newdimen\n@to@pp@space@h\n@to@pp@space@h=0.1cm +\newdimen\n@to@pp@r\n@to@pp@r=0.5cm +% \end{macrocode} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Some utilities} +% +% \begin{Macro}{\n@to@pp@isclip} +% This detects if we're in a node that is being used for clipping +% +% \begin{macrocode} +%\def\n@to@pp@cliptoken{clip} +%\def\n@to@pp@isclip{FF\fi% +% % \message{^^Jclip is \meaning\pgf@up@clip}% +% \ifx\pgf@up@clip\n@to@pp@cliptoken} +\newif\ifn@to@pp@isclip\n@to@pp@isclipfalse +% \end{macrocode} +% \end{Macro} +% +% +% \begin{Macro}{\n@to@pp@saved@fill@color,\n@to@pp@saved@stroke@color} +% +% Macros to hold saved colours. + +% \begin{macrocode} +\let\n@to@pp@saved@stroke@color\relax +\let\n@to@pp@saved@fill@color\relax +% \end{macrocode} +% \end{Macro} +% +% \begin{Macro}{\n@to@pp@stroke@to@fill,\n@to@pp@restore@fill} +% Macro to get stroke and fill colours and set the fill colour to +% the stroke colour, and to restore to the old setting. This is +% used by the frame shapes below to make sure that filled elements +% of the frame uses the same colour as the for strokes. +% +% \begin{macrocode} +\newcommand\n@to@pp@stroke@to@fill{% + % + \expandafter\let\expandafter\n@to@pp@saved@stroke@color% + \csname\string\color@pgfstrokecolor\endcsname% + % + \expandafter\let\expandafter\n@to@pp@saved@fill@color% + \csname\string\color@pgffillcolor\endcsname% + % + \expandafter\pgf@setfillcolor\n@to@pp@saved@stroke@color% + % + % \message{^^J=== Set fill to stroke color + % ^^J Old fill: \meaning\n@to@pp@saved@fill@color + % ^^J Old stroke: \meaning\n@to@pp@saved@stroke@color} +} +% \end{macrocode} +% +% +% +% \begin{macrocode} +\newcommand\n@to@pp@restore@fill{% + % \message{^^J=== Restore fill color + % ^^J Old fill: \meaning\n@to@pp@saved@fill@color + % ^^J Old stroke: \meaning\n@to@pp@saved@stroke@color} + % + \ifx\n@to@pp@saved@fill@color\relax\else% + \expandafter\pgf@setfillcolor\n@to@pp@saved@fill@color% + \fi% + \global\let\n@to@pp@saved@fill@color\relax + \global\let\n@to@pp@saved@stroke@color\relax +} +% \end{macrocode} +% +% We also make an environment, just to simplify the use +% +% \begin{macrocode} +\newenvironment{n@to@pp@stroketofill}{% + \pgfscope% + \n@to@pp@stroke@to@fill% +}{% + \n@to@pp@restore@fill% + \endpgfscope% +} +% \end{macrocode} +% \end{Macro} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Faction names as macros} +% +% \begin{macrocode} +\def\n@to@pp@friendly{friendly} +\def\n@to@pp@hostile{hostile} +\def\n@to@pp@neutral{neutral} +\def\n@to@pp@unknown{unknown} +% \end{macrocode} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Node shapes} +% +% Here we define bases for all commands and affiliations. These are +% defined as node shapes. This means we will render the NATO App6(c) +% symbols as nodes with embedded nodes of the relevant shape. +% +% +% +% \input{natoapp6c/frames/base.dtx} +% \input{natoapp6c/frames/friendly.dtx} +% \input{natoapp6c/frames/hostile.dtx} +% \input{natoapp6c/frames/neutral.dtx} +% \input{natoapp6c/frames/unknown.dtx} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% +% \input{natoapp6c/echelon.dtx} +% \input{natoapp6c/text.dtx} +% \input{natoapp6c/shape.dtx} +% \input{natoapp6c/util.dtx} +% \input{natoapp6c/weaponry.dtx} +% \input{natoapp6c/symbols.dtx} +% \input{natoapp6c/list.dtx} +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx b/macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx new file mode 100644 index 0000000000..a63be2ae47 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx @@ -0,0 +1,82 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{Echelons} +% +% +% Dimensions +% +% \begin{macrocode} +\def\n@to@pp@e@y{.12} +\def\n@to@pp@e@yy{.24} +% \end{macrocode} +% +% Paths as macros +% +% \begin{macrocode} +\def\n@to@pp@e@d#1{($(#1*\n@to@pp@e@y,0)$) circle(0.09)} +\def\n@to@pp@e@b#1{% + ($(#1*\n@to@pp@e@y,-\n@to@pp@e@y)$) -- ($(#1*\n@to@pp@e@y,\n@to@pp@e@y)$)} +\def\n@to@pp@e@x#1{% + ($(-\n@to@pp@e@y,-\n@to@pp@e@y)+(#1*\n@to@pp@e@y,0)$)-- + ++(\n@to@pp@e@yy,\n@to@pp@e@yy) + ($(-\n@to@pp@e@y, \n@to@pp@e@y)+(#1*\n@to@pp@e@y,0)$)-- + ++(\n@to@pp@e@yy,-\n@to@pp@e@yy)} +% \end{macrocode} +% +% Pictures +% +% \begin{macrocode} +\tikzset{ + pics/natoapp6c/s/echelon/.is choice, + pics/natoapp6c/s/echelon/squad/.style={code={ + \path[draw,fill=pgfstrokecolor,pic actions] + \foreach \o in {0}{\n@to@pp@e@d{\o}};}}, + pics/natoapp6c/s/echelon/section/.style={code={ + \path[draw,fill=pgfstrokecolor,pic actions] + \foreach \o in {-1,1}{\n@to@pp@e@d{\o}};}}, + pics/natoapp6c/s/echelon/platoon/.style={code={ + \path[draw,fill=pgfstrokecolor,pic actions] + \foreach \o in {-2,0,2}{\n@to@pp@e@d{\o}};}}, + pics/natoapp6c/s/echelon/company/.style={code={ + \path[draw,pic actions] + \foreach \o in {0}{\n@to@pp@e@b{\o}};}}, + pics/natoapp6c/s/echelon/battalion/.style={code={ + \path[draw,pic actions] + \foreach \o in {-1,1}{\n@to@pp@e@b{\o}};}}, + pics/natoapp6c/s/echelon/regiment/.style={code={ + \path[draw,pic actions] + \foreach \o in {-2,0,2}{\n@to@pp@e@b{\o}};}}, + pics/natoapp6c/s/echelon/brigade/.style={code={ + \path[draw,pic actions] + \foreach \o in {0}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/division/.style={code={ + \path[draw,pic actions] + \foreach \o in {-1,1}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/corps/.style={code={ + \path[draw,pic actions] + \foreach \o in {-2,0,2}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/army/.style={code={ + \path[draw,pic actions] + \foreach \o in {-3,-1,1,3}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/army group/.style={code={ + \path[draw,pic actions] + \foreach \o in {-4,-2,0,2,4}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/theatre/.style={code={ + \path[draw,pic actions] + \foreach \o in {-5,-3,-1,1,3,5}{\n@to@pp@e@x{\o}};}}, + pics/natoapp6c/s/echelon/command/.style={code={ + \path[draw,pic actions] + (-.3,-.1) -- (-.3,.1) (-.4, 0) -- (-.2, 0) + ( .3,-.1) -- ( .3,.1) ( .4, 0) -- ( .2, 0);}}, + pics/natoapp6c/s/echelon/dummy/.style={code={% + \path[draw,pic actions] (M.north west) rectangle + ($(M.north east)+(0,.1)$);}}, +} +% \end{macrocode} +% +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx b/macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx new file mode 100644 index 0000000000..614bf8f95c --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx @@ -0,0 +1,70 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% +% First, the generic bounding box symbol for all markers. +% +% \begin{NatoAppFrame}{natoapp6c base} +% +% Place-holder symbol. This shape will form the basis of many of +% the other frame shapes. We define the relevant sizes and +% anchors. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c base}{% + \saveddimen\radius{\pgf@x=\n@to@pp@r} + \saveddimen\liney{\pgf@x=.2cm} + \saveddimen\linex{\pgf@x=0.41cm} + \savedanchor\center{\pgf@x=0cm\pgf@y=0cm} + \savedanchor\upper{\pgf@x=0cm\pgf@y=0.35cm} + \anchor{north east}{\pgf@x=\radius\pgf@y=\radius} + \anchor{south west}{\pgf@x=-\radius\pgf@y=-\radius} + \anchor{north west}{\pgf@x=-\radius\pgf@y=\radius} + \anchor{south east}{\pgf@x=\radius\pgf@y=-\radius} + \anchor{south}{\pgf@x=0cm\pgf@y=-\radius} + \anchor{north}{\pgf@x=0cm\pgf@y=\radius} + \anchor{west}{\pgf@x=-\radius\pgf@y=0cm} + \anchor{east}{\pgf@x=\radius\pgf@y=0cm} + \anchor{center}{\center} + \anchor{upper}{\upper} + \anchor{lower}{\upper\pgf@y=-\pgf@y} + \anchor{left}{\upper\pgf@x=-\pgf@y\pgf@y=0cm} + \anchor{right}{\upper\pgf@x=\pgf@y\pgf@y=0cm} + \savedmacro\init{ + \def\octagon{% + \pgfpathmoveto{\pgfqpointpolar{0} {\radius}}% + \pgfpathlineto{\pgfqpointpolar{45} {\radius}}% + \pgfpathlineto{\pgfqpointpolar{90} {\radius}}% + \pgfpathlineto{\pgfqpointpolar{135}{\radius}}% + \pgfpathlineto{\pgfqpointpolar{180}{\radius}}% + \pgfpathlineto{\pgfqpointpolar{225}{\radius}}% + \pgfpathlineto{\pgfqpointpolar{270}{\radius}}% + \pgfpathlineto{\pgfqpointpolar{315}{\radius}}% + \pgfpathclose} + \def\topline{% + \pgfpathmoveto{\pgfqpoint{\linex}{\liney}}% + \pgfpathlineto{\pgfqpoint{-\linex}{\liney}}} + \def\bottomline{% + \pgfpathmoveto{\pgfqpoint{\linex}{-\liney}}% + \pgfpathlineto{\pgfqpoint{-\linex}{-\liney}}} + } + \backgroundpath{% + \init% + \octagon} + \behindforegroundpath{% + \init% + \octagon% + \pgfusepath{stroke}% + \topline% + \pgfusepath{stroke}% + \bottomline% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% \iffalse +%</natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx b/macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx new file mode 100644 index 0000000000..d8d0c4fba7 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx @@ -0,0 +1,427 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{`Friendly' node shapes} +% +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly air} +% +% Macro for friendly air shape +% +% \begin{macrocode} +\def\n@to@friendly@@ir{% + \southeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \cntrl \wg@tmpb=\pgf@y% + \pgfpatharc{180}{0}{\wg@tmpa and \wg@tmpb}} +% \end{macrocode} +% +% The friendly air command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly air}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\southeast{% + \pgf@x=1.1\n@to@pp@r% + \pgf@y=-\n@to@pp@r} + \savedanchor\cntrl{\pgf@x=0cm\pgf@y=2.6\n@to@pp@r} + \savedanchor\north{\pgf@x=0cm\pgf@y=1.6\n@to@pp@r} + \anchor{south east}{\southeast} + \anchor{south west}{\southeast\pgf@x=-\pgf@x} + \anchor{north east}{\southeast\wg@tmpa=\pgf@x\north\pgf@x=\wg@tmpa} + \anchor{north west}{\southeast\wg@tmpa=\pgf@x\north\pgf@x=-\wg@tmpa} + \anchor{north}{\north} + \anchor{east}{% + \north\wg@tmpb\pgf@y% + \southeast\wg@tmpc=\pgf@y\wg@tmpa=\pgf@x% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{west}{% + \north\wg@tmpb\pgf@y% + \southeast\wg@tmpc=\pgf@y\wg@tmpa=\pgf@x% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=-\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{south}{\southeast\pgf@x=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@friendly@@ir% + } + \behindforegroundpath{% + \n@to@friendly@@ir% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly land} +% +% Macro for friendly land command +% +% \begin{macrocode} +\def\n@to@friendly@l@nd{% + \northeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{ \wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{ \wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpa}{-\wg@tmpb}}% + \pgfclosepath} +% \end{macrocode} +% +% The friendly land command. The most used command frame. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly land}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{% + \pgf@x=1.5\n@to@pp@r% + \pgf@y=\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\pgf@y=-\pgf@y} + \anchor{south west}{\northeast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{north}{\northeast\pgf@x=0cm} + \anchor{south}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} + \anchor{east}{\northeast\pgf@y=0cm} + \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@friendly@l@nd% + } + \behindforegroundpath{% + \n@to@friendly@l@nd% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly activity} +% +% The friendly activity command. Similar to land command, but with +% boxes in the corners. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly activity}{% + \inheritsavedanchors[from=natoapp6c friendly land] + \inheritanchor[from=natoapp6c friendly land]{center} + \inheritanchor[from=natoapp6c friendly land]{inner north east} + \inheritanchor[from=natoapp6c friendly land]{inner north west} + \inheritanchor[from=natoapp6c friendly land]{inner south west} + \inheritanchor[from=natoapp6c friendly land]{inner south east} + \inheritanchor[from=natoapp6c friendly land]{north east} + \inheritanchor[from=natoapp6c friendly land]{north west} + \inheritanchor[from=natoapp6c friendly land]{south east} + \inheritanchor[from=natoapp6c friendly land]{south west} + \inheritanchor[from=natoapp6c friendly land]{north} + \inheritanchor[from=natoapp6c friendly land]{west} + \inheritanchor[from=natoapp6c friendly land]{east} + \inheritanchor[from=natoapp6c friendly land]{south} + \inheritanchor[from=natoapp6c friendly land]{upper} + \inheritanchor[from=natoapp6c friendly land]{lower} + \inheritanchor[from=natoapp6c friendly land]{left} + \inheritanchor[from=natoapp6c friendly land]{right} + \inheritanchor[from=natoapp6c friendly land]{center} + \inheritbackgroundpath[from=natoapp6c friendly land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@friendly@l@nd% + \pgfusepath{stroke} + % + \northeast \wg@tmpa=\pgf@x\wg@tmpb\pgf@y% + \wg@tmpc=\wg@tmpa\advance\wg@tmpc-\n@to@pp@act@w + \wg@tmpd=\wg@tmpb\advance\wg@tmpd-\n@to@pp@act@w + % + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpd}}% + \pgfclosepath + % + \pgfusepath{fill}% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{-\wg@tmpb}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpc}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{\wg@tmpd}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpb}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly equipment} +% +% The friendly equipment command. A circle. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly equipment}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{% + \pgf@x=\n@to@pp@r% + \pgf@y=\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\pgf@y=-\pgf@y} + \anchor{south west}{\northeast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{north}{\northeast\pgf@x=0cm} + \anchor{south}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} + \anchor{east}{\northeast\pgf@y=0cm} + \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \northeast\wg@tmpa\pgf@x% + \pgfpathcircle{\pgfqpoint{0cm}{0cm}}{\wg@tmpa} + } + \behindforegroundpath{% + \northeast\wg@tmpa\pgf@x% + \pgfpathcircle{\pgfqpoint{0cm}{0cm}}{\wg@tmpa} + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly installation} +% +% The friendly installation command. Similar to the land command, but +% with a `hat' on top. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly installation}{% + \inheritsavedanchors[from=natoapp6c friendly land] + \inheritanchor[from=natoapp6c friendly land]{center} + \inheritanchor[from=natoapp6c friendly land]{inner north east} + \inheritanchor[from=natoapp6c friendly land]{inner north west} + \inheritanchor[from=natoapp6c friendly land]{inner south west} + \inheritanchor[from=natoapp6c friendly land]{inner south east} + \inheritanchor[from=natoapp6c friendly land]{north east} + \inheritanchor[from=natoapp6c friendly land]{north west} + \inheritanchor[from=natoapp6c friendly land]{south east} + \inheritanchor[from=natoapp6c friendly land]{south west} + \inheritanchor[from=natoapp6c friendly land]{north} + \inheritanchor[from=natoapp6c friendly land]{west} + \inheritanchor[from=natoapp6c friendly land]{east} + \inheritanchor[from=natoapp6c friendly land]{south} + \inheritanchor[from=natoapp6c friendly land]{upper} + \inheritanchor[from=natoapp6c friendly land]{lower} + \inheritanchor[from=natoapp6c friendly land]{left} + \inheritanchor[from=natoapp6c friendly land]{right} + \inheritanchor[from=natoapp6c friendly land]{center} + \inheritbackgroundpath[from=natoapp6c friendly land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@friendly@l@nd% + \pgfusepath{stroke} + % + \northeast \wg@tmpa=\pgf@y% + \wg@tmpb=\wg@tmpa\advance\wg@tmpb\n@to@pp@inst@h% + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpa}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly sea surface} +% +% The friendly sea surface command. Same as equipment command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly sea surface}{% + \inheritsavedanchors[from=natoapp6c friendly equipment] + \inheritanchor[from=natoapp6c friendly equipment]{inner north east} + \inheritanchor[from=natoapp6c friendly equipment]{inner north west} + \inheritanchor[from=natoapp6c friendly equipment]{inner south west} + \inheritanchor[from=natoapp6c friendly equipment]{inner south east} + \inheritanchor[from=natoapp6c friendly equipment]{north east} + \inheritanchor[from=natoapp6c friendly equipment]{north west} + \inheritanchor[from=natoapp6c friendly equipment]{south east} + \inheritanchor[from=natoapp6c friendly equipment]{south west} + \inheritanchor[from=natoapp6c friendly equipment]{north} + \inheritanchor[from=natoapp6c friendly equipment]{west} + \inheritanchor[from=natoapp6c friendly equipment]{east} + \inheritanchor[from=natoapp6c friendly equipment]{south} + \inheritanchor[from=natoapp6c friendly equipment]{upper} + \inheritanchor[from=natoapp6c friendly equipment]{lower} + \inheritanchor[from=natoapp6c friendly equipment]{left} + \inheritanchor[from=natoapp6c friendly equipment]{right} + \inheritanchor[from=natoapp6c friendly equipment]{center} + \inheritbackgroundpath[from=natoapp6c friendly equipment] + \inheritbehindforegroundpath[from=natoapp6c friendly equipment] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly space} +% +% The friendly space command. Similar to air command, but with a +% bar on top. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly space}{% + \inheritsavedanchors[from=natoapp6c friendly air] + \inheritanchor[from=natoapp6c friendly air]{north east} + \inheritanchor[from=natoapp6c friendly air]{north west} + \inheritanchor[from=natoapp6c friendly air]{south east} + \inheritanchor[from=natoapp6c friendly air]{south west} + \inheritanchor[from=natoapp6c friendly air]{north} + \inheritanchor[from=natoapp6c friendly air]{west} + \inheritanchor[from=natoapp6c friendly air]{east} + \inheritanchor[from=natoapp6c friendly air]{south} + \inheritanchor[from=natoapp6c friendly air]{upper} + \inheritanchor[from=natoapp6c friendly air]{lower} + \inheritanchor[from=natoapp6c friendly air]{left} + \inheritanchor[from=natoapp6c friendly air]{right} + \inheritanchor[from=natoapp6c friendly air]{center} + \inheritbackgroundpath[from=natoapp6c friendly air] + \behindforegroundpath{% + \begin{n@to@pp@stroketofill} + \n@to@friendly@@ir% + \pgfusepath{stroke,clip}% + % + \cntrl\wg@tmpa=\pgf@y% + \north\wg@tmpb=\pgf@y + \advance\wg@tmpb-\n@to@pp@space@h + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@r}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@r}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@r}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@r}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c friendly sub surface} +% +% Macro for friendly sub surface command +% +% \begin{macrocode} +\def\n@to@friendly@sub{% + \northeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \cntrl \wg@tmpb=\pgf@y% + \pgfpatharc{180}{0}{\wg@tmpa and \wg@tmpb}} +% \end{macrocode} +% +% The friendly sub surface command. +% +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c friendly sub surface}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{% + \pgf@x=1.1\n@to@pp@r% + \pgf@y=\n@to@pp@r} + \savedanchor\cntrl{\pgf@x=0cm\pgf@y=-2.6\n@to@pp@r} + \savedanchor\south{\pgf@x=0cm\pgf@y=-1.6\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\wg@tmpa=\pgf@x\south\pgf@x=\wg@tmpa} + \anchor{south west}{\northeast\wg@tmpa=\pgf@x\south\pgf@x=-\wg@tmpa} + \anchor{south}{\south} + \anchor{east}{ + \northeast\wg@tmpb=\pgf@y\wg@tmpa=\pgf@x% + \south\wg@tmpc\pgf@y% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{west}{ + \northeast\wg@tmpb=\pgf@y\wg@tmpa=\pgf@x% + \south\wg@tmpc\pgf@y% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=-\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{north}{\northeast\pgf@x=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@friendly@sub% + } + \behindforegroundpath{% + \n@to@friendly@sub% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +%</natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx b/macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx new file mode 100644 index 0000000000..c3df3f6525 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx @@ -0,0 +1,453 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{`Hostile' node shapes} +% +% +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile air} +% +% The hostile air command +% +% +% Macro for hostile air shape +% +% +% \begin{macrocode} +\def\n@to@hostile@@ir{% + \southeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \cntrl \wg@tmpc=\pgf@y% + \north \wg@tmpd=\pgf@y% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpb}}% +} +% \end{macrocode} +% +% +% The hostile air command. +% +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile air}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\southeast{% + \pgf@x=\n@to@pp@r% + \pgf@y=-\n@to@pp@r} + \savedanchor\cntrl{% + \pgf@x=\n@to@pp@r% + \pgf@y=0.414\n@to@pp@r% (sqrt(2)-1) + } + \savedanchor\north{\pgf@x=0cm\pgf@y=1.414\n@to@pp@r} + \anchor{south east}{\southeast} + \anchor{south west}{\southeast\pgf@x=-\pgf@x} + \anchor{north east}{\southeast\wg@tmpa=\pgf@x\north\pgf@x=\wg@tmpa} + \anchor{north west}{\southeast\wg@tmpa=\pgf@x\north\pgf@x=-\wg@tmpa} + \anchor{north}{\north} + \anchor{east}{% + \north\wg@tmpb\pgf@y% + \southeast\wg@tmpc=\pgf@y\wg@tmpa=\pgf@x% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{west}{% + \north\wg@tmpb\pgf@y% + \southeast\wg@tmpc=\pgf@y\wg@tmpa=\pgf@x% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=-\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{south}{\southeast\pgf@x=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@hostile@@ir% + } + \behindforegroundpath{% + \n@to@hostile@@ir% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile land} +% +% Macro for hostile land command +% +% \begin{macrocode} +\def\n@to@hostile@l@nd{% + \northeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{ 0cm}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{ \wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{ 0cm}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{-\wg@tmpb}}% + \pgfclosepath} +% \end{macrocode} +% +% The hostile land command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile land}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{% + \pgf@x=1.414\n@to@pp@r% + \pgf@y=1.414\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\pgf@y=-\pgf@y} + \anchor{south west}{\northeast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{north}{\northeast\pgf@x=0cm} + \anchor{south}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} + \anchor{east}{\northeast\pgf@y=0cm} + \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@hostile@l@nd% + } + \behindforegroundpath{% + \n@to@hostile@l@nd% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile activity} +% +% The hostile activity command. Similar to land command, but with +% boxes in the corners. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile activity}{% + \inheritsavedanchors[from=natoapp6c hostile land] + \inheritanchor[from=natoapp6c hostile land]{center} + \inheritanchor[from=natoapp6c hostile land]{inner north east} + \inheritanchor[from=natoapp6c hostile land]{inner north west} + \inheritanchor[from=natoapp6c hostile land]{inner south west} + \inheritanchor[from=natoapp6c hostile land]{inner south east} + \inheritanchor[from=natoapp6c hostile land]{north east} + \inheritanchor[from=natoapp6c hostile land]{north west} + \inheritanchor[from=natoapp6c hostile land]{south east} + \inheritanchor[from=natoapp6c hostile land]{south west} + \inheritanchor[from=natoapp6c hostile land]{north} + \inheritanchor[from=natoapp6c hostile land]{west} + \inheritanchor[from=natoapp6c hostile land]{east} + \inheritanchor[from=natoapp6c hostile land]{south} + \inheritanchor[from=natoapp6c hostile land]{upper} + \inheritanchor[from=natoapp6c hostile land]{lower} + \inheritanchor[from=natoapp6c hostile land]{left} + \inheritanchor[from=natoapp6c hostile land]{right} + \inheritanchor[from=natoapp6c hostile land]{center} + \inheritbackgroundpath[from=natoapp6c hostile land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@hostile@l@nd% + \pgfusepath{stroke} + % + \northeast \wg@tmpb=\pgf@y% + \wg@tmpa=0.707\n@to@pp@act@w + \wg@tmpc=\wg@tmpb\advance\wg@tmpc-1.414\n@to@pp@act@w + \wg@tmpd=\wg@tmpb\advance\wg@tmpd-\wg@tmpa + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{\wg@tmpc}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpc}{0cm}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpd}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpb}{0cm}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpd}{-\wg@tmpa}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{-\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{-\wg@tmpb}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{\wg@tmpb}{0cm}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpd}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{0cm}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpd}{-\wg@tmpa}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile equipment} +% +% The hostile equipment command. Same as land command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile equipment}{% + \inheritsavedanchors[from=natoapp6c hostile land] + \inheritanchor[from=natoapp6c hostile land]{inner north east} + \inheritanchor[from=natoapp6c hostile land]{inner north west} + \inheritanchor[from=natoapp6c hostile land]{inner south west} + \inheritanchor[from=natoapp6c hostile land]{inner south east} + \inheritanchor[from=natoapp6c hostile land]{north east} + \inheritanchor[from=natoapp6c hostile land]{north west} + \inheritanchor[from=natoapp6c hostile land]{south east} + \inheritanchor[from=natoapp6c hostile land]{south west} + \inheritanchor[from=natoapp6c hostile land]{north} + \inheritanchor[from=natoapp6c hostile land]{west} + \inheritanchor[from=natoapp6c hostile land]{east} + \inheritanchor[from=natoapp6c hostile land]{south} + \inheritanchor[from=natoapp6c hostile land]{upper} + \inheritanchor[from=natoapp6c hostile land]{lower} + \inheritanchor[from=natoapp6c hostile land]{left} + \inheritanchor[from=natoapp6c hostile land]{right} + \inheritanchor[from=natoapp6c hostile land]{center} + \inheritbackgroundpath[from=natoapp6c hostile land] + \inheritbehindforegroundpath[from=natoapp6c hostile land] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile installation} +% +% The hostile installation command. Similar to land command, but +% with a `hat' on top. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile installation}{% + \inheritsavedanchors[from=natoapp6c hostile land] + \inheritanchor[from=natoapp6c hostile land]{center} + \inheritanchor[from=natoapp6c hostile land]{inner north east} + \inheritanchor[from=natoapp6c hostile land]{inner north west} + \inheritanchor[from=natoapp6c hostile land]{inner south west} + \inheritanchor[from=natoapp6c hostile land]{inner south east} + \inheritanchor[from=natoapp6c hostile land]{north east} + \inheritanchor[from=natoapp6c hostile land]{north west} + \inheritanchor[from=natoapp6c hostile land]{south east} + \inheritanchor[from=natoapp6c hostile land]{south west} + \inheritanchor[from=natoapp6c hostile land]{north} + \inheritanchor[from=natoapp6c hostile land]{west} + \inheritanchor[from=natoapp6c hostile land]{east} + \inheritanchor[from=natoapp6c hostile land]{south} + \inheritanchor[from=natoapp6c hostile land]{upper} + \inheritanchor[from=natoapp6c hostile land]{lower} + \inheritanchor[from=natoapp6c hostile land]{left} + \inheritanchor[from=natoapp6c hostile land]{right} + \inheritanchor[from=natoapp6c hostile land]{center} + \inheritbackgroundpath[from=natoapp6c hostile land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@hostile@l@nd% + \pgfusepath{stroke} + % + \northeast \wg@tmpa=\pgf@x\wg@tmpb\pgf@y% + \wg@tmpc=\wg@tmpb + \advance\wg@tmpc\n@to@pp@inst@h% + \advance\wg@tmpc-0.05cm% + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{0cm}} + \pgfpathlineto{\pgfqpoint{ \wg@tmpa}{\wg@tmpc}} + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpc}} + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{0cm}} + \pgfpathlineto{\pgfqpoint{ 0cm}{\wg@tmpb}} + \pgfclosepath% + \pgfusepath{clip} + % + \wg@tmpd=\wg@tmpb% + \advance\wg@tmpd-\n@to@pp@inst@h% + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpd}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile sea surface} +% +% The hostile sea surface command. Same as land command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile sea surface}{% + \inheritsavedanchors[from=natoapp6c hostile equipment] + \inheritanchor[from=natoapp6c hostile equipment]{inner north east} + \inheritanchor[from=natoapp6c hostile equipment]{inner north west} + \inheritanchor[from=natoapp6c hostile equipment]{inner south west} + \inheritanchor[from=natoapp6c hostile equipment]{inner south east} + \inheritanchor[from=natoapp6c hostile equipment]{north east} + \inheritanchor[from=natoapp6c hostile equipment]{north west} + \inheritanchor[from=natoapp6c hostile equipment]{south east} + \inheritanchor[from=natoapp6c hostile equipment]{south west} + \inheritanchor[from=natoapp6c hostile equipment]{north} + \inheritanchor[from=natoapp6c hostile equipment]{west} + \inheritanchor[from=natoapp6c hostile equipment]{east} + \inheritanchor[from=natoapp6c hostile equipment]{south} + \inheritanchor[from=natoapp6c hostile equipment]{upper} + \inheritanchor[from=natoapp6c hostile equipment]{lower} + \inheritanchor[from=natoapp6c hostile equipment]{left} + \inheritanchor[from=natoapp6c hostile equipment]{right} + \inheritanchor[from=natoapp6c hostile equipment]{center} + \inheritbackgroundpath[from=natoapp6c hostile equipment] + \inheritbehindforegroundpath[from=natoapp6c hostile equipment] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile space} +% +% The hostile space command. Similar to air command, but with bar on +% top. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile space}{% + \inheritsavedanchors[from=natoapp6c hostile air] + \inheritanchor[from=natoapp6c hostile air]{north east} + \inheritanchor[from=natoapp6c hostile air]{north west} + \inheritanchor[from=natoapp6c hostile air]{south east} + \inheritanchor[from=natoapp6c hostile air]{south west} + \inheritanchor[from=natoapp6c hostile air]{north} + \inheritanchor[from=natoapp6c hostile air]{west} + \inheritanchor[from=natoapp6c hostile air]{east} + \inheritanchor[from=natoapp6c hostile air]{south} + \inheritanchor[from=natoapp6c hostile air]{upper} + \inheritanchor[from=natoapp6c hostile air]{lower} + \inheritanchor[from=natoapp6c hostile air]{left} + \inheritanchor[from=natoapp6c hostile air]{right} + \inheritanchor[from=natoapp6c hostile air]{center} + \inheritbackgroundpath[from=natoapp6c hostile air] + \behindforegroundpath{% + \begin{n@to@pp@stroketofill} + \n@to@hostile@@ir% + \pgfusepath{stroke,clip}% + % + \north\wg@tmpa=\pgf@y\wg@tmpb=\pgf@y + \advance\wg@tmpb-\n@to@pp@space@h + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@r}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@r}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@r}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@r}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c hostile sub surface} +% +% Macro for hostile sub surface command +% +% \begin{macrocode} +\def\n@to@hostile@sub{% + \northeast \wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \cntrl \wg@tmpc=\pgf@y% + \south \wg@tmpd=\pgf@y% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ 0cm}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpb}}% +} +% \end{macrocode} +% +% The hostile sub surface command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c hostile sub surface}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{% + \pgf@x=\n@to@pp@r% + \pgf@y=\n@to@pp@r} + \savedanchor\cntrl{\pgf@x=\n@to@pp@r\pgf@y=-0.414\n@to@pp@r} + \savedanchor\south{\pgf@x=0cm\pgf@y=-1.414\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\wg@tmpa=\pgf@x\south\pgf@x=\wg@tmpa} + \anchor{south west}{\northeast\wg@tmpa=\pgf@x\south\pgf@x=-\wg@tmpa} + \anchor{south}{\south} + \anchor{east}{ + \northeast\wg@tmpb=\pgf@y\wg@tmpa=\pgf@x% + \south\wg@tmpc\pgf@y% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{west}{ + \northeast\wg@tmpb=\pgf@y\wg@tmpa=\pgf@x% + \south\wg@tmpc\pgf@y% + \advance\wg@tmpb-\wg@tmpc + \divide\wg@tmpb2% + \advance\wg@tmpb\wg@tmpc% + \pgf@x=-\wg@tmpa% + \pgf@y=\wg@tmpb} + \anchor{north}{\northeast\pgf@x=0cm} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@hostile@sub% + } + \behindforegroundpath{% + \n@to@hostile@sub% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +%</natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx b/macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx new file mode 100644 index 0000000000..b0b18780a9 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx @@ -0,0 +1,405 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{`Neutral' node shapes} +% +% +% Macro for neutral shapes +% +% \begin{macrocode} +\def\n@to@pp@neutr@l@init{% + \northeast\wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \def\n@to@pp@neutr@l@left {\pgflineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}}% + \def\n@to@pp@neutr@l@right {\pgflineto{\pgfqpoint{ \wg@tmpa}{ \wg@tmpb}}}% + \def\n@to@pp@neutr@l@top {\pgflineto{\pgfqpoint{-\wg@tmpa}{ \wg@tmpb}}}% + \def\n@to@pp@neutr@l@bottom{\pgflineto{\pgfqpoint{ \wg@tmpa}{-\wg@tmpb}}}% + \def\n@to@pp@neutr@l@nw {\pgfmoveto{\pgfqpoint{-\wg@tmpa}{ \wg@tmpb}}}% + \def\n@to@pp@neutr@l@ne {\pgfmoveto{\pgfqpoint{ \wg@tmpa}{ \wg@tmpb}}}% + \def\n@to@pp@neutr@l@se {\pgfmoveto{\pgfqpoint{ \wg@tmpa}{-\wg@tmpb}}}% + \def\n@to@pp@neutr@l@sw {\pgfmoveto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}}% +} +% \end{macrocode} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral air} +% +% The neutral air command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral air}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\northeast{\pgf@x=\n@to@pp@r\pgf@y=\n@to@pp@r} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south east}{\northeast\pgf@y=-\pgf@y} + \anchor{south west}{\northeast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{north}{\northeast\pgf@x=0cm} + \anchor{east}{\northeast\pgf@y=0cm} + \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0cm} + \anchor{south}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \inheritanchor[from=natoapp6c base]{center} + \backgroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@se + \n@to@pp@neutr@l@right% + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + } + \behindforegroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@se + \n@to@pp@neutr@l@right% + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral land} +% +% The neutral land command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral land}{% + \inheritsavedanchors[from=natoapp6c neutral air] + \inheritanchor[from=natoapp6c neutral air]{north east} + \inheritanchor[from=natoapp6c neutral air]{north west} + \inheritanchor[from=natoapp6c neutral air]{south east} + \inheritanchor[from=natoapp6c neutral air]{south west} + \inheritanchor[from=natoapp6c neutral air]{north} + \inheritanchor[from=natoapp6c neutral air]{west} + \inheritanchor[from=natoapp6c neutral air]{east} + \inheritanchor[from=natoapp6c neutral air]{south} + \inheritanchor[from=natoapp6c neutral air]{upper} + \inheritanchor[from=natoapp6c neutral air]{lower} + \inheritanchor[from=natoapp6c neutral air]{left} + \inheritanchor[from=natoapp6c neutral air]{right} + \inheritanchor[from=natoapp6c neutral air]{center} + \backgroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@ne + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \pgfclosepath + } + \behindforegroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@ne + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \pgfclosepath + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral activity} +% +% The neutral activity command. Similar to land command but with +% boxes added in the corners. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral activity}{% + \inheritsavedanchors[from=natoapp6c neutral land] + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritanchor[from=natoapp6c neutral land]{inner north east} + \inheritanchor[from=natoapp6c neutral land]{inner north west} + \inheritanchor[from=natoapp6c neutral land]{inner south west} + \inheritanchor[from=natoapp6c neutral land]{inner south east} + \inheritanchor[from=natoapp6c neutral land]{north east} + \inheritanchor[from=natoapp6c neutral land]{north west} + \inheritanchor[from=natoapp6c neutral land]{south east} + \inheritanchor[from=natoapp6c neutral land]{south west} + \inheritanchor[from=natoapp6c neutral land]{north} + \inheritanchor[from=natoapp6c neutral land]{west} + \inheritanchor[from=natoapp6c neutral land]{east} + \inheritanchor[from=natoapp6c neutral land]{south} + \inheritanchor[from=natoapp6c neutral land]{upper} + \inheritanchor[from=natoapp6c neutral land]{lower} + \inheritanchor[from=natoapp6c neutral land]{left} + \inheritanchor[from=natoapp6c neutral land]{right} + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritbackgroundpath[from=natoapp6c neutral land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@ne + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \pgfclosepath + \pgfusepath{stroke} + % + \northeast \wg@tmpa=\pgf@x\wg@tmpb\pgf@y% + \wg@tmpc=\wg@tmpa\advance\wg@tmpc-\n@to@pp@act@w + \wg@tmpd=\wg@tmpb\advance\wg@tmpd-\n@to@pp@act@w + % + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{\wg@tmpd}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpc}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{\wg@tmpa}{-\wg@tmpb}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpc}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{\wg@tmpd}}% + \pgfclosepath + \pgfusepath{fill}% + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpd}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpb}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral equipment} +% +% The neutral equipment command. Same as land command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral equipment}{% + \inheritsavedanchors[from=natoapp6c neutral land] + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritanchor[from=natoapp6c neutral land]{inner north east} + \inheritanchor[from=natoapp6c neutral land]{inner north west} + \inheritanchor[from=natoapp6c neutral land]{inner south west} + \inheritanchor[from=natoapp6c neutral land]{inner south east} + \inheritanchor[from=natoapp6c neutral land]{north east} + \inheritanchor[from=natoapp6c neutral land]{north west} + \inheritanchor[from=natoapp6c neutral land]{south east} + \inheritanchor[from=natoapp6c neutral land]{south west} + \inheritanchor[from=natoapp6c neutral land]{north} + \inheritanchor[from=natoapp6c neutral land]{west} + \inheritanchor[from=natoapp6c neutral land]{east} + \inheritanchor[from=natoapp6c neutral land]{south} + \inheritanchor[from=natoapp6c neutral land]{upper} + \inheritanchor[from=natoapp6c neutral land]{lower} + \inheritanchor[from=natoapp6c neutral land]{left} + \inheritanchor[from=natoapp6c neutral land]{right} + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritbackgroundpath[from=natoapp6c neutral land] + \inheritbehindbackgroundpath[from=natoapp6c neutral land] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral installation} +% +% The neutral installation command. Similar to land command but +% with a `hat' on top. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral installation}{% + \inheritsavedanchors[from=natoapp6c neutral land] + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritanchor[from=natoapp6c neutral land]{inner north east} + \inheritanchor[from=natoapp6c neutral land]{inner north west} + \inheritanchor[from=natoapp6c neutral land]{inner south west} + \inheritanchor[from=natoapp6c neutral land]{inner south east} + \inheritanchor[from=natoapp6c neutral land]{north east} + \inheritanchor[from=natoapp6c neutral land]{north west} + \inheritanchor[from=natoapp6c neutral land]{south east} + \inheritanchor[from=natoapp6c neutral land]{south west} + \inheritanchor[from=natoapp6c neutral land]{north} + \inheritanchor[from=natoapp6c neutral land]{west} + \inheritanchor[from=natoapp6c neutral land]{east} + \inheritanchor[from=natoapp6c neutral land]{south} + \inheritanchor[from=natoapp6c neutral land]{upper} + \inheritanchor[from=natoapp6c neutral land]{lower} + \inheritanchor[from=natoapp6c neutral land]{left} + \inheritanchor[from=natoapp6c neutral land]{right} + \inheritanchor[from=natoapp6c neutral land]{center} + \inheritbackgroundpath[from=natoapp6c neutral land] + \behindforegroundpath{ + \begin{n@to@pp@stroketofill} + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@ne + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \pgfclosepath + \pgfusepath{stroke} + % + \northeast \wg@tmpa=\pgf@y% + \wg@tmpb=\wg@tmpa\advance\wg@tmpb\n@to@pp@inst@h% + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpa}}% + \pgfclosepath + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral sea surface} +% +% The neutral sea surface command. Same as land command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral sea surface}{% + \inheritsavedanchors[from=natoapp6c neutral equipment] + \inheritanchor[from=natoapp6c neutral equipment]{inner north east} + \inheritanchor[from=natoapp6c neutral equipment]{inner north west} + \inheritanchor[from=natoapp6c neutral equipment]{inner south west} + \inheritanchor[from=natoapp6c neutral equipment]{inner south east} + \inheritanchor[from=natoapp6c neutral equipment]{north east} + \inheritanchor[from=natoapp6c neutral equipment]{north west} + \inheritanchor[from=natoapp6c neutral equipment]{south east} + \inheritanchor[from=natoapp6c neutral equipment]{south west} + \inheritanchor[from=natoapp6c neutral equipment]{north} + \inheritanchor[from=natoapp6c neutral equipment]{west} + \inheritanchor[from=natoapp6c neutral equipment]{east} + \inheritanchor[from=natoapp6c neutral equipment]{south} + \inheritanchor[from=natoapp6c neutral equipment]{upper} + \inheritanchor[from=natoapp6c neutral equipment]{lower} + \inheritanchor[from=natoapp6c neutral equipment]{left} + \inheritanchor[from=natoapp6c neutral equipment]{right} + \inheritanchor[from=natoapp6c neutral equipment]{center} + \inheritbackgroundpath[from=natoapp6c neutral equipment] + \inheritbehindforegroundpath[from=natoapp6c neutral equipment] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral space} +% +% The neutral space command. Similar to air command but with a +% bar. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral space}{% + \inheritsavedanchors[from=natoapp6c neutral air] + \inheritanchor[from=natoapp6c neutral air]{north east} + \inheritanchor[from=natoapp6c neutral air]{north west} + \inheritanchor[from=natoapp6c neutral air]{south east} + \inheritanchor[from=natoapp6c neutral air]{south west} + \inheritanchor[from=natoapp6c neutral air]{north} + \inheritanchor[from=natoapp6c neutral air]{west} + \inheritanchor[from=natoapp6c neutral air]{east} + \inheritanchor[from=natoapp6c neutral air]{south} + \inheritanchor[from=natoapp6c neutral air]{upper} + \inheritanchor[from=natoapp6c neutral air]{lower} + \inheritanchor[from=natoapp6c neutral air]{left} + \inheritanchor[from=natoapp6c neutral air]{right} + \inheritanchor[from=natoapp6c neutral air]{center} + \inheritbackgroundpath[from=natoapp6c neutral air] + \behindforegroundpath{% + \begin{n@to@pp@stroketofill} + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@se + \n@to@pp@neutr@l@right% + \n@to@pp@neutr@l@top% + \n@to@pp@neutr@l@left% + \pgfusepath{stroke}% + % + \n@to@pp@neutr@l@ne + \n@to@pp@neutr@l@top% + \northeast\wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% + \advance\wg@tmpb-\n@to@pp@space@h + % + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpa}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c neutral sub surface} +% +% The neutral sub surface command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c neutral sub surface}{% + \inheritsavedanchors[from=natoapp6c neutral air] + \inheritanchor[from=natoapp6c neutral air]{north east} + \inheritanchor[from=natoapp6c neutral air]{north west} + \inheritanchor[from=natoapp6c neutral air]{south east} + \inheritanchor[from=natoapp6c neutral air]{south west} + \inheritanchor[from=natoapp6c neutral air]{north} + \inheritanchor[from=natoapp6c neutral air]{west} + \inheritanchor[from=natoapp6c neutral air]{east} + \inheritanchor[from=natoapp6c neutral air]{south} + \inheritanchor[from=natoapp6c neutral air]{upper} + \inheritanchor[from=natoapp6c neutral air]{lower} + \inheritanchor[from=natoapp6c neutral air]{left} + \inheritanchor[from=natoapp6c neutral air]{right} + \inheritanchor[from=natoapp6c neutral air]{center} + \backgroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@nw + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \n@to@pp@neutr@l@right% + } + \behindforegroundpath{% + \n@to@pp@neutr@l@init% + \n@to@pp@neutr@l@nw + \n@to@pp@neutr@l@left% + \n@to@pp@neutr@l@bottom% + \n@to@pp@neutr@l@right% + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +%</natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx b/macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx new file mode 100644 index 0000000000..e6bd3aec38 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx @@ -0,0 +1,483 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{`Unknown' node shapes} +% +% +% Macro to define unknown path elements +% +% \begin{macrocode} +\def\n@to@pp@unknown@init{% + \def\n@to@pp@unknown@top{% + \innernortheast \wg@tmpa=\pgf@x% + \cntrlnortheast \wg@tmpb=\pgf@x% + \pgfpathcurveto{% + \pgfqpoint{ \wg@tmpa}{\wg@tmpb}}{% + \pgfqpoint{-\wg@tmpa}{\wg@tmpb}}{% + \pgfqpoint{-\wg@tmpa}{\wg@tmpa}}} + \def\n@to@pp@unknown@left{% + \innernortheast \wg@tmpa=\pgf@x% + \cntrlnortheast \wg@tmpb=\pgf@x% + \pgfpathcurveto{% + \pgfqpoint{-\wg@tmpb}{ \wg@tmpa}}{% + \pgfqpoint{-\wg@tmpb}{-\wg@tmpa}}{% + \pgfqpoint{-\wg@tmpa}{-\wg@tmpa}}} + \def\n@to@pp@unknown@bottom{% + \innernortheast \wg@tmpa=\pgf@x% + \cntrlnortheast \wg@tmpb=\pgf@x% + \pgfpathcurveto{% + \pgfqpoint{-\wg@tmpa}{-\wg@tmpb}}{% + \pgfqpoint{ \wg@tmpa}{-\wg@tmpb}}{% + \pgfqpoint{ \wg@tmpa}{-\wg@tmpa}}} + \def\n@to@pp@unknown@right{% + \innernortheast \wg@tmpa=\pgf@x% + \cntrlnortheast \wg@tmpb=\pgf@x% + \pgfpathcurveto{% + \pgfqpoint{ \wg@tmpb}{-\wg@tmpa}}{% + \pgfqpoint{ \wg@tmpb}{ \wg@tmpa}}{% + \pgfqpoint{ \wg@tmpa}{ \wg@tmpa}}} +} +% \end{macrocode} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown land} +% +% The unknown land command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown land}{% + \inheritsavedanchors[from=natoapp6c base] + \savedanchor\innernortheast{\pgf@x=.7\n@to@pp@r\pgf@y=.7\n@to@pp@r} + \savedanchor\cntrlnortheast{\pgf@x=1.6\n@to@pp@r\pgf@y=1.6\n@to@pp@r} + \savedanchor\northeast{\pgf@x=1.4\n@to@pp@r\pgf@y=1.4\n@to@pp@r} + \anchor{inner north east}{\innernortheast} + \anchor{inner north west}{\innernortheast\pgf@x=-\pgf@x} + \anchor{inner south west}{\innernortheast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{inner south east}{\innernortheast\pgf@y=-\pgf@y} + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{south west}{\northeast\pgf@x=-\pgf@x\pgf@y=-\pgf@y} + \anchor{south east}{\northeast\pgf@y=-\pgf@y} + \anchor{north}{\northeast\pgf@x=0cm} + \anchor{east}{\northeast\pgf@y=0cm} + \anchor{south}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} + \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0cm} + \inheritanchor[from=natoapp6c base]{center} + \inheritanchor[from=natoapp6c base]{upper} + \inheritanchor[from=natoapp6c base]{lower} + \inheritanchor[from=natoapp6c base]{left} + \inheritanchor[from=natoapp6c base]{right} + \backgroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom% + } + \behindforegroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom% + \pgfusepath{stroke}} +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown air} +% +% The unknown air command. To consider: Should clipping path extend +% below the actual symbol to include that part of the base symbol? +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown air}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{north east} + \inheritanchor[from=natoapp6c unknown land]{north west} + \inheritanchor[from=natoapp6c unknown land]{north} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \anchor{south}{\innernortheast\pgf@x=0cm\pgf@y=-\pgf@y} + \anchor{south east}{ + \northeast\wg@tmpa=\pgf@x + \innernortheast\pgf@y=-\pgf@y + \pgf@x=\wg@tmpa} + \anchor{south west}{ + \northeast\wg@tmpa=\pgf@x + \innernortheast\pgf@y=-\pgf@y + \pgf@x=-\wg@tmpa} + \backgroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \ifn@to@pp@isclip + \pgfpathlineto{\pgfqpoint{0cm}{-\radius}} + \pgfpathclose + \fi + } + \behindforegroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \pgfusepath{stroke}% + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown activity} +% +% The unknown activity command. Similar to land command, but with +% boxes in the the `corners'. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown activity}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{north east} + \inheritanchor[from=natoapp6c unknown land]{north west} + \inheritanchor[from=natoapp6c unknown land]{south east} + \inheritanchor[from=natoapp6c unknown land]{south west} + \inheritanchor[from=natoapp6c unknown land]{north} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{south} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \inheritbackgroundpath[from=natoapp6c unknown land] + \behindforegroundpath{ + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \begin{n@to@pp@stroketofill} + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom% + \pgfusepath{stroke,clip} + % + \northeast\wg@tmpa\pgf@x + \advance\wg@tmpa0.005cm + \wg@tmpb=\wg@tmpa + \advance\wg@tmpb-\n@to@pp@act@w + \wg@tmpc=\n@to@pp@act@w + \divide\wg@tmpc2 + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpc}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpc}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{fill} + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpc}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpc}{-\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpc}{-\wg@tmpa}}% + \pgfclosepath% + \pgfusepath{fill} + % + \pgfpathmoveto{\pgfqpoint{ \wg@tmpa}{ \wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpb}{ \wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpb}{-\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpa}{-\wg@tmpc}}% + \pgfclosepath% + \pgfusepath{fill} + % + \pgfpathmoveto{\pgfqpoint{-\wg@tmpb}{ \wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{ \wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{-\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpb}{-\wg@tmpc}}% + \pgfclosepath% + \pgfusepath{fill} + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown equipment} +% +% The unknown equipment command. Same as land command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown equipment}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{north east} + \inheritanchor[from=natoapp6c unknown land]{north west} + \inheritanchor[from=natoapp6c unknown land]{south east} + \inheritanchor[from=natoapp6c unknown land]{south west} + \inheritanchor[from=natoapp6c unknown land]{north} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{south} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \inheritbackgroundpath[from=natoapp6c unknown land] + \inheritbehindforegroundpath[from=natoapp6c unknown land] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown installation} +% +% The unknown installation command. Similar to land command, but +% with a `hat' on top. Note, NATO App6(d) makes the `hat' lower +% part disconnected from the main symbol. I find that ugly, so we +% do it like NATO App6(c). +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown installation}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{center} + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{north east} + \inheritanchor[from=natoapp6c unknown land]{north west} + \inheritanchor[from=natoapp6c unknown land]{south east} + \inheritanchor[from=natoapp6c unknown land]{south west} + \inheritanchor[from=natoapp6c unknown land]{north} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{south} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \inheritbackgroundpath[from=natoapp6c unknown land] + \behindforegroundpath{ + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom% + \pgfusepath{stroke} + % + \begin{n@to@pp@stroketofill} + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{\wg@tmpa}}% + \n@to@pp@unknown@top % + % + \northeast\wg@tmpb=\pgf@y\wg@tmpc=\pgf@y% + \advance\wg@tmpb\n@to@pp@inst@h% + \advance\wg@tmpb-0.05cm% + \advance\wg@tmpc-\n@to@pp@inst@h% + \advance\wg@tmpc-\n@to@pp@inst@h% + % + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \wg@tmpa}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{clip}% + % + \pgfpathmoveto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{-\n@to@pp@inst@x}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{ \n@to@pp@inst@x}{\wg@tmpc}}% + \pgfclosepath% + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown sea surface} +% +% The unknown sea surface command. Same as land command +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown sea surface}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{north east} + \inheritanchor[from=natoapp6c unknown land]{north west} + \inheritanchor[from=natoapp6c unknown land]{south east} + \inheritanchor[from=natoapp6c unknown land]{south west} + \inheritanchor[from=natoapp6c unknown land]{north} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{south} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \inheritbackgroundpath[from=natoapp6c unknown land] + \inheritbehindforegroundpath[from=natoapp6c unknown land] +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown space} +% +% The unknown space command. Similar to air command, but with a top +% bar. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown space}{% + \inheritsavedanchors[from=natoapp6c unknown air] + \inheritanchor[from=natoapp6c unknown air]{inner north east} + \inheritanchor[from=natoapp6c unknown air]{inner north west} + \inheritanchor[from=natoapp6c unknown air]{inner south west} + \inheritanchor[from=natoapp6c unknown air]{inner south east} + \inheritanchor[from=natoapp6c unknown air]{north east} + \inheritanchor[from=natoapp6c unknown air]{north west} + \inheritanchor[from=natoapp6c unknown air]{south east} + \inheritanchor[from=natoapp6c unknown air]{south west} + \inheritanchor[from=natoapp6c unknown air]{north} + \inheritanchor[from=natoapp6c unknown air]{west} + \inheritanchor[from=natoapp6c unknown air]{east} + \inheritanchor[from=natoapp6c unknown air]{south} + \inheritanchor[from=natoapp6c unknown air]{upper} + \inheritanchor[from=natoapp6c unknown air]{lower} + \inheritanchor[from=natoapp6c unknown air]{left} + \inheritanchor[from=natoapp6c unknown air]{right} + \inheritanchor[from=natoapp6c unknown air]{center} + \inheritbackgroundpath[from=natoapp6c unknown air] + \behindforegroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \begin{n@to@pp@stroketofill} + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{-\wg@tmpa}}% + \n@to@pp@unknown@right % + \n@to@pp@unknown@top % + \n@to@pp@unknown@left % + \pgfusepath{stroke,clip}% + % + \northeast\wg@tmpa=\pgf@y\wg@tmpb=\pgf@y + \advance\wg@tmpb-\n@to@pp@space@h + % + \pgfpathmoveto{\pgfqpoint{ \radius}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\radius}{\wg@tmpa}}% + \pgfpathlineto{\pgfqpoint{-\radius}{\wg@tmpb}}% + \pgfpathlineto{\pgfqpoint{ \radius}{\wg@tmpb}}% + \pgfclosepath% + \pgfusepath{fill}% + \end{n@to@pp@stroketofill} + } +} +% \end{macrocode} +% \end{NatoAppFrame} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppFrame}{natoapp6c unknown sub surface} +% +% The unknown sub surface command. +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c unknown sub surface}{% + \inheritsavedanchors[from=natoapp6c unknown land] + \inheritanchor[from=natoapp6c unknown land]{inner north east} + \inheritanchor[from=natoapp6c unknown land]{inner north west} + \inheritanchor[from=natoapp6c unknown land]{inner south west} + \inheritanchor[from=natoapp6c unknown land]{inner south east} + \inheritanchor[from=natoapp6c unknown land]{south east} + \inheritanchor[from=natoapp6c unknown land]{south west} + \inheritanchor[from=natoapp6c unknown land]{south} + \inheritanchor[from=natoapp6c unknown land]{west} + \inheritanchor[from=natoapp6c unknown land]{east} + \inheritanchor[from=natoapp6c unknown land]{upper} + \inheritanchor[from=natoapp6c unknown land]{lower} + \inheritanchor[from=natoapp6c unknown land]{left} + \inheritanchor[from=natoapp6c unknown land]{right} + \inheritanchor[from=natoapp6c unknown land]{center} + \anchor{north}{\innernortheast\pgf@x=0cm} + \anchor{north east}{ + \northeast\wg@tmpa=\pgf@x + \innernortheast\pgf@y=\pgf@y + \pgf@x=\wg@tmpa} + \anchor{north west}{ + \northeast\wg@tmpa=\pgf@x + \innernortheast\pgf@y=\pgf@y + \pgf@x=-\wg@tmpa} + \backgroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpa}}% + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom % + \n@to@pp@unknown@right % + \ifn@to@pp@isclip + \pgfpathlineto{\pgfqpoint{0cm}{\radius}} + \pgfpathclose + \fi + } + \behindforegroundpath{% + \n@to@pp@unknown@init + \innernortheast \wg@tmpa=\pgf@x% + \pgfpathmoveto{\pgfqpoint{-\wg@tmpa}{\wg@tmpa}}% + \n@to@pp@unknown@left % + \n@to@pp@unknown@bottom % + \n@to@pp@unknown@right % + \pgfusepath{stroke}} +} +% \end{macrocode} +% \end{NatoAppFrame} +% \iffalse +%</natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/list.dtx b/macros/latex/contrib/wargame/source/natoapp6c/list.dtx new file mode 100644 index 0000000000..0500f01326 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/list.dtx @@ -0,0 +1,266 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \begin{Macro}{\n@to@pp@s@ll} +% +% A list of all defined symbols +% +% \begin{macrocode} +\def\n@to@pp@s@ll{ + weapon=base, + weapon=top, + weapon=bottom, + weapon=rifle, + weapon=machine gun, + weapon=grenade launcher, + weapon=missile launcher, + weapon=non lethal, + weapon=multi fire, + weapon=air defence, + weapon=anti tank, + weapon=full, + weapon, + type=light, + type=medium, + type=heavy, + type=vlight, + type=vmedium, + type=vheavy, + type, + above corps support, + air assault with organic lift, + air decoy, + air assault, + air defence, + air strip, + air traffic, + airship, + airborne, + ammunition, + amphibious, + amphibious warfare ship, + analysis, + arrest, + artillery, + anti tank anti armour, + antenna, + armoured, + armoured fighting vehicle, + armoured personnel carrier, + arctic, + automobile, + balloon, + bar, + base, + bicycle equipped, + boat, + booby trap, + bottomed, + bridge=none, + bridge=fixed, + bridge=folding, + bridge=hollow, + bridge, + capsule, + carrier, + chemical biological radiological nuclear, + civilian military cooperation, + civilian police, + civilian telecommunications, + coast guard vessel, + combat support, + combatant, + combined arms, + computer system, + control, + convoy, + corps support, + crime, + decoy, + direct communications, + direction finding, + diving=none, + diving=military, + diving, + drilling, + earthmover, + electric power, + electronic ranging, + electronic warfare wide, + engineer, + enhanced location reporting system, + environmental protection, + explosion, + finance, + fishing vessel, + fire protection, + fixed and rotary wing, + fixed wing, + flame thrower, + floating, + surfaced, + food, + fuel, + grenade launcher=none, + grenade launcher=non lethal, + grenade launcher, + graffiti, + group, + gun=base, + gun=air defence, + gun=anti tank, + gun=direct, + gun=recoilless, + gun, + headquarters, + house, + howitzer, + in position, + individual, + infantry, + intermodal, + jagged wave, + jam, + jamming, + jetski, + killing, + labour, + land mine=personnel, + land mine=tank, + land mine=none, + land mine, + land missile, + laser, + launcher, + laundry, + machine gun, + main gun, + maintenance, + medic, + medical, + medical treatment, + mine, + mine clearing equipment, + mine warfare vessel, + missile, + missile launcher=base, + missile launcher=none, + missile launcher=air defence, + missile launcher=anti tank, + missile launcher=surface to surface, + missile launcher, + mobile advisor and support, + moored, + mortar, + motorized, + mortuary affairs, + mountain, + naval, + navigation, + navy task, + non combatant, + non lethal weapon, + nuclear, + observer, + orbiter shuttle, + ordnance, + organisation, + over snow, + pack animal, + patrol, + patrolling, + physician, + pipeline, + poisoning, + postal, + printed media, + psychological, + quarry, + quartermaster, + radar, + radio, + radio relay, + radio relay line of sight, + radio teletype, + railroad, + reconnaissance, + recovery unmanned systems, + rifle, + rising, + riverine, + rocket launcher=base, + rocket launcher=anti tank, + rocket launcher=single, + rocket launcher=multiple, + rocket launcher=single head, + rocket launcher=multiple head, + rocket launcher, + rotary wing, + runway, + sailing boat, + satellite=none, + satellite=astronomical, + satellite=bio, + satellite=communications, + satellite=navigation, + satellite=earth observing, + satellite=tether, + satellite=small, + satellite=reconnaissance, + satellite, + sea mine=top half, + sea mine=bottom half, + sea mine=full, + sea mine=neutralised, + sea mine=neutralized, + sea mine, + seabed installation, + search, + searching, + semi trailer truck, + sensor, + ship, + signal, + signals intelligence, + ski, + sled, + small squashed text=TXT, + small text=TXT, + sniper, + space station, + squashed text=TXT, + submarine, + submersible, + supply, + surface combatant, + survey, + tactical satellite, + tank, + text=TXT, + topographic, + torpedo, + towed, + tracked, + train locomotive, + transportation, + unexploded ordnance, + unmanned, + utility vehicle, + vehicle, + video imagery, + warfare vessel, + water, + wheeled=and tracked, + wheeled=limited, + wheeled=cross country, + wheeled=semi, + wheeled +} +% \end{macrocode} +% \end{Macro} +% +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/shape.dtx b/macros/latex/contrib/wargame/source/natoapp6c/shape.dtx new file mode 100644 index 0000000000..029be911b7 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/shape.dtx @@ -0,0 +1,647 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{Text \texttt{natoapp6c} namespace} +% +% \begin{NatoAppKey}{/natoapp6c} +% +% Here, we set up the key path \spec{/natoapp6c} +% +% \begin{macrocode} +\def\natoapp@report{} +\tikzset{ + /natoapp6c/.search also={/tikz}, + /natoapp6c/.cd, +} +% \end{macrocode} +% \end{NatoAppKey} +% +% \subsubsubsection{Choices of faction, command, and echelon} +% +% \begin{NatoAppKey}{natoapp6c/id, +% natoapp6c/fac, +% natoapp6c/cmd, +% natoapp6c/ech} +% +% The keys \spec{id}, spec{fac}, \spec{cmd}, and \spec{ech} are +% internal keys used to store the choice of faction, command, and +% echelon, respectively, in. +% +% \begin{macrocode} +\tikzset{ + /natoapp6c/.cd, + id/.store in=\natoapp@id, + fac/.store in=\natoapp@fac, + cmd/.store in=\natoapp@cmd, + ech/.store in=\natoapp@ech, +} +% \end{macrocode} +% \end{NatoAppKey} +% +% \begin{NatoAppKey}{natoapp6c/faction} +% +% Choice of \meta{faction}. This is limited to predefined values. +% The choice is stored in the key \spec{natoapp6c/fac}. +% +% \begin{macrocode} +\tikzset{ + /natoapp6c/.cd, + faction/.is choice, + faction/none/.code={\let\natoapp@fac\@undefined}, + faction/friendly/.style={fac=friendly}, + faction/friend/.style={fac=friendly}, + faction/hostile/.style={fac=hostile}, + faction/enemy/.style={fac=hostile}, + faction/neutral/.style={fac=neutral}, + faction/unknown/.style={fac=unknown}, + faction/?/.style={fac=unknown}, + faction/.initial=friendly, +} +% \end{macrocode} +% \end{NatoAppKey} +% +% \begin{NatoAppKey}{natoapp6c/command} +% +% Choice of \meta{command}. This is limited to predefined values. +% The choice is stored in the key \spec{natoapp6c/cmd}. +% +% \begin{macrocode} +\tikzset{ + /natoapp6c/.cd, + command/.is choice, + command/base/.style={cmd=base}, + command/activity/.style={cmd=activity}, + command/air/.style={cmd=air}, + command/missile/.style={cmd=air}, + command/equipment/.style={cmd=equipment}, + command/installation/.style={cmd=installation}, + command/land/.style={cmd=land}, + command/sea surface/.style={cmd=sea surface}, + command/space/.style={cmd=space}, + command/sub surface/.style={cmd=sub surface}, + command/sea mine/.style={cmd=sub surface}, +} +% \end{macrocode} +% \end{NatoAppKey} +% +% \begin{NatoAppKey}{natoapp6c/echolon} +% +% Unit size. The choice is limited to one of the below. The choice +% is stored in the key \spec{natoapp6c/ech}. +% +% \begin{macrocode} +\tikzset{ + /natoapp6c/.cd, + echelon/.is choice, + echelon/none/.style={ech=}, + echelon/team/.style={ech=}, + echelon/squad/.style={ech=squad}, + echelon/section/.style={ech=section}, + echelon/platoon/.style={ech=platoon}, + echelon/company/.style={ech=company}, + echelon/battalion/.style={ech=battalion}, + echelon/regiment/.style={ech=regiment}, + echelon/brigade/.style={ech=brigade}, + echelon/division/.style={ech=division}, + echelon/corps/.style={ech=corps}, + echelon/army/.style={ech=army}, + echelon/army group/.style={ech=army group}, + echelon/theatre/.style={ech=theatre}, + echelon/command/.style={ech=command}, + echelon/dummy/.style={ech=dummy}, +} +% \end{macrocode} +% \end{NatoAppKey} +% +% \begin{NatoAppKey}{natoapp6c/main, +% natoapp6c/left, +% natoapp6c/right, +% natoapp6c/top, +% natoapp6c/bottom, +% natoapp6c/below, +% natoapp6c/frame} +% \begin{Macro}{\natoapp@main, +% \natoapp@left, +% \natoapp@right, +% \natoapp@upper, +% \natoapp@lower, +% \natoapp@below} +% +% The various parts of the symbols. The keys \spec{upper} and +% \spec{lower} are aliases for \spec{top} and \spec{bottom}, +% respectively. The choices are stored in macros +% +% \begin{macrocode} +\newif\ifnatoapp@decoy\natoapp@decoyfalse +\tikzset{ + /natoapp6c/.cd, + main/.store in=\natoapp@main, main/.initial=,% + left/.store in=\natoapp@left, left/.initial=,% + right/.store in=\natoapp@right, right/.initial=,% + upper/.store in=\natoapp@upper, upper/.initial=,% + lower/.store in=\natoapp@lower, lower/.initial=,% + top/.store in=\natoapp@upper,% + bottom/.store in=\natoapp@lower,% + below/.store in=\natoapp@below, below/.initial=,% + frame/.store in=\natoapp@frame, frame/.initial=,% + decoy/.is if=natoapp@decoy,% +} +% \end{macrocode} +% \end{Macro} +% \end{NatoAppKey} +% +% \begin{TikzKey}{/tikz/natoapp6c/main, +% /tikz/natoapp6c/modifiers, +% /tikz/natoapp6c/lower, +% /tikz/natoapp6c/upper, +% /tikz/natoapp6c/left, +% /tikz/natoapp6c/right, +% /tikz/natoapp6c/echelon, +% /tikz/natoapp6c/below} +% +% Styles used by the various parts of the symbol. +% +% \begin{macrocode} +\tikzset{ + natoapp6c/parts/.style={draw,shape=rectangle,transform shape}, + natoapp6c/main/.style={natoapp6c/parts}, + natoapp6c/modifiers/.style={natoapp6c/parts,scale=.6}, + natoapp6c/lower/.style={natoapp6c/parts}, + natoapp6c/upper/.style={natoapp6c/parts}, + natoapp6c/left/.style={natoapp6c/parts}, + natoapp6c/right/.style={natoapp6c/parts}, + natoapp6c/echelon/.style={natoapp6c/parts}, + natoapp6c/below/.style={natoapp6c/parts} +} +% \end{macrocode} +% \end{TikzKey} +% \iffalse +% -------------------------------------------------------------------- +% \fi +% +% \subsubsection{The \texttt{natoapp6c} styles} +% +% \begin{TikzKey}{/tikz/natoapp6c} +% This key sets up a node to make a NATO App6(c) symbol. The key +% takes a single argument which in turn must contain key--value +% pairs in the \texttt{/natoapp6c} (or \texttt{/tikz}) namespace(s). We +% set the \texttt{shape} parameter of the node, and calls the passed +% keys in the \texttt{/natoapp6c} namespace to set-up elements of the +% chit. +% +% \begin{macrocode} +\tikzset{% + natoapp6c/.code={% + \pgfkeys{/tikz/transform shape,/tikz/shape=natoapp6c} + \pgfkeys{/natoapp6c/.cd,#1}}} +% \end{macrocode} +% \end{TikzKey} +% +% We define a counter to set-up unique names for symbol nodes. +% +% \begin{macrocode} +\newcounter{natoappid}\setcounter{natoappid}{0} +% \end{macrocode} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{The \cs{natoapp6c} shape} +% +% \begin{Macro}{\ifn@to@pp@below,\ifn@to@pp@mod} +% +% We define an \cs{if} to allow us to detect if something is +% rendered below the frame +% +% \begin{macrocode} +\newif\ifn@to@pp@below\n@to@pp@belowfalse% +\newif\ifn@to@pp@mod\n@to@pp@modfalse% +% \end{macrocode} +% \end{Macro} +% +% \begin{NatoAppFrame}{natoapp6c} +% +% Next, we define the mother shape of NATO App6(c) nodes. This is a +% composite node with sub-nodes for the various parts (including the +% frame) of the symbol. +% +% It is quite complex so we will go through the implementation in +% bits. +% +% First, we make some saved anchors (the centre) and macros +% (identifier, frame type, and frame options). +% +% \begin{macrocode} +\pgfdeclareshape{natoapp6c}{% + \savedanchor\center{\pgf@x=0cm\pgf@y=0cm} + \savedmacro\id{% + \n@to@pp@dbg{3}{NATO App6(c) id (set): \meaning\natoapp@id} + \@ifundefined{natoapp@id}{\let\natoapp@id\pgfutil@empty}{}% + \ifx\natoapp@id\pgfutil@empty\relax% + \wg@r@ndom@id% + \edef\id{natoapp6c\wg@uuid}% + \else% + \edef\id{\natoapp@id}% + \fi% + \n@to@pp@dbg{3}{NATO App6(c) id: \meaning\id}} + \savedmacro\frameshape{% + \let\frameshape\pgfutil@empty% + \@ifundefined{natoapp@cmd}{\def\frameshape{base}}{% + \edef\frameshape{\natoapp@cmd} + \@ifundefined{natoapp@fac}{\def\frameshape{base}}{% + \edef\frameshape{\natoapp@fac\space\frameshape}}} + \n@to@pp@dbg{3}{NATO App6(c) frame shape: \meaning\frameshape}} + \savedmacro\frameopt{% + \let\frameopt\pgfutil@empty% + \@ifundefined{natoapp@frame}{}{% + \edef\frameopt{\natoapp@frame}} + \n@to@pp@dbg{3}{NATO App6(c) Frame options: \meaning\frameopt}% + } +% \end{macrocode} +% +% Then we define a number of regular anchors +% +% \begin{macrocode} + \anchor{center} {\center} +% \end{macrocode} +% +% The remaining anchors depend on the shape being used. We reference +% the anchors of the embedded node of the frame. +% +% \begin{macrocode} + \anchor{north east}{\wg@sub@nchor{M\id}{north east}} + \anchor{north west}{\wg@sub@nchor{M\id}{north west}} + \anchor{south east}{\wg@sub@nchor{M\id}{south east}} + \anchor{south west}{\wg@sub@nchor{M\id}{south west}} + \anchor{north} {\wg@sub@nchor{M\id}{north}} + \anchor{west} {\wg@sub@nchor{M\id}{west}} + \anchor{south} {\wg@sub@nchor{M\id}{south}} + \anchor{east} {\wg@sub@nchor{M\id}{east}} + \anchor{upper} {\wg@sub@nchor{M\id}{upper}} + \anchor{lower} {\wg@sub@nchor{M\id}{lower}} + \anchor{left} {\wg@sub@nchor{M\id}{left}} + \anchor{right} {\wg@sub@nchor{M\id}{right}} +% \end{macrocode} +% +% The next two anchors are a little funny. +% +% \begin{macrocode} + \anchor{echelon} {% + \n@to@pp@dbg{3}{NATO App6(c) get echelon anchor}% + \wg@sub@nchor{M\id}{north}% + \wg@tmpa=\n@to@pp@e@y cm% + \advance\pgf@y\wg@tmpa% + }% + \anchor{below} {% + \n@to@pp@dbg{3}{NATO App6(c) get below anchor}% + \wg@sub@nchor{M\id}{south} + \wg@tmpa=\n@to@pp@e@yy cm% + \advance\pgf@y-\wg@tmpa} +% \end{macrocode} +% +% All right, so time to make the actual frame. Note that we do this +% in a `behind' path so we can actually draw stuff. First, we flag +% that we're not in a modifier, nor in the `below' part. +% +% \begin{macrocode} + \behindbackgroundpath{% + \n@to@pp@dbg{3}{NATO App6(c) background path: \meaning\id + ^^J ID: \meaning\natoapp@id + ^^J Faction: \meaning\natoapp@fac + ^^J Command: \meaning\natoapp@cmd + ^^J Echelon: \meaning\natoapp@ech + ^^J Main: \meaning\natoapp@main + ^^J Left: \meaning\natoapp@left + ^^J Right: \meaning\natoapp@right + ^^J Upper: \meaning\natoapp@upper + ^^J Lower: \meaning\natoapp@lower + ^^J Below: \meaning\natoapp@below + ^^J Shape: \meaning\frameshape + ^^J Options: \meaning\frameopt} + \natoapp@report + \n@to@pp@modfalse + \n@to@pp@belowfalse +% \end{macrocode} +% +% If the symbol is empty, then do nothing. +% +% \begin{macrocode} + \ifx\frameshape\pgfutil@empty% + \n@to@pp@dbg{2}{NATO App6(c) has no frame!} + \else +% \end{macrocode} +% +% We start a scope because we want to do some clipping here. Then, we +% use the frame to clip the remaining part. Note that we do this via +% a node which we give the identifier \spec{M}. Various elements of +% the symbol can then refer to this shape to define paths, etc. +% +% \begin{macrocode} + \begin{scope} + \pgfinterruptboundingbox + %% Clip to shape in scope + %% \message{^^JClipping to NATO App6(c) shape} + \n@to@pp@iscliptrue% + \n@to@pp@dbg{2}{NATO App6(c) frame node M (clip)} + \pgfnode{natoapp6c \frameshape}{center}{}{M}{\pgfusepath{clip}} + \n@to@pp@isclipfalse% +% \end{macrocode} +% +% Next, we should see if we need to fill the frame. We do that by +% expanding the passed \spec{frame} key-values in a scope, and +% \emph{then} get the fill colour. +% +% \begin{macrocode} + %% Start new scope including frame key options + \edef\tmp@opt{[\frameopt]} + \expandafter\scope\tmp@opt + % Get fill color {possibly from frame key} + \expandafter\let\expandafter\tmp@fill% + \csname\string\color@pgffillcolor\endcsname% +% \end{macrocode} +% +% If the fill colour is not \cs{relax}, then we fill the frame. Note +% that this is done in the background, so when we draw in the +% foreground we will render on top of the fill. +% +% \begin{macrocode} + % Check if we need to fill shape (fill colour us not \relax) + \ifx\tmp@fill\relax\else% + \n@to@pp@dbg{2}{NATO App6(c) frame fill} + \pgfnode{natoapp6c \frameshape}{center}{}{}{\pgfusepath{fill}}% + \fi% + % End the fill scope + \endscope% +% \end{macrocode} +% +% Now we need to render some of the elements of the symbol. We start +% with the main elements. We can specify many main elements (to make +% composite symbols). +% +% \begin{macrocode} + % Render mains + \@ifundefined{natoapp@main}{}{ + \n@to@pp@dbg{2}{NATO App6(c) mains: \meaning\natoapp@main} + \begin{scope}[natoapp6c/main] + \wg@pic@all{\natoapp@main}{natoapp6c/s/}{M.center}{natoapp6c/main}% + \end{scope}}% + % Modififiers flagged +% \end{macrocode} +% +% The next thing is to render the various modifiers. We start by +% flagging this globally. +% +% \begin{macrocode} + \n@to@pp@modtrue + \n@to@pp@dbg{2}{NATO App6(c) modifiers} +% \end{macrocode} +% +% Below we render the lower, upper, left, and right elements. This is +% all done in the same way. Note that the elements positions are +% dictated by anchors of the frame shape (via shape identifier +% \spec{M}). +% +% \begin{macrocode} + % Render lowers + \@ifundefined{natoapp@lower}{}{% + \begin{scope}% + \wg@pic@all{\natoapp@lower}{natoapp6c/s/}{M.lower}{% + natoapp6c/modifiers,natoapp6c/lower}% + \end{scope}}% + % Render uppers + \@ifundefined{natoapp@upper}{}{% + \begin{scope}[] + \wg@pic@all{\natoapp@upper}{natoapp6c/s/}{M.upper}{% + natoapp6c/modifiers,natoapp6c/upper}% + \end{scope}}% + % Render lefts + \@ifundefined{natoapp@left}{}{% + \begin{scope}[] + \wg@pic@all{\natoapp@left}{natoapp6c/s/}{M.left}{% + natoapp6c/modifiers,natoapp6c/left}% + \end{scope}}% + % Render rights + \@ifundefined{natoapp@right}{}{% + \begin{scope}[] + \wg@pic@all{\natoapp@right}{natoapp6c/s/}{M.right}{% + natoapp6c/modifiers,natoapp6c/right}% + \end{scope}}% + % Modififiers end + \n@to@pp@modfalse% + \endpgfinterruptboundingbox + \end{scope}% + \fi% + } +% \end{macrocode} +% +% That concludes rendering most of the symbol. We have not put in the +% echelon, below element, or drawn the frame yet. That we will do on +% the foreground path. +% +% \begin{macrocode} +% \end{macrocode} +% +% In the foreground `behind' path we render the echelon, below +% element, and draw the frame. +% +% \begin{macrocode} + \behindforegroundpath{% + \n@to@pp@dbg{2}{NATO App6(c) foreground path: + ^^J Echelon: \meaning\natoapp@ech + ^^J Symbol: \meaning\frameshape + ^^J Below: \meaning\natoapp@below + ^^J Frame: \meaning\frameopt} + % +% \end{macrocode} +% +% We check if we have a frame. If not, stop. +% +% \begin{macrocode} + \ifx\frameshape\pgfutil@empty% + \n@to@pp@dbg{2}{NATO App6(c) has no frame shape!}% + \else% +% \end{macrocode} +% +% We want to draw the rest of the symbol as a part of the frame, so we +% expand the \spec{frame} options in a scope. +% +% \begin{macrocode} + + \edef\tmp@opt{[\frameopt]} + \expandafter\scope\tmp@opt +% \end{macrocode} +% +% First thing in this scope is to draw the actual frame. Again, this +% is done via a node with the right shape. Note that we label this +% node as \spec{M}\meta{id} so we way refer to it later on. +% +% \begin{macrocode} + \n@to@pp@dbg{2}{NATO App6(c) inner node `M\id' ===} + \pgfnode{natoapp6c \frameshape}{center}{}{M\id}{\pgfusepath{stroke}} +% \end{macrocode} +% +% If the user gave an echelon, then put that in. Note that echelons +% are limited to predefined values. +% +% \begin{macrocode} + % Put in the echelon + \@ifundefined{natoapp@ech}{}{% + \ifx\natoapp@ech\pgfutil@empty\else% + \def\args{echelon=\natoapp@ech} + \expandafter\wg@pic\args\@endwg@pic% + {natoapp6c/s/}{$(M.north)+(0,1.2*\n@to@pp@e@y)$}{natoapp6c/echelon} + \fi% + } +% \end{macrocode} +% +% If the user want something under the frame, put that in. +% +% \begin{macrocode} + % Put in stuff below main + \@ifundefined{natoapp@below}{}{% + \n@to@pp@belowtrue + \begin{scope} + \wg@pic@all{\natoapp@below}{natoapp6c/s/}{% + $(M.south)+(0,-\n@to@pp@e@yy)$}{% + natoapp6c/below}% + \end{scope}% + \n@to@pp@belowfalse} +% \end{macrocode} +% +% If the \spec{decoy} flag was set, we draw that. +% +% \begin{macrocode} + \ifnatoapp@decoy% + \scope[dash pattern=on 3\pgflinewidth off 2\pgflinewidth]% + \n@to@pp@dbg{1}{Drawing decoy modifier}% + \wg@sub@nchor{M\id}{north east} + \wg@tmpa=\pgf@x% + \wg@tmpb=\pgf@y% + \pgfpathmoveto{\pgfqpoint{\wg@tmpa}{\wg@tmpb}}% + \wg@tmpc=\n@to@pp@e@yy cm% + \advance\wg@tmpc\n@to@pp@e@yy cm% + \advance\wg@tmpc\wg@tmpb% + \pgfpathlineto{\pgfqpoint{0cm}{\wg@tmpc}}% + \pgfpathlineto{\pgfqpoint{-\wg@tmpa}{\wg@tmpb}}% + \pgfusepath{stroke}% + \endscope% + \fi% + \endscope% + \fi% + } +} +% \end{macrocode} +% +% That finished the shape for NATO App6(c) symbols. We could stop +% here, but for convenience we define a wrapper macro. +% +% \end{NatoAppFrame} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{The \cs{natoapp} wrapper macro} +% +% \begin{Macro}{\natoapp} +% +% This is a wrapper macro for inserting a node with a NATO App6(c) +% symbol in it. The syntax of the macro is +% +% \begin{Syntax} +% \cs{natoapp}\oarg{natoapp6c options}\parg{position}\parg{identifier}; +% \end{Syntax} +% +% Note that the trailing semi-colon (\spec{;}) is optional. +% +% This macro forwards to \cs{n@toapp}. +% +% \begin{macrocode} +\newcommand\natoapp[1][]{% + \n@to@pp@dbg{2}{NATO App6(c) macro -> `#1'} + \tikzset{/natoapp6c/.cd,faction=friendly,command=land}% + \@ifnextchar({\n@toapp{#1}}{\n@toapp{#1}(0,0)}%) +} +% \end{macrocode} +% \end{Macro} +% +% \begin{Macro}{\n@toapp} +% +% This macro takes care to parse the location argument --- if any. +% It forwards to \cs{n@to@pp}. +% +% \begin{macrocode} +\def\n@toapp#1(#2){% + \n@to@pp@dbg{2}{NATO App6(c) second macro -> `#1', `#2'} + \@ifnextchar({\n@to@pp{#1}{#2}}{\n@to@pp{#1}{#2}()}%) +} +% \end{macrocode} +% \end{Macro} +% +% +% \begin{Macro}{\n@to@pp} +% This is the main work-horse of the wrapper. It makes a node with +% the shape \spec{natoapp6c} passing the relevant parameters. The +% syntax of the macro is +% +% \begin{macrocode} +\def\n@to@pp#1#2(#3){% + %\let\name\pgfutil@empty% + %\ifx|#3|\else\edef\name{(#3)}\fi% + %\n@to@pp@dbg{3}{Arguments: #1}% + %\edef\args{[natoapp6c={#1},transform shape] \name at (#2) {}} + %\expandafter\node\args;% + \node[draw,transform shape,natoapp6c={#1}] (#3) at (#2) {};% + \@ifnextchar;{\@gobble}{}} +% \end{macrocode} +% \end{Macro} +% +% \iffalse +% -------------------------------------------------------------------- +% \fi +% \subsubsection{Macros for markings} +% +% \begin{Macro}{\natoappmark} +% +% A macro for making NATO App6(c) markings. +% +% \begin{macrocode} +\providecommand\natoappmark[2][]{% + \tikz[scale=.25,#1]{\natoapp[faction=friendly,command=land,main=#2]}} +% \end{macrocode} +% \end{Macro} +% +% \begin{Macro}{\echelonmark} +% \begin{macrocode} +\providecommand\echelonmark[2][]{\tikz[scale=.5,#1]{% + \pic[scale line widths,line width=1pt] {natoapp6c/s/echelon=#2};}} +% \end{macrocode} +% \end{Macro} +% +% Some specific NATO App6(c) markers. +% +% \begin{macrocode} +\DeclareRobustCommand\armouredmark[1][]{\natoappmark[#1]{armoured}} +\DeclareRobustCommand\infantrymark[1][]{\natoappmark[#1]{infantry}} +\DeclareRobustCommand\artillerymark[1][]{% + \natoappmark[#1]{{[fill=pgfstrokecolor]artillery}}} +\DeclareRobustCommand\combinedmark[1][]{\natoappmark[#1]{combined arms}} +\DeclareRobustCommand\pgmark[1][] {\natoappmark[#1]{{armoured,infantry}}} +\DeclareRobustCommand\reconnaissancemark[1][]{\natoappmark[#1]{reconnaissance}} +\DeclareRobustCommand\corpsmark[1][]{\natoappmark[#1]{,echelon=corps}} +\DeclareRobustCommand\divisionmark[1][]{\natoappmark[#1]{,echelon=division}} +\DeclareRobustCommand\brigademark[1][] {\natoappmark[#1]{,echelon=brigade}} +\DeclareRobustCommand\regimentmark[1][]{\natoappmark[#1]{,echelon=regiment}} +\DeclareRobustCommand\sofmark[1][] {\natoappmark[#1]{{infantry,text=SOF}}} +\DeclareRobustCommand\mountaineermark[1][]{% + \natoappmark[#1]{infantry,lower=mountain}} +\DeclareRobustCommand\airbornemark[1][]{% + \natoappmark[#1]{infantry,lower=airborne}} +\DeclareRobustCommand\amphibiousmark[1][]{\natoappmark[#1]{,lower=amphibious}} +\DeclareRobustCommand\airassaultmark[1][]{% + \natoappmark[#1]{infantry,upper=air assault}} +% \end{macrocode} +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx b/macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx new file mode 100644 index 0000000000..19b41da5cf --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx @@ -0,0 +1,3165 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{The symbols} +% +% Next, we define all the symbols. Note that we define them all as if +% they are in the \spec{main} section of the symbol, since \spec{top}, +% \spec{bottom}, and \spec{below} symbols are automatically scaled. +% +% \begin{NatoAppSymbol}{natoapp6c/s/above corps support} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/above corps support/.pic={% + \edef\n@toapp@path{\n@toapp@corps@support{\natoapp@fac}} + \expandafter\path[draw] \n@toapp@path; + \expandafter\path[draw,xscale=-1] \n@toapp@path;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air assault with organic lift} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air assault with organic lift/.pic={% + \ifx\n@to@pp@hostile\natoapp@fac% + \def\n@toapp@path{(-.75,-.2)--(-.15,-.2)--(0,-.5)--(.15,-.2)--(.75,-.2)} + \else + \def\n@toapp@path{(-.75,-.2)--(-.1,-.2)--(0,-.325)--(.1,-.2)--(.75,-.2)} + \fi + \path[draw] \n@toapp@path;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air decoy} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air decoy/.pic={% + \pic[pic actions]{natoapp6c/s/decoy}; + \path[fill=pgfstrokecolor,pic actions] (0.4, -0.2) rectangle (-0.4, -0.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air assault} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air assault/.pic={% + \path[draw] ([shift={(150:.4)}]0,-.1)--(0,-.1)--([shift={(30:.4)}]0,-.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air defence} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air defence/.pic={% + \ifx\natoapp@fac\n@to@pp@friendly% + \def\n@toapp@opt{[out=90,in=90,looseness=.675]}% + \else\ifx\natoapp@fac\n@to@pp@neutral% + \def\n@toapp@opt{[out=90,in=90,looseness=1]}% + \else% + \def\n@toapp@opt{[out=45,in=135,looseness=1.5]}% + \fi\fi% + \edef\n@toapp@path{(M.south west) to\n@toapp@opt (M.south east)} + \path[draw] \n@toapp@path;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air strip} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air strip/.pic={% + \path[fill=pgfstrokecolor] (-.4,-.1) rectangle(.4,0); + \path[rotate=45,fill=pgfstrokecolor] (-.4,0) rectangle (.4,.1); + } +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/air traffic} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/air traffic/.pic={ + \path[fill=pgfstrokecolor] + (0.33,0.21)-- + (0.33, -0.21)-- + (-0.33, 0.21)-- + (-0.33,-0.21)-- + cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/airship} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/airship/.pic={% + % \path (0.45, 0.175) rectangle (-0.45, -0.175); + \path[pic actions] (0, 0) ellipse (0.45 and 0.15); + \begin{scope} + \clip (0, 0) ellipse (0.45 and 0.15) [reverseclip]; + \path[pic actions] + (0.2,0)--(0.3,0.175)--(0.4,0.175)--(0.375,0) + --(0.4,-0.175)--(0.3, -0.175)--cycle; + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/airborne} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/airborne/.pic={% + \ifx\n@to@pp@neutral\natoapp@fac% + \draw (0,-0.05) arc(0:180:0.15); + \draw (0,-0.05) arc(180:0:0.15); + \else% + \draw (0,-0.05) arc(0:180:0.2); + \draw (0,-0.05) arc(180:0:0.2); + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/ammunition} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/ammunition/.pic={\path[draw] + (0.175,-0.175)--(-0.175,-0.175) + (0.125,-0.175)--(0.125, 0) to[out=90,in=90,looseness=2.75] + (-0.125, 0)--(-0.125, -0.175);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/amphibious} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/amphibious/.pic={ + \def\n@to@pp@tmp{0} + \ifn@to@pp@below\def\n@to@pp@tmp{-.1}\fi + \ifn@to@pp@mod + \path[draw,shift={(0,\n@to@pp@tmp)}](1.21,0) + to[out=-90,in=-90, looseness=2.25] (1.05, 0) + to[out= 90,in= 90, looseness=2.25] (0.89, 0) + to[out=-90,in=-90, looseness=2.25] (0.73, 0) + to[out= 90,in= 90, looseness=2.25] (0.57, 0) + to[out=-90,in=-90, looseness=2.25] (0.41, 0) + to[out= 90,in= 90, looseness=2.25] (0.25, 0) + to[out=-90,in=-90, looseness=2.25] (0.08, 0) + to[out= 90,in= 90, looseness=2.25] (-0.08, 0) + to[out=-90,in=-90, looseness=2.25] (-0.25, 0) + to[out= 90,in= 90, looseness=2.25] (-0.41, 0) + to[out=-90,in=-90, looseness=2.25] (-0.57, 0) + to[out= 90,in= 90, looseness=2.25] (-0.73, 0) + to[out=-90,in=-90, looseness=2.25] (-0.89, 0) + to[out= 90,in= 90, looseness=2.25] (-1.05, 0) + to[out=-90,in=-90, looseness=2.25] (-1.21, 0) + \else + \path[draw,shift={(0,\n@to@pp@tmp)}](0.73, 0) + to[out= 90,in= 90, looseness=2.25] (0.57, 0) + to[out=-90,in=-90, looseness=2.25] (0.41, 0) + to[out= 90,in= 90, looseness=2.25] (0.25, 0) + to[out=-90,in=-90, looseness=2.25] (0.08, 0) + to[out= 90,in= 90, looseness=2.25] (-0.08, 0) + to[out=-90,in=-90, looseness=2.25] (-0.25, 0) + to[out= 90,in= 90, looseness=2.25] (-0.41, 0) + to[out=-90,in=-90, looseness=2.25] (-0.57, 0) + to[out= 90,in= 90, looseness=2.25] (-0.73, 0) + \fi + ; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/amphibious warfare ship} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/amphibious warfare ship/.pic={ + \pic{natoapp6c/s/warfare vessel}; + \path[draw,fill=pgfstrokecolor] + (0.15, 0.05) -- + (0.15, 0.2) -- + (-0.15, 0.2) -- + (-0.15, 0.05) -- cycle + (0, -0.2) rectangle (0.25, -0.175);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/analysis} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/analysis/.pic={ + \path[pic actions] + (-0.3,-0.2)--(0.3,-0.2)--(0, -0.4)--cycle (0,-0.2)--(0,0.4);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/arrest} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/arrest/.pic={ + \path[pic actions] circle(0.2); + \pic[scale=.8]{natoapp6c/s/individual};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/artillery} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/artillery/.pic={ + \path[pic actions] circle(0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/anti tank anti armour} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/anti tank anti armour/.pic={% + \ifx\natoapp@fac\n@to@pp@unknown% + \path[draw,pic actions] (225:.5)--(M.north)--(315:.5); + \else% + \path[draw,pic actions] (M.south west)--(M.north)--(M.south east);% + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/antenna} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/antenna/.pic={\path[draw] + (0, -0.3) -- (0, 0.3) (-0.125, 0.3) -- (0, 0.2) -- (0.125, 0.3);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/armoured} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/armoured/.pic={\path[draw] + (-0.275,0.2) arc(90:270:0.2)--(0.275, -0.2) arc(270:450:0.2)--cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/armoured fighting vehicle} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/armoured fighting vehicle/.pic={ + \path[fill=pgfstrokecolor] (-.4,-.2) rectangle (-.3,.2) (.3,-.2) rectangle (.4,.2); + \path[pic actions] (-.3,0) -- (0,.2) -- (.3,0) -- (0,-.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/armoured personnel carrier} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/armoured personnel carrier/.pic={ + \pic[sub pic actions,draw]{natoapp6c/s/vehicle}; + \path[pic actions] (.35,.15)--(0,.3)--(-.35,.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/arctic} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/arctic/.pic={ + \draw (-0.325,0.135) arc(180:270:0.075 and 0.15) -- + +(0.5, 0) arc(-90:0:0.075 and 0.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/automobile} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/automobile/.pic={ + \begin{scope} + \clip (0.2,-0.15) circle(0.05) (-0.2,-0.15) circle(0.05) [reverseclip]; + \path[pic actions] + (0.3, -0.15) -- + (-0.3, -0.15) -- + (-0.3, 0.025) -- + (-0.1, 0.025) -- + (-0.1, 0.2) -- + ( 0.1, 0.2) -- + ( 0.1, 0.025) -- + ( 0.3, 0.025) -- cycle + ( 0.075, 0.025) rectangle (-0.075, 0.175); + \end{scope} + \path[pic actions] + ( 0.2, -0.15) circle (0.05) + (-0.2, -0.15) circle (0.05); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/balloon} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/balloon/.pic={% + \path[pic actions] (0, 0.025) circle (0.175); + \begin{scope} + \clip (0, 0.025) circle (0.175) [reverseclip]; + \path[pic actions] (-0.05,0) rectangle (0.05,-0.2)--(0.05,0); + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/bar} +% \begin{macrocode} +\tikzset{ + natoapp6c/s/bar/.pic={ + \path[fill=pgfstrokecolor] (-.3,-.1) rectangle (.3,.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/base} +% \begin{macrocode} +\tikzset{ + natoapp6c/s/base/.pic={ + \path[pic actions] circle(.2); + \path[pic actions] + (-.2,0) -- (.2,0) + ( 0,-.2) -- (0 ,.2) + (225:.2) -- (45:.2) + (135:.2) -- (-45:.2); + } +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/bicycle equipped} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/bicycle equipped/.pic={\draw(0,0) circle(.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/boat} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/boat/.pic={ + \path[pic actions] + (-0.2, -0.2) -- + ( 0.2, -0.2) -- + ( 0.35, 0.05) -- + (-0.15, 0.05) -- + (-0.075, 0.2) -- + (-0.175, 0.2) -- + (-0.25, 0.05) -- + (-0.35, 0.05) -- + cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/booby trap} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/booby trap/.pic={ + \path[draw] (0, -0.2) ellipse(0.2 and 0.065); + \begin{scope} + \clip (0, -0.2) ellipse(0.2 and 0.065) [reverseclip]; + \path[draw] (-0.2, -0.2) -- (0, 0.2) -- (0.2, -0.2); + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/bottomed} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/bottomed/.pic={ + \path[draw,fill=pgfstrokecolor] (-0.33,.1) rectangle(0.33,.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/bridge} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/bridge/.is choice, + pics/natoapp6c/s/bridge/none/.style={ + code={\path[pic actions] + (0.35,-0.15)--(0.25,-0.05)--(-0.25,-0.05)--(-0.35,-0.15) + (0.35, 0.15)--(0.25, 0.05)--(-0.25, 0.05)--(-0.35, 0.15);}}, + pics/natoapp6c/s/bridge/fixed/.style={ + code={\pic{natoapp6c/s/bridge};\pic{natoapp6c/s/type=vlight};}}, + pics/natoapp6c/s/bridge/folding/.style={ + code={\pic{natoapp6c/s/bridge=none}; + \path[draw] (.1,-.2) -- (-.1,-.2) -- (-.1,.2) -- (.1,.2);}}, + pics/natoapp6c/s/bridge/hollow/.style={ + code={\pic{natoapp6c/s/bridge=none}; + \path[draw] (.1,-.2) -- (-.1,-.2) -- (-.1,.2) -- (.1,.2) -- cycle;}}, + pics/natoapp6c/s/bridge/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/capsule} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/capsule/.pic={ + \path[pic actions] + ($(0.25, -0.2)!0.1!(0, 0.5)$) -- + ($(0.25, -0.2)!0.5!(0, 0.5)$) to[in=75, out=105, looseness=0.75] + ($(0, 0.5)!0.5!(-0.25, -0.2)$) -- + ($(0, 0.5)!0.9!(-0.25, -0.2)$) to[in=285, out=255, looseness=0.55] + cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/carrier} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/carrier/.pic={ + \pic{natoapp6c/s/warfare vessel}; + \path[draw,fill=pgfstrokecolor] + (-0.15, 0.05) -- + (-0.15, 0.2) -- + (-0.3, 0.2) -- + (-0.3, 0.05) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/chemical biological radiological nuclear} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/chemical biological radiological nuclear/.pic={ + \path[draw,fill=pgfstrokecolor] (-0.29,0.1) circle(0.096) (0.29,0.1) circle(0.096); + \path[pic actions] (0.15,-0.2) arc(0:90:0.45 and 0.375) + (-0.15,-0.2) arc(180:90:0.45 and 0.375);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/civilian military cooperation} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/civilian military cooperation/.pic={% + \path[draw] (.375,.2)--(-.375,.2)--(-.375,-.025) + to[in=270, out=270, looseness=0.75] (.375,-.025)--cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/civilian police} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/civilian police/.pic={% + \path[draw] (0.225, 0.2) + to[in=270, out=270, looseness=3] (-0.225, 0.2) + to [in=270, out=270, looseness=1.5] (0,0.2) + to [in=270, out=270, looseness=1.5] (0.225, 0.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/civilian telecommunications} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/civilian telecommunications/.pic={ + \path[draw] (0.075, -0.2){[line join=bevel] -- (0, 0.1) -- (-0.075, -0.2)} + (0.065, -0.05) -- (-0.065, -0.05) + (-0.325, 0.2) -- (-0.15, 0.125) -- (-0.15, 0.175) -- (0, 0.1) -- (0.15, 0.175) -- (0.15, 0.125) -- (0.325, 0.2); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/coast guard vessel} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/coast guard vessel/.pic={% + \pic[draw] {natoapp6c/s/ship}; + \path[pic actions] (0.15, 0.05) -- (0, -0.2) (0.2, 0.05)--(0.05, -0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/combat support} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/combat support/.pic={% + \path[fill=pgfstrokecolor] + (.15,.2)--(-.15,.2)--(-.15,-.05)--(0,-.2)--(.15,-.05) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/combatant} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/combatant/.pic={% + \begin{scope}[xshift=-4.5, yshift=-5] + \path[pic actions] + (0.3213,0.0534) .. controls (0.3186,0.0295) and (0.3072,0.0136) .. + (0.2925,0.0063) .. controls (0.2777,-0.0010) and (0.2605,0.0001) .. + (0.2461,0.0068) .. controls (0.2317,0.0136) and (0.2198,0.0265) .. + (0.2163,0.0433) .. controls (0.2147,0.0513) and (0.2150,0.0601) .. + (0.2179,0.0694) .. controls (0.1304,0.1129) and (0.0223,0.1961) .. + (0.0013,0.3209) .. controls (0.0601,0.1809) and (0.1770,0.0912) .. + (0.3213,0.0534) -- cycle + (0.2304,0.0633) .. controls (0.2287,0.0570) and (0.2287,0.0513) .. + (0.2298,0.0461) .. controls (0.2323,0.0340) and (0.2409,0.0245) .. + (0.2520,0.0193) .. controls (0.2630,0.0141) and (0.2760,0.0135) .. + (0.2864,0.0186) .. controls (0.2932,0.0220) and (0.2992,0.0277) .. + (0.3033,0.0370) .. controls (0.2845,0.0413) and (0.2597,0.0498) .. + (0.2304,0.0633) -- cycle + (0.1785,0.1137) .. controls (0.2446,0.1612) and (0.3061,0.2300) .. + (0.3214,0.3209) .. controls (0.2864,0.2377) and (0.2310,0.1723) .. + (0.1614,0.1249) + (0.1443,0.1138) .. controls (0.1011,0.0871) and (0.0530,0.0670) .. + (0.0014,0.0535) .. controls (0.0041,0.0295) and (0.0154,0.0136) .. + (0.0302,0.0063) .. controls (0.0449,-0.0010) and (0.0621,0.0001) .. + (0.0765,0.0069) .. controls (0.0909,0.0137) and (0.1028,0.0265) .. + (0.1063,0.0433) .. controls (0.1079,0.0513) and (0.1076,0.0602) .. + (0.1047,0.0694) .. controls (0.1230,0.0785) and (0.1422,0.0893) .. + (0.1613,0.1019) + (0.0928,0.0461) .. controls (0.0903,0.0340) and (0.0816,0.0245) .. + (0.0706,0.0193) .. controls (0.0596,0.0141) and (0.0466,0.0135) .. + (0.0362,0.0186) .. controls (0.0294,0.0220) and (0.0234,0.0277) .. + (0.0193,0.0370) .. controls (0.0381,0.0413) and (0.0629,0.0498) .. + (0.0921,0.0633) -- + (0.0921,0.0633) .. controls (0.0938,0.0570) and (0.0938,0.0512) .. + (0.0928,0.0461) -- cycle; + \end{scope} + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/combined arms} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/combined arms/.pic={% + \path[draw] pic {natoapp6c/s/armoured}; + \path[draw] (0.275, 0.2) -- (-0.275, -0.2) (0.275, -0.2) -- (-0.275, 0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/computer system} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/computer system/.pic={ + \path[draw,fill=pgfstrokecolor,pic actions] + (-.3, .28) rectangle ( .3, .3) + (-.3, -.18) rectangle ( .3, -.2) + (-.3, -.18) rectangle (-.3, .28) + ( .3, -.18) rectangle ( .3, .28) + (-.3, -.3) rectangle ( .3, -.28) + (-.05,-.28) rectangle ( .05,-.18);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/control} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/control/.pic={ + \path[pic actions] + [{Stealth[inset=0pt,scale=0.5]}-{Stealth[inset=0pt,scale=0.5]}] + (0, .2) -- (0, -.2); + \path[pic actions] + [{Stealth[inset=0pt,scale=0.5]}-{Stealth[inset=0pt,scale=0.5]}] + (-.2, 0) -- (.2, 0);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/convoy} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/convoy/.pic={ + \path[draw,fill=pgfstrokecolor] + (0.35, 0.175) -- + (-0.35, 0.175) -- + (-0.35, -0.175) -- + (-0.2, -0.175) -- + (-0.2, 0.025) -- + (0.2, 0.025) -- + (0.2, -0.175) -- + (0.35, -0.175) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/corps support} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/corps support/.pic={% + \edef\n@toapp@path{\n@toapp@corps@support{\natoapp@fac}} + \expandafter\path[draw] \n@toapp@path;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/crime} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/crime/.pic={\path[draw,dashed] (-.45,.25)--(.45,-.25);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/decoy} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/decoy/.pic={% + \path[fill=pgfstrokecolor,draw,yshift=1.5] + (0.2, 0) -- (0.4, 0.15) -- (0.4, -0.15) -- cycle + (-0.1, 0) -- (0.1, 0.15) -- (0.1, -0.15) -- cycle + (-0.4, 0) -- (-0.2, 0.15) -- (-0.2, -0.15) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/direct communications} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/direct communications/.pic={ + \path[draw] (-.35,0) circle(.1) (.35,0) circle(.1); + \pic[fill=pgfstrokecolor]{natoapp6c/s/intermodal}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/direction finding} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/direction finding/.pic={% + \path[draw] (-.3,.2)--(0,.4)--(.3,.2) (0,.4)--(0,-.4);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/diving} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/diving/.is choice, + pics/natoapp6c/s/diving/none/.style={ + code={ + \path[pic actions] (0,0) circle(.1) (0,0) circle(.25); + \begin{scope} + \clip (0,0) circle(.25) [reverseclip]; + \path[pic actions] (-.3,-.1) rectangle(.3,.1) + (0,0) -- (-45:.4) -- (-135:.4) -- cycle; + \end{scope}}}, + pics/natoapp6c/s/diving/military/.style={ + code={ + \begin{scope}[even odd rule] + \clip (0,0) circle(0.1)[reverseclip]; + \pic[fill=pgfstrokecolor]{natoapp6c/s/diving=none}; + \end{scope} + \path[fill=pgfstrokecolor] (0,0) circle(0.08); + }}, + pics/natoapp6c/s/diving/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/drilling} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/drilling/.pic={\path[fill=pgfstrokecolor] + (-0.1,-0.2) -- (0.1,-0.2) -- (0.2, 0.2) -- (-0.2, 0.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/earthmover} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/earthmover/.pic={ + \pic{natoapp6c/s/tank}; + \path[pic actions] (.3, + .3)--(.175,.35)--(-.175,.35)--(-.3,.3) + (0,.2)--(0,.35); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/electric power} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/electric power/.pic={ + \path[pic actions] + (-0.05, 0) .. controls(-0.06, 0.14) .. + ( 0, 0.09) .. controls( 0.03, 0.06) .. + ( 0, 0.06) .. controls(-0.03, 0.06) .. + ( 0, 0.09) .. controls( 0.06, 0.14) .. + (0.05, 0) + ($(-55:0.125) + (0, 0.075)$) arc(-55:235:0.125) arc(415:360:0.05) -- + +(0, -0.08) arc(180:360:0.05035) -- + +(0, 0.08) arc(180:125:0.05) -- cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/electronic ranging} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/electronic ranging/.pic={% + \path[draw] (135:.225) arc (135:315:.225)--cycle (0,0)--(225:-.225);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/electronic warfare wide} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/electronic warfare wide/.pic={% + % OBS + \node[natoapp6c/text,natoapp6c/normal text] at(-.25,0){E}; + \node[natoapp6c/text,natoapp6c/normal text] at(.25,0){W}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/engineer} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/engineer/.pic={\path[draw] + (.4,-.2)--(.4,.2)--(-.4,.2)--(-.4,-.2) (0,.2)--(0,-.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/enhanced location reporting system} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/enhanced location reporting system/.pic={\path[draw] + (0, -0.3) -- (0, 0.3) (-0.2, -.3) -- (0, 0.-.1) -- (0.2, -.3);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/environmental protection} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/environmental protection/.pic={% + \path[draw] (0, 0.2) + -- (0.1, 0.05) + -- (0.05, 0.05) + -- (0.15, -0.05) + -- (0.1, -0.05) + -- (0.2, -0.15) + -- (0.15, -0.15) + -- (0.05, -0.15) + -- (0.05, -0.2) + -- (-0.05, -0.2) + -- (-0.05, -0.15) + -- (-0.2, -0.15) + -- (-0.1, -0.05) + -- (-0.15, -0.05) + -- (-0.05, 0.05) + -- (-0.1, 0.05) + -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/explosion} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/explosion/.pic={% + \node [shape=rectangle, + starburst, + draw, + minimum width=0.9cm, + minimum height=0.9cm, + starburst point height=0.25cm, + starburst points=12] {};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/finance} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/finance/.pic={% + \path[draw] (-.3,-.25) rectangle(.3,0) + (-.3,0) -- ++(60:.28) -- ([shift=(120:.28)].3,0) -- (.3,0);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/fishing vessel} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/fishing vessel/.pic={ + \path[pic actions] + (-0.15, -0.2) -- + ( 0.15, -0.2) -- + ( 0.25, 0.025) -- + (-0.05, 0.025) -- + (-0.05, 0.125) -- + (-0.2, 0.125) -- + (-0.2, 0.025) -- + (-0.25, 0.025) -- cycle + (0.025, 0.025) -- (0.025, 0.2) + (0.025, 0.025) -- +(45:0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/fire protection} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/fire protection/.pic={% + \path[fill=pgfstrokecolor] (0,0) circle(.2) + (0,0) -- (60:.3) -- (120:.3) -- cycle + (0,0) -- (-30:.3) -- (30:.3) -- cycle + (0,0) -- (150:.3) -- (210:.3) -- cycle + (0,0) -- (240:.3) -- (300:.3) -- cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/fixed and rotary wing} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/fixed and rotary wing/.pic={% + \path[xscale=.45,yscale=.75,pic actions] pic {natoapp6c/s/fixed wing}; + \path[yscale=.45,xscale=.7,rotate=90, pic actions] pic { + natoapp6c/s/rotary wing}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/fixed wing} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/fixed wing/.pic={ + \path[pic actions] + (-0.36,0.125) arc (77:275:0.075 and 0.125) -- (0,0) -- cycle + ( 0.36,0.125) arc (-275:-77:-0.075 and 0.125) -- (0,0) + --cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/flame thrower} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/flame thrower/.pic={ + \path[pic actions] + (-0.1, -0.4) -- (-0.1, 0.3) to[out=90,in=90,looseness=2] + (0.1, 0.3) -- (0.1, 0.275);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/floating} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/floating/.pic={ + \path[draw] + (-0.5, 0.100) -- + (-0.417, 0.242) -- + (-0.333, 0.100) -- + (-0.250, 0.242) -- + (-0.167, 0.100) -- + (-0.083, 0.242) -- + (0.0, 0.100) -- + (0.083, 0.242) -- + (0.167, 0.100) -- + (0.250, 0.242) -- + (0.333, 0.100) -- + (0.417, 0.242) -- + (0.5, 0.100);}, + pics/natoapp6c/s/surfaced/.style=natoapp6c/s/floating, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/food} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/food/.pic={ + \path[pic actions] + (0.075, 0.2) to[out=210, in=150, looseness=1] + (0.075, -0.2) to[out=180, in=180, looseness=1.5] + (0.075, 0.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/fuel} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/fuel/.pic={ + \path[draw] (0,0) -- (135:.3) -- (45:.3) -- cycle (0,0) -- (0,-.3);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/grenade launcher} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/grenade launcher/.is choice,% + pics/natoapp6c/s/grenade launcher/none/.style={% + code={% + \pic[draw]{natoapp6c/s/rifle}; + \pic[draw]{natoapp6c/s/weapon=grenade launcher};}},% + pics/natoapp6c/s/grenade launcher/non lethal/.style={ + code={% + \pic[draw]{natoapp6c/s/non lethal weapon}; + \pic[draw]{natoapp6c/s/weapon=grenade launcher};}}, + pics/natoapp6c/s/grenade launcher/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/graffiti} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/graffiti/.pic={ + \path[pic actions] + (0.05, 0.2) + arc (90:270:0.05) + arc (450:270:0.05) + arc (90:270:0.05) + arc (450:270:0.05) + (-0.05, 0.2) + arc (90:270:0.05) + arc (450:270:0.05) + arc (90:270:0.05) + arc (450:270:0.05);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/group} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/group/.pic={ + \path(-.23,.05) pic [draw,scale=.8] {natoapp6c/s/individual}; + \path(0,-.05) pic [draw,scale=.8] {natoapp6c/s/individual}; + \path(.23,.05) pic [draw,scale=.8] {natoapp6c/s/individual};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/gun} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/gun/.is choice, + pics/natoapp6c/s/gun/base/.style={ + code={ + \pic[draw]{natoapp6c/s/weapon=base}; + \pic[draw]{natoapp6c/s/weapon=top}; + \pic[draw]{natoapp6c/s/weapon=multi fire};}}, + pics/natoapp6c/s/gun/air defence/.style={ + code={ + \pic[draw]{natoapp6c/s/gun/base}; + \pic[draw]{natoapp6c/s/weapon=air defence};}}, + pics/natoapp6c/s/gun/anti tank/.style={ + code={ + \pic[draw]{natoapp6c/s/gun/base}; + \pic[draw]{natoapp6c/s/weapon/anti tank};}}, + pics/natoapp6c/s/gun/direct/.style={ + code={ + \pic[draw]{natoapp6c/s/gun/base}; + \pic[draw]{natoapp6c/s/weapon=bottom};}}, + pics/natoapp6c/s/gun/recoilless/.style={ + code={ + \pic[draw]{natoapp6c/s/rifle}; + \pic[yshift=-4,draw]{natoapp6c/s/weapon=multi fire};}}, + pics/natoapp6c/s/gun/.default=direct, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/headquarters} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/headquarters/.pic={ + \path[pic actions] (M.north west) -- ++(0,-.3) -- + ([shift=(-90:.3)]M.north east) -- (M.north east) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/house} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/house/.pic={ + \path[pic actions] + (-.125,-.175) rectangle (.125,.075) + (-.167,.075) -- (0,.225) -- (.167,.075) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/howitzer} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/howitzer/.pic={ + \pic[draw]{natoapp6c/s/weapon=base}; + \pic[draw]{natoapp6c/s/weapon=top}; + \pic[draw]{natoapp6c/s/weapon=multi fire}; + \pic[yshift=-8,draw]{natoapp6c/s/weapon=grenade launcher}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/in position} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/in position/.pic={ + \path[draw,fill=pgfstrokecolor] + (-.3,-.01) rectangle (-.2,.01) (.2,-.01) rectangle (.3,.01);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/individual} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/individual/.pic={ + \path[pic actions] + (0,.08) -- (0,-.3) (-.15,0) -- (.15,0) (0,.18) circle(.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/infantry} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/infantry/.pic={ + \path[draw] (-.75,.5) -- (.75,-.5) (-.75,-.5) -- (.75,.5);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/intermodal} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/intermodal/.pic={ + \path[pic actions] + ( 0.15, 0.025) -- + (-0.15, 0.025) -- + (-0.15, 0.075) -- + (-0.25, 0) -- + (-0.15, -0.075) -- + (-0.15, -0.025) -- + ( 0.15, -0.025) -- + ( 0.15, -0.075) -- + ( 0.25, 0) -- + ( 0.15, 0.075) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/jagged wave} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/jagged wave/.pic={ + \draw (0.3, -0.05) -- + (0.2, 0.05) -- + (0.1, -0.05) -- + (0, 0.05) -- + (-0.1, -0.05) -- + (-0.2, 0.05) -- + (-0.3, -0.05);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/jam} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/jam/.pic={% + \path[draw] + (0.75, 0) + to[out=90, in=90, looseness=2.25] ( 0.65, 0) + to[out=-90,in=-90,looseness=2.25] ( 0.55, 0) + to[out=90, in=90, looseness=2.25] ( 0.45, 0) + to[out=-90,in=-90,looseness=2.25] ( 0.35, 0) + to[out=90, in=90, looseness=2.25] ( 0.25, 0) + to[out=-90,in=-90,looseness=2.25] ( 0.15, 0) + to[out=90, in=90, looseness=2.25] ( 0.05, 0) + to[out=-90,in=-90,looseness=2.25] (-0.05, 0) + to[out=90, in=90, looseness=2.25] (-0.15, 0) + to[out=-90,in=-90,looseness=2.25] (-0.25, 0) + to[out=90, in=90, looseness=2.25] (-0.35, 0) + to[out=-90,in=-90,looseness=2.25] (-0.45, 0) + to[out=90, in=90, looseness=2.25] (-0.55, 0) + to[out=-90,in=-90,looseness=2.25] (-0.65, 0) + to[out=90, in=90, looseness=2.25] (-0.75, 0) + ;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/jamming} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/jamming/.pic={% + \path(0,.4) pic {natoapp6c/s/jam} (0,.26) pic {natoapp6c/s/jam};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/jetski} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/jetski/.pic={ + \path[pic actions] + ( 0.3, -0.2) -- + (-0.3, -0.2) -- + (-0.35,-0.1) -- + (-0.1, 0.2) -- + ( 0, 0.2) -- + ( 0, 0.1) -- + (-0.05, 0.1) -- + (-0.1, -0.05) -- + ( 0.3, -0.05) -- + ( 0.3, -0.2) -- cycle; +}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/killing} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/killing/.pic={\path[draw] (-.45,.25)--(.45,-.25);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/labour} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/labour/.pic={% + \path[draw] (-.15,.2) -- (.15,.2) (0,.2) -- (0,0) + (-.15,0) -- ++(300:.3) -- ++(60:.3) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/land mine} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/land mine/.is choice, + pics/natoapp6c/s/land mine/personnel/.style={ + code={\pic[fill=pgfstrokecolor]{natoapp6c/s/land mine=none}; + \path[pic actions] (135:0.35) -- (0, 0) -- (45:0.35);}}, + pics/natoapp6c/s/land mine/tank/.style={ + code={\pic[fill=pgfstrokecolor]{natoapp6c/s/land mine=none};}}, + pics/natoapp6c/s/land mine/none/.style={ + code={\path[pic actions] (0,0) circle(0.25);}}, + pics/natoapp6c/s/land mine/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/land missile} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/land missile/.pic={\pic{natoapp6c/s/missile launcher};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/laser} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/laser/.pic={ + \path[draw,line join=round,line cap=round,pic actions] + ( 0.1, -0.25) -- + (-0.1, -0.225) -- + ( 0.1, -0.2) -- + (-0.1, -0.175) -- + ( 0.1, -0.15) -- + ( 0, -0.1375) -- + ( 0, -0.0125) -- + (-0.1, 0) -- + ( 0.1, 0.025) -- + (-0.1, 0.05) -- + ( 0.1, 0.075) -- + ( 0, 0.0875) -- + ( 0, 0.25) + ( 0.1, 0.2) -- + ( 0, 0.25) -- + (-0.1, 0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/launcher} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/launcher/.pic={ + \path[draw] (-.3,-.2) -- (.3,.2) -- (.3,-.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/laundry} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/laundry/.pic={% + \path[draw] (0,-.3) -- (0,.1) + (0,.1) -- ++(150:.25) + (0,.1) -- ++(180:.2) + (0,.1) -- ++(210:.25);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/machine gun} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/machine gun/.pic={% + \pic[draw]{natoapp6c/s/rifle}; + \pic[draw]{natoapp6c/s/weapon=machine gun};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/main gun} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/main gun/.pic={ + \path[pic actions] (M.north west) -- ++(.25,0) -- + ([shift=(0:.25)]M.south west) -- (M.south west) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/maintenance} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/maintenance/.pic={ + \path[fill=pgfstrokecolor] + (-.38,.25) + to[out=0,in=90,looseness=1.5] (-.2,.05) -- (.2,.05) + to [out=90,in=180,looseness=1.5] (.38,.25) -- ++(0,-.08) + to [out=180,in=90,looseness=1.5] (.28,0) + to [out=-90,in=180,looseness=1.5] (.38,-.17) -- ++(0,-.08) + to [out=180,in=-90,looseness=1.5] (.2,-.05) -- (-.2,-.05) + to [out=-90,in=0,looseness=1.5] (-.38,-.25) -- ++(0,.08) + to [out=0,in=-90,looseness=1.5] (-.28,0) + to [out=90,in=0,looseness=1.5] (-.38,.17) -- cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/medic} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/medic/.pic={ + \path[pic actions] + (-0.075,-0.2) + --(0.075,-.2) + --(.075,-.075) + --(.2,-.075) + --(.2,.075) + --(.075,.075) + --(.075,.2) + --(-0.075,.2) + --(-0.075,.075) + --(-.2,.075) + --(-.2,-.075) + --(-.075,-.075) + --cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/medical} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/medical/.pic={\path[draw] (-1,0) -- (1,0) (0,-1) -- (0,1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/medical treatment} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/medical treatment/.pic={ + \path[draw] (0,0) pic {natoapp6c/s/medical} + ([xscale=.5,shift={(0,-.2)}]M.west) -- ([xscale=.5,shift={(0,.2)}]M.west) + ([xscale=.5,shift={(0,-.2)}]M.east) -- ([xscale=.5,shift={(0,.2)}]M.east);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mine} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mine/.pic={ + \path[fill=pgfstrokecolor,draw] (0,0) ellipse(.2 and .15) + (0,0) -- ++(60:.3) + (0,0) -- ++(90:.3) + (0,0) -- ++(120:.3) + (0,0) -- ++(240:.3) + (0,0) -- ++(270:.3) + (0,0) -- ++(300:.3) + ;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mine clearing equipment} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mine clearing equipment/.pic={ + \path[pic actions] + (0, 0.2) -- (0, 0) -- (0.35, -0.2) -- (-0.35, -0.2) -- (0, 0);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mine warfare vessel} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mine warfare vessel/.pic={% + \pic[scale=.8,fill=pgfstrokecolor,yshift=2.5]{natoapp6c/s/sea mine=top half}; + \pic {natoapp6c/s/warfare vessel}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/missile} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/missile/.pic={% + \path[pic actions,draw] + (0, 0.3) + -- (-0.05, 0.2) + -- (-0.05, -0.2) + -- (-0.125,-0.3) + -- (-0.125,-0.4) + -- (0, -0.265) + -- (0.125,-0.4) + -- (0.125,-0.3) + -- (0.05,-0.2) + -- (0.05,0.2) + -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/missile launcher} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/missile launcher/.is choice, + pics/natoapp6c/s/missile launcher/base/.style={ + code={ + \pic[draw]{natoapp6c/s/weapon=base}; + \pic[draw]{natoapp6c/s/weapon=top}; + \pic[draw]{natoapp6c/s/weapon=multi fire}; + \pic[draw]{natoapp6c/s/weapon=missile launcher};}}, + pics/natoapp6c/s/missile launcher/none/.style={ + code={ + \pic[draw]{natoapp6c/s/missile launcher=base}; + \path[pic actions] (-.2,-.2)--(-.2,-.35) (.2,-.2)--(.2,-.35);}}, + pics/natoapp6c/s/missile launcher/air defence/.style={ + code={ + \pic[draw]{natoapp6c/s/missile launcher=none}; + \pic[draw]{natoapp6c/s/weapon=air defence};}}, + pics/natoapp6c/s/missile launcher/anti tank/.style={ + code={ + \pic[draw]{natoapp6c/s/missile launcher=base}; + \pic[draw]{natoapp6c/s/weapon=anti tank};}}, + pics/natoapp6c/s/missile launcher/surface to surface/.style={ + code={% + \pic[draw]{natoapp6c/s/missile launcher=none}; + \pic[draw]{natoapp6c/s/weapon=bottom}; + \pic[draw]{natoapp6c/s/weapon=machine gun}; + }}, + pics/natoapp6c/s/missile launcher/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mobile advisor and support} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mobile advisor and support/.pic={ + \path[draw] (-.35,0) circle(.1) (.35,0) circle(.1); + \path[draw,fill=pgfstrokecolor,pic actions] + ( 0.15, 0.025) -- + (-0.25, 0.025) -- + (-0.25, -0.025) -- + ( 0.15, -0.025) -- + ( 0.15, -0.075) -- + ( 0.25, 0) -- + ( 0.15, 0.075) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/moored} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/moored/.pic={ + \path[draw] (0,.2) -- (0,-.05) (-.3,-.05) -- (.3,-.05);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mortar} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mortar/.pic={ + \path[draw] (0,-.15) circle(.05) (0,.-.1) -- (0,.2) + ([shift=(225:.1)]0,.2) -- (0,.2) -- ([shift=(-45:.1)]0,.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/motorized} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/motorized/.pic={\path[draw] (M.north) -- (M.south);}, + pics/natoapp6c/s/motorised/.style={natoapp6c/s/motorized}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mortuary affairs} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mortuary affairs/.pic={ + \path[draw] (-.1,-.2) rectangle (.1,.2) + (0,-.17) -- (0,.17) (-.07,.1) -- (.07,.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/mountain} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/mountain/.pic={ + \path[draw,fill=pgfstrokecolor] (0,.2) -- ++(-60:.7) -- ++(180:.7) -- cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/naval} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/naval/.pic={ + \def\arrow{(0,0) -- (-.02,0) -- ++(60:.04) -- ++(-60:.04) -- cycle} + \begin{scope}[pic actions] + \path[draw] + (0,.13) circle (.08) (-.2,.04) -- (.2,.04) (0,.04) + -- (0,-.25) (210:.25) arc (210:340:.25); + \path[draw,shift=(210:.25),rotate=30] \arrow; + \path[draw,shift=(340:.25),rotate=-30] \arrow; + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/navigation} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/navigation/.pic={ + \path[draw] + (.17,-.2) -- (0,.2) -- (-.17,-.2) + ($(-180:.17)+(0,.05)$) arc[radius=.17,start angle=-180,end angle=0];}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/navy task} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/navy task/.pic={ + \path[pic actions] + (-0.25, -0.2) -- (-0.25, 0.1) -- (-0.15, 0.2) + ( 0.25, -0.2) -- ( 0.25, 0.1) -- ( 0.15, 0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/non combatant} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/non combatant/.pic={ + \path[draw,fill=pgfstrokecolor] + (-0.25, -0.2) -- + (-0.25, 0.05) -- + (-0.15, 0.05) -- + (-0.15, 0.2) -- + (0.15, 0.2) -- + (0.15, 0.05) -- + (0.25, 0.05) -- + (0.25, -0.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/non lethal weapon} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/non lethal weapon/.pic={% + \pic[draw]{natoapp6c/s/weapon};% + \pic[draw]{natoapp6c/s/weapon=non lethal};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/nuclear} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/nuclear/.pic={ + \path[fill=pgfstrokecolor,pic actions] (0,0) circle(.05) + (0: .3) arc(0 : 60:.3) -- ( 60:.1) arc( 60: 0: .1) -- cycle + (180:.3) arc(180: 120:.3) -- ( 120:.1) arc( 120: 180:.1) -- cycle + (-60:.3) arc(-60:-120:.3) -- (-120:.1) arc(-120:-60: .1) -- cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/observer} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/observer/.pic={ + \path[pic actions] (0.25,-.2)--(-.25,-.2)--(0,.2)--cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/orbiter shuttle} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/orbiter shuttle/.pic={ + \path[pic actions] + ($(0, 0.3)!0.35!(0.125, -0.15)$) -- + (0.125, -0.15) -- (-0.125, -0.15) -- + ($(-0.125, -0.15)!0.65!(0, 0.3)$) + to[in=105, out=75] cycle + (0, -0.20) -- (0, -0.15); }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/ordnance} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/ordnance/.pic={ + \path[draw] (0,0) ellipse(.2 and .15); + \begin{scope} + \clip (0,0) ellipse(.2 and .15) [reverseclip]; + \path[draw] (0,0) -- ++(50:.3) + (0,0) -- ++(70:.3) + (0,0) -- ++(110:.3) + (0,0) -- ++(130:.3) + ; + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/organisation} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/organisation/.style={natoapp6c/s/group}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/over snow} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/over snow/.pic={ + \ifn@to@pp@below% + \draw ([shift={(-.15,.15)}]M.south west) to[in=180, out=270] + ++(.15,-.15) -- (M.south east); + \else% + \draw ([shift={(.3,.1)}]M.west) to[in=180, out=-90] + ([shift={(.5,-.1)}]M.west) -- + ([shift={(-.3,-.1)}]M.east); + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/pack animal} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/pack animal/.pic={ + \def\n@to@pp@tmp{0} + \ifn@to@pp@below\def\n@to@pp@tmp{-.15}\fi + \path[draw,shift={(0,\n@to@pp@tmp)}] + (-.3,-.15) -- (-.15,.15) -- (0,-.15) -- (.15,.15) -- (.3,-.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/patrol} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/patrol/.pic={ + \pic{natoapp6c/s/warfare vessel}; + \path[draw,fill=pgfstrokecolor] (0.125, 0) -- (0, 0.2) -- (-0.125, 0) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/patrolling} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/patrolling/.pic={ + % OBS + \path[draw] + (0.25, 0.05) -- (-0.05, 0.05) -- (0.05, -0.05) -- (-0.4, -0.05) + (-0.3, 0) -- (-0.4, -0.05) -- (-0.3, -0.1) + node [natoapp6c/text,natoapp6c/small text, + scale=.5,anchor=west,inner sep=0] at (0.25, 0.05) {P}; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/physician} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/physician/.pic={ + \pic{natoapp6c/s/medical}; + \path[draw] (0.1, 0.05) -- (-0.1, 0.05);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/pipeline} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/pipeline/.pic={ + \path[draw] (-.15,-.15) rectangle (.15,.15) + (-.3,.1) -- (-.15,.1) (-.3,-.1) -- (-.15,-.1) + (.3,.1) -- (.15,.1) (.3,-.1) -- (.15,-.1) + (-.05,.15) rectangle (.05,.25) (-.1,.25) rectangle (.1,.30);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/poisoning} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/poisoning/.pic={ + \path[pic actions] (0, 0.055) circle (0.145) + (0.3, 0) -- (-0.3, -0.2) + (-0.3, 0) -- (0.3, -0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/postal} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/postal/.pic={ + \path[draw] (-.25,.25) -- (.08,.25) + to [out=-90,in=120,looseness=1] (.25,-.25) + to [out=150,in=-90,looseness=1] (-.25,.25); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/printed media} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/printed media/.pic={ + \path[pic actions] (0.2, 0) -- (-0.2, 0) + (0, 0.1) circle (0.085) + (0, -0.1) circle (0.085);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/psychological} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/psychological/.pic={ + \path[pic actions] (-.25,.15) -- (-.1,.15) -- (.1,.25) + -- ++(0,-.5) -- (-.1,-.15) -- (-.25,-.15) -- cycle + (.1,.15) -- (.25,.15) + (.1,.05) -- (.25,.05) + (.1,-.05) -- (.25,-.05) + (.1,-.15) -- (.25,-.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/quarry} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/quarry/.pic={ + \path[draw] (-.2,-.2) -- (.18,.18) (.2,-.2) -- (-.18,.18) + (25:.255) arc(25:65:.255) + (115:.255) arc(115:155:.255); + %([shift={(115:.08)}]-.1,.1) arc (115:155:.08) + %([shift={(70:.08)}].1,.1) arc (70:110:.08); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/quartermaster} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/quartermaster/.pic={ + \path[draw] (-.4,.1) -- (.1,.1) (.25,.1) circle(.15) + (-.3,.1) -- (-.3,-.15) (-.15,.1) -- (-.15,-.15) + (-.3,-.08) -- (-.15,-.08);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/radar} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/radar/.pic={% + \path[draw] (-.2,.2) arc (150:300:.25) (-.24,.01) -- (0,.2) -- + (0,0) -- (.2,.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/radio} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/radio/.pic={% + \path[draw] (-.2,.2) -- (-.13,.25) -- (-.07,.2) -- (0,.25) -- + (.07,.2) -- (.13,.25) -- (.2,.2) (0,.25) -- (0,-.05) (0,-.15) circle(.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/radio relay} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/radio relay/.pic={% + \path[draw] (-.2,.25) -- (.2,.25) (0,.25) -- (0,-.05) (0,-.15) circle(.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/radio relay line of sight} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/radio relay line of sight/.pic={% + \path[draw] (0,0) circle(.2); + \path[fill=pgfstrokecolor] (0,0) -- (45:.2) arc(45:-45:.2) -- cycle; + \path[fill=pgfstrokecolor] (0,0) -- (135:.2) arc(135:225:.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/radio teletype} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/radio teletype/.pic={% + \path[draw] (-.2,.25) -- (.2,.25) (-.15,.18) -- (.15,.18) + (0,.25) -- (0,-.25) + ([shift=(30:.1)]0,-.15) arc(30:330:.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/railroad} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/railroad/.pic={% + \ifn@to@pp@below% + \path[pic actions] (M.south west) -- (M.south east) + ([shift={(.08,-0.08)}]M.south west) circle(.08) + ([shift={(.24,-0.08)}]M.south west) circle(.08) + ([shift={(-.08,-0.08)}]M.south east) circle(.08) + ([shift={(-.24,-0.08)}]M.south east) circle(.08); + \else + \path[pic actions] (-.45,.08) -- (.45,.08) + (-.37,0) circle(0.08) + (-.21,0) circle(0.08) + (.21,0) circle(0.08) + (.37,0) circle(0.08); + \fi + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/reconnaissance} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/reconnaissance/.pic={% + \path[draw] (M.north east)--(M.south west);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/recovery unmanned systems} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/recovery unmanned systems/.pic={% + \path[draw] (-.5,.15) to [out=-80,in=180] (0,-.15) to + [out=0,in=260] (.5,.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/rifle} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/rifle/.pic={% + \pic[draw]{natoapp6c/s/weapon=full}; + \pic[draw]{natoapp6c/s/weapon=rifle};}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/rising} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/rising/.pic={ + \path[draw,fill=pgfstrokecolor] (0, 0.2) -- (0, -0.167) + (0.1, -0.2) -- (-0.1, -0.2) -- (0, 0.0);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/riverine} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/riverine/.pic={% + \ifn@to@pp@below% + \path[pic actions] (M.south west) + to [out=-90,in=-90,looseness=.5] (M.south east) -- cycle; + \else% + \path[pic actions] (-.5,.15) to [out=-80,in=180] (0,-.15) to + [out=0,in=260] (.5,.15) -- cycle; + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/rocket launcher} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/rocket launcher/.is choice, + pics/natoapp6c/s/rocket launcher/base/.style={ + code={ + \pic[draw]{natoapp6c/s/weapon=base}; + \pic[draw]{natoapp6c/s/weapon=rifle}; + \pic[yshift=-4,draw]{natoapp6c/s/weapon=rifle}; + }}, + pics/natoapp6c/s/rocket launcher/anti tank/.style={ + code={ + \pic[draw]{natoapp6c/s/rocket launcher=base}; + \pic[draw]{natoapp6c/s/weapon=anti tank}; + }}, + pics/natoapp6c/s/rocket launcher/single/.style={ + code={ + \pic[draw]{natoapp6c/s/rocket launcher=base}; + \pic[draw]{natoapp6c/s/weapon=bottom};}}, + pics/natoapp6c/s/rocket launcher/multiple/.style={ + code={ + \pic[draw]{natoapp6c/s/rocket launcher=single}; + \pic[yshift=-6,draw]{natoapp6c/s/weapon=multi fire};}}, + pics/natoapp6c/s/rocket launcher/single head/.style={ + code={% + \pic[yshift=4,draw]{natoapp6c/s/weapon=rifle};}}, + pics/natoapp6c/s/rocket launcher/multiple head/.style={ + code={ + \pic[yshift=-4,draw]{natoapp6c/s/weapon=rifle}; + \pic[yshift=-6,draw]{natoapp6c/s/weapon=rifle}; + }}, + pics/natoapp6c/s/rocket launcher/.default=single, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/rotary wing} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/rotary wing/.pic={ + \path[pic actions] + (0.44, 0.15) -- (0.44, -0.15) -- (-0.44, 0.15) -- (-0.44, -0.15) -- + cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/runway} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/runway/.pic={% + \path[draw] (-.3,-.15) -- (.3,-.15) (-.2,-.2) -- (.2,.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/sailing boat} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/sailing boat/.pic={% + \path[draw] + (-0.15, -0.2) -- + ( 0.15, -0.2) -- + ( 0.25, -0.025) -- + (-0.25, -0.025) -- cycle + ( 0, -0.025) -- (0, 0.2) + (0.025, 0) -- (0.025, 0.19) -- (0.225, 0) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/satellite} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/satellite/.is choice, + pics/natoapp6c/s/satellite/none/.style={ + code={ + \iftikz@mode@fill + \def\n@to@pp@next{\path[draw,fill=pgfstrokecolor,pic actions]} + \else + \def\n@to@pp@next{\path[pic actions]} + \fi + \n@to@pp@next + ( 0.45, 0.075) rectangle ( 0.15, -0.075) + ( 0.075, 0.075) rectangle (-0.075, -0.075) + (-0.45, 0.075) rectangle (-0.15, -0.075) + ( 0.15, 0) -- (0.075, 0) + (-0.15, 0) -- (-0.075, 0); + }}, + pics/natoapp6c/s/satellite/astronomical/.style={ + code={ + \begingroup\tikz@picmode + \pic{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (0.04, 0.075) rectangle (-0.04, 0.2) + (0.02, -0.075) rectangle (-0.02, -0.2);}}, + pics/natoapp6c/s/satellite/bio/.style={ + code={ + \begingroup\tikz@picmode + \pic[yshift=-1]{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (-0.075, 0.13) circle (0.07) + ($(-0.075, 0.13) + (60:0.07)$) -- + ++(-30:0.22) -- ++(0, -0.025) -- (-0.005, 0.13) -- cycle; + }}, + pics/natoapp6c/s/satellite/communications/.style={ + code={ + \begingroup\tikz@picmode + \pic[yshift=-1]{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (0, 0.075) -- (0, 0.125) + (0, 0.125) arc (270:340:0.25 and 0.1) + (0, 0.125) arc (270:200:0.25 and 0.1); + }}, + pics/natoapp6c/s/satellite/navigation/.style={ + code={ + \begingroup\tikz@picmode + \pic[yshift=-3.75,scale=.9]{natoapp6c/s/satellite=none}; + \endgroup + \pic[scale=.5,yshift=3.5]{natoapp6c/s/navigation}; + }}, + pics/natoapp6c/s/satellite/earth observing/.style={ + code={ + \begingroup\tikz@picmode + \pic[yshift=3.75, scale=0.9]{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (0, 0.065) -- +(315:0.125) + (0, 0.065) -- +(225:0.125) + (0, -0.12) circle (0.08); + }}, + pics/natoapp6c/s/satellite/tether/.style={ + code={ + \begingroup\tikz@picmode + \pic[yshift=-3.75, scale=0.9]{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (0, -0.066) -- +(30:0.3) + (0, -0.066) +(30:0.375) circle(0.075); + }}, + pics/natoapp6c/s/satellite/small/.style={ + code={ + \begingroup\tikz@picmode + \pic[scale=0.6]{natoapp6c/s/satellite=none}; + \endgroup + \path[pic actions] + (0.05, 0.2) -- ( 0, 0.1) -- (-0.05, 0.2) + (0.05, -0.2) -- ( 0, -0.1) -- (-0.05, -0.2) + (-0.4, 0.05) -- (-0.3, 0) -- (-0.4, -0.05) + ( 0.4, 0.05) -- ( 0.3, 0) -- ( 0.4, -0.05); + }}, + pics/natoapp6c/s/satellite/reconnaissance/.style={ + code={ + \pic[yshift=-1,fill=pgfstrokecolor]{natoapp6c/s/satellite=none}; + \path[pic actions] + (-0.075, -0.05) -- +(250:0.1) + (-0.025, -0.05) -- +(260:0.1) + ( 0.025, -0.05) -- +(280:0.1) + ( 0.075, -0.05) -- +(290:0.1); + }}, + pics/natoapp6c/s/satellite/.default=none, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/sea mine} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/sea mine/.is choice, + pics/natoapp6c/s/sea mine/top half/.style={ + code={\path[draw,join=bevel,pic actions] + (.2,0) arc(0:35:.2 and .175) -- + (42:.34 and .3) -- (48:.34 and .3) -- + % ($(45:.1) + (40:.2)$) -- ($(45:.1)+(50:.2)$) -- + (55:.2 and .175) arc(50:75:.2 and .175) -- + (80:.26 and .23) -- (100:.26 and .23) -- + (105:.2 and .175) arc(100:125:.2 and .175) -- + (132:.34 and .3) -- (138:.34 and .3) -- + %($(135:.1)+(130:.2)$) -- ($(135:.1)+(140:.2)$) -- + (145:.2 and .175) arc(145:180:.2 and .175); + }}, + pics/natoapp6c/s/sea mine/bottom half/.style={ + code={ + \path[pic actions] (.2,0) arc(0:-180:.2);}}, + pics/natoapp6c/s/sea mine/full/.style={ + code={ + \pic[fill=pgfstrokecolor]{natoapp6c/s/sea mine/top half}; + \pic[fill=pgfstrokecolor]{natoapp6c/s/sea mine/bottom half};}}, + pics/natoapp6c/s/sea mine/neutralised/.style={ + code={ + \begin{scope}[even odd rule] + \clip [rotate=42] (-.4,-.015) rectangle (.4,.015) [reverseclip]; + \clip [rotate=-42] (-.4,-.015) rectangle (.4,.015) [reverseclip]; + \pic {natoapp6c/s/sea mine=full}; + \end{scope} + }}, + pics/natoapp6c/s/sea mine/neutralized/.style=natoapp6c/s/sea mine/neutralised, + pics/natoapp6c/s/sea mine/.default=full, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/seabed installation} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/seabed installation/.pic={% + \path[pic actions] + (-0.25, -0.2) -- + ( 0.25, -0.2) -- + ( 0.25, -0.075) -- + ( 0.05, -0.075) -- + ( 0.05, 0.025) -- + (-0.125, 0.025) -- + (-0.125, 0.2) -- + (-0.25, 0.2) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/search} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/search/.pic={% + \path[draw] (-.3,-.2)--(0,-.4)--(.3,-.2) (0,.4)--(0,-.4);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/searching} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/searching/.pic={% + \path[pic actions] + (-0.4, 0) + arc (180:0:0.1) + arc (180:360:0.1) + arc (180:0:0.1) + arc (180:270:0.1) -- +(0.1, 0) + (0.3, -0.05) -- (0.4, -0.1) -- (0.3, -0.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/semi trailer truck} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/semi trailer truck/.pic={ + \pic[scale=.75,xshift=-2,draw]{natoapp6c/s/utility vehicle}; + \path[pic actions] (0.21, -0.025) -- (0.35, -0.025) + (0.35, 0.05) -- (0.35, -0.1);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/sensor} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/sensor/.pic={% + \path[fill=pgfstrokecolor] (-.3,0) arc (270:360:.3) arc (180:270:.3) arc + (90:180:.3) arc (0:90:.3);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/ship} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/ship/.pic={% + \path[pic actions] + (-0.2, -0.2) -- + ( 0.2, -0.2) -- + ( 0.35, 0.05) -- + ( 0.15, 0.05) -- + ( 0.15, 0.2) -- + (-0.15, 0.2) -- + (-0.15, 0.05) -- + (-0.35, 0.05) -- + cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/signal} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/signal/.pic={% + \path[draw] (M.north west) -- (0,-.1) -- (0,.1) -- (M.south east);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/signals intelligence} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/signals intelligence/.pic={% + \path[draw] (-.2,.2) -- (-.13,.25) -- (-.07,.2) -- (0,.25) -- + (.07,.2) -- (.13,.25) -- (.2,.2) (0,.25) -- (0,-.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/ski} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/ski/.pic={ + \path[draw] (-.15,-.15) -- (.1,.2) (.15,-.15) -- (-.1,.2) + (-.1,-.2) -- (-.2,-.1) + (.1,-.2) -- (.2,-.1); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/sled} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/sled/.pic={ + \ifn@to@pp@below% + \draw ([shift={(-.15,.15)}]M.south west) to[in=180, out=-90] + ++(.15,-.15) -- (M.south east) to[in=-90, out=0] + ([shift={(.15,.15)}]M.south east); + \else% + \draw ([shift={(.3,.1)}]M.west) to[in=180, out=-90] + ([shift={(.5,-.1)}]M.west) -- + ([shift={(-.5,-.1)}]M.east) to[in=-90, out=0] + ([shift={(-.3,.1)}]M.east); + \fi + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/small squashed text} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/small squashed text/.style={ + code={\n@to@pp@text@smallsquashed{#1};}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/small text} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/small text/.style={code={\n@to@pp@text@small{#1};}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/sniper} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/sniper/.pic={% + \path[draw] (-.2,.2)--(-.05,.2) (.05,.2)--(.2,.2) (0,.15)--(0,-.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/space station} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/space station/.pic={ + \path[join=bevel,pic actions] + (-80:.15 and .06) -- (0.025, 0.175) arc(0:180:0.025) -- (-100:.15 and .06) + ($(80:.25 and 0.1)+(0,-.0125)$) arc(80:-260:.25 and .1) -- + (-260:.15 and .06) arc (-260:80:.15 and .06) -- cycle + (-82:.25 and .1) -- (0.025, -0.175) arc(360:180:0.025) -- (-98:.25 and .1); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/squashed text} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/squashed text/.style={code={\n@to@pp@text@squashed{#1};}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/submarine} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/submarine/.pic={ + \path[fill=pgfstrokecolor,pic actions] + (0.4, 0) -- + (0.25, 0.15) -- + (-0.25, 0.15) -- + (-0.4, 0) -- + (-0.25, -0.15) -- + (0.25, -0.15) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/submersible} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/submersible/.pic={ + \path[pic actions] + ($(0, -0.05) + (106.6:0.35 and 0.15)$) + arc (106.6:433.4:0.35 and 0.15) |- (0, 0.2) -| cycle; + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/supply} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/supply/.pic={ + \path[pic actions] + ($(M.east)-(0,.25)$)--($(M.west)-(0,.25)$);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/surface combatant} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/surface combatant/.pic={ + \pic {natoapp6c/s/warfare vessel}; + \path[draw,fill=pgfstrokecolor] + (0.12, 0.05) -- + (0.12, 0.14) -- + (0.06, 0.14) -- + (0.06, 0.2) -- + (0.24, 0.2) -- + (0.24, 0.272) -- + (0.06, 0.272) -- + (0.06, 0.35) -- + (-0.06, 0.35) -- + (-0.06, 0.272) -- + (-0.24, 0.272) -- + (-0.24, 0.2) -- + (-0.06, 0.2) -- + (-0.06, 0.14) -- + (-0.12, 0.14) -- + (-0.12, 0.05) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/survey} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/survey/.pic={ + \path[draw,fill=pgfstrokecolor,pic actions] + (0, -0.1) -- (0, 0.195) -- (0.25, 0.0475) -- cycle; + \path[pic actions] (0.1, -0.2) -- (0, -0.1) -- (-0.1, -0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/tactical satellite} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/tactical satellite/.pic={ + \path[fill=pgfstrokecolor,draw] + (-.3,-.2) rectangle(-.15,.2) + (.15,-.2) rectangle( .3,.2) + (-.075,-.15) rectangle (.075,.15) + (-.15,0) -- (.15,0) + (0,-.15) -- (0,-.3); + \path[draw] (-.2,-.35) to [out=40,in=140,looseness=1] (.2,-.35);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/tank} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/tank/.pic={% + \pic[draw]{natoapp6c/s/vehicle}; + \path[pic actions] ( 0.35, 0.2) -- (-0.35, 0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/text} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/text/.style={code={% + \n@to@pp@dbg{3}{Text: `#1'}% + \n@to@pp@text@normal{#1};}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/topographic} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/topographic/.pic={ + \path[draw] (0,.05) -- (0,.2) + (0,.05) -- (-.1,-.2) + (0,.05) -- (.1,-.2) + (-30:.15) arc[radius=.15,start angle=-30,end angle=-150];}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/torpedo} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/torpedo/.pic={ + \path[draw,fill=pgfstrokecolor,pic actions] + (-0.35, 0) -- + (-0.3, 0.075) -- + ( 0.25, 0.075) -- + ( 0.35, -0.075) -- + ( 0.35, 0.075) -- + ( 0.25, -0.075) -- + (-0.3, -0.075) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/towed} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/towed/.pic={ + \ifn@to@pp@below% + \path[pic actions] (M.south east) -- (M.south west) + ([shift={(.08,0)}]M.south east) circle(.08) + ([shift={(-.08,0)}]M.south west) circle(.08); + \else% + \path[draw] (-.32,0) -- (.32,0) (-.4,0) circle(.08) (.4,0) circle(.08);% + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/tracked} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/tracked/.pic={ + \ifn@to@pp@below% + \path[pic actions] + ([shift={(.08,-.16)}]M.south west) + arc [radius=.08,start angle=-90,end angle=-270] + -- ([shift={(-.08,0)}]M.south east) + arc [radius=.08,start angle=90,end angle=-90] + -- cycle; + \else% + \path[pic actions] + (-.3,-.1) arc [radius=.1,start angle=-90,end angle=-270] + -- (.3,.1) arc [radius=.1,start angle=90,end angle=-90] + -- cycle; + \fi}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/train locomotive} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/train locomotive/.pic={ + \path[pic actions] + (.35,-.3)--(-.35,-.3)--(-.35,.3)--(0,.3)--(0,0)--(0.35, 0)--cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/transportation} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/transportation/.pic={ + \path[pic actions] (0,0) circle(.2) + (180:.2) -- (0:.2) + (225:.2) -- (45:.2) + (270:.2) -- (90:.2) + (315:.2) -- (135:.2) ;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/unexploded ordnance} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/unexploded ordnance/.pic={ + \begin{scope}[transparency group=knockout] + \path[draw,fill=pgfstrokecolor,pic actions] (0,0) circle(.2); + \pic[opacity=0]{natoapp6c/s/small squashed text=UXO}; + \end{scope}}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/unmanned} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/unmanned/.pic={ + \path[pic actions] + (0,-0.1) + --(0.45,0.05) + --(0.45,0.1) + --(0,0.025) + --(-0.45,0.1) + --(-0.45,0.05) + --cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/utility vehicle} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/utility vehicle/.pic={% + \pic[draw]{natoapp6c/s/vehicle}; + \path[pic actions] + (0.35, 0.3) to[in=-90, out=-90, looseness=1] (-0.35, 0.3); }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/vehicle} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/vehicle/.pic={ + \path[pic actions] + (-0.35, 0.2) -- (-0.35, -0.2) -- ( 0.35, -0.2) -- ( 0.35, 0.2) + (-0.35, -0.2) -- (-0.35, -0.3) + (0.35, -0.2) -- ( 0.35, -0.3) + (-0.35, 0.2) -- (-0.35, 0.3) + (0.35, 0.2) -- ( 0.35, 0.3);} +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/video imagery} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/video imagery/.pic={ + \path[pic actions] + (-0.4, 0.2) -- (-0.4, -0.2) -- (0.05, -0.2) -- (0.2, 0.2) -- cycle + (0.075, -0.15) -- (0.4, -0.15) + (0.16, 0.1) -- (0.4, 0.1); + \path[draw,fill=pgfstrokecolor,pic actions](0.38,-.2) rectangle (0.42,.15);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/warfare vessel} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/warfare vessel/.pic={ + \path[draw,fill=pgfstrokecolor] (0, -0.2) -- (0.3, 0.05) -- (-0.3, 0.05) -- cycle;}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/water} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/water/.pic={ + \path[pic actions] + (-0.3, 0.05) -- (0, 0.05) to[in=90, out=0] (0.3, -0.2) + (0, 0.05) -- (0, 0.2) + (0.075, 0.2) -- (-0.075, 0.2);}, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/wheeled} +% \begin{macrocode} +\tikzset{% + pics/natoapp6c/s/wheeled/.is choice, + pics/natoapp6c/s/wheeled/and tracked/.style={ + code={ + \ifn@to@pp@below% + \path[pic actions] + ([shift={(.4,-.16)}]M.south west) + arc [radius=.08,start angle=-90,end angle=-270] + -- ([shift={(-.08,0)}]M.south east) + arc [radius=.08,start angle=90,end angle=-90] + -- cycle + ([shift={(.08,-.08)}]M.south west) circle(.08); + \else% + \path[pic actions] + (-.1,-.08) arc [radius=.08,start angle=-90,end angle=-270] + -- (.32,.08) arc [radius=.08,start angle=90,end angle=-90] + -- cycle + (-.4,0) circle(0.08); + \fi}}, + pics/natoapp6c/s/wheeled/limited/.style={ + code={ + \ifn@to@pp@below% + \path[pic actions] (M.south west) -- (M.south east) + ([shift={(.08,-.08)}]M.south west) circle(.08) + ([shift={(-.08,-.08)}]M.south east) circle(.08); + \else + \path[pic actions] (-.4,.08) -- (.4,.08) + (-.32,0) circle(0.08) (.32,0) circle(0.08); + \fi}}, + pics/natoapp6c/s/wheeled/cross country/.style={ + code={\pic{natoapp6c/s/wheeled=limited}; + \ifn@to@pp@below% + \path[pic actions] ([shift={(0,-.08)}]M.south) circle(.08); + \else + \path[pic actions] (0,0) circle(0.08); + \fi}}, + pics/natoapp6c/s/wheeled/semi/.style={ + code={\pic{natoapp6c/s/wheeled=limited}; + \ifn@to@pp@below% + \path[pic actions] ([shift={(.24,-.08)}]M.south west) circle(.08); + \else + \path[pic actions] (-.16,0) circle(0.08); + \fi}}, + pics/natoapp6c/s/wheeled/.default=limited, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \subsubsection{Some extra MIL-STD symbols} +% +% Extra NATO App6(c) symbol (from MIL-STD) +% +% \iffalse +% .................................................................... +% \fi +% \begin{NatoAppSymbol}{natoapp6c/s/prison} +% \begin{macrocode} +\tikzset{% + natoapp6c/s/prison/.pic={ + \path[pic actions] (-.3,-.3)rectangle(.3,.3) + (-.23,-.30)--(-.23, .3) + ( .23,-.30)--( .23, .3) + (-.08,-.30)--(-.08,-.2) + (-.08,-.15) circle (.05) + (-.08,-.1) --(-.08, .3) + ( .08,-.30)--( .08,-.2) + ( .08,-.15) circle (.05) + ( .08,-.1) --( .08, .3) + (0,.15) circle(.07 and .1); + }, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/text.dtx b/macros/latex/contrib/wargame/source/natoapp6c/text.dtx new file mode 100644 index 0000000000..5a441dc482 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/text.dtx @@ -0,0 +1,57 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +%\subsubsection{Text on symbols} +% +% \begin{TikzKey}{/tikz/natoapp6c/normal text, +% /tikz/natoapp6c/squashed text, +% /tikz/natoapp6c/small text, +% /tikz/natoapp6c/small squashed text} +% +% NATO App6 does not specify any particular font for text symbols +% (main, modifiers, or amplifiers) but here we choose to use \TeX{} +% Gyro Heros (a Gothic font, i.e., Helvetica-like). +% +% \begin{macrocode} +\newcommand\n@to@ppfont[2][b]{% + \fontencoding{T1}\fontfamily{qhv}\fontseries{#1}\fontsize{#2}{0}\selectfont} +\tikzset{% + natoapp6c/text/.style={% + shape=rectangle,% + draw=none,% + fill=none,% + transform shape,% + anchor=center}, + natoapp6c/normal text/.style={font=\n@to@ppfont{12}}, + natoapp6c/squashed text/.style={font=\n@to@ppfont[bc]{12}}, + natoapp6c/small text/.style={font=\n@to@ppfont{10}}, + natoapp6c/squashed small text/.style={font=\n@to@ppfont[bc]{10}}, +} +% \end{macrocode} +% \end{TikzKey} +% +% \begin{Macro}{\n@to@pp@text@normal, +% \n@to@pp@text@squashed, +% \n@to@pp@text@small, +% \n@to@pp@text@smallsquashed} +% +% These macros are short-hands for making a node at $(0,0)$ in the +% local scope. +% +% \begin{macrocode} +\newcommand\n@to@pp@text@normal[2][] {% + \node[natoapp6c/text,natoapp6c/normal text,#1]{#2}} +\newcommand\n@to@pp@text@squashed[2][]{% + \node[natoapp6c/text,natoapp6c/squashed text,#1]{#2}} +\newcommand\n@to@pp@text@small[2][] {% + \node[natoapp6c/text,natoapp6c/small text,#1]{#2}} +\newcommand\n@to@pp@text@smallsquashed[2][]{% + \node[natoapp6c/text,natoapp6c/squashed small text,#1]{#2}} +% \end{macrocode} +% \end{Macro} +% +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/util.dtx b/macros/latex/contrib/wargame/source/natoapp6c/util.dtx new file mode 100644 index 0000000000..18c7689878 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/util.dtx @@ -0,0 +1,60 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{Utility macros used in the symbols} +% +% Here, we define the main symbols used when making markers. Since +% some of these symbols share code, we will create some regular \TeX{} +% macros to hold the path definitions. This is by far the simplest +% way of storing just the path specifications. +% +% \begin{Macro}{\testpath} +% \begin{macrocode} +\def\testpath#1{\csname n@toapp@#1\endcsname} +% \end{macrocode} +% \end{Macro} +% +% Corps support for \spec{friendly}, \spec{hostile}, +% \spec{neutral}, and \spec{unknown} factions. +% +% \begin{Macro}{\n@toapp@corps@sup@friendly, +% \n@toapp@corps@sup@hostile, +% \n@toapp@corps@sup@neutral, +% \n@toapp@corps@sup@unknown} +% \begin{macrocode} +\def\n@toapp@corps@sup@friendly{(.75,.5)--(.5,0)--(.75,-.5)} +% (M.north east)--(M.east-.25,0)--(M.south east)} +\def\n@toapp@corps@sup@hostile{(.95,.5)--(.45,0)--(.95,-.5)} +\def\n@toapp@corps@sup@neutral{(.5,.5)--(.35,0)--(.5,-.5)} +\def\n@toapp@corps@sup@unknown{(.75,.5)--(.5,0)--(.75,-.5)} +% \end{macrocode} +% \end{Macro} +% +% Corps support, base +% +% \begin{Macro}{\n@toapp@corps@support} +% \begin{macrocode} +\def\n@toapp@corps@support#1{ + \ifx\n@to@pp@friendly#1\n@toapp@corps@sup@friendly% + \else\ifx\n@to@pp@hostile#1\n@toapp@corps@sup@hostile% + \else\ifx\n@to@pp@neutral#1\n@toapp@corps@sup@neutral% + \else\ifx\n@to@pp@unknown#1\n@toapp@corps@sup@unknown% + \fi\fi\fi\fi} +% \end{macrocode} +% \end{Macro} +% +% \begin{NatoAppSymbol}{natoapp6c/s/TBD} +% Special placeholder for symbols To Be Done. +% +% \begin{macrocode} +\tikzset{ + natoapp6c/s/TBD/.pic={\n@to@pp@text@normal{\color{magenta}TBD};} +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi diff --git a/macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx b/macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx new file mode 100644 index 0000000000..3138da9e75 --- /dev/null +++ b/macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx @@ -0,0 +1,88 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*natoapp6c> +% \fi +% \subsubsection{Symbols used when defining weaponry} +% +% +% \begin{NatoAppSymbol}{natoapp6c/s/weapon} +% \begin{macrocode} +\tikzset{ + pics/natoapp6c/s/weapon/.is choice, + pics/natoapp6c/s/weapon/base/.style={ + code={\path [pic actions] (0,-0.2)--(0,.2);}}, + pics/natoapp6c/s/weapon/top/.style={ + code={\path [pic actions] (0,.2)--(0,.35);}}, + pics/natoapp6c/s/weapon/bottom/.style={ + code={\path [pic actions] (0,.-.35)--(0,-.2);}}, + pics/natoapp6c/s/weapon/rifle/.style={ + code={\path [pic actions] (0.2, 0.1)--(0, 0.35)--(-0.2,0.1);}}, + pics/natoapp6c/s/weapon/machine gun/.style={ + code={\path [pic actions] (0.2, -0.35)--(-0.2, -0.35);}}, + pics/natoapp6c/s/weapon/grenade launcher/.style={ + code={\path [pic actions] (0,0) circle (0.1);}}, + pics/natoapp6c/s/weapon/missile launcher/.style={ + code={% + \path [pic actions] (0.2, 0.15) + to[out=90,in=90,looseness=1.75] (-0.2, 0.15);}}, + pics/natoapp6c/s/weapon/non lethal/.style={ + code={\path [pic actions] (-.2,.35) -- (.2,.35);}}, + pics/natoapp6c/s/weapon/multi fire/.style={ + code={\path[pic actions] (.2,-.2)--(.2, .2) (-.2,-.2)--(-.2,0.2);}}, + pics/natoapp6c/s/weapon/air defence/.style={ + code={% + \path[pic actions] (0.2, -0.4) + to[out=90,in=90,looseness=1.7] (-0.2, -0.4) -- cycle;}}, + pics/natoapp6c/s/weapon/anti tank/.style={ + code={\path[pic actions] (0.2, -0.4)--(0,-0.2)--(-0.2,-0.4);}}, + pics/natoapp6c/s/weapon/full/.style={ + code={% + \pic[draw]{natoapp6c/s/weapon=base}; + \pic[draw]{natoapp6c/s/weapon=top}; + \pic[draw]{natoapp6c/s/weapon=bottom};}}, + pics/natoapp6c/s/weapon/.default=full +} +% \end{macrocode} +% \end{NatoAppSymbol} +% +% +% \begin{NatoAppSymbol}{natoapp6c/s/type} +% +% (Weight) class of weapons: light, medium, heavy +% +% \begin{macrocode} +\tikzset{ + pics/natoapp6c/s/type/.is choice, + pics/natoapp6c/s/type/light/.style={ + code={\path [fill=pgfstrokecolor,pic actions] (-0.2, -0.12) rectangle (.2,-.08);}}, + pics/natoapp6c/s/type/medium/.style={ + code={ + \path [fill=pgfstrokecolor,pic actions] + (-0.2, -0.12) rectangle (.2,-.08) + (-0.2, -0.22) rectangle (.2,-.18);}}, + pics/natoapp6c/s/type/heavy/.style={ + code={ + \path [fill=pgfstrokecolor,pic actions] + (-0.2, -0.12) rectangle (.2,-.08) + (-0.2, -0.22) rectangle (.2,-.18) + (-0.2, -0.32) rectangle (.2,-.28);}}, + pics/natoapp6c/s/type/vlight/.style={ + code={\path [fill=pgfstrokecolor,pic actions] + (-.025,-0.2) rectangle (.025,.2);}}, + pics/natoapp6c/s/type/vmedium/.style={ + code={\path [fill=pgfstrokecolor,pic actions] + (-.075,-0.2) rectangle (-.025,.2) + ( .025, -0.2) rectangle (.075,.2);}}, + pics/natoapp6c/s/type/vheavy/.style={ + code={\path [fill=pgfstrokecolor,pic actions] + (-.125,-0.2) rectangle (-.075,.2) + (-.025,-0.2) rectangle ( .025,.2) + ( .075,-0.2) rectangle ( .125,.2);}}, + pics/natoapp6c/s/type/.default=light, +} +% \end{macrocode} +% \end{NatoAppSymbol} +% \iffalse +% </natoapp6c> +% -------------------------------------------------------------------- +% \fi |