
Я использую 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", вы найдете множество руководств и обучающих программ о том, как настроить хорошую строку статуса. Моя все еще относительно проста.