Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
    • 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
    • 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
    • 최소 예제는 "Minimal working example"을 읽어 보세요.
  • 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
  • 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan.org 등은 해제하였습니다.
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 사용하는 편집기는 CKeditor입니다.
    • 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
    • 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
    • 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.

noname

다음과 같은 상황이라고 가정하겠습니다.

  1. TEXLIVE 설치 위치: C:\texlive\2019
  2. 작업 파일이 있는 폴더: C:\Users\MYNAME\Documents\work
  3. 불러들일 파일이 있는 폴더: C:\Users\MYNAME\Documents\work\texmf\tex\latex\mystyles (즉 작업폴더 안에 texmf라는 폴더가 있고 그 아래는 TDS에 맞추어서 파일이 들어 있습니다.)

1. TEXMFHOME 변수를 이용하는 방법

1-1. texmf. cnf의 수정

kpsewhich texmf. cnf 명령으로 확인할 수 있는 위치에 있는 texmf. cnf (보통은 c:\texlive\2019\texmf. cnf)를 수정합니다. TEXMFHOME에 해당하는 행을 다음과 같이 수정(추가)하십시오. (MYNAME은 사용자 로그인 이름입니다.) 가운데 분리자는 세미콜론입니다.

TEXMFHOME = C:/Users/MYNAME/texmf;./texmf

이후 main.tex이 있는 폴더 안의 texmf가 TDS를 갖추었다면 그 아래의 스타일 파일 등을 불러올 수 있습니다. \include, \input, \usepackage, \includegraphics가 가능합니다.

1-2. 환경변수를 이용하는 방법

texmf. cnf에 기록된 값보다 만약 환경변수에 %TEXMFHOME%이 정의되어 있다면 이것이 우선합니다.(리눅스 등에서는 $TEXMFHOME입니다.)

환경변수를 수정하려면 <고급시스템설정>에서 사용자 변수로 TEXMFHOME을 다음 그림과 같이 추가하면 됩니다. (MYNAME부분은 자신에게 맞게)

edit_usersvar.png

1-3. 컴파일용 배치파일을 작성할 때 임시로 TEXMFHOME을 부여하는 방법

만약 다른 사람에게 같은 파일을 보내어야 하는 상황이라면 위와 같은 시스템의 파일이나 변수를 수정하라고 말하기 어려울 수 있습니다. 이럴 때는 컴파일용 배치파일을 제공하는 것이 좋습니다. 예를 들면

@echo off
set TEXMFHOME=./texmf
xelatex -shell-escape -synctex=1 MAIN.tex

이와 같은 내용의 배치파일을 실행하게 하는 것입니다. 

2. Input path를 TEX 문서 내부에서 지정하는 방법

\graphicspath와 같이 그림이 있는 위치를 지정하여 그 폴더로부터 불러오게 하는 트릭이 graphicx 패키지에 있습니다. 이를 응용하여, 원하는 파일을 불러올 (찾을) 위치를 절대위치나 상대위치로 지정할 수 있습니다.

\makeatletter
\def\input@path{{./texmf/tex/latex/mystyles/}{/absolute/path/to/somewhere/}}
\makeatother

이 위치에 있는 파일은 스타일이든 그림이든 불러올 수 있습니다. 아마 \includegraphics 명령에도 적용될 겁니다. 그러나 tex 문서를 이런 식으로 작성하는 것은 좋은 방법이 아닙니다. 왜냐하면 문서를 다른 어떤 상황에서 다시 컴파일해야 할지 모르기 때문이지요. 이렇게 "특정 상황에만 맞는" 방식으로 소스를 작성하는 것은 틀림없이 나중에 문제를 일으킵니다.

3. 결론

공동작업자와 파일을 교환해야 하는 경우에 TEXMF를 이용하는 것은 위에 보인 것처럼 불가능하지 않지만, 서로 불편할 뿐아니라 효율적이지도 못합니다. 웬만하면 필요한 파일을 작업 디렉터리에 두는 것이 최선이라고 생각합니다.

 




XE Login