utf-tool.el

utf-tool.el

- 近藤 雄三 の投稿
返信数: 14
OS X EI CapitanにインストールしたTexlive2015で
emacsに読み込んだファイルの

「智\UTF{9857}・金剛薩\UTF{57F5}・\UTF{728D}度」

という部分を選択し、utf-sty-decode-regionを使って

「智顗・金剛薩埵・犍度」と変換することを試みたのですが

「智・金剛薩\UTF{57F5}・\UTF{728D}度」

となってしまい。失敗します。

Mark activated
completing-read-default: Command attempted to use minibuffer while in minibuffer
if: Wrong type argument: characterp, #("9857" 0 4 (fontified t))
などという警告が出ているようです。

 原因と解決方法をご教示いただけないでしょうか?

ちなみにuff-sty-encode-regionを使用した逆の変換は可能です


近藤 雄三 への返信

Re: utf-tool.el

- 奥村 晴彦 の投稿
あらほんとですね。最近使わないので気づきませんでした(emacs-24.4)。

どうして最近使わないかというと,uplatexでできてしまうからです:

\documentclass[uplatex]{jsarticle}
\begin{document}
智顗・金剛薩埵・犍度
\end{document}
奥村 晴彦 への返信

Re: utf-tool.el

- 近藤 雄三 の投稿
返信ありがとうございます。uplatexは大変魅力的だと思います。
ただし「智顗」や「金剛薩埵」はuplatexでうまくいくのですが
「oṃ namo ratnatrāya」みたいなものがうまく変換できないのです。
もともと半角だったのに全角になってしまい、上の文だったらmの
下にドットが付いた文字とかは化けてしまいます。
仕方なく一旦「智\UTF{9857}・金剛薩\UTF{57F5}」などとして
platexで処理しています。
何かうまい方法はありませんでしょうか?




近藤 雄三 への返信

Re: utf-tool.el

- 奥村 晴彦 の投稿
\documentclass[uplatex]{jsarticle}
\usepackage[utf8x]{inputenc}
\begin{document}
\kcatcode`ṃ=15
\kcatcode`ā=15

智顗・金剛薩埵・犍度

oṃ namo ratnatrāya

\end{document}

でとりあえず出せます。

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?upTeX%2CupLaTeX
奥村 晴彦 への返信

Re: utf-tool.el

- 近藤 雄三 の投稿
ありがとうございます。
ただ若干の問題が残っています。
unicodeにある文字はお教えいただいたようにkcatcodeを指定すれば
いいのですが、Rの下に小さい丸がついたような文字をuplatexでだす方法が
よくわかりません。

それまではplatexを使い
---------------------------------------------------------------
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{1E5B}{\ucirc{r}}

\DeclareTextCommand{\ucirc}{OT1}[1]{%
   {\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
     \vbox to.2ex{\hbox{\char23}\vss}\hidewidth}}}
---------------------------------------------------------------

のようなスタイルファイルを読み込ませて
「ṛ」と入力したファイルを「下丸付きのR」で出力していましたが、
これは、utf8xではありません。

それでもuplatexで処理すると

bash-3.2$ dvipdfmx hoge.dvi 
hoge.dvi -> hoge.pdf
[1
dvipdfmx:warning: No character mapping available.
 CMap name: UniJIS-UTF16-H
 input str: <1e5b>
]

のような警告を出して文字化けしてしまいます。
何か解決方法があったらご教示いただけないでしょうか?

近藤 雄三 への返信

Re: utf-tool.el

- 松浦 高志 の投稿
ucsパッケージでは \DeclareUnicodeCharacter の1つ目の引数は10進数で書かれているようです.それから,さまざまなアクセント記号等を用いる言語を扱うときはtipaパッケージを使うとよいと思います(TeX Live 2015には含まれています).例えば次のようにするとよいでしょう.

\documentclass[uplatex]{jsarticle}
\kcatcode`á=15% ラテン1補助(U+0080以降)
\kcatcode`Ā=15% ラテン文字拡張A(U+0100以降)
\kcatcode`ƀ=15% ラテン文字拡張B(U+0180以降)
\kcatcode`Ḁ=15% ラテン文字拡張追加(U+1E00以降)
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage{tipa}
\DeclareUnicodeCharacter{7770}{\textsubring{R}}
\DeclareUnicodeCharacter{7771}{\textsubring{r}}
\DeclareUnicodeCharacter{7772}{\textsubring{\=R}}
\DeclareUnicodeCharacter{7773}{\textsubring{\=r}}

\begin{document}

智顗・金剛薩埵・犍度

oṃ namo ratnatrāya

KṚ-, kṛ-, KṜ-, kṝ-.

\end{document}

サンスクリットの場合はラテン文字拡張Bは必要ないと思いますが,指定したままでもよいでしょう.
奥村 晴彦 への返信

Re: utf-tool.el

- 近藤 雄三 の投稿
もう一つ教えていただければと思うのですが、
\kcatcode`ṃ=15
\kcatcode`ā=15
により、ṃ や āは出力できるようになりましたので、
他の文字も追加したいのですが、
\kcatcode`ṇ=15
などと追加しても
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/inputenc.sty
(/usr/local/texlive/2015/texmf-dist/tex/latex/ucs/utf8x.def))
(/usr/local/texlive/2015/texmf-dist/tex/latex/ucs/ucs.sty
(/usr/local/texlive/2015/texmf-dist/tex/latex/ucs/data/uni-global.def))
(./aho.aux) (/usr/local/texlive/2015/texmf-dist/tex/latex/ucs/ucsencs.def)
! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.10 \kcatcode`ṇ
                  =15

などとなってしまいます。20種類ぐらいのアクセント付き文字を
使いたいのですけど、何か方法はありますでしょうか?

近藤 雄三 への返信

Re: utf-tool.el

- 前田 一貴 の投稿
奥村先生も示されている
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?upTeX%2CupLaTeX#g25333bf


> upLaTeX の場合は、ギリシャ文字ブロック、キリル文字ブロックの \kcatcode を 15 に設定することで回避できます。

とあるように,\kcatcode の指定はブロック毎のようです.

\kcatcode`ṃ=15

と一度書いておくだけで ṛ や ṇ も出せませんか?

\documentclass[uplatex]{jsarticle}
\usepackage[utf8x]{inputenc}
\kcatcode`ṃ=15
\kcatcode`ā=15
\begin{document}

智顗・金剛薩埵・犍度

oṃ namo ratnatrāya

ṛ ṇ
\end{document}

いくつも \kcatcode`ṃ=15 を書くとエラーになるのは,2つ目以降は inputenc の処理に
かけられてしまうからでしょうね.
奥村 晴彦 への返信

Re: utf-tool.el

- 近藤 雄三 の投稿
奥村先生
常々疑問に思うのですが、texshopなどの統合環境は
これを使うとemacsはいらないというほどのものなのでしょうか?
使い慣れたエディターを捨ててもなお有用ということで
あれば、ぜひ検討したいところです。
他をもって代えがたい美点があればぜひ教えてください。
近藤 雄三 への返信

Re: utf-tool.el

- 奥村 晴彦 の投稿
それは好みの問題です^^。
私はまだEmacsでLaTeX原稿書いていますが,少数派かな。
vimのかたもおられるでしょうね。
近藤 雄三 への返信

Re: utf-tool.el

- 前田 一貴 の投稿
ucs-insert の仕様が Emacs 24 で変わっているのでしょうか.

utf-tool.el の93行目に

      (if (stringp str) (ucs-insert str))

というのがあると思いますが,これを

      (if (stringp str) (ucs-insert (string-to-number str 16)))

と変えてみるとどうでしょうか.