Trupp Schwerer Transport
Anhang E.1 · aus Grundzeichen zusammengesetzt · Hauptfassung
technisch geprüft · 17.08.2026 · rvfachlich: noch nicht geprüft
„Technisch geprüft" heißt: das Bild stimmt mit der Vorlage überein, nachgemessen und mit Tests abgesichert. „Fachlich noch nicht geprüft" heißt: niemand aus der Fachwelt hat bestätigt, dass dies das richtige Zeichen für diese Bedeutung ist. Beide Angaben stehen an jedem Zeichen dieser Website; die rechte ist die, die man leicht übersieht. Der Wortlaut der Prüfung steht darunter zum Aufklappen.
Wortlaut aus dem technischen Review (Fachsprache)
Körperhülle per matchFingerprint gegen die Referenz gegated — für E.1.37 erstmals gegen den Gebäudekörper und nicht gegen die ring-Form der Taktischen Formation. Was das Gate dabei nicht sieht, bleibt unverändert: `pickShape` greift eine Form je Zeichnung, die verkürzten Füllflächen und die Balkenkopfzone von E.1.31 erreicht es gar nicht. Für die Beschriftungszonen prüft die Rasterprüfung in fonts.test.ts die tatsächliche Tinte aller 37 Kürzelsätze aus E-a, E-b und E-c gegen die deklarierte boxMm. Neu ist ein Kernschritt in compose.ts: die mittige Grundlinie rechnet seit E.1.37 gegen die Körperunterkante (maxY − 8) statt gegen die Oberkante (minY + 12) — an `formation` dieselbe Zahl, am Gebäudekörper 18,0 statt 15,0 mm. Kein Snapshot der 28 Bestandszeichen hat sich dadurch geändert. Dazu die globalen Mehrgrößen-, viewBox-, Metadaten- und Kontrast-Gates; ein neuer Kontrastvertrag entsteht nicht, weisser Text auf blau steht seit E-a als eigene 4,5:1-Anforderung im A11y-Gate. Die neun Referenzdateien sind einzeln vermessen; daraus stammen die drei Befunde und die eine deklarierte Abweichung. Befund an der Referenzdatei: Blaue Füllfläche der Referenz unten um 2,5 mm verkürzt (22,5 statt 25,0 mm), die Beschriftung nach oben verschoben (mittige Grundlinie 14,5, THW-Grundlinie 21,5 mm); Rahmen und Kopfzone stehen normal. Im Grundsatz das Muster von E.1.6/E.1.14 aus E-a, mit demselben zusätzlichen Befund wie E.1.27 und E.1.28: der Abstand zwischen mittiger und THW-Grundlinie ist 7,0 mm, wo 30 der 37 E.1-Dateien 6,0 mm führen — und die Verschiebung der Fläche erklärt ihn nicht (die Fläche fehlt unten um 2,5 mm, die THW-Zeile wandert um 2,5 mm mit, der mittige Lauf um 3,5 mm). Diese Klasse ist mit E.1.29 dreifach belegt. Der Katalog baut das Zeichen wie die 22 normgerechten E.1-Dateien.
Zeichen verwenden
So sieht es aus
Dasselbe Zeichen in sechs Größen — von 16 bis 256 Pixel breit —, jeweils auf hellem und auf dunklem Untergrund. Die drei Schaltflächen wechseln die Farbfassung: „Referenz“ ist die Palette der Vorlage, „Kontraststark hell“ hebt die Farben für schwierige Bildschirme an, „Druck monochrom“ ist die Fassung für Schwarz-Weiß-Druck und Kopien.
Bedeutung und Herkunft
Grundzeichen: Taktische Formation. Organisation: Technisches Hilfswerk. Stärke: Trupp. Kürzel: TS. Trägerkürzel: THW.
- Kennung
recipe.E.1.29- Quelle
- Anhang E.1 · BBK / BABZ: Taktische Zeichen im Bevölkerungsschutz — Empfehlungen zur Einführung einer FwDV 102/DV 102 · alle Quellen mit Prüfstand
- Zeichenprofil
bund— die Maßregeln, nach denen dieses Zeichen gezeichnet ist
Andere Bezeichnungen und frühere Kennungen führt der Katalog für dieses Zeichen noch nicht.
Für Entwicklerinnen und Entwickler
Ab hier stehen die Begriffe der Bibliothek: SymbolSpec, compose(), renderSvg(). Wer das Zeichen nur benutzen will, ist mit den Dateien oben fertig.
Bauanleitung als JSON
{
"kind": "formation",
"organization": "thw",
"strength": "trupp",
"labels": {
"center": "TS",
"bottomRight": "THW"
}
}Manifestschlüssel dieser Zeile: bbk-babz-2025:E.1.29 · dieselbe Spec im Baukasten öffnen
Codebeispiele
Vier Kanäle, ein Zeichen. Die Beispiele entstehen aus derselben Vorlage wie im Quickstart und im Baukasten (src/lib/code-samples.ts), damit sie nicht hinter den Paket-APIs zurückbleiben.
import { composeFromCatalog } from '@einsatzzeichen/catalog';import { renderSvg } from '@einsatzzeichen/core';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.29"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "strength": "trupp", "labels": { "center": "TS", "bottomRight": "THW" }};
const drawing = composeFromCatalog(spec);const svg = renderSvg(drawing, { size: 64 });import { Einsatzzeichen } from '@einsatzzeichen/react';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.29"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "strength": "trupp", "labels": { "center": "TS", "bottomRight": "THW" }};
const drawing = composeFromCatalog(spec);
export function Symbol() { return <Einsatzzeichen drawing={drawing} size={64} />;}import { DEFAULT_TAG_NAME, defineEinsatzzeichenElement, type EinsatzzeichenElement,} from '@einsatzzeichen/web-component';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.29"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "strength": "trupp", "labels": { "center": "TS", "bottomRight": "THW" }};
// Registriert <einsatzzeichen-symbol> einmalig (ruft customElements.define auf).defineEinsatzzeichenElement();
const element = document.createElement(DEFAULT_TAG_NAME) as EinsatzzeichenElement;element.drawing = composeFromCatalog(spec);document.body.append(element);import maplibregl from 'maplibre-gl';import { addSymbolImage } from '@einsatzzeichen/maplibre';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.29"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "strength": "trupp", "labels": { "center": "TS", "bottomRight": "THW" }};
const map = new maplibregl.Map({ container: 'map', style: 'https://example.org/style.json' });
map.on('load', () => { // addSymbolImage rastert die Zeichnung und ruft intern map.addImage(...) auf. addSymbolImage(map, "recipe.E.1.29", composeFromCatalog(spec), { size: 64 });});Zulässige Kombinationen
Diese Spec setzt 4 Felder. Darunter steht, welche Werte gesetzt sind und welche Regeln aus validateSpec() an diesen Feldern hängen — 48 an der Zahl.
| Feld | Wert | Regeln an diesem Feld |
|---|---|---|
Grundzeichenartkind | Taktische Formation formation | keine Regel allein an diesem Feld |
Organisationorganization | Technisches Hilfswerk thw |
|
Stärkestrength | Trupp trupp |
|
Beschriftungenlabels | TS centerTHW bottomRight |
|
Die Zuordnung ist von Hand gepflegt und steht an der Erklärung jeder Regel (src/lib/rule-explanations.ts): eingetragen ist das Feld, das man ändern müsste, damit die Regel nicht mehr greift. validateSpec() selbst führt keine Feldzuordnung — deshalb bleibt diese Liste nicht die vollständige Prüfung. Regeln, die zwei Achsen gegeneinander stellen, erscheinen nur unter einer von beiden, und eine Regel ohne einzelnes Feld — wie der Streit um die Kopfzone — steht in keiner Zeile dieser Tabelle. Wer wissen will, ob eine geänderte Kombination trägt, ändert sie im Baukasten: dort läuft dieselbe Komposition wie im Katalog, und jede abgelehnte Kombination kommt mit ihrer Regel und deren Erklärung zurück.
Nachweise
Diese Testarten decken die Zeile dieses Zeichens in der Prüfliste ab:
- Körper-Fingerprint gegen die Referenzdatei (matchFingerprint)
body-fingerprint - SVG-Snapshot: die Ausgabe von renderSvg bleibt bytegleich
svg-snapshot
Gemessen und gerendert wird im Profil bund; die Profile und ihre Prüfstände stehen auf der Grundlage-Seite, der gesamte Prüfstand unter Stand der Prüfung.
Texte und Code dieser Website sind mit KI-Unterstützung entstanden und werden von Menschen geprüft; der fachliche Reviewstatus steht an jedem Zeichen.