* [ELPA] New Package: greek-polytonic.el
@ 2018-07-14 9:29 Johannes Choo
2018-07-14 11:16 ` Eli Zaretskii
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Choo @ 2018-07-14 9:29 UTC (permalink / raw)
To: emacs-devel@gnu.org
[-- Attachment #1.1: Type: text/plain, Size: 2574 bytes --]
Hi all,
I'd like to contribute a new package greek-polytonic.el to ELPA, or where
ever it is more appropriate.
The latest version is maintained at
https://github.com/jhanschoo/quail-greek-polytonic/tree/fsf .
Rationale: Polytonic Greek input is of interest primarily to classicists,
people who want to reproduce Ancient Greek quotations, and for input of
Katharevousa Greek. There already exist several input methods for Polytonic
Greek in the greek.el file distributed with Emacs, but this file improves
over them in the following 2 ways:
1) Mapping based on "standard" Win and Mac layouts—The existing input
methods' mappings are modeled after ad-hoc polytonic input schemes devised
by classicists very early in computing history, in conjunction with
specialized software. The mappings I use are modeled after Mac and Windows
polytonic Greek keyboard mappings, (in turn modeled after monotonic Greek),
and hence require less context-switching to use for people accustomed to
modern and popular Greek keyboards.
2) Input of combining character sequences possible—While the existing input
methods allow for the input of bare letters and precomposed
letter+diacritics, but not for Unicode letter+diacritic sequences that are
not represented by precomposed characters. For example, the sequence
<alpha>+<combining macron>+<combining acute accent> is not represented by
any precomposed character, but appears frequently in critical editions of
classics. greek-polytonic.el allows for the input of combining characters
themselves, and substitutes such sequences with their Unicode-canonical
precomposed equivalents if they exist; hence input from this method
satisfies Unicode-NFC (Normalization Form Canonical Composition), while
allowing input of sequences that have no corresponding precomposed
character. Though it is to be admitted that font support and Emacs's
display support for such decomposed sequences is still rudimentary and the
sequence may visually appear funky.
While I consider this package functionally complete, there are several
avenues for further work if there is interest:
—Allow "prefix" input of diacritics à la most other input methods.
(currently only "postfix" diacritic input is supported)
—Allow input of greek numeral modifiers, of archaic letters, and of greek
"symbols".
—Allow input of non-combining versions of diacritics.
Thanks for your attention.
Bests,
Johannes Choo
--
Bests,
Johannes Choo
B. Comp student at National University of Singapore
NUSHackers Coreteam
[-- Attachment #1.2: Type: text/html, Size: 2890 bytes --]
[-- Attachment #2: greek-polytonic.el --]
[-- Type: text/x-emacs-lisp, Size: 25844 bytes --]
;;; greek-polytonic.el --- Quail package for inputting polytonic Greek
;; Copyright (C) 2018 Free Software Foundation, Inc. <http://fsf.org/>
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;; Author: Johannes Choo <jhanschoo@gmail.com>
;; Version: 1.0.3
;; Package-Requires: ((emacs "20"))
;; Created: 11 Dec 2016
;; Keywords: i18n, multilingual, input method, greek
;; URL: https://github.com/jhanschoo/quail-greek-polytonic
;;; Commentary:
;; This package provides a method for inputting polytonic Greek, based
;; on the Mac and (to a lesser extent) Windows polytonic Greek
;; keyboards, with several additional bindings to aid classical
;; scholars (TODO).
;; cf. http://unicode.org/charts/PDF/U0370.pdf Greek and Coptic
;; and http://unicode.org/charts/PDF/U1F00.pdf Greek Extended
;;
;; Where Unicode specifies a NFC for characters in the above tables,
;; we use the normalized forms instead.
;;
;; Where a decomposed sequence of letters and combining diacritics is
;; necessary, we use the following sequence, modeling the canonical
;; Unicode decomposition of procomposed characters where available,
;; and from closest to furthest where unavailable:
;;
;; <letter>-<length>-<diaeresis>-<breathing>-<accent>-<ypogegrammeni>
;;
;;
;; For convenience, we list here all the combining diacritics that
;; this input method inputs, or that a precomposed character that this
;; input method inputs decomposes into.
;;
;; <length>:
;; U+0304 COMBINING MACRON
;; U+0306 COMBINING BREVE
;;
;; <diaeresis>:
;; U+0308 COMBINING DIAERESIS
;;
;; <breathing>:
;; U+0313 COMBINING COMMA ABOVE
;; U+0314 COMBINING REVERSED COMMA ABOVE
;; U+0308 COMBINING DIAERESIS
;;
;; <accent>:
;; U+0301 COMBINING ACUTE ACCENT
;; U+0300 COMBINING GRAVE ACCENT
;; U+0342 COMBINING GREEK PERISPOMENI
;;
;; <ypogegrammeni>:
;; U+0345 COMBINING GREEK YPOGEGRAMMENI
;;
;; Relevant known naming defects in Unicode names in the two blocks:
;; U+039B is GREEK CAPITAL LETTER LAMDA
;; where GREEK CAPITAL LETTER LAMBDA might be expected.
;; U+03BB is GREEK SMALL LETTER LAMDA
;; where GREEK SMALL LETTER LAMBDA might be expected.
;;
;;; Code:
(require 'quail)
(quail-define-package
"greek-polytonic" "Greek" "ἑ" nil
"A polytonic Greek layout based on Mac and Windows polytonic Greek
layouts, with several modifications, to write UTF-8 encoded polytonic
Greek characters."
nil t t t t nil nil nil nil nil t)
(quail-define-rules
;; lowercase keyboard
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?̄) ; U+0304 COMBINING MACRON
("=" ?=)
("`" ?`)
("q" ?\;) ; U+003B SEMICOLON
("w" ?ς) ; U+03C2 GREEK SMALL LETTER FINAL SIGMA
("e" ?ε) ; U+03B5 GREEK SMALL LETTER EPSILON
("r" ?ρ) ; U+03C1 GREEK SMALL LETTER RHO
("t" ?τ) ; U+03C4 GREEK SMALL LETTER TAU
("y" ?υ) ; U+03C5 GREEK SMALL LETTER UPSILON
("u" ?θ) ; U+03B8 GREEK SMALL LETTER THETA
("i" ?ι) ; U+03B9 GREEK SMALL LETTER IOTA
("o" ?ο) ; U+03BF GREEK SMALL LETTER OMICRON
("p" ?π) ; U+03C0 GREEK SMALL LETTER PI
("[" ?͂) ; U+0342 COMBINING GREEK PERISPOMENI
("]" ?̀) ; U+0300 COMBINING GRAVE ACCENT
("a" ?α) ; U+03B1 GREEK SMALL LETTER ALPHA
("s" ?σ) ; U+03C3 GREEK SMALL LETTER SIGMA
("d" ?δ) ; U+03B4 GREEK SMALL LETTER DELTA
("f" ?φ) ; U+03C6 GREEK SMALL LETTER PHI
("g" ?γ) ; U+03B3 GREEK SMALL LETTER GAMMA
("h" ?η) ; U+03B7 GREEK SMALL LETTER ETA
("j" ?ξ) ; U+03BE GREEK SMALL LETTER XI
("k" ?κ) ; U+03BA GREEK SMALL LETTER KAPPA
("l" ?λ) ; U+03BB GREEK SMALL LETTER LAMDA
(";" ?́) ; U+0301 COMBINING ACUTE ACCENT
("'" ?̓) ; U+0313 COMBINING COMMA ABOVE
("\\" ?\\)
("z" ?ζ) ; U+03B6 GREEK SMALL LETTER ZETA
("x" ?χ) ; U+03C7 GREEK SMALL LETTER CHI
("c" ?ψ) ; U+03C8 GREEK SMALL LETTER PSI
("v" ?ω) ; U+03C9 GREEK SMALL LETTER OMEGA
("b" ?β) ; U+03B2 GREEK SMALL LETTER BETA
("n" ?ν) ; U+03BD GREEK SMALL LETTER NU
("m" ?μ) ; U+03BC GREEK SMALL LETTER MU
("," ?,)
("." ?.)
("/" ?/)
;; uppercase keyboard
("!" ?!)
("@" ?@)
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?^)
("&" ?&)
("*" ?*)
("(" ?()
(")" ?\))
("_" ?̆) ; U+0306 COMBINING BREVE
("+" ?+)
("~" ~)
("Q" ?:) ; U+003A COLON
("W" ?·) ; U+00B7 MIDDLE DOT
("E" ?Ε) ; U+0395 GREEK CAPITAL LETTER EPSILON
("R" ?Ρ) ; U+03A1 GREEK CAPITAL LETTER RHO
("T" ?Τ) ; U+03A4 GREEK CAPITAL LETTER TAU
("Y" ?Υ) ; U+03A5 GREEK CAPITAL LETTER UPSILON
("U" ?Θ) ; U+0398 GREEK CAPITAL LETTER THETA
("I" ?Ι) ; U+0399 GREEK CAPITAL LETTER IOTA
("O" ?Ο) ; U+039F GREEK CAPITAL LETTER OMICRON
("P" ?Π) ; U+03A0 GREEK CAPITAL LETTER PI
("{" ?ͅ) ; U+0345 COMBINING GREEK YPOGEGRAMMENI
("}" ?̀) ; U+0300 COMBINING GRAVE ACCENT
("A" ?Α) ; U+0391 GREEK CAPITAL LETTER ALPHA
("S" ?Σ) ; U+03A3 GREEK CAPITAL LETTER SIGMA
("D" ?Δ) ; U+0394 GREEK CAPITAL LETTER DELTA
("F" ?Φ) ; U+03A6 GREEK CAPITAL LETTER PHI
("G" ?Γ) ; U+0393 GREEK CAPITAL LETTER GAMMA
("H" ?Η) ; U+0397 GREEK CAPITAL LETTER ETA
("J" ?Ξ) ; U+039E GREEK CAPITAL LETTER XI
("K" ?Κ) ; U+039A GREEK CAPITAL LETTER KAPPA
("L" ?Λ) ; U+039B GREEK CAPITAL LETTER LAMDA
(":" ?̈) ; U+0308 COMBINING DIAERESIS
("\"" ?̔) ; U+0314 COMBINING REVERSED COMMA ABOVE
("|" ?|)
("Z" ?Ζ) ; U+0396 GREEK CAPITAL LETTER ZETA
("X" ?Χ) ; U+03A7 GREEK CAPITAL LETTER CHI
("C" ?Ψ) ; U+03A8 GREEK CAPITAL LETTER PSI
("V" ?Ω) ; U+03A9 GREEK CAPITAL LETTER OMEGA
("B" ?Β) ; U+0392 GREEK CAPITAL LETTER BETA
("N" ?Ν) ; U+039D GREEK CAPITAL LETTER NU
("M" ?Μ) ; U+039C GREEK CAPITAL LETTER MU
("<" ?<)
(">" ?>)
("?" ??)
;; precomposed monotonic greek letters
("A;" ?Ά) ; U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS ≡ 0391 0301
("E;" ?Έ) ; U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS ≡ 0395 0301
("E;" ?Ή) ; U+0389 GREEK CAPITAL LETTER ETA WITH TONOS ≡ 0397 0301
("I;" ?Ί) ; U+038A GREEK CAPITAL LETTER IOTA WITH TONOS ≡ 0399 0301
("O;" ?Ό) ; U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS ≡ 039F 0301
("Y;" ?Ύ) ; U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS ≡ 03A5 0301
("V;" ?Ώ) ; U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS ≡ 03A9 0301
("i:;" ?ΐ) ; U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS ≡ 03B9 0308 0301
("I:" ?Ϊ) ; U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA ≡ 0399 0308
("Y:" ?Ϋ) ; U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA ≡ 03A5 0308
("a;" ?ά) ; U+03AC GREEK SMALL LETTER ALPHA WITH TONOS ≡ 03B1 0301
("e;" ?έ) ; U+03AD GREEK SMALL LETTER EPSILON WITH TONOS ≡ 03B5 0301
("h;" ?ή) ; U+03AE GREEK SMALL LETTER ETA WITH TONOS ≡ 03B7 0301
("i;" ?ί) ; U+03AF GREEK SMALL LETTER IOTA WITH TONOS ≡ 03B9 0301
("y:;" ?ΰ) ; U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS ≡ 03CB 0301
("i:" ?ϊ) ; U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA ≡ 03B9 0308
("y:" ?ϋ) ; U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA ≡ 03C5 0308
("o;" ?ό) ; U+03CC GREEK SMALL LETTER OMICRON WITH TONOS ≡ 03BF 0301
("y;" ?ύ) ; U+03CD GREEK SMALL LETTER UPSILON WITH TONOS ≡ 03C5 0301
("v;" ?ώ) ; U+03CE GREEK SMALL LETTER OMEGA WITH TONOS ≡ 03C9 0301
;; precomposed polytonic greek letters
("a'" ?ἀ) ; U+1F00 GREEK SMALL LETTER ALPHA WITH PSILI ≡
("a\"" ?ἁ) ; U+1F01 GREEK SMALL LETTER ALPHA WITH DASIA ≡
("a']" ?ἂ) ; U+1F02 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA ≡
("a\"]" ?ἃ) ; U+1F03 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA ≡
("a';" ?ἄ) ; U+1F04 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA ≡
("a\";" ?ἅ) ; U+1F05 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA ≡
("a'[" ?ἆ) ; U+1F06 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI ≡
("a\"[" ?ἇ) ; U+1F07 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI ≡
("A'" ?Ἀ) ; U+1F08 GREEK CAPITAL LETTER ALPHA WITH PSILI ≡
("A\"" ?Ἁ) ; U+1F09 GREEK CAPITAL LETTER ALPHA WITH DASIA ≡
("A']" ?Ἂ) ; U+1F0A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA ≡
("A\"]" ?Ἃ) ; U+1F0B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA ≡
("A';" ?Ἄ) ; U+1F0C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA ≡
("A\";" ?Ἅ) ; U+1F0D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA ≡
("A'[" ?Ἆ) ; U+1F0E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI ≡
("A\"[" ?Ἇ) ; U+1F0F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI ≡
("e'" ?ἐ) ; U+1F10 GREEK SMALL LETTER EPSILON WITH PSILI ≡
("e\"" ?ἑ) ; U+1F11 GREEK SMALL LETTER EPSILON WITH DASIA ≡
("e']" ?ἒ) ; U+1F12 GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA ≡
("e\"]" ?ἓ) ; U+1F13 GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA ≡
("e';" ?ἔ) ; U+1F14 GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA ≡
("e\";" ?ἕ) ; U+1F15 GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA ≡
("E'" ?Ἐ) ; U+1F18 GREEK CAPITAL LETTER EPSILON WITH PSILI ≡
("E\"" ?Ἑ) ; U+1F19 GREEK CAPITAL LETTER EPSILON WITH DASIA ≡
("E']" ?Ἒ) ; U+1F1A GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA ≡
("E\"]" ?Ἓ) ; U+1F1B GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA ≡
("E';" ?Ἔ) ; U+1F1C GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA ≡
("E\";" ?Ἕ) ; U+1F1D GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA ≡
("h'" ?ἠ) ; U+1F20 GREEK SMALL LETTER ETA WITH PSILI ≡
("h\"" ?ἡ) ; U+1F21 GREEK SMALL LETTER ETA WITH DASIA ≡
("h']" ?ἢ) ; U+1F22 GREEK SMALL LETTER ETA WITH PSILI AND VARIA ≡
("h\"]" ?ἣ) ; U+1F23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA ≡
("h';" ?ἤ) ; U+1F24 GREEK SMALL LETTER ETA WITH PSILI AND OXIA ≡
("h\";" ?ἥ) ; U+1F25 GREEK SMALL LETTER ETA WITH DASIA AND OXIA ≡
("h'[" ?ἦ) ; U+1F26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI ≡
("h\"[" ?ἧ) ; U+1F27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI ≡
("H'" ?Ἠ) ; U+1F28 GREEK CAPITAL LETTER ETA WITH PSILI ≡
("H\"" ?Ἡ) ; U+1F29 GREEK CAPITAL LETTER ETA WITH DASIA ≡
("H']" ?Ἢ) ; U+1F2A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA ≡
("H\"]" ?Ἣ) ; U+1F2B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA ≡
("H';" ?Ἤ) ; U+1F2C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA ≡
("H\";" ?Ἥ) ; U+1F2D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA ≡
("H'[" ?Ἦ) ; U+1F2E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI ≡
("H\"[" ?Ἧ) ; U+1F2F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI ≡
("i'" ?ἰ) ; U+1F30 GREEK SMALL LETTER IOTA WITH PSILI ≡
("i\"" ?ἱ) ; U+1F31 GREEK SMALL LETTER IOTA WITH DASIA ≡
("i']" ?ἲ) ; U+1F32 GREEK SMALL LETTER IOTA WITH PSILI AND VARIA ≡
("i\"]" ?ἳ) ; U+1F33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA ≡
("i';" ?ἴ) ; U+1F34 GREEK SMALL LETTER IOTA WITH PSILI AND OXIA ≡
("i\";" ?ἵ) ; U+1F35 GREEK SMALL LETTER IOTA WITH DASIA AND OXIA ≡
("i'[" ?ἶ) ; U+1F36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI ≡
("i\"[" ?ἷ) ; U+1F37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI ≡
("I'" ?Ἰ) ; U+1F38 GREEK CAPITAL LETTER IOTA WITH PSILI ≡
("I\"" ?Ἱ) ; U+1F39 GREEK CAPITAL LETTER IOTA WITH DASIA ≡
("I']" ?Ἲ) ; U+1F3A GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA ≡
("I\"]" ?Ἳ) ; U+1F3B GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA ≡
("I';" ?Ἴ) ; U+1F3C GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA ≡
("I\";" ?Ἵ) ; U+1F3D GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA ≡
("I'[" ?Ἶ) ; U+1F3E GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI ≡
("I\"[" ?Ἷ) ; U+1F3F GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI ≡
("o'" ?ὀ) ; U+1F40 GREEK SMALL LETTER OMICRON WITH PSILI ≡
("o\"" ?ὁ) ; U+1F41 GREEK SMALL LETTER OMICRON WITH DASIA ≡
("o']" ?ὂ) ; U+1F42 GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA ≡
("o\"]" ?ὃ) ; U+1F43 GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA ≡
("o';" ?ὄ) ; U+1F44 GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA ≡
("o\";" ?ὅ) ; U+1F45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA ≡
("O'" ?Ὀ) ; U+1F48 GREEK CAPITAL LETTER OMICRON WITH PSILI ≡
("O\"" ?Ὁ) ; U+1F49 GREEK CAPITAL LETTER OMICRON WITH DASIA ≡
("O']" ?Ὂ) ; U+1F4A GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA ≡
("O\"]" ?Ὃ) ; U+1F4B GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA ≡
("O';" ?Ὄ) ; U+1F4C GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA ≡
("O\";" ?Ὅ) ; U+1F4D GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA ≡
("y'" ?ὐ) ; U+1F50 GREEK SMALL LETTER UPSILON WITH PSILI ≡
("y\"" ?ὑ) ; U+1F51 GREEK SMALL LETTER UPSILON WITH DASIA ≡
("y']" ?ὒ) ; U+1F52 GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA ≡
("y\"]" ?ὓ) ; U+1F53 GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA ≡
("y';" ?ὔ) ; U+1F54 GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA ≡
("y\";" ?ὕ) ; U+1F55 GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA ≡
("y'[" ?ὖ) ; U+1F56 GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI ≡
("y\"[" ?ὗ) ; U+1F57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI ≡
("Y\"" ?Ὑ) ; U+1F59 GREEK CAPITAL LETTER UPSILON WITH DASIA ≡
("Y\"]" ?Ὓ) ; U+1F5B GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA ≡
("Y\";" ?Ὕ) ; U+1F5D GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA ≡
("Y\"[" ?Ὗ) ; U+1F5F GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI ≡
("v'" ?ὠ) ; U+1F60 GREEK SMALL LETTER OMEGA WITH PSILI ≡
("v\"" ?ὡ) ; U+1F61 GREEK SMALL LETTER OMEGA WITH DASIA ≡
("v']" ?ὢ) ; U+1F62 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA ≡
("v\"]" ?ὣ) ; U+1F63 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA ≡
("v';" ?ὤ) ; U+1F64 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA ≡
("v\";" ?ὥ) ; U+1F65 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA ≡
("v'[" ?ὦ) ; U+1F66 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI ≡
("v\"[" ?ὧ) ; U+1F67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI ≡
("V'" ?Ὠ) ; U+1F68 GREEK CAPITAL LETTER OMEGA WITH PSILI ≡
("V\"" ?Ὡ) ; U+1F69 GREEK CAPITAL LETTER OMEGA WITH DASIA ≡
("V']" ?Ὢ) ; U+1F6A GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA ≡
("V\"]" ?Ὣ) ; U+1F6B GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA ≡
("V';" ?Ὤ) ; U+1F6C GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA ≡
("V\";" ?Ὥ) ; U+1F6D GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA ≡
("V'[" ?Ὦ) ; U+1F6E GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI ≡
("V\"[" ?Ὧ) ; U+1F6F GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI ≡
("a]" ?ὰ) ; U+1F70 GREEK SMALL LETTER ALPHA WITH VARIA ≡
;("a;" ?ά) ; U+1F71 GREEK SMALL LETTER ALPHA WITH OXIA ≡
("e]" ?ὲ) ; U+1F72 GREEK SMALL LETTER EPSILON WITH VARIA ≡
;("e;" ?έ) ; U+1F73 GREEK SMALL LETTER EPSILON WITH OXIA ≡
("h]" ?ὴ) ; U+1F74 GREEK SMALL LETTER ETA WITH VARIA ≡
;("h;" ?ὴ) ; U+1F75 GREEK SMALL LETTER ETA WITH OXIA ≡
("i]" ?ὶ) ; U+1F76 GREEK SMALL LETTER IOTA WITH VARIA ≡
;("i;" ?ί) ; U+1F77 GREEK SMALL LETTER IOTA WITH OXIA ≡
("o]" ?ὸ) ; U+1F78 GREEK SMALL LETTER OMICRON WITH VARIA ≡
;("o;" ?ό) ; U+1F79 GREEK SMALL LETTER OMICRON WITH OXIA ≡
("y]" ?ὺ) ; U+1F7A GREEK SMALL LETTER UPSILON WITH VARIA ≡
;("y;" ?ύ) ; U+1F7B GREEK SMALL LETTER UPSILON WITH OXIA ≡
("v]" ?ὼ) ; U+1F7C GREEK SMALL LETTER OMEGA WITH VARIA ≡
;("v;" ?ώ) ; U+1F7D GREEK SMALL LETTER OMEGA WITH OXIA ≡
("a'{" ?ᾀ) ; U+1F80 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI ≡
("a\"{" ?ᾁ) ; U+1F81 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI ≡
("a']{" ?ᾂ) ; U+1F82 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI ≡
("a\"]{" ?ᾃ) ; U+1F83 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI ≡
("a';{" ?ᾄ) ; U+1F84 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI ≡
("a\";{" ?ᾅ) ; U+1F85 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI ≡
("a'[{" ?ᾆ) ; U+1F86 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ≡
("a\"[{" ?ᾇ) ; U+1F87 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ≡
("A'{" ?ᾈ) ; U+1F88 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI ≡
("A\"{" ?ᾉ) ; U+1F89 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI ≡
("A']{" ?ᾊ) ; U+1F8A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI ≡
("A\"]{" ?ᾋ) ; U+1F8B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI ≡
("A';{" ?ᾌ) ; U+1F8C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI ≡
("A\";{" ?ᾍ) ; U+1F8D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI ≡
("A'[{" ?ᾎ) ; U+1F8E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ≡
("A\"[{" ?ᾏ) ; U+1F8F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ≡
("h'{" ?ᾐ) ; U+1F90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI ≡
("h\"{" ?ᾑ) ; U+1F91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI ≡
("h']{" ?ᾒ) ; U+1F92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI ≡
("h\"]{" ?ᾒ) ; U+1F93 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI ≡
("h';{" ?ᾔ) ; U+1F94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI ≡
("h\";{" ?ᾕ) ; U+1F95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI ≡
("h'[{" ?ᾖ) ; U+1F96 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ≡
("h\"[{" ?ᾗ) ; U+1F97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ≡
("H'{" ?ᾘ) ; U+1F98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI ≡
("H\"{" ?ᾙ) ; U+1F99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI ≡
("H']{" ?ᾚ) ; U+1F9A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI ≡
("H\"]{" ?ᾛ) ; U+1F9B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI ≡
("H';{" ?ᾜ) ; U+1F9C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI ≡
("H\";{" ?ᾝ) ; U+1F9D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI ≡
("H'[{" ?ᾞ) ; U+1F9E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ≡
("H\"[{" ?ᾟ) ; U+1F9F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ≡
("v'{" ?ᾠ) ; U+1FA0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI ≡
("v\"{" ?ᾡ) ; U+1FA1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI ≡
("v']{" ?ᾢ) ; U+1FA2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI ≡
("v\"]{" ?ᾣ) ; U+1FA3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI ≡
("v';{" ?ᾤ) ; U+1FA4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI ≡
("v\";{" ?ᾥ) ; U+1FA5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI ≡
("v'[{" ?ᾦ) ; U+1FA6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ≡
("v\"[{" ?ᾧ) ; U+1FA7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ≡
("V'{" ?ᾨ) ; U+1FA8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI ≡
("V\"{" ?ᾩ) ; U+1FA9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI ≡
("V']{" ?ᾪ) ; U+1FAA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI ≡
("V\"]{" ?ᾫ) ; U+1FAB GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI ≡
("V';{" ?ᾬ) ; U+1FAC GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI ≡
("V\";{" ?ᾭ) ; U+1FAD GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI ≡
("V'[{" ?ᾮ) ; U+1FAE GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ≡
("V\"[{" ?ᾯ) ; U+1FAF GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ≡
("a_" ?ᾰ) ; U+1FB0 GREEK SMALL LETTER ALPHA WITH VRACHY ≡
("a-" ?ᾱ) ; U+1FB1 GREEK SMALL LETTER ALPHA WITH MACRON ≡
("a]{" ?ᾲ) ; U+1FB2 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI ≡
("a{" ?ᾳ) ; U+1FB3 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI ≡
("a;{" ?ᾴ) ; U+1FB4 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI ≡
("a[" ?ᾶ) ; U+1FB6 GREEK SMALL LETTER ALPHA WITH PERISPOMENI ≡
("a[{" ?ᾷ) ; U+1FB7 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI ≡
("A_" ?Ᾰ) ; U+1FB8 GREEK CAPITAL LETTER ALPHA WITH VRACHY ≡
("A-" ?Ᾱ) ; U+1FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON ≡
("A]" ?Ὰ) ; U+1FBA GREEK CAPITAL LETTER ALPHA WITH VARIA ≡
;("A;" ?Ά) ; U+1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA ≡
("A{" ?ᾼ) ; U+1FBC GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI ≡
("h]{" ?ῂ) ; U+1FC2 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI ≡
("h{" ?ῃ) ; U+1FC3 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI ≡
("h;{" ?ῄ) ; U+1FC4 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI ≡
("h[" ?ῆ) ; U+1FC6 GREEK SMALL LETTER ETA WITH PERISPOMENI ≡
("h[{" ?ῇ) ; U+1FC7 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI ≡
("E]" ?Ὲ) ; U+1FC8 GREEK CAPITAL LETTER EPSILON WITH VARIA ≡
;("E;" ?Έ) ; U+1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA ≡
("H]" ?Ὴ) ; U+1FCA GREEK CAPITAL LETTER ETA WITH VARIA ≡
;("H;" ?Ή) ; U+1FCB GREEK CAPITAL LETTER ETA WITH OXIA ≡
("H{" ?ῌ) ; U+1FCC GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI ≡
("i_" ?ῐ) ; U+1FD0 GREEK SMALL LETTER IOTA WITH VRACHY ≡
("i-" ?ῑ) ; U+1FD1 GREEK SMALL LETTER IOTA WITH MACRON ≡
("i:]" ?ῒ) ; U+1FD2 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA ≡
;("i:;" ?ΐ) ; U+1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA ≡
("i[" ?ῖ) ; U+1FD6 GREEK SMALL LETTER IOTA WITH PERISPOMENI ≡
("i:[" ?ῗ) ; U+1FD7 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI ≡
("I_" ?Ῐ) ; U+1FD8 GREEK CAPITAL LETTER IOTA WITH VRACHY ≡
("I-" ?Ῑ) ; U+1FD9 GREEK CAPITAL LETTER IOTA WITH MACRON ≡
("I]" ?Ὶ) ; U+1FDA GREEK CAPITAL LETTER IOTA WITH VARIA ≡
;("I;" ?Ί) ; U+1FDB GREEK CAPITAL LETTER IOTA WITH OXIA ≡
("y_" ?ῠ) ; U+1FE0 GREEK SMALL LETTER UPSILON WITH VRACHY ≡
("y-" ?ῡ) ; U+1FE1 GREEK SMALL LETTER UPSILON WITH MACRON ≡
("y:]" ?ῢ) ; U+1FE2 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA ≡
;("y:;" ?ΰ) ; U+1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA ≡
("r'" ?ῤ) ; U+1FE4 GREEK SMALL LETTER RHO WITH PSILI ≡
("r\"" ?ῥ) ; U+1FE5 GREEK SMALL LETTER RHO WITH DASIA ≡
("y[" ?ῦ) ; U+1FE6 GREEK SMALL LETTER UPSILON WITH PERISPOMENI ≡
("y:[" ?ῧ) ; U+1FE7 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI ≡
("Y_" ?Ῠ) ; U+1FE8 GREEK CAPITAL LETTER UPSILON WITH VRACHY ≡
("Y-" ?Ῡ) ; U+1FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON ≡
("Y]" ?Ὺ) ; U+1FEA GREEK CAPITAL LETTER UPSILON WITH VARIA ≡
;("Y;" ?Ύ) ; U+1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA ≡
("R\"" ?Ῥ) ; U+1FEC GREEK CAPITAL LETTER RHO WITH DASIA ≡
("v]{" ?ῲ) ; U+1FF2 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI ≡
("v{" ?ῳ) ; U+1FF3 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI ≡
("v;{" ?ῴ) ; U+1FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI ≡
("v[" ?ῶ) ; U+1FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI ≡
("v[{" ?ῷ) ; U+1FF7 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI ≡
("O]" ?Ὸ) ; U+1FF8 GREEK CAPITAL LETTER OMICRON WITH VARIA ≡
;("O;" ?Ό) ; U+1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA ≡
("V]" ?Ὼ) ; U+1FFA GREEK CAPITAL LETTER OMEGA WITH VARIA ≡
;("V;" ?Ώ) ; U+1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA ≡
("V{" ?ῼ) ; U+1FFC GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI ≡
;; US QWERTY keyboard mappings provided behind a backslash escape
("\\1" ?1)
("\\!" ?!)
("\\2" ?2)
("\\@" ?@)
("\\3" ?3)
("\\#" ?#)
("\\4" ?4)
("\\$" ?$)
("\\5" ?5)
("\\%" ?%)
("\\6" ?6)
("\\^" ?^)
("\\7" ?7)
("\\&" ?&)
("\\8" ?8)
("\\*" ?*)
("\\9" ?9)
("\\(" ?()
("\\0" ?0)
("\\)" ?))
("\\-" ?-)
("\\_" ?_)
("\\=" ?=)
("\\+" ?+)
("\\`" ?`)
("\\~" ?~)
("\\q" ?q)
("\\Q" ?Q)
("\\w" ?w)
("\\W" ?W)
("\\e" ?e)
("\\E" ?E)
("\\r" ?r)
("\\R" ?R)
("\\t" ?t)
("\\T" ?T)
("\\y" ?y)
("\\Y" ?Y)
("\\u" ?u)
("\\U" ?U)
("\\i" ?i)
("\\I" ?I)
("\\o" ?o)
("\\O" ?O)
("\\p" ?p)
("\\P" ?P)
("\\[" ?[)
("\\{" ?{)
("\\]" ?])
("\\}" ?})
("\\a" ?a)
("\\A" ?A)
("\\s" ?s)
("\\S" ?S)
("\\d" ?d)
("\\D" ?D)
("\\f" ?f)
("\\F" ?F)
("\\g" ?g)
("\\G" ?G)
("\\h" ?h)
("\\H" ?H)
("\\j" ?j)
("\\J" ?J)
("\\k" ?k)
("\\K" ?K)
("\\l" ?l)
("\\L" ?L)
("\\;" ?\;)
("\\:" ?:)
("\\'" ?')
("\\\"" ?\")
("\\\\" ?\\)
("\\|" ?|)
("\\z" ?z)
("\\Z" ?Z)
("\\x" ?x)
("\\X" ?X)
("\\c" ?c)
("\\C" ?C)
("\\v" ?v)
("\\V" ?V)
("\\b" ?b)
("\\B" ?B)
("\\n" ?n)
("\\N" ?N)
("\\m" ?m)
("\\M" ?M)
("\\," ?,)
("\\<" ?<)
("\\." ?.)
("\\>" ?>)
("\\/" ?/)
("\\?" ??)
;; Some useful punctuation on AltGr keys of US keyboards provided
;; behind a "|" escape
("|[" ?“) ;; U+201C LEFT DOUBLE QUOTATION MARK
("|{" ?”) ;; U+201D RIGHT DOUBLE QUOTATION MARK
("|]" ?‘) ;; U+2018 LEFT SINGLE QUOTATION MARK
("|}" ?’) ;; U+2019 RIGHT SINGLE QUOTATION MARK
("|\\" ?«) ;; U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
("||" ?») ;; U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
)
;; Local Variables:
;; coding: utf-8
;; End:
(provide 'greek-polytonic)
;;; greek-polytonic.el ends here
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-14 9:29 [ELPA] New Package: greek-polytonic.el Johannes Choo
@ 2018-07-14 11:16 ` Eli Zaretskii
2018-07-14 17:11 ` Cesar Crusius
0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2018-07-14 11:16 UTC (permalink / raw)
To: Johannes Choo; +Cc: emacs-devel
> From: Johannes Choo <jhanschoo@gmail.com>
> Date: Sat, 14 Jul 2018 04:29:15 -0500
>
> I'd like to contribute a new package greek-polytonic.el to ELPA, or where ever it is more appropriate.
Why not add this to greek.el?
> 2) Input of combining character sequences possible—While the existing input methods allow for the input of
> bare letters and precomposed letter+diacritics, but not for Unicode letter+diacritic sequences that are not
> represented by precomposed characters. For example, the sequence <alpha>+<combining
> macron>+<combining acute accent> is not represented by any precomposed character, but appears
> frequently in critical editions of classics. greek-polytonic.el allows for the input of combining characters
> themselves, and substitutes such sequences with their Unicode-canonical precomposed equivalents if they
> exist; hence input from this method satisfies Unicode-NFC (Normalization Form Canonical Composition),
> while allowing input of sequences that have no corresponding precomposed character. Though it is to be
> admitted that font support and Emacs's display support for such decomposed sequences is still rudimentary
> and the sequence may visually appear funky.
Is this a good idea? It seems to go against the intent of whoever is
typing the text: they do want the decomposed characters to appear in
the text. Emacs will automatically (by default) compose them on
display (and if it doesn't, that's a bug that should be reported and
fixed), per Unicode requirements, and if the font supports the
precomposed glyph, you will actually see that glyph on display.
Replacing characters with their NFC equivalents should IMO be a
separate feature, not something an input method does. Am I missing
something?
Thanks.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-14 11:16 ` Eli Zaretskii
@ 2018-07-14 17:11 ` Cesar Crusius
2018-07-14 18:32 ` Eli Zaretskii
0 siblings, 1 reply; 9+ messages in thread
From: Cesar Crusius @ 2018-07-14 17:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Johannes Choo, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 2754 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Johannes Choo <jhanschoo@gmail.com>
>> Date: Sat, 14 Jul 2018 04:29:15 -0500
>>
>> I'd like to contribute a new package greek-polytonic.el to ELPA, or
>> where ever it is more appropriate.
>
> Why not add this to greek.el?
>
>> 2) Input of combining character sequences possible—While the
>> existing input methods allow for the input of
>> bare letters and precomposed letter+diacritics, but not for Unicode
>> letter+diacritic sequences that are not
>> represented by precomposed characters. For example, the sequence <alpha>+<combining
>> macron>+<combining acute accent> is not represented by any
>> precomposed character, but appears
>> frequently in critical editions of classics. greek-polytonic.el
>> allows for the input of combining characters
>> themselves, and substitutes such sequences with their
>> Unicode-canonical precomposed equivalents if they
>> exist; hence input from this method satisfies Unicode-NFC
>> (Normalization Form Canonical Composition),
>> while allowing input of sequences that have no corresponding
>> precomposed character. Though it is to be
>> admitted that font support and Emacs's display support for such
>> decomposed sequences is still rudimentary
>> and the sequence may visually appear funky.
>
> Is this a good idea? It seems to go against the intent of whoever is
> typing the text: they do want the decomposed characters to appear in
> the text. Emacs will automatically (by default) compose them on
> display (and if it doesn't, that's a bug that should be reported and
> fixed), per Unicode requirements, and if the font supports the
> precomposed glyph, you will actually see that glyph on display.
> Replacing characters with their NFC equivalents should IMO be a
> separate feature, not something an input method does. Am I missing
> something?
I'm not sure what you mean by "want the decomposed characters to appear
in the text," but when I am writing polytonic Greek and type the
sequence above, all I want is to see an alpha+macron+acute in front of
me. I don't particularly care how it is represented internally. As long
as the input method produces a valid representation for what I want, it
should be fine.
By the way, thanks for trying to solve this problem -- it's been a
long-standing one. I solved some of that for myself via XCompose, but
that's not portable.
Font and application support may be the biggest hurdle, though. It is
for me. What are the consumers of the texts you are producing in Emacs,
TeX and friends? I'd be interested in a properly working TeX setup for
polytonic Greek, but that's another thread (in another group, maybe?).
Cheers,
--
Cesar Crusius
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 658 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-14 17:11 ` Cesar Crusius
@ 2018-07-14 18:32 ` Eli Zaretskii
2018-07-15 0:31 ` Richard Stallman
2018-07-15 1:37 ` Cesar Crusius
0 siblings, 2 replies; 9+ messages in thread
From: Eli Zaretskii @ 2018-07-14 18:32 UTC (permalink / raw)
To: Cesar Crusius; +Cc: jhanschoo, emacs-devel
> From: Cesar Crusius <cesar.crusius@gmail.com>
> Cc: Johannes Choo <jhanschoo@gmail.com>, emacs-devel@gnu.org
> Date: Sat, 14 Jul 2018 10:11:01 -0700
>
> > Is this a good idea? It seems to go against the intent of whoever is
> > typing the text: they do want the decomposed characters to appear in
> > the text. Emacs will automatically (by default) compose them on
> > display (and if it doesn't, that's a bug that should be reported and
> > fixed), per Unicode requirements, and if the font supports the
> > precomposed glyph, you will actually see that glyph on display.
> > Replacing characters with their NFC equivalents should IMO be a
> > separate feature, not something an input method does. Am I missing
> > something?
>
> I'm not sure what you mean by "want the decomposed characters to appear
> in the text," but when I am writing polytonic Greek and type the
> sequence above, all I want is to see an alpha+macron+acute in front of
> me.
On display or in the buffer? If on display, then Emacs should already
do that, provided that the font you are using supports the composed
characters. That's because by default we have the
auto-composition-mode turned on.
I was talking about what's in the buffer. I think that if the user
types a sequence of characters, Emacs should generally put those
characters unaltered in the buffer. If the user wants a precomposed
character, she could always type that character's codepoint using
"C-x 8 RET", no?
But maybe I don't know enough about the expectations of users who
would use greek-polytonic input method, maybe in some use cases such
automatic composition in the buffer is expected?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-14 18:32 ` Eli Zaretskii
@ 2018-07-15 0:31 ` Richard Stallman
2018-07-15 1:37 ` Cesar Crusius
1 sibling, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2018-07-15 0:31 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: cesar.crusius, jhanschoo, emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> I was talking about what's in the buffer. I think that if the user
> types a sequence of characters, Emacs should generally put those
> characters unaltered in the buffer.
This is good for several reasons:
* It makes C-b and C-f do the natural thing.
* It makes search do the natural thing.
--
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-14 18:32 ` Eli Zaretskii
2018-07-15 0:31 ` Richard Stallman
@ 2018-07-15 1:37 ` Cesar Crusius
2018-07-16 15:57 ` Eli Zaretskii
1 sibling, 1 reply; 9+ messages in thread
From: Cesar Crusius @ 2018-07-15 1:37 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Cesar Crusius, jhanschoo, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 3551 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Cesar Crusius <cesar.crusius@gmail.com> Cc: Johannes Choo
>> <jhanschoo@gmail.com>, emacs-devel@gnu.org Date: Sat, 14 Jul
>> 2018 10:11:01 -0700
>> > Is this a good idea? It seems to go against the intent of
>> > whoever is typing the text: they do want the decomposed
>> > characters to appear in the text. Emacs will automatically
>> > (by default) compose them on display (and if it doesn't,
>> > that's a bug that should be reported and fixed), per Unicode
>> > requirements, and if the font supports the precomposed glyph,
>> > you will actually see that glyph on display. Replacing
>> > characters with their NFC equivalents should IMO be a
>> > separate feature, not something an input method does. Am I
>> > missing something?
>> I'm not sure what you mean by "want the decomposed characters
>> to appear in the text," but when I am writing polytonic Greek
>> and type the sequence above, all I want is to see an
>> alpha+macron+acute in front of me.
>
> On display or in the buffer? If on display, then Emacs should
> already do that, provided that the font you are using supports
> the composed characters. That's because by default we have the
> auto-composition-mode turned on.
>
> I was talking about what's in the buffer. I think that if the
> user types a sequence of characters, Emacs should generally put
> those characters unaltered in the buffer. If the user wants a
> precomposed character, she could always type that character's
> codepoint using "C-x 8 RET", no?
>
> But maybe I don't know enough about the expectations of users
> who would use greek-polytonic input method, maybe in some use
> cases such automatic composition in the buffer is expected?
Maybe we're talking about different things...
Input methods do automatic composition all the time. That's what
they are expected to do. I do it every day when writing Portuguese
text. Consider "á": I just wrote it by switching input methods and
typing "<acute>-<a>". What ends up in the buffer and on the
display is one single character. If my buffer had instead
"<a>+<combining acute>" I would consider that a bug. Unicode
supports the combination, I want the combination there.
This means that the input method's semantics is to translate a
sequence of keys into the most natural underlying
representation. For "a acute," it is "á", not "a+combining acute",
and nobody blinks an eye.
For polytonic Greek, however, the problem is that Unicode does not
have pre-composed characters to represent all the
possibilities. Combining characters will be needed, but the input
method can -- and I argue /should/ -- combine what they
can. Example:
* Typing "a + macron" should give U+1FB1, "Greek small letter
alpha with
macron," /one/ character, just as "á" above. Similarly, I would
consider "<a>+<combining macron>" a bug.
* Typing "a + macron + acute" should give the above plus a U+0301
"combining
acute", because it is the best it can do -- and it is what fonts
like Skolar expect.
"C-x 8 RET" is not a solution if you are typing in a language that
requires it once or more every word. (Again, that becomes the job
of the input method.)
By the way, I'm all for greek.el supporting polytonic Greek
natively and naturally. I don't remember what the problems were,
but I gave up on it quickly when trying polytonic because it
didn't work.
Cheers,
--
Cesar Crusius
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 658 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-15 1:37 ` Cesar Crusius
@ 2018-07-16 15:57 ` Eli Zaretskii
2018-07-16 16:23 ` Cesar Crusius
0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2018-07-16 15:57 UTC (permalink / raw)
To: Cesar Crusius; +Cc: jhanschoo, emacs-devel
> From: Cesar Crusius <cesar.crusius@gmail.com>
> Cc: Cesar Crusius <cesar.crusius@gmail.com>, jhanschoo@gmail.com, emacs-devel@gnu.org
> Date: Sat, 14 Jul 2018 18:37:23 -0700
>
> >> I'm not sure what you mean by "want the decomposed characters
> >> to appear in the text," but when I am writing polytonic Greek
> >> and type the sequence above, all I want is to see an
> >> alpha+macron+acute in front of me.
> >
> > On display or in the buffer? If on display, then Emacs should
> > already do that, provided that the font you are using supports
> > the composed characters. That's because by default we have the
> > auto-composition-mode turned on.
> >
> > I was talking about what's in the buffer. I think that if the
> > user types a sequence of characters, Emacs should generally put
> > those characters unaltered in the buffer. If the user wants a
> > precomposed character, she could always type that character's
> > codepoint using "C-x 8 RET", no?
> >
> > But maybe I don't know enough about the expectations of users
> > who would use greek-polytonic input method, maybe in some use
> > cases such automatic composition in the buffer is expected?
>
> Maybe we're talking about different things...
>
> Input methods do automatic composition all the time. That's what
> they are expected to do. I do it every day when writing Portuguese
> text. Consider "á": I just wrote it by switching input methods and
> typing "<acute>-<a>". What ends up in the buffer and on the
> display is one single character.
True, and I was not talking about that.
> This means that the input method's semantics is to translate a
> sequence of keys into the most natural underlying
> representation. For "a acute," it is "á", not "a+combining acute",
> and nobody blinks an eye.
More accurately, input methods normally read ASCII characters and
produce non-ASCII characters, whether accented or not. By contrast,
your original text:
> For example, the sequence <alpha>+<combining macron>+<combining
> acute accent> is not represented by any precomposed character, but
> appears frequently in critical editions of
> classics. greek-polytonic.el allows for the input of combining
> characters themselves, and substitutes such sequences with their
> Unicode-canonical precomposed equivalents if they exist;
led me to believe that your input method takes three non-ASCII
characters, alpha combining macron and combining acute accent, and
produce from them a single composed character which is their NFC
precomposed character. This is not what an input method should do,
IMO.
However, I see now that no such NFC composition is being done for
non-ASCII input (right?), so I guess I misunderstood; sorry about
that.
> For polytonic Greek, however, the problem is that Unicode does not
> have pre-composed characters to represent all the
> possibilities. Combining characters will be needed, but the input
> method can -- and I argue /should/ -- combine what they
> can. Example:
>
> * Typing "a + macron" should give U+1FB1, "Greek small letter
> alpha with
> macron," /one/ character, just as "á" above. Similarly, I would
> consider "<a>+<combining macron>" a bug.
> * Typing "a + macron + acute" should give the above plus a U+0301
> "combining
> acute", because it is the best it can do -- and it is what fonts
> like Skolar expect.
Emacs combines these automatically, but only on display; in the buffer
we still have several separate codepoints. And I think this is
correct.
> By the way, I'm all for greek.el supporting polytonic Greek
> natively and naturally. I don't remember what the problems were,
> but I gave up on it quickly when trying polytonic because it
> didn't work.
I was talking about adding your input method to greek.el.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-16 15:57 ` Eli Zaretskii
@ 2018-07-16 16:23 ` Cesar Crusius
2018-08-08 13:12 ` Johannes Choo
0 siblings, 1 reply; 9+ messages in thread
From: Cesar Crusius @ 2018-07-16 16:23 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Cesar Crusius, jhanschoo, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 2949 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Cesar Crusius <cesar.crusius@gmail.com> Cc: Cesar Crusius
>> <cesar.crusius@gmail.com>, jhanschoo@gmail.com,
>> emacs-devel@gnu.org Date: Sat, 14 Jul 2018 18:37:23 -0700
>> >> I'm not sure what you mean by "want the decomposed
>> >> characters
>> >> to appear in the text," but when I am writing polytonic
>> >> Greek and type the sequence above, all I want is to see an
>> >> alpha+macron+acute in front of me.
>> > On display or in the buffer? If on display, then Emacs
>> > should already do that, provided that the font you are using
>> > supports the composed characters. That's because by default
>> > we have the auto-composition-mode turned on. I was
>> > talking about what's in the buffer. I think that if the
>> > user types a sequence of characters, Emacs should generally
>> > put those characters unaltered in the buffer. If the user
>> > wants a precomposed character, she could always type that
>> > character's codepoint using "C-x 8 RET", no? But maybe I
>> > don't know enough about the expectations of users who would
>> > use greek-polytonic input method, maybe in some use cases
>> > such automatic composition in the buffer is expected?
>> Maybe we're talking about different things... (snip)
>
> More accurately, input methods normally read ASCII characters
> and produce non-ASCII characters, whether accented or not. By
> contrast, your original text:
>
>> For example, the sequence <alpha>+<combining macron>+<combining
>> acute accent> is not represented by any precomposed character,
>> but appears frequently in critical editions of
>> classics. greek-polytonic.el allows for the input of combining
>> characters themselves, and substitutes such sequences with
>> their Unicode-canonical precomposed equivalents if they exist;
That's not mine, but the OP's text :)
> led me to believe that your input method takes three non-ASCII
> characters, alpha combining macron and combining acute accent,
> and produce from them a single composed character which is their
> NFC precomposed character. This is not what an input method
> should do, IMO.
>
> However, I see now that no such NFC composition is being done
> for non-ASCII input (right?), so I guess I misunderstood; sorry
> about that.
No need to be sorry about anything -- wonders of written
communication. I think we're on the same page now.
> (snip)
>
>> By the way, I'm all for greek.el supporting polytonic Greek
>> natively and naturally. I don't remember what the problems
>> were, but I gave up on it quickly when trying polytonic
>> because it didn't work.
>
> I was talking about adding your input method to greek.el.
Not /my/ input method, I'm just encouraging the OP to think about
making this an improvement to greek.el instead of a separate
package, as you suggested in your first e-mail :)
Cheers,
--
Cesar Crusius
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 658 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ELPA] New Package: greek-polytonic.el
2018-07-16 16:23 ` Cesar Crusius
@ 2018-08-08 13:12 ` Johannes Choo
0 siblings, 0 replies; 9+ messages in thread
From: Johannes Choo @ 2018-08-08 13:12 UTC (permalink / raw)
To: Cesar Crusius; +Cc: Eli Zaretskii, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 5502 bytes --]
Sorry for a late reply. I found a couple typos and it actually needs to be
updated.
@Cesar:
I actually have a working polytonic Greek setup for LaTeX; (more
accurately, XeLaTeX and LuaLaTeX); send me a message and I'll send you a
minimum working preamble :)
@Eli:
yes, I think putting it in greek.el would be a better option, but I don't
have contributor rights, and so far this has been the easier way for me to
distribute it. I'd be happy to if someone can help me with that.
> It seems to go against the intent of whoever is
> typing the text: they do want the decomposed characters to appear in
> the text. Emacs will automatically (by default) compose them on
> display (and if it doesn't, that's a bug that should be reported and
> fixed), per Unicode requirements, and if the font supports the
> precomposed glyph, you will actually see that glyph on display.
> Replacing characters with their NFC equivalents should IMO be a
> separate feature, not something an input method does.
In an ideal world... yeah. De facto, polytonic Greek online and presumably
in most digital systems use the precomposed forms, and /all/ polytonic
fonts I'm aware of do not gracefully handle the placement of decorations on
greek letters.[1] Some fonts don't display the accents, some fonts have
them overlap, and probably all fonts don't place the combining breathings
(single-quotation-commas) in the right place. When writing this I found
that my favorite programming font on emacs actually crashes my Linux system
when using these combining characters![2]
This is the most prevalent compromise I've found online. greek-polytonic.el
gives the most graceful fallback, compositing into precomposed forms
whenever available.
[1]: I think this is in fact the case, de facto, for most
Latin/Greek/Cyrillic documents. For example, I've observed that in movement
in emacs, decomposed characters count as two characters, but all the
documents so far I've opened have their accented characters count as one.
Korean... is similar in its poor de facto support for decomposed
characters. The only natural language that I know writes in decomposed
characters de facto are the Indic languages!
[2]: This is a bug on emacs or the window system, but I don't even know
where to begin diagnosing it.
Bests,
Johannes
On Tue, Jul 17, 2018 at 12:23 AM Cesar Crusius <cesar.crusius@gmail.com>
wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> From: Cesar Crusius <cesar.crusius@gmail.com> Cc: Cesar Crusius
> >> <cesar.crusius@gmail.com>, jhanschoo@gmail.com,
> >> emacs-devel@gnu.org Date: Sat, 14 Jul 2018 18:37:23 -0700
> >> >> I'm not sure what you mean by "want the decomposed
> >> >> characters
> >> >> to appear in the text," but when I am writing polytonic
> >> >> Greek and type the sequence above, all I want is to see an
> >> >> alpha+macron+acute in front of me.
> >> > On display or in the buffer? If on display, then Emacs
> >> > should already do that, provided that the font you are using
> >> > supports the composed characters. That's because by default
> >> > we have the auto-composition-mode turned on. I was
> >> > talking about what's in the buffer. I think that if the
> >> > user types a sequence of characters, Emacs should generally
> >> > put those characters unaltered in the buffer. If the user
> >> > wants a precomposed character, she could always type that
> >> > character's codepoint using "C-x 8 RET", no? But maybe I
> >> > don't know enough about the expectations of users who would
> >> > use greek-polytonic input method, maybe in some use cases
> >> > such automatic composition in the buffer is expected?
> >> Maybe we're talking about different things... (snip)
> >
> > More accurately, input methods normally read ASCII characters
> > and produce non-ASCII characters, whether accented or not. By
> > contrast, your original text:
> >
> >> For example, the sequence <alpha>+<combining macron>+<combining
> >> acute accent> is not represented by any precomposed character,
> >> but appears frequently in critical editions of
> >> classics. greek-polytonic.el allows for the input of combining
> >> characters themselves, and substitutes such sequences with
> >> their Unicode-canonical precomposed equivalents if they exist;
>
> That's not mine, but the OP's text :)
>
> > led me to believe that your input method takes three non-ASCII
> > characters, alpha combining macron and combining acute accent,
> > and produce from them a single composed character which is their
> > NFC precomposed character. This is not what an input method
> > should do, IMO.
> >
> > However, I see now that no such NFC composition is being done
> > for non-ASCII input (right?), so I guess I misunderstood; sorry
> > about that.
>
> No need to be sorry about anything -- wonders of written
> communication. I think we're on the same page now.
>
> > (snip)
> >
> >> By the way, I'm all for greek.el supporting polytonic Greek
> >> natively and naturally. I don't remember what the problems
> >> were, but I gave up on it quickly when trying polytonic
> >> because it didn't work.
> >
> > I was talking about adding your input method to greek.el.
>
> Not /my/ input method, I'm just encouraging the OP to think about
> making this an improvement to greek.el instead of a separate
> package, as you suggested in your first e-mail :)
>
> Cheers,
>
> --
> Cesar Crusius
>
--
Bests,
Johannes Choo
B. Comp student at National University of Singapore
NUSHackers Coreteam
[-- Attachment #2: Type: text/html, Size: 7280 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-08-08 13:12 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-14 9:29 [ELPA] New Package: greek-polytonic.el Johannes Choo
2018-07-14 11:16 ` Eli Zaretskii
2018-07-14 17:11 ` Cesar Crusius
2018-07-14 18:32 ` Eli Zaretskii
2018-07-15 0:31 ` Richard Stallman
2018-07-15 1:37 ` Cesar Crusius
2018-07-16 15:57 ` Eli Zaretskii
2018-07-16 16:23 ` Cesar Crusius
2018-08-08 13:12 ` Johannes Choo
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).