From: Robert Pluim Date: Thu, 16 May 2024 14:25:24 +0000 (+0200) Subject: Improve support for entering quotation marks X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3e017d675fc3100221d7042dd07f1e7f2d797b5b;p=emacs.git 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) (cherry picked from commit 0e811aba53f5cc3a8d8c13fa8922149f95e83da4) --- diff --git a/etc/NEWS b/etc/NEWS index 4502c6066c2..0286defec93 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -573,6 +573,36 @@ These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E', respectively, in addition to the existing translations 'C-x 8 / e' and 'C-x 8 / E'. +*** New 'C-x 8' key translations for "low" quotes "„", and "‚". +These can now be entered with 'C-x , "' and 'C-x , ''. + +*** New German language 'C-x 8' key translations for quotation marks. +The characters "„", "“", and "”" can now be entered with 'C-x 8 v', +'C-x 8 b' and 'C-x 8 n'. The single versions "‚", "‘", and "’" can now +be entered with 'C-x 8 V', 'C-x 8 B' and 'C-x 8 N'. These characters +are used for the official German quoting style. Using them requires +activating German language support via 'iso-transl-set-language'. + +*** "latin-prefix" and "latin-postfix" quotation marks additions. +These input methods can now produce single, double and "low" left and +right quotation marks: + + "‘", "’", "“", "”", "„", and "‚" + +by using "[", "]", and "," for "left", "right", and "low" respectively +to modify "'" and """. + +*** "latin-prefix" and "latin-postfix" guillemets support. +These input methods can now produce single guillemets "‹" and "›". For +"latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and +">~". Double guillemets ("«" and "»") were already supported. + +*** New French language 'C-x 8' key translations for "‹" and "›". +These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >' +respectively, after activating French language support via +'iso-transl-set-language'. Double guillemets were already supported via +'C-x 8 <' and 'C-x 8 >' + * Changes in Specialized Modes and Packages in Emacs 30.1 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 @@ ("*+" . [?±]) ("+" . [?±]) (",," . [?¸]) + (",\"" . [?„]) + (",'" . [?‚]) (",A" . [?Ą]) (",C" . [?Ç]) (",N" . [?Ņ]) @@ -327,7 +329,9 @@ sequence VECTOR. (VECTOR is normally one character long.)") ("u" . [?ŭ])) ("French" ("C" . [?Ç]) - ("c" . [?ç])) + ("c" . [?ç]) + ("~<" . [?‹]) + ("~>" . [?›])) ("German" ("A" . [?Ä]) ("O" . [?Ö]) @@ -336,6 +340,12 @@ sequence VECTOR. (VECTOR is normally one character long.)") ("a" . [?ä]) ("o" . [?ö]) ("s" . [?ß]) + ("v" . [?„]) + ("b" . [?“]) + ("n" . [?”]) + ("V" . [?‚]) + ("B" . [?‘]) + ("N" . [?’]) ("u" . [?ü])) ("Portuguese" ("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. subscript | _ | 0_ -> ₀ 1_ -> ₁ +_ -> ₊ -_ -> ₋ others | / | s/ -> ß ?/ -> ¿ !/ -> ¡ // -> ° o/ -> œ | / | 2/ -> ½ 3/ -> ¾ 4/ -> ?¼ + | [ | \\='[ -> ‘ \"[ -> “ + | ] | \\='] -> ’ \"] -> ” + | , | \\=', -> ‚ \", -> „ | various | << -> « >> -> » o_ -> º a_ -> ª 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\\=' ;; Fixme: ¦ § ¨ © ¬ ± ´ µ ¶ · ¸ × ÷ (quail-define-rules + ("'[" ?‘) + ("']" ?’) + ("\"[" ?“) + ("\"]" ?”) + ("\"," ?„) + ("'," ?‚) ("2/" ?½) ("3/" ?¾) ("4/" ?¼) @@ -2341,6 +2350,8 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' ("//" ?°) ("<<" ?\«) (">>" ?\») + ("<~" ?\‹) + (">~" ?\›) ("?/" ?¿) ("$/" ?£) ("$/" ?¤) @@ -2532,6 +2543,12 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' ("z~" ?ž) ("--" ?¯) + ("'[[" ["'["]) + ("']]" ["']"]) + ("\"[[" ["\"["]) + ("\"]]" ["\"]"]) + ("\",," ["\","]) + ("',," ["',"]) ("2//" ["2/"]) ("3//" ["3/"]) ("4//" ["4/"]) @@ -2564,6 +2581,8 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' ("///" ["//"]) ("<<<" ["<<"]) (">>>" [">>"]) + ("<~~" ["<~"]) + (">~~" [">~"]) ("?//" ["?/"]) ("$//" ["$/"]) ("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. macron | - | -a -> ā -/e -> ǣ -- -> ¯ dot above | / . | /g -> ġ .g -> ġ misc | \" ~ / | \"s -> ß ~d -> ð ~t -> þ /a -> å /e -> æ /o -> ø + | [ | [\\=' -> ‘ [\" -> “ + | ] | ]\\=' -> ’ ]\" -> ” + | , | ,\\=' -> ‚ ,\" -> „ symbol | ~ | ~> -> » ~< -> « ~! -> ¡ ~? -> ¿ ~~ -> ¸ symbol | _ / | _o -> º _a -> ª // -> ° /\\ -> × _y -> ¥ symbol | ^ | ^r -> ® ^t -> ™ ^c -> © ^1 -> ¹ ^2 -> ² ^3 -> ³ @@ -1132,6 +1135,12 @@ of characters from a single Latin-N charset. ("-y" ?ȳ) ("' " ?') ("''" ?´) + ("['" ?‘) + ("]'" ?’) + ("[\"" ?“) + ("]\"" ?”) + (",\"" ?„) + (",'" ?‚) ("'A" ?Á) ("'E" ?É) ("'I" ?Í) @@ -1295,8 +1304,10 @@ of characters from a single Latin-N charset. ("~-" ?­) ("~." ?·) ("~<" ?\«) + ("~~<" ?\‹) ("~=" ?¯) ("~>" ?\») + ("~~>" ?\›) ("~?" ?¿) ("~A" ?Ã) ("~A" ?Ă)