複数のプラットフォームでTeXをDropboxで使用する: エンコードの問題

複数のプラットフォームでTeXをDropboxで使用する: エンコードの問題

私はラップトップ (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 で検索すると、適切なステータス ラインを設定する方法に関するガイドやチュートリアルが多数見つかります。私の設定はまだ比較的シンプルです。

関連情報