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>처럼 입력하시면 좋습니다.
minted package
2015.10.16 17:53
맥에서 mactex 2015를 쓰고 있습니다. texshop으로 편집을 하고 컴파일을 하고 있습니다.
xelatex엔진을 쓰는데요. 보통 ~/Library/TeXShop/Engines/xelatexmk.engine을 사용해 컴파일하고 있습니다.
문제는 minted package를 넣으면 컴파일이 되지 않습니다. 구글링하나까 -shell-escape 옵션을 넣으라고 하더군요.
그래서 ~/Library/TeXShop/Engines/XeLaTeX.engine를 -shell-escape를 넣고 다음과 같이 고치니
---------------------------------------------------------------------------------------------------
#!/bin/tcsh
set path= ($path /usr/texbin /usr/local/bin)
xelatex -file-line-error -shell-escape -synctex=1 "$1"
---------------------------------------------------------------------------------------------------
xelatex으로는 컴파일이 잘 되는데,
문제는 xelatexmk으로 컴파일 하면 여전히 실패합니다.
~/Library/TeXShop/Engines/xelatexmk.engine의 파일 내용은 다음과 같습니다.
---------------------------------------------------------------------------------------------------
#!/bin/bash
export TSBIN="$HOME/Library/TeXShop/bin/tslatexmk"
export LTMKBIN="$HOME/Library/TeXShop/bin/tslatexmk"
export LTMKEDIT="$HOME/Library/TeXShop/bin"
# make sure latexmkrcedit exists in bin
if [ ! -e "${LTMKEDIT}/latexmkrcedit" ] ; then
cp "${LTMKBIN}/latexmkrcDONTedit" "${LTMKEDIT}/latexmkrcedit"
fi
# Use local rc file platexmkrc if it exists. p = project
export localrc=""
if [ -e ./platexmkrc ] ; then
export localrc="-r ./platexmkrc"
fi
"${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -r "${TSBIN}/xelatexmkrc" ${localrc} "$1"
어떻게 하면 minted 패키지가 들어간 문서를 xelatexmk으로 컴파일 할 수 있을까요?
간단한 테스트 소스코드 첨부드립니다. 감사합니다.
\documentclass[11pt]{amsart}
\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots.
\geometry{letterpaper} % ... or a4paper or a5paper or ...
%\geometry{landscape} % Activate for for rotated page geometry
%\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{epstopdf}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\usepackage{minted}
\title{Brief Article}
\author{The Author}
%\date{} % Activate to display a given date or no date
\begin{document}
\maketitle
%\section{}
%\subsection{}
\begin{minted}{python}
def __init__(self, x, y):
self.x=x
self.y=y
\end{minted}
\end{document}
댓글 6
-
NDH
2015.10.17 09:57
-
지나가다
2015.10.24 07:43
감사합니다! 그리고 댓글이 늦어서 죄송합니다.
arara를 사용해 돌려봤습니다. 잘 됩니다. (input 들어가고 bibtex쓰는 프로젝트도 잘 되는데요. <- 이것까지 검사하고 댓글 달려고 좀 늦었습니다. 죄송합니다!)
문제는 synctex이 작동하지 않습니다.
(그런데 xelatexmk 대신 xelatex을 쓰면 synctex이 작동합니다.)
해결방법이 없을까요? arara 메뉴얼 보면 synctex으로 파라미터 써도 된다고 하던데 작동을 안하네요.
한가지 더, options: "-file-line-error-style" (컴파일 후 콘솔창에 Goto Error 버튼을 누르면, 에러가 있는 소스 라인을 찾아주는 기능 맞죠?)을 넣고 싶어서 넣었는데, 실패합니다. 해결방법이 없을까요?
다음 소스는 \alpha에 $나 \(로 감싸주지 않아 일부러 에러나게 한 코드입니다. 감사합니다.
-----------------------------------------------------------
%!TEX TS-program = arara
% arara: xelatexmk: { shell: yes, synctex: yes, action: nonstopmode}
\documentclass[11pt]{amsart}
\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots.
\geometry{letterpaper} % ... or a4paper or a5paper or ...
%\geometry{landscape} % Activate for for rotated page geometry
%\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{epstopdf}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\usepackage{minted}
\title{Brief Article}
\author{The Author}
%\date{} % Activate to display a given date or no date
\begin{document}
\maketitle
%\section{}
%\subsection{}
\begin{minted}{python}
def __init__(self, x, y):
self.x=x
self.y=y
\end{minted}
ddd
\alpha % error occurs
\end{document}
-----------------------------------------------------------
그리고 arara.engine파일 내용입니다.
#!/bin/bash
export PATH=/Library/TeX/texbin:/usr/texbin:/usr/local/bin:${PATH}
arara -v "$1"
-
NDH
2015.10.24 09:00
1. synctex 옵션에 관하여
이것은 xelatexmk rule의 버그입니다. 우습지만 synctex: no로 하면 아마 원하시는 대로.... 될 겁니다.
/usr/local/texlive/2015/texmf-dist/scripts/arara/rules/xelatexmk.yaml 파일을 열어서 --synctex=0와 --synctex=1의 순서를 바꾸어 저장하십시오.
texmf-dist 아래 파일을 수정하는 것이 마음에 걸리신다면, synctex 디렉티브를 쓰지 말고,
% arara: xelatexmk: { shell: yes, options: -latexoption=-synctex=1 }
이렇게 해도 될 것으로 짐작합니다.
2. file-line-error style에 대하여
이것은 여러 파일로 이루어진 큰 규모의 프로젝트를 만들 적에, 로그 파일로부터 에러 위치를 검출하여 어떤 조작을 가하거나 하려 할 때, 말하자면 로그 분석 스크립트를 만들 때 도움이 되는 옵션입니다. 에디터를 이용하여 문서를 작성하는 일반 사용자에게는 큰 영향을 끼치지 않는 걸로 봐도 되겠지요. 물론 에디터의 로그 분석기가 이 옵션을 요구할 수는 있습니다.
아무튼 이 옵션을 추가하고 싶으시다면, 앞서 보인 options 디렉티브를 이용하십시오.
% arara: xelatexmk: { shell: yes, options: -latexoption=-synctex=1 -file-line-error }
3. latexmk와 arara
말씀하시는 바와 같이 arara에서 latexmk를 지시할 수는 있습니다. 그렇지만 제 생각에는 latexmk가 일종의 배치 처리기이고 arara 역시 그러하기 때문에 arara를 통하여 latexmk를 부르는 것보다는 다음과 같이 workflow를 제어하는 것이 더 낫지 않겠는가 생각합니다.
% arara: xelatex: { shell: yes, synctex: yes }
% arara: xelatex: { shell: yes, synctex: yes }
% arara: bibtex
% arara: makeindex
% arara: makeglossaries
% arara: xelatex: { shell: yes, synctex: yes }
% arara: lmkclean
아시겠지만
%! arara: makeindex
이렇게 하면 makeindex가 (일시적으로) 실행되지 않게 할 수 있습니다. 이를 이용하여 작업 중 필요한 대로 이용할 수 있습니다.
즉, 일종의 "배치파일"을 소스 안에서 작성하는 것처럼 쓰는 것입니다.
-
지나가다
2015.10.24 18:34
와 감사합니다!
1. 일단 Goto Error 버튼 문제는 어떤 이유에서 인지 모르겠지만 잘 작동하네요.
하지만 % arara: lmkclean 가 뭘하는지 모르겠지만 (aux 파일등을 휴지통에 버리는 것 같은데 -맞나요?) 작동을 하지않습니다.
중요한 작업인지 궁금합니다.
2. 다음 코드 감사합니다.
% arara: xelatex: { shell: yes, synctex: yes }
% arara: xelatex: { shell: yes, synctex: yes }
% arara: bibtex
% arara: makeindex
% arara: makeglossaries
% arara: xelatex: { shell: yes, synctex: yes }
% arara: lmkclean
----------------
3. 나중에 한글이 들어간 인텍스를 작성하고 싶다면 % arara: makeindex 대신에 다음을 추가하면 되겠죠?
% arara: komkindex: { style: kotex }
----------------
4. 그리고 예전엔 input한 파일에서 컴파일할 때 main파일이 parent directory에 있을 경우, input한 파일에 다음을 집어 넣었습니다.
% !TEX root = ../main.tex
모험 삼아 다음 링크를 참고해서
http://wiki.ktug.org/wiki/wiki.php/arara
다음 코드를 input한 파일에 집에 넣고 컴파일 했지만...
%!TEX TS-program = arara
% arara: { files: [../main.tex] }
다음과 같은 에러가 났습니다. (% !TEX root = ../main.tex 와 같은 해결책이 있기에 별 중요하게 생각하지 않지만, texshop에 특화된 지시어 인걸로 알고 있어서 혹시나 해서 여쭙습니다. )
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Apparently, there's an invalid directive at line 9. Please take a look and fix it.
-------------------------
아무튼 앞으로 arara로 편하게 작업할 수 있게 해주셔서 거듭 감사드립니다!
-
NDH
2015.10.25 02:12
1. lmkclean은 부수파일을 지우는 것입니다. 중요하지 않습니다.
3. komkindex나 kotexindy rule을 사용하려면 arara-rules-ko 패키지(사설저장소)를 설치해야 합니다.
4. 동작(컴파일러)이 지시되지 않았네요. 다음과 같이 하면 일단 되기는 합니다.
% arara: xelatex: { files: [../main.tex], synctex: yes, shell: yes }
그러나 arara의 동작은 일반 에디터의 파일 관리와는 완전히 다른 것입니다. 이른바 "프로젝트 관리"는 에디터에 맡기시는 것이 좋습니다. 예컨대 위의 디렉티브를 가진 sub.tex을 컴파일하면 main.pdf가 sub.tex이 있는 폴더, 즉 arara를 실행한 폴더에 생겨날 것입니다.
-
지나가다
2015.10.25 10:53
제가 가진 지식 범위안에서 (지금까지의) 원하는 바를 얻었습니다. 늘 그렇듯 명쾌합니다! ^^ 그리고 프로젝트는 편집기에 맡겨 두겠습니다. 감사합니다!!
여러 가지 해결방법을 생각해볼 수 있습니다.
1. latexmkrc를 이용하는 방법
위의 스크립트를 잘 보면 작업 폴더의 platexmkrc 또는 ~/Library/TeXShop/bin/xelatexmkrc 라는 두 리소스 파일을 읽어들이는 것을 알 수 있습니다. 그러므로 두 파일 중의 하나에 다음 내용을 써넣으면 됩니다. 앞의 파일은 현재 작업 중인 프로젝트에만 적용되게 하는 것이고 뒤의 것을 수정하면 xelatexmk를 부를 때마다 동일한 설정이 적용되는 거겠지요.
TeXShop을 사용하고 shell-escape를 허용해야 하는 상황에서 일반적으로 권장하는 방법입니다. 편리하고 안전합니다.
%!TEX TS-program = arara
% arara: xelatex: { shell: yes }
cf. http://wiki.ktug.org/wiki/wiki.php/TeXShop#s-4