
私はラップトップ (OS X) とワークステーション (Linux RHEL 6) で TeX を使用していますが、アクセントを使用する一部のファイルのエンコードに問題があります (主に著者名で、また私がフランス人で、フランス語のドキュメントがいくつかあるため)。私の問題は、たとえば é のようにアクセント付き文字を直接使用するために、Mac 側のより柔軟なエンコードに頼ることがあるということだと思います{\'{e}}
。その後、Dropbox 経由で、または UNIX でこれらのファイルを開いたために、これらのアクセントが両側で異なる方法で変更され、両側で 2 つの見た目の異なるファイルが作成されます。エスケープ方法のみを使用してこれをすべて修正できると確信していますが、もっとエレガントな方法があるかもしれません (おそらく、.tex
ファイルと の両方でエンコードを明示的に設定する必要がありますvi
)。TeXshop などの別のエディターに移動するとどうなるかはわかりません...
私の問題に対するヒントや、もっと洗練された解決策はありますか? さらに情報が必要な場合はお知らせください。 ありがとうございます!
更新: 提供されたいくつかのヒントのおかげで、今では問題についてもう少し理解できるようになりました。問題を再現するために小さなサンプル ファイルを作成しました。TeXShop で作成すると問題なく動作するようですが、vim でファイルを作成すると問題が発生します。さらに、file --mime-encoding test.tex
ファイルの作成方法によって出力が異なります。
$ file --mime-encoding test.tex
test.tex: unknown-8bit
$ file --mime-encoding test2.tex
test2.tex: utf-8
kheldar@shadowfax /Users/kheldar/Dropbox/Boulot/CV/csuros/2011
$ vi test.tex
kheldar@shadowfax /Users/kheldar/Dropbox/Boulot/CV/csuros/2011
$ vi test2.tex
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\begin{document}
\title{Test encoding}
\maketitle
Test accents: é è ê ë
\begin{verbatim}
Test accents: é è ê ë
\end{verbatim}
Test accents: \'{e} \`{e} \"{e}
\begin{verbatim}
Test accents: \'{e} \`{e} \"{e}
\end{verbatim}
\end{document}
TeXShop で utf-8 で作成されたファイルでも、@Daniel が説明したステータス バーに utf-8 が表示されません。これは私のvimrc
権利なのでしょうか? 何らかの理由で、コマンドに干渉する他のオプションがあるようですset filencoding
。何かアイデアはありますか?
答え1
最も重要な 2 つのアドバイス:
utf8
ドキュメントのエンコーディングに を使用します(\usepackage[utf8]{inputenc}
)。 では、vim
このエンコーディングを で設定しますset filencoding=utf8
。シェルのロケール設定 (locale
) によっては、これがすでにデフォルトになっている場合があります。 TexShop では、設定でファイルのエンコーディングを明示的に設定する必要があります。ファイル名にアクセント付き文字を使用しないでください。ファイル名の UTF8 に対する MacOS の「特別な」解釈 (分解された形式で保存されます) により、さまざまな問題が発生します。
さらにvim
、実際のテキスト エンコーディングと行末エンコーディングのインジケーターを表示するステータス ラインを定義することをお勧めします (次の行を入力すると、~/.vimrc
ファイルの種類、行末、テキスト エンコーディングが右側に表示されます)。
" show statusline
hi StatusLine ctermbg=black ctermfg=white guibg=black guifg=white gui=none
hi EMPH ctermfg=yellow ctermbg=black guibg=black guifg=yellow gui=none
set statusline=%F\ \|%c,%l:\ 0x%-02B\|%=\ \|%{strftime(\"%c\",getftime(expand(\"%:p\")))}\|\ %y\ %{&ff}\ %#EMPH#%{(&fenc==\"\"?&enc:&fenc)}
set ls=2
これにより、エンコードが正しいかどうかをすぐに把握できます。「vim statusline」を Google で検索すると、適切なステータス ラインを設定する方法に関するガイドやチュートリアルが多数見つかります。私の設定はまだ比較的シンプルです。