Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
이맥스 next error 관련 질문
2013.01.14 18:18
맥에서 mactex 2012를 깔고 GNU Emacs를 이용하여 latex을 사용하는 환경입니다.
이맥스 상에서 latex을 컴파일하여 오류가 나면 C-c + ` 커맨드를 이용하여 에러가 최초로 난 위치로 이동하곤 하였는데 그 명령이 더이상 듣질 않습니다. 언급된 커맨드를 사용하면
"Error occurred after last Tex file closed"
라는 경고문이 뜨고 에러가 난 부분으로의 이동이 없습니다.
이맥스에서의 설정이 저도 모르게 변경되었는지 모르겠지만 의도적으로 설정을 바꾼 기억이 없어 이렇게 질문을 올립니다.
(구글링도 별 도움이 안되네요.)
해결책이 없을까요?
제가 사용하는 환경은 아래와 같습니다.
맥 OS X 10.8
맥용 GNU Emacs : 버전 23.4.1
latex: 맥텍 2012 (TexLive 2012)
댓글 4
-
연금술사
2013.01.14 23:33
-
liganega
2013.01.15 15:33
댓글 감사드립니다.
하지만 C-c C-l 방식은 여러모로 좀 불편합니다.
창을 띄어 스크롤을 하며 잘못된 곳에 대한 정보를 일일이 찾아야 해서.
개인적으로는 터미널을 띄 그곳에서 컴파일을 하는 것으로 일단은 임시방편적으로 해결하고 있습니다.
그런데 같은 설정을 갖는 다른 맥 컴에서는 기존의 C-c ` 명령이 잘 먹히는데 무엇이 문제인지 도대체 알 수 없습니다.
구글링을 해보니 아래 사이트에 동일한 문제에 대한 질문이 있는데 답변을 제가 이해할 수가 없습니다.
도움이 가능할까요?
http://web.archiveorange.com/archive/v/LEGAoTAQEhFBmp8LDV7r
-
연금술사
2013.01.15 17:39
AUCTeX을 사용하신다면 먼저 다음 코드를 eval 해보세요.
스트레스를 좀 덜 받지 않을까요? 헤헤
아니 AUCTeX을 쓰시지 않는다면 먼저 AUCTeX부터 쓰시는걸 추천합니다.
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq LaTeX-command "latex -file-line-error -synctex=1")))
C-c `는 TeX-engine, TeX-PDF-mode을 비롯해, 나오는 에러메세지 내용에 따라
작동이 될 때도 있고 안될 때도 있습니다. 자세한 원인은 잘 모르겠습니다.
그리고 C-c C-l이 로그를 쭉 훑어야하는 점은 있지만, 로그가 생각보다 길지 않습니다.
-fine-line-error를 해두시고 C-r l. C-r C-r ... 로 reverse search 하시면서
에러부분을 좇아가시면 금방 다 잡습니다. 좀더 정교하게 딱딱 찾아내시려면
에러메세지를 잘 관찰해두시고 regexp search(C-M-s, C-M-r)를 하시는걸 추천합니다.
l\.[0-9]+ 이 정도쯤 되겠네요.
그리고 남기신 말씀중에 터미널에서 컴파일을 하신다고 하셨는데, emacs를
쓰시면 구지 그럴 필요가 있나 싶습니다. M-!이나 M-x shell 같은
쉘 인터페이스도 있고 또 PSTricks 컴파일을 위해 LaTeX + dvips + ps2pdf을
써야하신다면 아래 코드를 참고해 보시길.
(add-to-list 'TeX-command-list
'("LaTeX + dvips + ps2pdf"
"latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t))
그리고 AUCTeX을 쓰시게 되면 컴파일 오류를 많이 안만나고 문서를 완성시킬 수
있습니다. C-SPC로 region을 잡고 그 부분만 C-c C-r해서 컴파일 할 수도 있고,
\include, \input을 쓰는 규모있는 작업을 하실 때도 TeX-master라는 로컬변수로
특정 버퍼만 C-c C-b해서 컴파일 할 수도 있습니다. 대충 이런 부분 컴파일기능으로
의심나는 region은 주석(M-;) 처리나 register 임시등록으로, 컴파일에서 제외시키고
진행하실 수 있습니다.
TeX-master 관련해서는 제가 emacswiki 페이지 있는걸 좀더 수정해 두었습니다.
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq TeX-master (if (buffer-file-name)
(guess-TeX-master (buffer-file-name))
nil))))
;; for multiple documents. outline-minor-mode is alternate choice
(defun guess-TeX-master (filename)
"Guess the master file for FILENAME from currently open .tex files."
(let ((candidate nil)
(filename (file-name-nondirectory filename)))
(save-excursion
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(let ((name (buffer-name))
(file buffer-file-name))
(if (and file (string-match "\\.tex$" file))
(progn
(goto-char (point-min))
(when (or
(re-search-forward (concat "\\input{" (file-name-sans-extension filename) "}") nil t)
(re-search-forward (concat "\\include{" (file-name-sans-extension filename) "}") nil t)
(re-search-forward (concat "\\usepackage{" (file-name-sans-extension filename) "}") nil t))
(setq candidate file))))))))
(if candidate
(message "TeX master document: %s" (file-name-nondirectory candidate)))
candidate))
C-c `도 그러시겠지만 앞으로 쓰시다 보면 자잘한 문제들이 또 생길수 있는데, 다양한 시나리오를 짜두시면 -
liganega
2013.01.16 10:08
자세한 댓글 감사드립니다.
사실 Auctex을 사용하고 있고 auctex 문제라고 의심이 들기도하였지만 기본적인 것만 알고 사용하는 수준이라 문제가 발생할 경우 검색을 통해 문제해결을 하곤 합니다.
제안하신 것들 중에 새롭고 유용한 정보들이 몇 있습니다. 좋은 정보 감사드립니다. 유용하게 사용하겠습니다.
C-c C-l 해보세요.