diff options
| author | Robert Pluim | 2024-05-16 16:25:24 +0200 |
|---|---|---|
| committer | Robert Pluim | 2024-06-03 13:23:44 +0200 |
| commit | 0e811aba53f5cc3a8d8c13fa8922149f95e83da4 (patch) | |
| tree | d634a86421392656594b4e4c63e0333e1202f582 | |
| parent | 288b0db9682c519a3d7f8fa0c037640997209375 (diff) | |
| download | emacs-0e811aba53f5cc3a8d8c13fa8922149f95e83da4.tar.gz emacs-0e811aba53f5cc3a8d8c13fa8922149f95e83da4.zip | |
Improve support for entering quotation marks
* lisp/international/iso-transl.el (iso-transl-char-map): Add entries
for "low" single and double quotation marks.
(iso-transl-language-alist): Add convenient support for the official
German quoting style to the German language entry. It uses "low" double
quotes on the left, and *left* double quotes on the right. Add support
for single guillemets to the French language entry.
* lisp/leim/quail/latin-post.el ("latin-postfix"): Add entries for
single, double and "low" Unicode quotation marks. Add entries for
single guillemets.
* lisp/leim/quail/latin-pre.el ("latin-prefix"): And here.
* etc/NEWS: Announce the changes.
(Bug#70984)
| -rw-r--r-- | etc/NEWS | 30 | ||||
| -rw-r--r-- | lisp/international/iso-transl.el | 12 | ||||
| -rw-r--r-- | lisp/leim/quail/latin-post.el | 19 | ||||
| -rw-r--r-- | lisp/leim/quail/latin-pre.el | 11 |
4 files changed, 71 insertions, 1 deletions
| @@ -586,6 +586,36 @@ These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E', | |||
| 586 | respectively, in addition to the existing translations 'C-x 8 / e' and | 586 | respectively, in addition to the existing translations 'C-x 8 / e' and |
| 587 | 'C-x 8 / E'. | 587 | 'C-x 8 / E'. |
| 588 | 588 | ||
| 589 | *** New 'C-x 8' key translations for "low" quotes "„", and "‚". | ||
| 590 | These can now be entered with 'C-x , "' and 'C-x , ''. | ||
| 591 | |||
| 592 | *** New German language 'C-x 8' key translations for quotation marks. | ||
| 593 | The characters "„", "“", and "”" can now be entered with 'C-x 8 v', | ||
| 594 | 'C-x 8 b' and 'C-x 8 n'. The single versions "‚", "‘", and "’" can now | ||
| 595 | be entered with 'C-x 8 V', 'C-x 8 B' and 'C-x 8 N'. These characters | ||
| 596 | are used for the official German quoting style. Using them requires | ||
| 597 | activating German language support via 'iso-transl-set-language'. | ||
| 598 | |||
| 599 | *** "latin-prefix" and "latin-postfix" quotation marks additions. | ||
| 600 | These input methods can now produce single, double and "low" left and | ||
| 601 | right quotation marks: | ||
| 602 | |||
| 603 | "‘", "’", "“", "”", "„", and "‚" | ||
| 604 | |||
| 605 | by using "[", "]", and "," for "left", "right", and "low" respectively | ||
| 606 | to modify "'" and """. | ||
| 607 | |||
| 608 | *** "latin-prefix" and "latin-postfix" guillemets support. | ||
| 609 | These input methods can now produce single guillemets "‹" and "›". For | ||
| 610 | "latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and | ||
| 611 | ">~". Double guillemets ("«" and "»") were already supported. | ||
| 612 | |||
| 613 | *** New French language 'C-x 8' key translations for "‹" and "›". | ||
| 614 | These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >' | ||
| 615 | respectively, after activating French language support via | ||
| 616 | 'iso-transl-set-language'. Double guillemets were already supported via | ||
| 617 | 'C-x 8 <' and 'C-x 8 >' | ||
| 618 | |||
| 589 | 619 | ||
| 590 | * Changes in Specialized Modes and Packages in Emacs 30.1 | 620 | * Changes in Specialized Modes and Packages in Emacs 30.1 |
| 591 | 621 | ||
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index 67659f7c265..a3f2dfb9f9e 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el | |||
| @@ -111,6 +111,8 @@ | |||
| 111 | ("*+" . [?±]) | 111 | ("*+" . [?±]) |
| 112 | ("+" . [?±]) | 112 | ("+" . [?±]) |
| 113 | (",," . [?¸]) | 113 | (",," . [?¸]) |
| 114 | (",\"" . [?„]) | ||
| 115 | (",'" . [?‚]) | ||
| 114 | (",A" . [?Ą]) | 116 | (",A" . [?Ą]) |
| 115 | (",C" . [?Ç]) | 117 | (",C" . [?Ç]) |
| 116 | (",N" . [?Ņ]) | 118 | (",N" . [?Ņ]) |
| @@ -327,7 +329,9 @@ sequence VECTOR. (VECTOR is normally one character long.)") | |||
| 327 | ("u" . [?ŭ])) | 329 | ("u" . [?ŭ])) |
| 328 | ("French" | 330 | ("French" |
| 329 | ("C" . [?Ç]) | 331 | ("C" . [?Ç]) |
| 330 | ("c" . [?ç])) | 332 | ("c" . [?ç]) |
| 333 | ("~<" . [?‹]) | ||
| 334 | ("~>" . [?›])) | ||
| 331 | ("German" | 335 | ("German" |
| 332 | ("A" . [?Ä]) | 336 | ("A" . [?Ä]) |
| 333 | ("O" . [?Ö]) | 337 | ("O" . [?Ö]) |
| @@ -336,6 +340,12 @@ sequence VECTOR. (VECTOR is normally one character long.)") | |||
| 336 | ("a" . [?ä]) | 340 | ("a" . [?ä]) |
| 337 | ("o" . [?ö]) | 341 | ("o" . [?ö]) |
| 338 | ("s" . [?ß]) | 342 | ("s" . [?ß]) |
| 343 | ("v" . [?„]) | ||
| 344 | ("b" . [?“]) | ||
| 345 | ("n" . [?”]) | ||
| 346 | ("V" . [?‚]) | ||
| 347 | ("B" . [?‘]) | ||
| 348 | ("N" . [?’]) | ||
| 339 | ("u" . [?ü])) | 349 | ("u" . [?ü])) |
| 340 | ("Portuguese" | 350 | ("Portuguese" |
| 341 | ("C" . [?Ç]) | 351 | ("C" . [?Ç]) |
diff --git a/lisp/leim/quail/latin-post.el b/lisp/leim/quail/latin-post.el index 25e7c4a64a8..00851a94284 100644 --- a/lisp/leim/quail/latin-post.el +++ b/lisp/leim/quail/latin-post.el | |||
| @@ -2302,6 +2302,9 @@ of characters from a single Latin-N charset. | |||
| 2302 | subscript | _ | 0_ -> ₀ 1_ -> ₁ +_ -> ₊ -_ -> ₋ | 2302 | subscript | _ | 0_ -> ₀ 1_ -> ₁ +_ -> ₊ -_ -> ₋ |
| 2303 | others | / | s/ -> ß ?/ -> ¿ !/ -> ¡ // -> ° o/ -> œ | 2303 | others | / | s/ -> ß ?/ -> ¿ !/ -> ¡ // -> ° o/ -> œ |
| 2304 | | / | 2/ -> ½ 3/ -> ¾ 4/ -> ?¼ | 2304 | | / | 2/ -> ½ 3/ -> ¾ 4/ -> ?¼ |
| 2305 | | [ | \\='[ -> ‘ \"[ -> “ | ||
| 2306 | | ] | \\='] -> ’ \"] -> ” | ||
| 2307 | | , | \\=', -> ‚ \", -> „ | ||
| 2305 | | various | << -> « >> -> » o_ -> º a_ -> ª | 2308 | | various | << -> « >> -> » o_ -> º a_ -> ª |
| 2306 | 2309 | ||
| 2307 | Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | 2310 | Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' |
| @@ -2309,6 +2312,12 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | |||
| 2309 | 2312 | ||
| 2310 | ;; Fixme: ¦ § ¨ © ¬ ± ´ µ ¶ · ¸ × ÷ | 2313 | ;; Fixme: ¦ § ¨ © ¬ ± ´ µ ¶ · ¸ × ÷ |
| 2311 | (quail-define-rules | 2314 | (quail-define-rules |
| 2315 | ("'[" ?‘) | ||
| 2316 | ("']" ?’) | ||
| 2317 | ("\"[" ?“) | ||
| 2318 | ("\"]" ?”) | ||
| 2319 | ("\"," ?„) | ||
| 2320 | ("'," ?‚) | ||
| 2312 | ("2/" ?½) | 2321 | ("2/" ?½) |
| 2313 | ("3/" ?¾) | 2322 | ("3/" ?¾) |
| 2314 | ("4/" ?¼) | 2323 | ("4/" ?¼) |
| @@ -2341,6 +2350,8 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | |||
| 2341 | ("//" ?°) | 2350 | ("//" ?°) |
| 2342 | ("<<" ?\«) | 2351 | ("<<" ?\«) |
| 2343 | (">>" ?\») | 2352 | (">>" ?\») |
| 2353 | ("<~" ?\‹) | ||
| 2354 | (">~" ?\›) | ||
| 2344 | ("?/" ?¿) | 2355 | ("?/" ?¿) |
| 2345 | ("$/" ?£) | 2356 | ("$/" ?£) |
| 2346 | ("$/" ?¤) | 2357 | ("$/" ?¤) |
| @@ -2532,6 +2543,12 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | |||
| 2532 | ("z~" ?ž) | 2543 | ("z~" ?ž) |
| 2533 | ("--" ?¯) | 2544 | ("--" ?¯) |
| 2534 | 2545 | ||
| 2546 | ("'[[" ["'["]) | ||
| 2547 | ("']]" ["']"]) | ||
| 2548 | ("\"[[" ["\"["]) | ||
| 2549 | ("\"]]" ["\"]"]) | ||
| 2550 | ("\",," ["\","]) | ||
| 2551 | ("',," ["',"]) | ||
| 2535 | ("2//" ["2/"]) | 2552 | ("2//" ["2/"]) |
| 2536 | ("3//" ["3/"]) | 2553 | ("3//" ["3/"]) |
| 2537 | ("4//" ["4/"]) | 2554 | ("4//" ["4/"]) |
| @@ -2564,6 +2581,8 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | |||
| 2564 | ("///" ["//"]) | 2581 | ("///" ["//"]) |
| 2565 | ("<<<" ["<<"]) | 2582 | ("<<<" ["<<"]) |
| 2566 | (">>>" [">>"]) | 2583 | (">>>" [">>"]) |
| 2584 | ("<~~" ["<~"]) | ||
| 2585 | (">~~" [">~"]) | ||
| 2567 | ("?//" ["?/"]) | 2586 | ("?//" ["?/"]) |
| 2568 | ("$//" ["$/"]) | 2587 | ("$//" ["$/"]) |
| 2569 | ("A''" ["A'"]) | 2588 | ("A''" ["A'"]) |
diff --git a/lisp/leim/quail/latin-pre.el b/lisp/leim/quail/latin-pre.el index 91164df0c72..b344a6304bb 100644 --- a/lisp/leim/quail/latin-pre.el +++ b/lisp/leim/quail/latin-pre.el | |||
| @@ -1107,6 +1107,9 @@ of characters from a single Latin-N charset. | |||
| 1107 | macron | - | -a -> ā -/e -> ǣ -- -> ¯ | 1107 | macron | - | -a -> ā -/e -> ǣ -- -> ¯ |
| 1108 | dot above | / . | /g -> ġ .g -> ġ | 1108 | dot above | / . | /g -> ġ .g -> ġ |
| 1109 | misc | \" ~ / | \"s -> ß ~d -> ð ~t -> þ /a -> å /e -> æ /o -> ø | 1109 | misc | \" ~ / | \"s -> ß ~d -> ð ~t -> þ /a -> å /e -> æ /o -> ø |
| 1110 | | [ | [\\=' -> ‘ [\" -> “ | ||
| 1111 | | ] | ]\\=' -> ’ ]\" -> ” | ||
| 1112 | | , | ,\\=' -> ‚ ,\" -> „ | ||
| 1110 | symbol | ~ | ~> -> » ~< -> « ~! -> ¡ ~? -> ¿ ~~ -> ¸ | 1113 | symbol | ~ | ~> -> » ~< -> « ~! -> ¡ ~? -> ¿ ~~ -> ¸ |
| 1111 | symbol | _ / | _o -> º _a -> ª // -> ° /\\ -> × _y -> ¥ | 1114 | symbol | _ / | _o -> º _a -> ª // -> ° /\\ -> × _y -> ¥ |
| 1112 | symbol | ^ | ^r -> ® ^t -> ™ ^c -> © ^1 -> ¹ ^2 -> ² ^3 -> ³ | 1115 | symbol | ^ | ^r -> ® ^t -> ™ ^c -> © ^1 -> ¹ ^2 -> ² ^3 -> ³ |
| @@ -1132,6 +1135,12 @@ of characters from a single Latin-N charset. | |||
| 1132 | ("-y" ?ȳ) | 1135 | ("-y" ?ȳ) |
| 1133 | ("' " ?') | 1136 | ("' " ?') |
| 1134 | ("''" ?´) | 1137 | ("''" ?´) |
| 1138 | ("['" ?‘) | ||
| 1139 | ("]'" ?’) | ||
| 1140 | ("[\"" ?“) | ||
| 1141 | ("]\"" ?”) | ||
| 1142 | (",\"" ?„) | ||
| 1143 | (",'" ?‚) | ||
| 1135 | ("'A" ?Á) | 1144 | ("'A" ?Á) |
| 1136 | ("'E" ?É) | 1145 | ("'E" ?É) |
| 1137 | ("'I" ?Í) | 1146 | ("'I" ?Í) |
| @@ -1295,8 +1304,10 @@ of characters from a single Latin-N charset. | |||
| 1295 | ("~-" ?) | 1304 | ("~-" ?) |
| 1296 | ("~." ?·) | 1305 | ("~." ?·) |
| 1297 | ("~<" ?\«) | 1306 | ("~<" ?\«) |
| 1307 | ("~~<" ?\‹) | ||
| 1298 | ("~=" ?¯) | 1308 | ("~=" ?¯) |
| 1299 | ("~>" ?\») | 1309 | ("~>" ?\») |
| 1310 | ("~~>" ?\›) | ||
| 1300 | ("~?" ?¿) | 1311 | ("~?" ?¿) |
| 1301 | ("~A" ?Ã) | 1312 | ("~A" ?Ã) |
| 1302 | ("~A" ?Ă) | 1313 | ("~A" ?Ă) |