Emacsでは C-x 8 RET triangle などと入力すれば(使っている補完インタフェースにもよりますが)色々出てくるわけですが、それだと4方向分が一緒くたになっているので分かりづらいのです。なので、方向を除いたベースとなる名前が一行にまとまるように表を作ってみました。
(let ((triangle-types
;; 次の条件を満たすUNICODE文字を列挙する。
;; - 名前にTRIANGLEが含まれてる
;; - 名前に{LEFT|UP|RIGHT|DOWN}-POINTINGが含まれている
;; 結果はalist ((三角形名 . ((方向名 . コード)...))...) の形にする。
(cl-loop with triangle-types = nil
for name being the hash-keys of (ucs-names)
using (hash-values code) ;; ←これ書きづらいんだけど何とかならないの?
when (and (string-match-p "TRIANGLE" name)
(string-match "\\`\\(.*\\)\\(LEFT\\|UP\\|RIGHT\\|DOWN\\)\\(-POINTING .*\\)\\'" name))
do
(let ((base-name (concat (match-string 1 name)
"*";; 方向の部分は * に置き換える。
(match-string 3 name)))
(dir (match-string 2 name)))
(setf (alist-get dir
(alist-get base-name triangle-types
nil nil #'equal)
nil nil #'eql)
code))
finally return triangle-types)))
;; 表の形に文字列化する。
(let ((dir-names '("LEFT""UP""RIGHT""DOWN")))
(concat
"|NAME|" (mapconcat #'identity dir-names "|") "|\n""|-\n"
(cl-loop for (name . dirs) in (nreverse triangle-types)
concat
(concat "|" name "|"
(cl-loop for dir in dir-names
for code = (alist-get dir dirs nil nil #'equal)
concat (if code (format "%X %c" code code) "-")
concat "|")
"\n")))))
(例によってこの文書はorg-modeで書かれているので、コードブロックを評価すれば自動的に↓が文書中に挿入されるわけです ( :exports both :results raw replace value を指定) )
NAME
LEFT
UP
RIGHT
DOWN
BLACK *-POINTING DOUBLE TRIANGLE
23EA ⏪
23EB ⏫
23E9 ⏩
23EC ⏬
BLACK *-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
23EE ⏮
-
23ED ⏭
-
BLACK *-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-
-
23EF ⏯
-
BLACK MEDIUM *-POINTING TRIANGLE
23F4 ⏴
23F6 ⏶
23F5 ⏵
23F7 ⏷
BLACK *-POINTING TRIANGLE
25C0 ◀
25B2 ▲
25B6 ▶
25BC ▼
WHITE *-POINTING TRIANGLE
25C1 ◁
25B3 △
25B7 ▷
25BD ▽
BLACK *-POINTING SMALL TRIANGLE
25C2 ◂
25B4 ▴
25B8 ▸
25BE ▾
WHITE *-POINTING SMALL TRIANGLE
25C3 ◃
25B5 ▵
25B9 ▹
25BF ▿
WHITE *-POINTING TRIANGLE WITH DOT
-
25EC ◬
-
-
*-POINTING TRIANGLE WITH LEFT HALF BLACK
-
25ED ◭
-
29E8 ⧨
*-POINTING TRIANGLE WITH RIGHT HALF BLACK
-
25EE ◮
-
29E9 ⧩
HEAVY WHITE *-POINTING TRIANGLE
-
-
-
26DB ⛛
BLACK MEDIUM *-POINTING TRIANGLE CENTRED
2BC7 ⯇
2BC5 ⯅
2BC8 ⯈
2BC6 ⯆
*-POINTING RED TRIANGLE
-
1F53A 🔺
-
1F53B 🔻
*-POINTING SMALL RED TRIANGLE
-
1F53C 🔼
-
1F53D 🔽
BLACK *-POINTING ISOSCELES RIGHT TRIANGLE
1F780 🞀
1F781 🞁
1F782 🞂
1F783 🞃
シンプルな一つの三角形で4方向揃っているものに限定すると次の7種類になります。
NAME
LEFT
UP
RIGHT
DOWN
BLACK MEDIUM *-POINTING TRIANGLE
23F4 ⏴
23F6 ⏶
23F5 ⏵
23F7 ⏷
BLACK *-POINTING TRIANGLE
25C0 ◀
25B2 ▲
25B6 ▶
25BC ▼
WHITE *-POINTING TRIANGLE
25C1 ◁
25B3 △
25B7 ▷
25BD ▽
BLACK *-POINTING SMALL TRIANGLE
25C2 ◂
25B4 ▴
25B8 ▸
25BE ▾
WHITE *-POINTING SMALL TRIANGLE
25C3 ◃
25B5 ▵
25B9 ▹
25BF ▿
BLACK MEDIUM *-POINTING TRIANGLE CENTRED
2BC7 ⯇
2BC5 ⯅
2BC8 ⯈
2BC6 ⯆
BLACK *-POINTING ISOSCELES RIGHT TRIANGLE
1F780 🞀
1F781 🞁
1F782 🞂
1F783 🞃
基本は「BLACK *-POINTING TRIANGLE▲」と「WHITE *-POINTING TRIANGLE△」ですね。これらはJIS X 0213にも入っています(JIS X 0208の段階では上下のみ)。私の使っている環境ではstring-width関数やchar-width関数は2を返します(設定によるかもしれません)。文書中に書くのは普通はこれですが、箇条書きの先頭(bullet)に使うには大きすぎて使いづらいです。
「BLACK MEDIUM *-POINTING TRIANGLE⏶」は少し特殊で、どうも(再生ボタン等の)メディアUIで使うことを意図しているみたい?
「BLACK *-POINTING SMALL TRIANGLE▴」と「WHITE *-POINTING SMALL TRIANGLE▵」は単純に小さいというだけ?
「BLACK MEDIUM *-POINTING TRIANGLE CENTRED⯅」は「BLACK MEDIUM *-POINTING TRIANGLE」と何が違うのか。単に中くらいのが欲しいならコレ?
「BLACK *-POINTING ISOSCELES RIGHT TRIANGLE🞁」は直角二等辺三角形です。最近はこれをorg-modeの見出しのマークとして使っています。開閉で見た目を変化させているので、閉じているときは🞂で開いているときは🞃にしています。
タッチスクリーンでできる操作についてはEmacs マニュアルの6.1 Using Emacs on Touchscreens(日本語訳)に書いてあります。それによればデフォルトでタップ、スクロール、ドラッグ、ピンチといった操作がサポートされています。マウスイベントへの変換も行われるので、従来のマウス用に用意された操作もタッチスクリーンからある程度実行可能です。
コンテキストメニューが不要ならそのままフレームをタップしたり(Windows 10)、ウィンドウ内の適当な場所をタップしたり(Android)すればコンテキストメニューは閉じます。その時ポイントやアクティブリージョンが変わったりはしません(注: Windows 10の時はウィンドウ内をタップするとメニューが閉じるだけで無くポイントも移動してしまいました。フレームのタイトルバー等をタップしましょう)。なのでコンテキストメニューを表示させることにそれほど害は無いでしょう。
LIBRSVG
Librsvg 2.40.21, the final release in the librsvg 2.40.x series, the
last to be implemented in C, is provided as:
librsvg-2.40.21-emacs.tar.gz
and has been lightly edited for compatibility with environments where
Pango cannot provide fonts, with the obvious caveat that text cannot be
displayed with the resulting librsvg binary. Among numerous
dependencies are PCRE, and:
libiconv-1.17-emacs.tar.gz
libffi-3.4.5-emacs.tar.gz
pango-1.38.1-emacs.tar.gz
glib-2.33.14-emacs.tar.gz
libcroco-0.6.13-emacs.tar.gz
pixman-0.38.4-emacs.tar.gz
libxml2-2.12.4-emacs.tar.gz
gdk-pixbuf-2.22.1-emacs.tar.gz
giflib-5.2.1-emacs.tar.gz
libjpeg-turbo-3.0.2-emacs.tar.gz
libpng-1.6.41-emacs.tar.gz
tiff-4.5.1-emacs.tar.gz
cairo-1.16.0-emacs.tar.gz
which must be individually unpacked and their contents provided on the
command line, as with other dependencies. They will introduce
approximately 8 MiB's worth of shared libraries into the finished
application package. It is unlikely that later releases of librsvg will
ever be ported, as they have migrated to a different implementation
language.
No effort has been expended on providing the latest and greatest of
these dependencies either; rather, the versions chosen are often the
earliest versions required by their dependents, these being the smaller
of all available versions, and generally more straightforward to port.