polytypo 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/polytypo/data/README.md +15 -0
- data/lib/polytypo/data/VERSION +1 -1
- data/lib/polytypo/data/fixtures/cs.json +1 -1
- data/lib/polytypo/data/fixtures/de-CH.json +1 -1
- data/lib/polytypo/data/fixtures/de-DE.json +1 -1
- data/lib/polytypo/data/fixtures/el.json +1 -1
- data/lib/polytypo/data/fixtures/en-GB.json +50 -1
- data/lib/polytypo/data/fixtures/en-US.json +41 -1
- data/lib/polytypo/data/fixtures/es.json +1 -1
- data/lib/polytypo/data/fixtures/fi.json +1 -1
- data/lib/polytypo/data/fixtures/fr-CA.json +1 -1
- data/lib/polytypo/data/fixtures/fr.json +9 -1
- data/lib/polytypo/data/fixtures/it.json +1 -1
- data/lib/polytypo/data/fixtures/locale-resolution.json +1 -1
- data/lib/polytypo/data/fixtures/nl.json +1 -1
- data/lib/polytypo/data/fixtures/pl.json +1 -1
- data/lib/polytypo/data/fixtures/pt-BR.json +1 -1
- data/lib/polytypo/data/fixtures/pt-PT.json +1 -1
- data/lib/polytypo/data/fixtures/ru.json +1 -1
- data/lib/polytypo/data/fixtures/sv.json +1 -1
- data/lib/polytypo/data/fixtures/uk.json +1 -1
- data/lib/polytypo/data/locales/cs.json +37 -56
- data/lib/polytypo/data/locales/de-CH.json +34 -43
- data/lib/polytypo/data/locales/de-DE.json +32 -47
- data/lib/polytypo/data/locales/el.json +1 -51
- data/lib/polytypo/data/locales/en-GB.json +4 -56
- data/lib/polytypo/data/locales/en-US.json +4 -68
- data/lib/polytypo/data/locales/es.json +29 -66
- data/lib/polytypo/data/locales/fi.json +7 -77
- data/lib/polytypo/data/locales/fr-CA.json +36 -63
- data/lib/polytypo/data/locales/fr.json +41 -70
- data/lib/polytypo/data/locales/it.json +22 -65
- data/lib/polytypo/data/locales/nl.json +29 -61
- data/lib/polytypo/data/locales/pl.json +28 -61
- data/lib/polytypo/data/locales/pt-BR.json +28 -53
- data/lib/polytypo/data/locales/pt-PT.json +28 -55
- data/lib/polytypo/data/locales/registry.json +1 -1
- data/lib/polytypo/data/locales/ru.json +30 -45
- data/lib/polytypo/data/locales/sv.json +4 -63
- data/lib/polytypo/data/locales/uk.json +27 -55
- data/lib/polytypo/data/rules/apostrophe.md +183 -20
- data/lib/polytypo/data/rules/modes.md +29 -4
- data/lib/polytypo/data/rules/nbsp.md +20 -6
- data/lib/polytypo/data/rules/order.json +2 -2
- data/lib/polytypo/data/rules/pipeline-idempotency.md +3 -2
- data/lib/polytypo/data/rules/quotes.md +234 -9
- data/lib/polytypo/data/rules/symbols.md +25 -5
- data/lib/polytypo/engine/rules/apostrophe.rb +14 -1
- data/lib/polytypo/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0ff5ce01ef6e41610e4b170c65bec8d01fda6ec6bb9ade51270a99533f289454
|
|
4
|
+
data.tar.gz: 0b8c207111b01b21546d93a49fc0393b3cf040642073d2a95063c06de8cbff2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 78259af3e3d2db20353b7f8aa2a8adab72473ac18a3a54a442fb2f5670928a8ccb954c144852ebaf6ec6466efd2b21c71aefe6a5cd97570e293082fa051b63cd
|
|
7
|
+
data.tar.gz: 6425e0eabb69b66ea85953c5edd6ef57112f8054ec9c6224bfd7618a7b5a4eace5e421115646b3a841abde0ae56ac1a95295be0c483a6fad91a45f1c80bbc3c9
|
data/lib/polytypo/data/README.md
CHANGED
|
@@ -18,3 +18,18 @@ canonical's `spec/` changes, re-copy the affected files here. How this vendoring
|
|
|
18
18
|
long-term (submodule, per-ecosystem spec package, or something else) is an open decision tracked
|
|
19
19
|
in `polytypo/polytypo`'s roadmap; this is the interim, manually-synced form — the same status
|
|
20
20
|
every other port's vendored copy has.
|
|
21
|
+
|
|
22
|
+
## `locales/*.json` here carry no `sources`
|
|
23
|
+
|
|
24
|
+
The canonical files do, and mandatorily — `spec/schema/locale.schema.json` makes `sources`
|
|
25
|
+
required with `minItems: 1`, and `validate-spec.mjs` fails a locale without a citation. This copy
|
|
26
|
+
drops that one field, because these exact files are what ships: no rule reads the citations, and
|
|
27
|
+
they are 94% of the locale payload by raw bytes (193 KB of 206 KB, against 13 KB of everything the
|
|
28
|
+
engine actually consults). Keeping them here would put a quarter-megabyte of citation prose in
|
|
29
|
+
every install of this package.
|
|
30
|
+
|
|
31
|
+
So this is one field narrower than the canonical file, deliberately, and it is not drift: the
|
|
32
|
+
directory was always "the subset it needs" (see the paragraph above). **The citations are
|
|
33
|
+
evidence and they are not weakened — read them in `polytypo/polytypo`'s own `spec/locales/`, or
|
|
34
|
+
on the project's Locales page, which renders them from those files.** Re-syncing this directory
|
|
35
|
+
means copying the canonical files and dropping `sources` again.
|
data/lib/polytypo/data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.5.0
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.5.0",
|
|
3
3
|
"locale": "en-GB",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
@@ -1339,6 +1339,55 @@
|
|
|
1339
1339
|
"in": "'a'<code>x</code>'b'",
|
|
1340
1340
|
"out": "‘a’<code>x</code>‘b’",
|
|
1341
1341
|
"note": "The negative control, and the reason the veto reads a cited fragment rather than the marker itself. modes.md §3.3 puts the marker in OPENISH precisely so the second pair here can open flush after a span; letting the marker satisfy the medial-elision veto's ALNUM test would have broken this row and en-us-markdown-commonmark-boundary-nested-quotes with it. The run b is not a listed fragment, so the quotation stands."
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
"id": "en-gb-apostrophe-closing-guillemets-agree",
|
|
1345
|
+
"rule": "apostrophe",
|
|
1346
|
+
"mode": "text",
|
|
1347
|
+
"in": "»Wort«'s, ‹Wort›'s and «Wort»'s.",
|
|
1348
|
+
"out": "»Wort«’s, ‹Wort›’s and «Wort»’s.",
|
|
1349
|
+
"note": "apostrophe.md §6 row 21 — the asymmetry case 2a removes, in one line. The first form converted before 1.5.0 because U+00AB is an OPENISH member and case 4 reads OPENISH on the left; the other two stayed straight because U+00BB and U+203A are CLOSEISH members and no left-hand test read that class. Same shape, same reading, three glyphs, now one verdict. Foreign glyphs in en-GB by design: under quotes.md §0 mandate 1 they are re-typesetting candidates, and en-GB does re-typeset them when they form a pair — «Wort» on its own becomes ‘Wort’. None of the three is paired here, and the reason is quotes' V1 same-code-point veto reading V1ID(U+0027) = U+2019 (quotes.md §5), so this case is a V1ID witness as well as a case 2a one."
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
"id": "en-gb-markdown-commonmark-possessive-after-paren-past-code-span",
|
|
1353
|
+
"rule": "apostrophe",
|
|
1354
|
+
"mode": "markdown",
|
|
1355
|
+
"dialect": "commonmark",
|
|
1356
|
+
"in": "The `nbsp` (R₈)'s emission alphabet is one character.\n",
|
|
1357
|
+
"out": "The `nbsp` (R₈)’s emission alphabet is one character.\n",
|
|
1358
|
+
"note": "Case 2a across a mode adapter: the code span is skipped, the parenthetical is prose, and the mark's left neighbour in the processable text is the literal U+0029 rather than modes.md §3.2's marker. The marker case is case 4's and is pinned separately."
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
"id": "en-gb-apostrophe-closeish-punctuation-declined",
|
|
1362
|
+
"rule": "apostrophe",
|
|
1363
|
+
"mode": "text",
|
|
1364
|
+
"in": "He said,'yes' and left.",
|
|
1365
|
+
"out": "He said,'yes’ and left.",
|
|
1366
|
+
"note": "apostrophe.md §6 row 23: U+002C is deliberately excluded from CLOSEDELIM. `quotes` declined the pairing because canOpen's right-test rejects a CLOSEISH left neighbour, and this rule cannot tell an opening quotation mark after a comma from a possessive — so the leading mark stays U+0027, recoverable per §7 item 4, and the trailing mark is case 3. The row's output is the same before and after spec 1.5.0 and is pinned so the exclusion stays deliberate."
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
"id": "en-gb-apostrophe-prime-after-superscript-untouched",
|
|
1370
|
+
"rule": "apostrophe",
|
|
1371
|
+
"mode": "text",
|
|
1372
|
+
"in": "f'(x) = 2 and f²'(x) = 4.",
|
|
1373
|
+
"out": "f'(x) = 2 and f²'(x) = 4.",
|
|
1374
|
+
"note": "Both primes survive spec 1.5.0, and for a reason worth naming: case 2a rejects them on its LEFT-test, not the case 1 prime guard, which reads DIGIT on the left only. The left neighbours here are the letter f and U+00B2, general category No, and neither is in CLOSEDELIM. The right-test rejects them as well — U+0028 is in no right-hand class — so nothing any converting case accepts is present on either side."
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
"id": "en-gb-apostrophe-possessive-after-closing-single-quote",
|
|
1378
|
+
"rule": "apostrophe",
|
|
1379
|
+
"mode": "text",
|
|
1380
|
+
"in": "A ‘quoted’'s meaning.",
|
|
1381
|
+
"out": "A ‘quoted’’s meaning.",
|
|
1382
|
+
"note": "U+2019 is the CLOSEDELIM member the idempotency argument turns on (apostrophe.md §5), and the one a port is most likely to leave out: it is both this rule's only emission and a member of a class the rule now reads on the left. The doubled glyph is what the ladder specifies rather than an artefact of it: the left neighbour is a closing delimiter and the right is a letter, so case 2a converts, and this rule reorders and removes nothing. Whether an editor would rather see the construction rephrased is outside its remit — it decides what the author typed, not whether they should have (§7 item 9). The case is a fixed point, which is what §5's left-hand vacuity argument predicts. The two contiguous U+2019 it leaves are §7 item 10: CMOS's own editors would set a separating space there, no rule in order.json inserts one, and this rule cannot — every edit is one code point for one."
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
"id": "en-gb-apostrophe-opening-mark-after-closing-delimiter",
|
|
1386
|
+
"rule": "apostrophe",
|
|
1387
|
+
"mode": "text",
|
|
1388
|
+
"in": "(aside)'quoted' here",
|
|
1389
|
+
"out": "(aside)’quoted’ here",
|
|
1390
|
+
"note": "apostrophe.md §6 row 25 and §7 item 9 — case 2a's accepted cost, pinned so no port can narrow or widen it silently. The author meant a quotation and both marks now read as closing glyphs. It was mismatched before spec 1.5.0 too, in the other direction: 1.4.0 gave (aside)'quoted’ here, case 3 having curled the trailing mark while the leading one matched no case. `quotes` declines the leading mark because canOpen's right-test rejects a CLOSEISH left neighbour, so a quotation opening flush after a closing delimiter is exactly the shape it cannot pair, and two neighbours cannot separate that from a possessive."
|
|
1342
1391
|
}
|
|
1343
1392
|
]
|
|
1344
1393
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.5.0",
|
|
3
3
|
"locale": "en-US",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
@@ -2530,6 +2530,46 @@
|
|
|
2530
2530
|
"in": "He said <em>'s'</em> loudly.",
|
|
2531
2531
|
"out": "He said <em>’s’</em> loudly.",
|
|
2532
2532
|
"note": "Accepted false positive, recorded in the suite rather than left in someone's content: a quotation inside an inline span whose content is EXACTLY a listed fragment is read as an elision. Strictly narrower than, and the same family as, the universal medial-n veto's accepted The letter 'n' is common. — it needs the span boundary as well as the single-fragment content. '<em>x</em>', '<em>no</em>' and '<em>fine</em>' in the same position are unaffected. quotes.md §3.2."
|
|
2533
|
+
},
|
|
2534
|
+
{
|
|
2535
|
+
"id": "en-us-apostrophe-possessive-after-closing-paren",
|
|
2536
|
+
"rule": "apostrophe",
|
|
2537
|
+
"mode": "text",
|
|
2538
|
+
"in": "The pipeline (order 90)'s own output is stable.",
|
|
2539
|
+
"out": "The pipeline (order 90)’s own output is stable.",
|
|
2540
|
+
"note": "apostrophe.md §6 row 19, case 2a (spec 1.5.0): U+0029 is in CLOSEDELIM, so a possessive attaching to a parenthetical converts. Through spec 1.4.0 this was case 5 — the ladder's right side accepted every CLOSEISH member but its left side accepted no closing delimiter at all."
|
|
2541
|
+
},
|
|
2542
|
+
{
|
|
2543
|
+
"id": "en-us-apostrophe-possessive-after-closing-quote",
|
|
2544
|
+
"rule": "apostrophe",
|
|
2545
|
+
"mode": "text",
|
|
2546
|
+
"in": "“Hamlet”'s first line is the question.",
|
|
2547
|
+
"out": "“Hamlet”’s first line is the question.",
|
|
2548
|
+
"note": "apostrophe.md §6 row 20, case 2a: U+201D is en-US's own primary closing glyph. `quotes` leaves both existing glyphs in place (they are already this locale's pair) and declines the U+0027, which then reaches case 2a. The case pins the mark's identity, not the construction's merit — CMOS's reachable answer on the possessive of a quoted title steers to an attributive rephrasing and endorses none of the possessive forms, which is advice about what to write rather than a claim about what the mark is (case 2a, §7 item 10)."
|
|
2549
|
+
},
|
|
2550
|
+
{
|
|
2551
|
+
"id": "en-us-apostrophe-possessive-after-closing-brace-and-bracket",
|
|
2552
|
+
"rule": "apostrophe",
|
|
2553
|
+
"mode": "text",
|
|
2554
|
+
"in": "{user}'s account and footnote [3]'s author.",
|
|
2555
|
+
"out": "{user}’s account and footnote [3]’s author.",
|
|
2556
|
+
"note": "apostrophe.md §6 row 22, case 2a for U+007D and U+005D. A template placeholder closes a group the way any bracket does; this rule has no notion of interpolation syntax and needs none."
|
|
2557
|
+
},
|
|
2558
|
+
{
|
|
2559
|
+
"id": "en-us-apostrophe-symbol-left-declined",
|
|
2560
|
+
"rule": "apostrophe",
|
|
2561
|
+
"mode": "text",
|
|
2562
|
+
"in": "10%'u 24m²'ye 50°'lik",
|
|
2563
|
+
"out": "10%'u 24m²'ye 50°'lik",
|
|
2564
|
+
"note": "apostrophe.md §6 row 24 and §7 item 8: no symbol is in CLOSEDELIM — not U+0025, not U+00B0, not a superscript digit — so every mark here is case 5 and the input is a fixed point. Pinned because issue #28 asked for exactly this widening and it was declined on evidence: TDK's own rules attest the apostrophe after abbreviations and numerals, where case 2 already converts it, and Turkish writes the percent sign before the number."
|
|
2565
|
+
},
|
|
2566
|
+
{
|
|
2567
|
+
"id": "en-us-apostrophe-closing-paren-deleted-by-symbols",
|
|
2568
|
+
"rule": "apostrophe",
|
|
2569
|
+
"mode": "text",
|
|
2570
|
+
"in": "(c)'. and (c)'s",
|
|
2571
|
+
"out": "©'. and ©’s",
|
|
2572
|
+
"note": "symbols.md §5's I₆ discharge, deletion half (spec 1.5.0): §3.2 step 6 deletes the U+0029 that case 2a reads. Both directions in one case. The first mark does not convert — its right neighbour is U+002E, not ALNUM — and after the replacement its left neighbour is the emitted sign, which is in no class, so it does not convert on a second pass either. The second mark converts here, one rule before symbols shortens the span, and is U+2019 by the time symbols runs, which its own S2 guard accepts. Through spec 1.4.0 the second mark stayed straight."
|
|
2533
2573
|
}
|
|
2534
2574
|
]
|
|
2535
2575
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.5.0",
|
|
3
3
|
"locale": "fr",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
@@ -928,6 +928,14 @@
|
|
|
928
928
|
"in": "Il dit <em>'l'</em> ici.",
|
|
929
929
|
"out": "Il dit <em>’l’</em> ici.",
|
|
930
930
|
"note": "The accepted false positive in the locale with the widest exposure to it: fr lists thirteen fragments, eight of them a single letter, so a quotation whose whole content is one of them is read as an elision here more readily than anywhere else. Same class as en-us-html-span-boundary-listed-fragment-quoted and as the universal medial-n veto's accepted The letter 'n' is common. — pinned in both locales so the exposure sits in the suite rather than in someone's content. quotes.md §3.2, §6 row S7."
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"id": "fr-apostrophe-closing-guillemet-past-an-nbsp-insertion",
|
|
934
|
+
"rule": "apostrophe",
|
|
935
|
+
"mode": "text",
|
|
936
|
+
"in": "Le «mot»'s résumé.",
|
|
937
|
+
"out": "Le « mot »’s résumé.",
|
|
938
|
+
"note": "The one configuration where a rule running AFTER apostrophe touches a CLOSEDELIM neighbour, so nbsp.md §5's I₆ discharge has a witness rather than only prose. N1/N2 put fr's inner no-break space on the glyph's INNER side, so the U+00BB that case 2a reads stays immediately left of the mark and the verdict is identical before and after the insertion. Synthetic rather than natural French — a possessive 's is not French — and deliberately so, in the standing quotes.md §6 gives its own adversarial de-CH witness: what is being pinned is the rule interaction, not an idiom."
|
|
931
939
|
}
|
|
932
940
|
]
|
|
933
941
|
}
|
|
@@ -33,62 +33,43 @@
|
|
|
33
33
|
"nbsp": {
|
|
34
34
|
"beforePunctuation": [],
|
|
35
35
|
"narrowBeforePunctuation": [],
|
|
36
|
-
"afterShortWords": [
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
"afterShortWords": [
|
|
37
|
+
"a",
|
|
38
|
+
"i",
|
|
39
|
+
"k",
|
|
40
|
+
"o",
|
|
41
|
+
"s",
|
|
42
|
+
"u",
|
|
43
|
+
"v",
|
|
44
|
+
"z"
|
|
45
|
+
],
|
|
46
|
+
"abbreviations": [
|
|
47
|
+
"a. s.",
|
|
48
|
+
"s. r. o."
|
|
49
|
+
],
|
|
50
|
+
"beforeUnits": [
|
|
51
|
+
"%",
|
|
52
|
+
"°C",
|
|
53
|
+
"ha",
|
|
54
|
+
"kg",
|
|
55
|
+
"km",
|
|
56
|
+
"cm",
|
|
57
|
+
"mm",
|
|
58
|
+
"m²",
|
|
59
|
+
"kWh",
|
|
60
|
+
"km/h",
|
|
61
|
+
"str.",
|
|
62
|
+
"hod."
|
|
63
|
+
],
|
|
39
64
|
"beforeNumber": [],
|
|
40
|
-
"beforeWord": [
|
|
41
|
-
|
|
65
|
+
"beforeWord": [
|
|
66
|
+
"tj.",
|
|
67
|
+
"tzv.",
|
|
68
|
+
"tzn."
|
|
69
|
+
],
|
|
70
|
+
"afterSymbols": [
|
|
71
|
+
"§"
|
|
72
|
+
],
|
|
42
73
|
"initialBinding": "single"
|
|
43
|
-
}
|
|
44
|
-
"sources": [
|
|
45
|
-
{
|
|
46
|
-
"rule": "quotes",
|
|
47
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Uvozovky»: «V češtině užíváme různé varianty uvozovek: dvojité „ “, jednoduché ‚ ‘ a boční » «»; «Jako základní se doporučují uvozovky typu 99 66, tj. dvojité „ “»; «Ostatní typy uvozovek (v první řadě jednoduché, až v druhé řadě boční) se užívají především tehdy, pokud potřebujeme do uvozeného textu vložit ještě další uvozovky»; «Uvozovky přiléhají vždy těsně k výrazům, které ohraničují (tedy „takto“)»",
|
|
48
|
-
"url": "https://prirucka.ujc.cas.cz/?id=162",
|
|
49
|
-
"note": "První stupeň: U+201E otevírací, U+201C zavírací — NIKOLI U+201D jako v polštině, a právě to je rozdíl, který se v sazbě přehlédne. Kódy nebyly odečteny z markdownové konverze stránky, která se u uvozovek ukázala jako nespolehlivá; rozhodující je vlastní označení zdroje «uvozovky typu 99 66»: první znaménko má tvar devítky u paty řádku (U+201E), druhé tvar šestky vyzdvižený nahoru (U+201C). Polský pár PWN naproti tomu označuje jako 99 99. Druhý stupeň: jednoduché uvozovky, protože zdroj je výslovně řadí «v první řadě» pro uvozovky v uvozovkách. OMEZENÁ JISTOTA, řečená naplno: označení «99 66» je ve zdroji uvedeno pouze pro dvojité uvozovky, takže kódy jednoduchých (U+201A … U+2018) vycházejí ze stejného vzorce a z vysázených glyfů, ne z doslovného tvrzení. Rozhodla by tabulka H.1 normy ČSN 01 6910:2014, která je však placená (ČSN online od 1 000 Kč/rok). ROZHODNUTÍ OPERÁTORA, 18. 9. 2026: leží-li pravidlo za placenou normou, projekt je formuluje podle převládajícího úzu a označí to jako rozhodnutí, nikoli jako citaci — stejně jako u německého «Nr.». Padne-li placená stěna, nahradí znění normy tento řádek. Q-W platí v obou případech: U+201A, U+2018 i U+2019 patří do NARROW. Ověřeno 18. 9. 2026."
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"rule": "dashes",
|
|
53
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Pomlčka»: «Pomlčku oddělujeme z obou stran mezerami, komplikovanější situace je pouze tehdy, pokud toto znaménko vystupuje ve funkci výrazů a, až, od … do … nebo proti (versus)»; «pomlčka místo čárky: Tato kniha – vydaná ještě před válkou – je opravdu úžasná»; «Pomlčka (–) je dlouhá vodorovná čárka»; «Vedle krátké pomlčky (–) se v textu někdy používá také pomlčka dlouhá (—)»",
|
|
54
|
-
"url": "https://prirucka.ujc.cas.cz/?id=165",
|
|
55
|
-
"note": "Odůvodňuje dash.parenthetical = «en-spaced». Vsuvka není žádná ze čtyř vyjmenovaných výjimek, takže platí obecné pravidlo o mezerách z obou stran. DÉLKA je na rozdíl od polštiny rozhodnuta samotným zdrojem: definiční glyf stránky je krátká pomlčka U+2013 a dlouhá U+2014 je popsána jako to, co se používá «někdy» navíc. U polštiny musel o délce rozhodnout operátor, protože PWN si v korpusu protiřečil; tady stačí číst. PŘÍPUSTNÁ VARIANTA, zaznamenána: U+2014. Ověřeno 18. 9. 2026."
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"rule": "ranges",
|
|
59
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Pomlčka», vyjádření rozsahu (s významem ‚až‘ či ‚od … do‘): «strana 23–26, v letech 1945–1948, 9–16 h»; ÚJČ (P. Lozan, M. Pravdová), «Otázky a odpovědi k ČSN 01 6910 (2014)», otázka 2: «norma umožňuje i psaní mezery kolem pomlčky v rozsazích a ve významu „a“ a „versus“, jestliže je alespoň jeden z výrazů kolem pomlčky víceslovný»",
|
|
60
|
-
"url": "https://prirucka.ujc.cas.cz/?id=165",
|
|
61
|
-
"note": "Odůvodňuje dash.range = «en-tight»: krátká pomlčka U+2013 bez mezer. Potvrzeno ze dvou stran: příručka sází rozsahy těsně, a dokument ÚJČ k normě popisuje mezery v rozsahu jako povolenou VÝJIMKU pro víceslovné výrazy, což těsnou sazbu předpokládá jako pravidlo. Text samotné ČSN 01 6910 čten nebyl (je placený); citován je výklad jejích vlastních zpracovatelů, což je nejsilnější veřejně dostupná náhrada. Stránka rovněž uvádí, že pomlčka vyjadřující rozsah nemá stát na konci ani na začátku řádku — požadavek, pro který locale.schema.json nemá pole. Pravidlo ranges je ve výchozím stavu vypnuté (spec 0.5.0). Ověřeno 18. 9. 2026."
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"rule": "ellipsis",
|
|
65
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Tři tečky»: «jedná se totiž o jeden znak, nikoli tři samostatné tečky»; «Za třemi tečkami často následují další interpunkční znaménka, která se za tři tečky připojují bez mezery, ale nikdy se však nepřipojuje další tečka (nikoli tedy čtyři tečky vedle sebe)»",
|
|
66
|
-
"url": "https://prirucka.ujc.cas.cz/?id=166",
|
|
67
|
-
"note": "Odůvodňuje abbreviatedAfterTerminal = false. Výpustka je jeden znak U+2026 a otazník či vykřičník stojí ZA ní — ruská dvoutečková forma «?..» není v žádném konzultovaném českém zdroji předvídána. Bylo to ověřeno záměrně: ukrajinština, zkoumaná v témže průchodu, tu formu MÁ, takže analogie mezi slovanskými jazyky by tu byla svůdná a mylná. Ověřeno 18. 9. 2026."
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"rule": "hyphen",
|
|
71
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Spojovník»: «píše se bez mezer mezi výrazy, které spojuje»; «Spojovník na začátku dalšího řádku neopakujeme, naznačuje-li rozdělení slova (např. žong- | -lér)»; táž příručka, «Zalomení řádků a nevhodné výrazy na jejich konci», jejíž uzavřený výčet míst, kde k zalomení dojít nemá, spojovník neuvádí",
|
|
72
|
-
"url": "https://prirucka.ujc.cas.cz/?id=164",
|
|
73
|
-
"note": "Odůvodňuje tři prázdné seznamy. Čeština spojovník na konci řádku ani nezakazuje, ani — na rozdíl od polštiny — dělení v jeho místě nepředepisuje; neexistuje uzavřený normativní seznam tvarů, jejichž spojovník se nesmí lámat. To, že jej třináctibodový výčet stránky o zalomení řádků neobsahuje, je doložená nepřítomnost, ne nenalezená citace — a je to zároveň rozdíl proti ukrajinštině, kde § 64 п. 4 takový seznam má. Ověřeno 18. 9. 2026."
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"rule": "nbsp",
|
|
77
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Zalomení řádků a nevhodné výrazy na jejich konci»: k zalomení nemá dojít «ve spojení neslabičných předložek k, s, v, z s následujícím slovem, např. k mostu, s bratrem, v Plzni, z nádraží»; «ve spojení slabičných předložek o, u a spojek a, i s výrazem, který po nich následuje, např. u babičky, o páté»; «ve složených zkratkách a kódech, např. a. s., s. r. o.»; «mezi zkratkami tj., tzv., tzn. a následujícím výrazem»; «mezi zkratkou jména a příjmením»; «mezi číslem a značkou, např. 50 %, § 23»; «V textovém procesoru vkládáme tam, kde nemá dojít k zalomení řádku, místo běžné mezislovní mezery mezeru pevnou»",
|
|
78
|
-
"url": "https://prirucka.ujc.cas.cz/?id=880",
|
|
79
|
-
"note": "Pět polí z jednoho uzavřeného výčtu, který se odvolává na ČSN 01 6910. (1) afterShortWords: osm jednopísmenných výrazů, citovaných doslova. Na rozdíl od polštiny je zákaz v prameni BEZPODMÍNEČNÝ — není vázán na šířku sloupce ani na to, zda jde o titulek — takže zde nebylo co rozhodovat. (2) abbreviations: «a. s.» a «s. r. o.». Interakce s N3 ověřena a je opačná než u polského «i in.»: N3 vyžaduje, aby po jednopísmenném výrazu následovala mezera, a po «a» následuje tečka, takže N3 index nenárokuje a obě mezery dostane N4. «ČSN 01 6910» z výčtu vypuštěno: číslo normy není fakt o jazyce. (3) beforeWord: «tj.», «tzv.», «tzn.». Bod o «zkratce titulu» populován není, protože zdroj u něj žádný seznam neuvádí. (4) afterSymbols = [«§»]. Ze stejného citovaného bodu byly ZÁMĚRNĚ vynechány «*», «†» a «#»: řetězec «* 1921» je bajt po bajtu totožný s odrážkou seznamu následovanou číslicí, takže v režimu markdown by šlo o falešný zásah bez vyvažujícího přínosu. (5) initialBinding = «single»: pramen váže «zkratku jména» k příjmení a jeho vlastní příklady jsou Fr. Daneš a M. Těšitelová, tedy JEDNA zkrácená křestní jméno; «chain» by na ani jednom z nich nezabral a citované pravidlo by zůstalo nenaplněné. Expozici, kterou schéma u «single» samo pojmenovává, přijímáme na základě citace, stejně jako u fr. beforeNumber zůstává prázdné: jediným kandidátem je «strana 2», ale «strana» je víceznačné plnovýznamové slovo, nikoli zkratka — týž argument, jakým ru.json vylučuje «г.». Ověřeno 18. 9. 2026."
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"rule": "nbsp",
|
|
83
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Značky, čísla a číslice»: «Značky se od číselné hodnoty oddělují mezerou, číslo a značka se umísťují na stejný řádek», «např. 10 ha = 10 hektarů, 3 kg = 3 kilogramy, 14 % = 14 procent», «100 kWh», «rychlost 50 km/h», «teplota 12–15 °C»; BIPM, The International System of Units (SI), 9th ed., concise summary: «A single space is always left between the number and the unit»",
|
|
84
|
-
"url": "https://prirucka.ujc.cas.cz/?id=785",
|
|
85
|
-
"note": "Rozdělení rolí jako v en-US, fi, sv, es, pt a pl: BIPM říká, které řetězce jsou značkami jednotek SI, ÚJČ říká, jaká je česká konvence. České znění je přitom silnější, než nbsp.md §2.1 od locale vyžaduje: uvádí nejen mezeru, ale i to, že «číslo a značka se umísťují na stejný řádek». PŘÍPUSTNÁ VARIANTA, zaznamenána: «V případě, že pomocí číslice a značky vyjadřujeme přídavné jméno, mezeru nevkládáme: 8km = 8kilometrový, 20% = 20procentní». Rozpor není třeba řešit: N5 existující mezeru pouze nahrazuje a nikdy ji nevkládá (nbsp.md §3.7), takže «14 %» dostane U+00A0 a «20%» zůstane nedotčeno. Jednoznakové značky vypuštěny, a pro češtinu z konkrétního důvodu, ne ze stylové opatrnosti: «s» je zároveň vyjmenovaná jednopísmenná předložka, takže ve větě «Přišel v 5 s bratrem» by se «5» svázala se «s». Ověřeno 18. 9. 2026."
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
"rule": "nbsp",
|
|
89
|
-
"cite": "Ústav pro jazyk český AV ČR, Internetová jazyková příručka, «Otazník»: «Stejně jako naprostá většina interpunkčních znamének se připojuje k předcházejícímu slovu (zkratce, značce) bez mezery, za ním následuje mezera»; táž příručka, «Tři tečky»: «tři tečky následující za slovem se připojují bez mezery»",
|
|
90
|
-
"url": "https://prirucka.ujc.cas.cz/?id=171",
|
|
91
|
-
"note": "Odůvodňuje prázdné beforePunctuation i narrowBeforePunctuation. Čeština před «:», «;», «!», «?» nestaví ani U+00A0, ani U+202F, a zdroj jim odstup výslovně upírá — je to zápor, ne mlčení. Q-P je tím splněno triviálně. Ověřeno 18. 9. 2026."
|
|
92
|
-
}
|
|
93
|
-
]
|
|
74
|
+
}
|
|
94
75
|
}
|
|
@@ -34,48 +34,39 @@
|
|
|
34
34
|
"beforePunctuation": [],
|
|
35
35
|
"narrowBeforePunctuation": [],
|
|
36
36
|
"afterShortWords": [],
|
|
37
|
-
"abbreviations": [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
"abbreviations": [
|
|
38
|
+
"z. B.",
|
|
39
|
+
"d. h.",
|
|
40
|
+
"u. a.",
|
|
41
|
+
"u. U.",
|
|
42
|
+
"m. a. W.",
|
|
43
|
+
"m. w. H."
|
|
44
|
+
],
|
|
45
|
+
"beforeUnits": [
|
|
46
|
+
"%",
|
|
47
|
+
"‰",
|
|
48
|
+
"°C",
|
|
49
|
+
"km",
|
|
50
|
+
"cm",
|
|
51
|
+
"mm",
|
|
52
|
+
"kg",
|
|
53
|
+
"km/h",
|
|
54
|
+
"kWh"
|
|
55
|
+
],
|
|
56
|
+
"beforeNumber": [
|
|
57
|
+
"Art.",
|
|
58
|
+
"Abs.",
|
|
59
|
+
"Ziff.",
|
|
60
|
+
"Kap.",
|
|
61
|
+
"S."
|
|
62
|
+
],
|
|
63
|
+
"beforeWord": [
|
|
64
|
+
"St."
|
|
65
|
+
],
|
|
66
|
+
"afterSymbols": [
|
|
67
|
+
"§",
|
|
68
|
+
"§§"
|
|
69
|
+
],
|
|
42
70
|
"initialBinding": "chain"
|
|
43
|
-
}
|
|
44
|
-
"sources": [
|
|
45
|
-
{
|
|
46
|
-
"rule": "quotes",
|
|
47
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 201–203: zu schreiben sind die Guillemets « » und, für eine Anführung innerhalb einer Anführung, die halben Anführungszeichen ‹ ›; die in Deutschland übliche Schreibung » « ist für amtliche Texte nicht zulässig",
|
|
48
|
-
"url": "https://www.bk.admin.ch/dam/bk/de/dokumente/sprachdienste/sprachdienst_de/schreibweisungen.pdf.download.pdf/schreibweisungen.pdf",
|
|
49
|
-
"note": "Rz. 202 regelt ausdrücklich nur das Leerzeichen VOR dem Anführungszeichen und NACH dem Schlusszeichen; ein Zwischenraum innerhalb der Guillemets wird weder gefordert noch in einem der Beispiele gesetzt («Zukunft für Schweizer Fahrende»). Daher innerSpace = none."
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"rule": "dashes",
|
|
53
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 231, 237, 238: der Gedankenstrich ist der Halbgeviertstrich –; vor und nach dem Gedankenstrich bei Nachträgen und paarigen Einschüben steht ein Leerzeichen",
|
|
54
|
-
"url": "https://www.bk.admin.ch/dam/bk/de/dokumente/sprachdienste/sprachdienst_de/schreibweisungen.pdf.download.pdf/schreibweisungen.pdf",
|
|
55
|
-
"note": "Rz. 236 hält ausdrücklich fest, dass der Geviertstrich (—) nicht zulässig ist."
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"rule": "dashes",
|
|
59
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 234: der Gedankenstrich als Begriffszeichen für „bis“ steht ohne Leerzeichen — „16–17 Uhr“, „die Artikel 10–12“, „die Jahre 1939–1945“",
|
|
60
|
-
"url": "https://www.bk.admin.ch/dam/bk/de/dokumente/sprachdienste/sprachdienst_de/schreibweisungen.pdf.download.pdf/schreibweisungen.pdf"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"rule": "nbsp",
|
|
64
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 251 (Festabstand hält Zusammengehöriges zusammen: Ziffer und Masseinheit, Abkürzung und Ortsname, Teile mehrgliedriger Abkürzungen, Gliederungseinheit und Ziffer — „20 km“, „St. Gallen“, „Artikel 35“), Rz. 438 (mehrgliedrige Abkürzungen: d. h. / z. B. / u. a. / u. U. / m. a. W. / m. w. H.), Rz. 549–550 (Festabstand zwischen Zahl und Einheit), Rz. 554 (Festabstand vor % und ‰)",
|
|
65
|
-
"url": "https://www.bk.admin.ch/dam/bk/de/dokumente/sprachdienste/sprachdienst_de/schreibweisungen.pdf.download.pdf/schreibweisungen.pdf",
|
|
66
|
-
"note": "initialBinding: \"chain\" (spec 0.6.0: das Feld hieß zuvor das boolesche bindInitials) ist eine Ableitung, keine wörtliche Weisung: Rz. 251 nennt „eine Abkürzung und ein Ortsname“ (St. Gallen) und Rz. 438 die Teile mehrgliedriger Abkürzungen; die Bindung Initiale–Nachname ist dieselbe Konstruktion, wird aber in den Schreibweisungen nicht ausdrücklich erwähnt. Keine Quelle belegt eine einzelne Initiale (\"single\"); \"chain\" folgt derselben Zwei-oder-mehr-Logik wie de-DE/ru. Die Einheitenliste ist bewusst kurz und enthält keine einbuchstabigen Einheitenzeichen. Der Schweizer Verzicht auf ß (ss statt ß, Amtliches Regelwerk § 25 E2) lässt sich im Schema nicht ausdrücken und ist deshalb hier nicht abgebildet."
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"rule": "nbsp",
|
|
70
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 251 (Festabstand zwischen einer Gliederungseinheit eines Erlasses und der dazugehörigen Ziffer — Beispiele „Artikel 35“, „S. 17 f.“, „St. Gallen“), Rz. 438 (Entsprechendes gilt für die eingliedrige Abkürzung „St.“ für „Sankt“ in Ortsnamen: „St. Gallen“, „St. Moritz“), Rz. 439 (abschliessende Aufzählung der Begriffszeichen: Ziffern, %, ‰, Gedankenstrich, Schrägstrich, §, Währungszeichen, mathematische Zeichen, Einheitenzeichen), Rz. 440 (zwischen einem Begriffszeichen und der dazugehörigen Zahl steht ein Festabstand), Rz. 727 (in verknapptem Text werden die Gliederungseinheiten abgekürzt: „Kap., Art., Abs., Bst. (falsch: Buchst., lit.), Ziff.“), Rz. 730 (Nummerierung der Gliederungseinheiten)",
|
|
71
|
-
"url": "https://www.bk.admin.ch/dam/de/sd-web/YVHazXZRkqKn/schreibweisungen.pdf",
|
|
72
|
-
"note": "Wortlaut im PDF selbst geprüft. Rz. 439 und Rz. 727 entscheiden die Zuordnung von „Art.“: die Aufzählung der Begriffszeichen in Rz. 439 ist abschliessend und enthält „Art.“ nicht, Rz. 727 führt „Art.“ ausdrücklich als Abkürzung einer Gliederungseinheit. „Art.“ gehört damit zu beforeNumber und nicht zu afterSymbols, wo es zuvor stand; die Bindung an die folgende Zahl folgt aus Rz. 251. Aus derselben Liste fehlt nur „Bst.“, weil ihm ein Buchstabe folgt, keine Zahl („Bst. a“). „S.“ ist mit „S. 17 f.“ in Rz. 251 wörtlich belegt. „Nr.“ wurde ersatzlos entfernt: es steht weder in Rz. 439 noch überhaupt im Sachregister (unter N nur „NGO“, „Normen“, „Null“); die einzige Fundstelle ist Rz. 431, wo „Nr. (Nummer), Tarif-Nrn.“ als Beispiel für Deklinationsendungen dient und keine Abstandsregel ausspricht. afterSymbols war damit nachweislich falsch, und für beforeNumber fehlt der Beleg — nach docs/PLAN.md §6.1 zieht das die Streichung nach sich. Zurückkommen kann „Nr.“ mit einer Lesung der DIN 5008. beforeWord enthält nur „St.“: Rz. 438 nennt genau diesen Fall wörtlich, weitere Abkürzung-plus-Wort-Bindungen sind in den Schreibweisungen nicht als geschlossene Liste geregelt („Küssnacht a. R.“ ist eine mehrgliedrige Abkürzung, kein Präfix)."
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"rule": "hyphen",
|
|
76
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 223 und 224: der Bindestrich wird als Ergänzungsstrich für einen eingesparten Wortteil verwendet („Papierproduktion und -handel“); mit dem geschützten Ergänzungsstrich wird verhindert, dass der Ergänzungsstrich am Zeilenende auf der oberen Zeile bleibt, während der zugehörige zweite Wortbestandteil auf die nächste Zeile rutscht",
|
|
77
|
-
"url": "https://www.bk.admin.ch/dam/de/sd-web/YVHazXZRkqKn/schreibweisungen.pdf",
|
|
78
|
-
"note": "Beleg dafür, dass die drei Listen leer bleiben. Das Deutsche kennt keine geschlossene Liste von Morphemen mit unteilbarem Bindestrich; die Trennung am Bindestrich ist zulässig (Rz. 269–271 behandeln nur sinnentstellende Trennungen). Der einzige belegte Fall eines geschützten Bindestrichs ist der Ergänzungsstrich (Rz. 224), und der ist offen: er betrifft jedes beliebige Zweitglied nach „und -“ und lässt sich als literale Wortliste nicht abbilden."
|
|
79
|
-
}
|
|
80
|
-
]
|
|
71
|
+
}
|
|
81
72
|
}
|
|
@@ -34,52 +34,37 @@
|
|
|
34
34
|
"beforePunctuation": [],
|
|
35
35
|
"narrowBeforePunctuation": [],
|
|
36
36
|
"afterShortWords": [],
|
|
37
|
-
"abbreviations": [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
"abbreviations": [
|
|
38
|
+
"z. B.",
|
|
39
|
+
"d. h.",
|
|
40
|
+
"u. a.",
|
|
41
|
+
"u. Ä.",
|
|
42
|
+
"z. T.",
|
|
43
|
+
"i. d. R."
|
|
44
|
+
],
|
|
45
|
+
"beforeUnits": [
|
|
46
|
+
"%",
|
|
47
|
+
"‰",
|
|
48
|
+
"€",
|
|
49
|
+
"°C",
|
|
50
|
+
"km",
|
|
51
|
+
"cm",
|
|
52
|
+
"mm",
|
|
53
|
+
"kg",
|
|
54
|
+
"km/h",
|
|
55
|
+
"kWh"
|
|
56
|
+
],
|
|
57
|
+
"beforeNumber": [
|
|
58
|
+
"Nr.",
|
|
59
|
+
"S."
|
|
60
|
+
],
|
|
61
|
+
"beforeWord": [
|
|
62
|
+
"St."
|
|
63
|
+
],
|
|
64
|
+
"afterSymbols": [
|
|
65
|
+
"§",
|
|
66
|
+
"§§"
|
|
67
|
+
],
|
|
42
68
|
"initialBinding": "chain"
|
|
43
|
-
}
|
|
44
|
-
"sources": [
|
|
45
|
-
{
|
|
46
|
-
"rule": "quotes",
|
|
47
|
-
"cite": "Duden, Rechtschreibregeln, „Anführungszeichen“, Regeln D 5 und D 12: Gänsefüßchen „…“ als Anführungszeichen, halbe Anführungszeichen ‚…‘ für eine Anführung innerhalb einer Anführung",
|
|
48
|
-
"url": "https://www.duden.de/sprachwissen/rechtschreibregeln/anfuehrungszeichen",
|
|
49
|
-
"note": "Deckungsgleich mit dem Amtlichen Regelwerk der deutschen Rechtschreibung, § 79 E2 (Anführung innerhalb einer Anführung durch halbe Anführungszeichen)."
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"rule": "dashes",
|
|
53
|
-
"cite": "Duden, Rechtschreibregeln, „Gedankenstrich“, Regel D 45: der Gedankenstrich (Halbgeviertstrich) steht mit Leerzeichen auf beiden Seiten beim Einschieben eines Zusatzes",
|
|
54
|
-
"url": "https://www.duden.de/sprachwissen/rechtschreibregeln/gedankenstrich"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"rule": "dashes",
|
|
58
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen (Ausgabe 2013, aktualisiert), Rz. 234: der Gedankenstrich als Begriffszeichen für „bis“ steht ohne Leerzeichen — „die Jahre 1939–1945“",
|
|
59
|
-
"url": "https://www.bk.admin.ch/dam/bk/de/dokumente/sprachdienste/sprachdienst_de/schreibweisungen.pdf.download.pdf/schreibweisungen.pdf",
|
|
60
|
-
"note": "Für den Bis-Strich konnte keine gleichwertig präzise Duden-Onlineregel gefunden werden; die schweizerische Weisung formuliert dieselbe im gesamten deutschen Sprachraum übliche Regel und wird hier als überprüfbare Quelle angegeben."
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"rule": "nbsp",
|
|
64
|
-
"cite": "DIN 5008 (Schreib- und Gestaltungsregeln für die Text- und Informationsverarbeitung): geschütztes Leerzeichen zwischen den Teilen mehrgliedriger Abkürzungen („z. B.“, „d. h.“), bei Initialen („J. K. Rowling“) sowie zwischen Zahl und Einheit, Prozentzeichen und Paragrafenzeichen",
|
|
65
|
-
"note": "Die Norm selbst ist kostenpflichtig; die Regelinhalte wurden über die Duden-Regeln zu Abkürzungen (D 1) und über die von Duden selbst verwendete Schreibung „z. B.“ mit geschütztem Leerzeichen gegengeprüft. Der Einheitenliste liegt keine Normliste zugrunde: sie ist bewusst kurz gehalten und enthält keine einbuchstabigen Einheitenzeichen (m, g, l, s), weil diese ohne Kontextprüfung zu Falschtreffern führen."
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"rule": "nbsp",
|
|
69
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 251: der Festabstand verhindert, dass Zusammengehöriges beim Zeilensprung auseinandergerissen wird — Beispiele „20 km“, „St. Gallen“, „Artikel 35“, „S. 17 f.“, „20. November“; Rz. 438: Entsprechendes gilt für die eingliedrige Abkürzung „St.“ für „Sankt“ in Ortsnamen („St. Gallen“, „St. Moritz“); Rz. 439: abschliessende Aufzählung der Begriffszeichen (Ziffern, %, ‰, Gedankenstrich, Schrägstrich, §, Währungszeichen, mathematische Zeichen, Einheitenzeichen)",
|
|
70
|
-
"url": "https://www.bk.admin.ch/dam/de/sd-web/YVHazXZRkqKn/schreibweisungen.pdf",
|
|
71
|
-
"note": "Wortlaut im PDF selbst geprüft. Für Deutschland regelt dieselbe Konstruktion die DIN 5008 (Schreib- und Gestaltungsregeln), die kostenpflichtig ist und deren Wortlaut hier nicht geprüft werden konnte; deshalb steht die schweizerische Weisung als überprüfbarer Beleg — dasselbe Vorgehen wie bei der Quelle zu Rz. 234 in diesem File. Die Übertragung auf de-DE ist insofern eine Ableitung, keine deutschlandspezifische Weisung. „S.“ ist mit „S. 17 f.“ wörtlich belegt und deckt die von docs/PLAN.md §7 geforderte Schreibung „S.“ + Zahl. „Nr.“ gehört nicht hierher, sondern zu den Abkürzungen: die Aufzählung der Begriffszeichen in Rz. 439 ist abschliessend und enthält „Nr.“ nicht (im Sachregister unter N stehen nur „NGO“, „Normen“, „Null“). Aus afterSymbols ist es deshalb ersatzlos gestrichen. In beforeNumber steht es seit Spec 1.3.0 — nicht als Zitat, sondern als vereinheitlichte Schreibung; die Begründung steht im nächsten Eintrag."
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"rule": "hyphen",
|
|
75
|
-
"cite": "Schweizerische Bundeskanzlei, Schreibweisungen, Rz. 223 und 224: der Bindestrich wird als Ergänzungsstrich für einen eingesparten Wortteil verwendet („Papierproduktion und -handel“); mit dem geschützten Ergänzungsstrich wird verhindert, dass der Ergänzungsstrich am Zeilenende auf der oberen Zeile bleibt, während der zugehörige zweite Wortbestandteil auf die nächste Zeile rutscht",
|
|
76
|
-
"url": "https://www.bk.admin.ch/dam/de/sd-web/YVHazXZRkqKn/schreibweisungen.pdf",
|
|
77
|
-
"note": "Beleg dafür, dass die drei Listen leer bleiben. Das Deutsche kennt keine geschlossene Liste von Morphemen mit unteilbarem Bindestrich; die Trennung am Bindestrich ist zulässig. Der einzige belegte Fall eines geschützten Bindestrichs ist der Ergänzungsstrich (Rz. 224), und der ist offen: er betrifft jedes beliebige Zweitglied nach „und -“ und lässt sich als literale Wortliste nicht abbilden."
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"rule": "nbsp",
|
|
81
|
-
"cite": "Keine frei prüfbare Normquelle für „Nr.“ + Zahl: DIN 5008:2020-03 ist kostenpflichtig und wurde nicht gelesen; Duden und das Amtliche Regelwerk 2024 sprechen keine Abstandsregel aus. Vereinheitlicht nach vorherrschendem Gebrauch (Operatorentscheid, 18.09.2026)",
|
|
82
|
-
"note": "Diese Zeile ist ausdrücklich kein Beleg, sondern eine Festlegung, und wird als solche geführt. Geprüft und ergebnislos: Duden, Rechtschreibregeln „Abkürzungen“ (D 1–D 4, nur der Abkürzungspunkt); Duden, Sprachratgeber „Worttrennung am Zeilenende“; Amtliches Regelwerk 2024, Kapitel F (§§ 84–90, nur Worttrennung) und der Kasten „Sonderzeichen“ auf S. 153, der Typografie ausdrücklich den Konventionen bzw. den DIN-, ÖNORM- und SNV-Normen zuweist, also ausserhalb des Regelwerks. Entscheiden könnte nur DIN 5008:2020-03. Der Projektentscheid dazu: liegt eine Regel hinter einer Bezahlschranke, formuliert polytypo sie nach dem verbreitetsten Gebrauch und hält sie in allen Runtimes gleich — Einheitlichkeit geht hier vor Kanontreue, und die Festlegung wird offen als solche gekennzeichnet statt als Zitat ausgegeben. Der verbreitetste Gebrauch bindet „Nr.“ an die folgende Zahl; die Sekundärquellen, die DIN 5008 referieren, sagen dasselbe. Fällt die Schranke, tritt der Wortlaut der Norm an die Stelle dieser Zeile — auch wenn er ihr widerspricht."
|
|
83
|
-
}
|
|
84
|
-
]
|
|
69
|
+
}
|
|
85
70
|
}
|