여러 플랫폼에서 Dropbox와 함께 TeX 사용: 인코딩 문제

여러 플랫폼에서 Dropbox와 함께 TeX 사용: 인코딩 문제

내 노트북(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}

utf-8을 사용하여 TeXShop에서 생성한 파일을 사용하더라도 @Daniel이 설명한 상태 표시줄에 utf-8이 표시되지 않습니다. 그렇다면 그것은 내 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"을 검색하면 좋은 상태 표시줄을 설정하는 방법에 대한 수많은 가이드와 튜토리얼을 찾을 수 있습니다. 내 것은 여전히 ​​비교적 간단합니다.

관련 정보