Использование TeX с Dropbox на нескольких платформах: проблемы с кодировкой

Использование TeX с Dropbox на нескольких платформах: проблемы с кодировкой

Я использую TeX на своем ноутбуке (OS X) и на своей рабочей станции (Linux RHEL 6), и у меня возникают проблемы с кодировкой некоторых файлов, в которых я использую диакритические знаки (в основном в именах авторов, но также потому, что я француз и у меня есть некоторые документы на французском). Думаю, моя проблема в том, что я иногда полагаюсь на более гибкую кодировку на стороне 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, я не вижу utf-8 в строке состояния, описанной @Daniel. Так что это должно быть мое vimrcправо? Каким-то образом у меня есть другие опции, которые мешают команде set filencoding. Есть идеи?

решение1

Два самых важных совета:

  • Используйте 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

введите описание изображения здесь

Таким образом, вы можете быстро понять, верна ли кодировка. Если вы введете в Google "vim statusline", вы найдете множество руководств и обучающих программ о том, как настроить хорошую строку статуса. Моя все еще относительно проста.

Связанный контент