web-dev-qa-db-ja.com

テキスト端末上のEmacsのイタリック(rxvt-unicode)

Urxvtで実行されているEmacsを使用していますが、ターミナルでサポートされていますが、イタリックをEmacsで機能させることができません。

現在の設定は次のとおりです。

  • $TERMを設定していないので、デフォルトのrxvt-unicode-256colorです。
  • 私の~/.Xdefaultsは、URxvt.font: xft:Inconsolata:size=15をターミナルフォントとして定義しています。
  • シェルでecho "\e[3mitalics\e[m"を実行すると、実際にitalicsが生成されるため、ターミナルでのイタリック体doは基本的に機能します。

「斜体」の面をカスタマイズする場合、の値としてitalicobliquenormal、またはromanを選択しても違いはありません。 Slant属性も、Slant属性をまったく設定しない場合も同様です。 URxvt.italicFont~/.Xdefaultsを明示的に定義することと組み合わせてこれも試しましたが、役に立ちませんでした。

太字は正常に機能し、斜体はまったく機能しません。何か案は?

15
igor

つまり、現在のバージョンのEmacs(23.2で確認済み)ではできませんが、可能な回避策については以下を参照してください。

より長い話:イタリックのサポートはsitm(イタリックを入力)およびritm(イタリックを終了)機能(ZHおよびZR(termcap互換性)あなたのターミナルがそれらをサポートしていることを確認するには:

infocmp $TERM | egrep '(sitm|ritm)'

それらが存在しない場合、rxvt-unicode-256color端末記述はncursesライブラリに端末のイタリック機能に関する情報を提供しないため、それらを追加する必要がある場合があります。そうでない場合、TTYアプリケーションはイタリックを使用できません。

ただし、ターミナルディスプレイを管理する関数turn_on_face(Emacsソースでは、ファイルsrc/term.c、1919--2012行)はイタリックをサポートしていません。ボールド/ディム/点滅/をチェックします顔の下線属性。実際、struct faceでエンコードされた「斜体」属性はありません。

実際、私のEmacs(Ubuntu 11.04 nattyのバージョン23.1)は、イタリック体の顔(X11では正しく表示されます)をTTYでunderlinedとして表示します。 (つまり、下線が気にならない場合は、端末のterminfo記述を変更して、Enter/Exit Underlineエスケープシーケンスの代わりにEnter/Exit Italicsエスケープシーケンスを使用して、イタリックにすることができます。)

11
Riccardo Murri

他の人は時代遅れなので、私はこの答えを追加しています。 Emacs 24.5はイタリック体をターミナルに正しく表示します。

enter image description here

これは、端末(emacs -nw)。端末はuxvrtで、セットアップは.Xdefaultsは:

URxvt*termName: rxvt-unicode-256color
URxvt.font: xft:DejaVu Sans Mono:size=9
4
casey

この機能を提供するターミナルエミュレーターでイタリックを利用できないemacsについて:これは emacsバグ#9652 であり、2012年6月10日にChongYidongによって修正されました。

この修正は、リリースされたemacsのバージョンには含まれていませんが、たとえば emacs.naquadah.org のemacs-snapshotパッケージに含まれています。

3
Gregor Zattler