特定のグリフの一般名を見つけるには?

特定のグリフの一般名を見つけるには?

時々グリフの名前を知りたい時があります。たとえば、を見ると、ハイフンなのかエンダッシュなのか、Mのダッシュなのか、マイナス記号なのかを知りたいと思うかもしれません。これをコピーして端末に貼り付けて、それが何であるかを確認する方法はありますか?-

私のシステムがこれらの文字形の一般名を知っているかどうかはわかりませんが、次のような一部(部分)情報を使用できます/usr/share/X11/locale/en_US.UTF-8/Compose

<Multi_key> <exclam> <question>         : "‽"   U203D # INTERROBANG

別のグリフの例:

答え1

試してみてくださいUnicode便利:

$ unicode ‽
U+203D INTERROBANG
UTF-8: e2 80 bd  UTF-16BE: 203d  Decimal: &#8253;
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)

またはuconvユーティリティから集中治療室パック:

$ printf %s ‽ | uconv -x any-name
\N{INTERROBANG}

以下でも情報を入手できます。recode便利:

$ printf %s ‽ | recode ..dump
UCS2   Mne   Description

203D         point exclarrogatif

またはPerlを使用してください。

$ printf %s ‽ | perl -CLS -Mcharnames=:full -lne 'print charnames::viacode(ord) for /./g'
INTERROBANG

これは、グリフ全体ではなくグリフを構成する文字に関する情報を提供することに注意してください。たとえば、(eにアクセントがある):

$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E}\N{COMBINING ACUTE ACCENT}

独立したé文字とは異なり、

$ printf é | uconv -x any-name
\N{LATIN SMALL LETTER E WITH ACUTE}

以下を再結合するように要求することができますuconv(結合された形式の場合):

$ printf 'e\u0301b\u0301' | uconv -x '::nfc;::name;'
\N{LATIN SMALL LETTER E WITH ACUTE}\N{LATIN SMALL LETTER B}\N{COMBINING ACUTE ACCENT}

(éは結合型ですがbではありません)。

答え2

パールを使用できますcharnamesのviacode機能基準寸法:

$ printf ‽ | perl -Mcharnames=:full -CLS -nle 'print charnames::viacode(ord)'
INTERROBANG
$ printf 

答え3

私が知っている最良の方法はPerlを使用することですuniprops。 Perlに付属しています。Unicode::Tussle基準寸法。あなたはそれをインストールすることができます

sudo perl -MCPAN -e 'install Unicode::Tussle'

その後、テストしたいすべての文字の外観で実行できます。

$ uniprops  ‽
U+203D ‹‽› \N{INTERROBANG}
    \pP \p{Po}
    All Any Assigned InPunctuation Punct Is_Punctuation Common Zyyy Po P
       General_Punctuation Gr_Base Grapheme_Base Graph GrBase Other_Punctuation
       Pat_Syn Pattern_Syntax PatSyn Print Punctuation STerm Term
       Terminal_Punctuation Unicode X_POSIX_Graph X_POSIX_Print X_POSIX_Punct

$ uniprops  

答え4

次のコマンドを使用してbashスクリプトを作成します。

#!/bin/bash
awk -F ":" '{print $2}' /usr/share/X11/locale/en_US.UTF-8/Compose | grep "$1" | awk -F "#" '{print $2}'

たとえば、必要に応じて名前を付けnamecharて実行権限を付与します。

これで、次のように電話できます。

./namechar @

結果は次のとおりです。

COMMERCIAL AT

関連情報