Trinkwasseraufbereitungsanlage
Anhang E.2 · aus Grundzeichen zusammengesetzt · Hauptfassung
technisch: mit Abweichung · 18.08.2026 · rvfachlich: noch nicht geprüft
„Technisch: mit Abweichung" heißt: das Bild ist gegen die Vorlage nachgemessen worden und weicht an einer benannten Stelle von ihr ab. Die Abweichung ist geprüft und benannt, sie ist also kein offener Fehler, sondern eine bekannte Ausnahme. „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. Was genau abweicht, steht darunter im Wortlaut der Prüfung zum Aufklappen.
Wortlaut der Abweichung aus dem technischen Review (Fachsprache)
Körperhülle per matchFingerprint gegen die Referenz gegated, für `trailer` und `upright-rectangle` erstmals gegen Körperformen ohne Kapitel-1-Abschnitt. Der Anhängerrumpf ist dabei gegen zwei Belegdateien gegated (E.2.22 und 5.1.2.1), das Hochkantrechteck gegen E.2.26 — als einzige der 31 E.2-Dateien führt es einen ring-Kennwert und war damit auch vor dem Extraktorausbau gegated. Was kein Gate sieht: die Deichsel (role bodyExtra) erreicht matchFingerprint nicht, das nur role: body vergleicht; für sie steht eine eigene Rasterprüfung im Band x 1,5…3,5 / y 14…16 mm. Für die Beschriftungszonen prüft die Rasterprüfung in fonts.test.ts die Tinte gegen die deklarierte boxMm. Dazu die globalen Mehrgrößen-, viewBox-, Metadaten- und Kontrast-Gates. Alle fünf Referenzdateien sind einzeln vermessen; daraus stammen die vier Befunde und die eine deklarierte Abweichung. Abweichung der Umsetzung: Der THW-Lauf der Referenz endet rechts bei 26,0269 mm bei einer Körperkante von 29,0001 mm; da die Referenzschrift ihren Anker um 0,0269 mm überragt (an E.2.1 gemessen: Tinte 29,0269 bei Anker 29,0003), steht ihr Anker auf 26,0. Der Katalog setzt ihn auf 27,0, weil LABEL_SIDE_MARGIN_MM = 2 gegen die rechte Körperkante rechnet — 1,0 mm Unterschied, im Paarbild sichtbar. Für einen Mechanismus fehlt die Grundlage: n = 1 im gesamten Bestand (diese Körperform kommt in genau einer der 661 Referenzdateien vor), und zwei gleich gute Lesarten stehen nebeneinander — maxX − 3,0 oder rechte Kante der Farbfläche (28,0000) − 2,0. Beide erzeugen dasselbe Bild, belegt ist das Bild und nicht die Kante. Die Marge selbst ist an 30 anderen Zeichen des Anhangs belegt (Tinte 19,9870…29,0269 bei Körperkante 31,0003 mm) und wird für einen Einzelfall nicht aufgebrochen. Dieselbe Einordnung wie bei E.1.17, das seine 2,0009 mm waagerecht aus demselben Grund trägt.
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: Hochkantrechteck. Organisation: Technisches Hilfswerk. Kürzel: TW AA. Trägerkürzel: THW.
- Kennung
recipe.E.2.26- Quelle
- Anhang E.2 · 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": "upright-rectangle",
"organization": "thw",
"labels": {
"center": "TW AA",
"bottomRight": "THW"
}
}Manifestschlüssel dieser Zeile: bbk-babz-2025:E.2.26 · 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.2.26"const spec: SymbolSpec = { "kind": "upright-rectangle", "organization": "thw", "labels": { "center": "TW AA", "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.2.26"const spec: SymbolSpec = { "kind": "upright-rectangle", "organization": "thw", "labels": { "center": "TW AA", "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.2.26"const spec: SymbolSpec = { "kind": "upright-rectangle", "organization": "thw", "labels": { "center": "TW AA", "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.2.26"const spec: SymbolSpec = { "kind": "upright-rectangle", "organization": "thw", "labels": { "center": "TW AA", "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.2.26", composeFromCatalog(spec), { size: 64 });});Zulässige Kombinationen
Diese Spec setzt 3 Felder. Darunter steht, welche Werte gesetzt sind und welche Regeln aus validateSpec() an diesen Feldern hängen — 46 an der Zahl.
| Feld | Wert | Regeln an diesem Feld |
|---|---|---|
Grundzeichenartkind | Hochkantrechteck upright-rectangle | keine Regel allein an diesem Feld |
Organisationorganization | Technisches Hilfswerk thw |
|
Beschriftungenlabels | TW AA 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.