KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
You will have long and healthy life.
FrontPage › WinEdtTip/오류소스찾아가기
<:( 오류처리에 가면 오류에 관한 설명과 처방이 있습니다. 특히 컴파일 중 아무 메시지도 없이 별표 프롬프트("*")만 나오는 경우는 오류처리의 소항목 "자주 만나는 에러와 처리방법"의 첫 항목을 보시기 바랍니다.

목차

1 오류 메시지에서 "소스 찾아가기" 기능
2 "오류 메시지에서 WinEdt로 가기" 설정(옛날 방식)
3 오류 메시지와 관련한 편집 요령
3.1 Delimiters의 짝 찾기 기능

1 오류 메시지에서 "소스 찾아가기" 기능

(./) MiKTeX(2.5 이후 버젼)을 설치한 경우: "Inverse DVI Search"(WinEdtTip/Inverse Search 참조)를 위하여 Yap의 메뉴에서 View->Options 에서 한 설정(아래 그림 1 참조)이 "오류 메시지에서 오류 소스로 찾아가기"에도 유효합니다. <!> MiKTeX 2.6에는 miktex.ini 파일이 없습니다.

Inverse_DVI_Search.jpg

그림 1: Yap의 메뉴에서 View->Options 를 선택하면 Options 대화상자가 열립니다. 여기서 Inverse DVI Search 를 선택하면 "WinEdt (auto-detected)" 가 있습니다. 이것을 선택하고 "확인" 단추를 누르면 됩니다.

컴파일(LaTeX, TeXify, PDFLaTeX, PDFTeXify)하는 도중 오류가 있으면 Command Prompt(DOS 명령의 실행을 볼 수 있는 까만 상자, 보통 DOS 창이라고 하더군요.)에 메시지가 나타나고 멈춥니다. 이 때 오류 메시지와 관련한 조치(자판의 키 사용법)가 WinEdt 버젼에 따라 조금씩 바뀐 것 같습니다. WinEdt 5.5: 20061213의 Factory Setting에 맞춰 설명하겠습니다. TeXifyPDFTeXifyMiKTeX에만 있는 기능입니다.

err_messsage.jpg

그림 2: 이 그림은 WinEdt 창에서 TeXify 단추를 눌러 컴파일하는 도중 "Undefined control sequence"를 만났을 때 그냥 Enter 키를 누른 경우입니다. 빨강 바탕의 \secttion을 \section으로 고치면 됩니다.

(./)PDFLaTeX(또는 PDFTeXify)을 실행하여야 할 문서에 LaTeX(또는 TeXify)을 실행하여도 오류가 생기는 경우가 있습니다. Command Prompt(DOS 창)가 열리자 닫혀 버리는 경우에는 오류 메시지를 볼 여가가 없는 경우도 있다. 이 때는 Log 파일을 보면 된다.

err_pdf.jpg

그림 3:PDFLaTeX을 실행하여야 할 문서에 LaTeX을 실행하여도 오류가 생깁니다. 이 그림은 WinEdt 창에서 TeXify 단추를 눌러 컴파일한 결과를 캡쳐한 것입니다.

  • LaTeX 또는 PDFLaTeX 때:
    • 그냥 Command Prompt(DOS 창)을 강제로 닫으면 WinEdt 창도 함께 닫히면서 WinEdt 창에서 작업 중인 파일들이 저장되지 않습니다. 그러나 Log 파일의 거의 끝부분을 보면 오류 메시지가 있습니다. 컴파일에 관한 Data는 없습니다.
    • e 키를 친 후 Enter 키를 치면 Command Prompt(DOS 창)가 닫히고 오류 소스(그림 2그림 3 참조)로 찾아 갑니다.. 이 때 오류 메시지를 보고 싶으면 Log 단추를 누르면 WinEdt 창 아래에 Log 창이 뜹니다. 스크롤을 아래로 내리면 오류 메시지와 컴파일에 관한 Data가 있습니다.
    • r 키(또는 q 키 또는 s 키)를 친 후 Enter 키를 치면 Command Prompt(DOS 창)가 닫히고 편집창의 화면상에는 아무 변화도 나타나지 않습니다. 그러나 끝까지 컴파일은 한 번 한 상태입니다. 이 때 오류 메시지를 보고 싶으면 Log 단추를 누르면 됩니다. Log 파일을 열어 보면 r 키를 쳤을 때는 nonstop 모드로 들어간다는 메시지가 있고, q 키를 쳤을 때는 batch 모드로 들어간다는 메시지가 있고, s 키를 쳤을 때는 scroll 모드로 들어간다는 메시지가 있습니다. 그 후로도 오류가 있으면 오류 메시지가 기록되어 있습니다.
    • x 키를 친 후 Enter 키를 치면 Command Prompt(DOS 창)가 닫히고 컴파일을 중단한 상태가 됩니다. 오류 메시지를 보고 싶으면 Log 단추를 누르면 됩니다. 오류 메시지의 기록은 Command Prompt(DOS 창)에 보였던 것 밖에 없습니다. 그 뒤에 나오는 것은 컴파일에 관한 Data입니다.
    • 그냥 Enter 키를 치면 다음 오류를 나타내고 이것이 마지막 오류일 때는 Command Prompt(DOS 창)가 닫히고 편집창의 화면상에는 아무 변화도 나타나지 않습니다.
    • h 키를 친 후 Enter 키를 치면 Command Prompt(DOS 창)에 오류에 대한 설명이 개략적으로 나옵니다. Command Prompt(DOS 창)이 닫히지 않고 다른 입력을 기다리고 있습니다. 오류가 생긴 곳으로 가려면 e 키를 친 후 Enter 키를 치면 됩니다.
  • TeXify 또는 PDFTeXify 때:
    • 그냥 Command Prompt(DOS 창)을 강제로 닫으면 WinEdt 창도 함께 닫히면서 WinEdt 창에서 작업 중인 파일들이 저장되지 않습니다. 그러나 Log 파일의 거의 끝부분을 보면 오류 메시지가 있습니다. 컴파일에 관한 Data는 없습니다.
    • 그냥 Enter 키를 치면 다음 오류를 나타내고 이것이 마지막 오류일 때는 Command Prompt(DOS 창)이 닫히고 첫째 오류 소스로 찾아가면서 WinEdt 창 아래 쪽에 Log 파일을 열고 첫째 오류 메시지를 보여줍니다.
    • h 키를 친 후 Enter 키를 치면 Command Prompt(DOS 창)에 오류에 대한 설명이 개략적으로 나옵니다. 이 때 Command Prompt(DOS 창)을 닫으면 소스로 찾아가면서 WinEdt 창 아래 쪽에 Log 파일을 열고 오류 메시지를 보여줍니다. 스크롤을 쓰서 오류 메시지 아래를 보면 오류에 대한 개략적인 설명이 있습니다.
    • q 키 (또는 r 키 또는 s 키 또는 e 키 또는 x 키)를 친 후 Enter 키를 치면 Command Prompt(DOS 창)가 닫히고 소스로 찾아가면서 WinEdt 창 아래 쪽에 Log 파일을 열고 오류 메시지를 보여줍니다. 오류 소스가 명령어일 때는 틀린 명령어만 빨강 바탕에 하양 글씨로 변합니다. Log 파일에는 q 키를 쳤을 때는 batch 모드로 들어간다는 메시지가 있습니다. r 키를 쳤을 때는 nonstop 모드로 들어간다는 메시지가 있습니다. s 키를 쳤을 때는 scroll 모드로 들어간다는 메시지가 있습니다. q 키 또는 s 키 또는 r 키를 썼을 때는 끝까지 컴파일은 한 번 한 상태입니다. e 키 또는 x 키를 썼을 때는 컴파일을 중단한 상태입니다. 어느 경우이든 오류를 고치고 다시 TeXify하면 됩니다.
<!> 주의: TeX 파일의 이름에 한글, 한자, 기호, 띄어쓰기 등이 있으면 오류 "소스 찾아가기" 기능이 듣지 않을 수도 있습니다. TeX 관련 파일의 이름은 로마자로 띄어쓰기 없이 만드는 것이 좋습니다.

2 "오류 메시지에서 WinEdt로 가기" 설정(옛날 방식)

<!> MiKTeX 2.6에는 miktex.ini 파일이 없습니다.

<!> 옛날에는 MiKTeX (2.4 이전 버젼)을 새로 깔고 miktex.ini 파일을 고치지 않으면 메모장(Notepad)이 열리고 소스 파일의 첫머리로 갔습니다. 이것을 WinEdt 창에서 작업 중인 TeX 파일의 오류 소스로 찾아가게 하려면 miktex.ini 파일(아래 그림 4 참조)의 설정을 고쳐야 하였습니다.
src0.jpg


그림 4: miktex.ini 파일(2005-11-01 버젼)의 디폴트 Editor 세팅은 그림과 같습니다.

miktex.ini 파일에서 Editor가
 Editor="$(windir)\notepad.exe" "%f"
로 되어 있고(위 그림의 아래 부분), 오류 소스를 WinEdt에서 보고 싶으면 Editor를
 Editor=winedt "[Open('%f');SelPar(%l,7)]"
로 바꿔야 합니다. (참고로 마지막 숫자 7은 오류 소스를 빨강 바탕에 흰 글씨가 되도록 합니다. 위의 그림 2그림 3 참조)

자세히 말씀드리면 miktex.ini 파일을 찾아 WinEdt 창에 열고 Ctrl 키와 i 키를 함께 누르면 "찾기" 대화상자(Pop-up)가 나타납니다. 여기에 "Editor=" 를 입력하면 그림 4와 같이 되어 있는 곳으로 찾아갑니다. 맨 아래에 있는 Editor="$(windir)\notepad.exe" "%f" 부분을
 Editor=winedt "[Open('%f');SelPar(%l,7)]"
로 고치고 miktex.ini 파일을 저장하십시요. (원래의 파일은 miktex.ini.bak로 보관됩니다.)

그러면 컴파일(TeXify, PDFTeXify, LaTeX 또는 PDFLaTeX) 때 Console(이른바 Dos 창)에 "오류 메시지"가 나타나고 Command Prompt가 멈추었을 때 필요한 조치 취하면 WinEdt 창에서 작업 중인 TeX 파일의 해당 위치로 찾아 갑니다. 또 TeXify 또는 PDFTeXiFy 때는 WinEdt 창의 아래 부분에 LOG 파일의 해당 사항(오류 메시지)도 함께 보여 줍니다.

3 오류 메시지와 관련한 편집 요령

오류 메시지와 관련한 편집 요령이 KTUGContrib:893, KTUGContrib:934 등에도 있습니다만 모두 좀 오래 되어서 최근의 TeX 편집과 꼭 일치하지 않는 수가 허다합니다. 물론 어떤 TeX 프로그램을 쓰느냐에 따라서도 메시지가 다르게 나타납니다. 가령 KTUGOperate:15101에 첨부된 주요국가소비자정책.texMiKTeX 2.4에서 컴파일하면 오류메시지는
! LaTeX Error: \begin{document} ended by \end{itemize}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.1454 \end{itemize}
                    
?
로 나타납니다. 이 메시지는 1454 행의 \end{itemize}가 제 짝인 \begin{itemize} 1454 행의 앞에 없다는 뜻입니다. e 키를 친 후 Enter 키를 치면 아래 그림4와 같이 찾아갑니다. 그래서 1454 행의 \end{itemize}를 마우스로 긁어서 파랑 바탕의 하양 글씨로 바꾸고 Ctrl 키를 누른 채 F12 키를 눌렀더니 Warning 창이 뜨고

Extra "\end{itemize}" or forgotten "begin{itemize}

라고 나타나네요(아래 그림 참조). (그냥 F12 키만 누르면 \begin{document} 부터 1454 행의 \end{itemize}까지 모두 선택됩니다.)

http://www.ktug.or.kr/jsboard/data/operate/files/20060117113023/%BF%C0%B7%F9%C3%A3%B1%E21.jpg

그림4: 오류 소스와 \end{itemize}의 짝 찾기 결과
실제 제 짝이 없는 \begin{itemize}는 1460 행에 있습니다. 그런데 1460 행에서 시작한 itemize 환경은 1485 행에서 마무리되어야 하는데 \end{itemize}를 1485 행 다음 어디에 넣어도 오류메시지 없이 컴파일됩니다. 그러나 제 위치에 있지 않으면 Warning이 있고 원하는 조판이 아니고 엉뚱한 조판이 될 수도 있습니다. Warning은 Log 파일을 열면 볼 수 있습니다.

3.1 Delimiters의 짝 찾기 기능


^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-06-04 15:14:50
Processing time 0.0606 sec