코드 예시를 참고하여 작성해 보세요.
| |
---|---|
| |
| |
|
|
LaTeX는 불러올 파일 종류에 따라 사용할 수 있는 다양한 명령어가 있습니다.
오늘은 크게 세 가지로 나누어 정리해 보려고 해요.
TeX 파일
코드/텍스트 파일
이미지/PDF 파일
TeX 파일이란 LaTeX에서 문서의 본문을 담고 있는 소스 파일입니다.
파일명 뒤에 .tex
라는 확장자를 가지고 있는 것들이 바로 TeX 파일이에요.
LaTeX에서는 보통 하나의 main.tex 파일을 중심으로, 그 안에서 여러 개의 다른 TeX 파일을 불러와 문서를 완성하는 형태로 작업해 나갑니다. 그리고 이 main.tex가 문서의 완성본을 만드는 컴파일의 대상이 되며, 그 안에 프리앰블을 꼭 포함하고 있어야 해요.
이렇게 중요한 역할을 하는 main.tex 안에서 프리앰블, 문서의 도입부, 결론까지 모두 작성한다면 길이가 길어지고 가독성이 떨어져 협업과 수정이 힘들지 않을까요?
이럴 때 section1.tex, section2.tex와 같이 문서를 단위별로 분리해 관리한다면 훨씬 효율적으로 작업할 수 있습니다.
명령어 | 설명 | 패키지 |
---|---|---|
\input{파일명} | 지정한 파일의 내용을 해당 위치에 삽입하는 명령어 | - |
\include{파일명} | 지정한 파일을 페이지 단위로 분리하여 삽입하는 명령어 | - |
\includeonly{파일명A, B…} | \include 명령어로 삽입된 파일 중, 지정한 파일만 컴파일 하도록 제한하는 명령어 | - |
\subfile{파일명} | 문서를 모듈 단위로 나누고, 각 단위가 독립적으로 컴파일 가능하도록 처리하는 명령어 | subfiles |
\input은 명령어가 입력된 위치에 지정된 파일의 내용이 바로 붙여넣기 됩니다.
따라서 상대적으로 짧은 부분을 붙여넣기에 적합해요.
반면에, \include는 새로운 페이지(\clearpage
)와 함께 내용이 붙여 넣어지기 때문에 챕터나 섹션과 같이 단위별 관리에 조금 더 적합합니다. 그리고 \includeonly를 통해 원하는 파일만 컴파일 하도록 제한을 두는 것도 가능해요.
이렇게 \input과 \include가 main.tex의 기준에서 다른 파일을 불러와 컴파일 하는 개념이라면, \subfile 명령어는 분리된 다른 파일에서도 컴파일이 가능하도록 처리할 수 있습니다.
하지만 한 가지 유의할 점이 있어요!
\subfile을 통해 처리할 TeX 파일에서는 \documentclass 선언을 통해 컴파일의 기준이 될 메인 문서와 subfiles을 사용한다는 점을 명시해주어야 해요. 그래야만 해당 파일을 독립적으로 컴파일 할 때 지정해둔 메인 문서의 설정(프리앰블)을 그대로 불러와 오류 없이 결과를 만들 수 있습니다.
\documentclass[컴파일 기준이 되는 메인 문서]{subfiles}
💡
코드 예시를 참고하여 작성해 보세요.
| |
---|---|
| |
| |
|
|
input과 include 사이의 가장 눈에 띄는 차이는 \include가 앞뒤에 자동으로 \clearpage
를 넣어 페이지를 구분한다는 점이지만, 사실 이게 전부는 아닙니다.
두 명령어는 내부 동작 방식에서도 꽤 다른 특징을 가지고 있어요.
보조 파일 관리: \include는 각 파일마다 .aux
보조 파일을 따로 생성합니다. 덕분에 \includeonly 명령을 활용해 특정 부분만 빠르게 다시 컴파일할 수 있는 거랍니다. 긴 논문이나 책을 작업할 때 효율적이에요. 반대로 \input은 단순히 원본 내용을 “복사 붙여넣기” 하는 것처럼 동작하기 때문에, 부분 컴파일 기능은 지원하지 않습니다.
사용 위치: \input은 프리앰블이나 본문 중 어디서나 쓸 수 있고, \input을 통해 불러온 파일 안에서 또 다른 \input을 중첩하는 것도 가능해요. 반면 \include는 문서 본문, 즉 document 환경 안에서만 사용할 수 있고, 중첩이 허용되지 않습니다.
정리하자면, \input이 내용을 가볍게 쪼개어 넣는 용도라면, \include는 장 단위로 파일을 관리하면서 빠른 빌드와 페이지 분리를 도와주는 “상위 구조용 명령어”라고 이해하면 좋아요.
때로는 연구 논문이나 보고서에 작성된 소스 코드를 그대로 보여주는 게 여러 줄로 정리된 텍스트를 전달하는 것보다 더 효과적일 수 있을 거예요. 이때 활용 가능한 명령어와 패키지를 정리해 봤습니다.
명령어 | 설명 | 패키지 |
---|---|---|
\lstinputlisting[옵션]{파일명} | 코드 파일을 불러와 문서에 삽입하는 명령어 | listings |
\inputminted{언어}{파일명} | 문법이 강조(syntax highlighting)된 프로그래밍 코드 파일을 문서에 삽입하는 명령어 | minted |
\verbatiminput{파일명} | 지정한 파일에 있는 텍스트를 그대로 문서에 삽입하는 명령어 | verbatim |
\VerbatimInput[옵션]{파일명} | 지정한 파일을 있는 텍스트를 그대로 문서에 삽입하는 명령어 | fancyvrb |
💡
코드 예시를 참고하여 작성해 보세요.
| |
---|---|
| |
| |
| |
|
그림이나, 다이어그램, PDF 문서도 손쉽게 불러와 문서에 포함해 보세요!
아래 명령어들을 사용할 수 있어요.
명령어 | 설명 | 패키지 |
---|---|---|
\includegraphics[옵션]{파일명} | 지정한 이미지를 삽입하는 명령어 (png, jpg, jpeg, pdf, eps) | graphicx |
\includepdf[옵션]{파일명} | PDF의 전체 또는 일부를 삽입하는 명령어 | pdfpages |
💡
코드 예시를 참고하여 작성해 보세요.
|
---|
|
“지난 블로그 글에서도 그림을 넣을 수 있는 환경이 있다고 들었는데요?”
LaTeX에서는 비슷해 보이지만 성격이 다른 것들이 종종 있습니다.
대표적인 예가 바로 figure 환경과 \includegraphics 명령어에요.
\includegraphics | figure 환경 | 비고 | |
---|---|---|---|
패키지가 필요한가요? | ✅ | ✅ | graphicx |
위치 지정이 가능한가요? | ❌ | ✅ | h, t, b, p 옵션 |
캡션 추가가 가능한가요? | ❌ | ✅ | \caption{} 사용 |
“간단하게 이미지만 바로 넣고 싶어요.” → \includegraphics
“이미지를 데이터처럼 관리하고 위치와 설명도 붙이고 싶어요.” → figure 환경
이처럼 LaTeX는 특정 명령어가 정답이라기보다는 상황에 맞게 알맞은 선택을 하는 것이 핵심입니다. 내 문서의 목적에 맞는 것들을 하나씩 선택해 가면서 ‘내가 원하는 방식으로 문서를 설계할 수 있다’ 라는 점이 최고의 장점이자 재미 요소라고 할 수 있답니다!
오늘은 LaTeX에서 여러 파일로 문서를 구성하는 방법과 명령어를 살펴보았습니다.
분리와 확장이 무궁무진한 LaTeX의 세계가 재밌지 않으신가요? 😛
이렇게 기본적인 명령어를 적절히 활용하다 보면 큰 규모의 문서를 효율적으로 관리할 수 있고, 가독성과 효율성 있는 협업도 가능해 훨씬 편리함을 느끼실 거예요.
문서를 잘 분리했다고 하더라도, 프로젝트 규모가 커질수록 모든 파일의 경로와 내용을 전부 기억하기 힘들어 집니다. 게다가 협업을 통해 함께 작성하는 문서라면 더더욱이요.
이런 불편함을 줄이기 위해 Murfy에서는 자동완성 기능을 제공하고 있습니다.
파일명을 참조해야 하는 명령어를 사용할 때, 선택 가능한 TeX 파일이나 이미지 목록이 자동으로 띄워져 경로 문제나 오타에 대한 걱정 없이 손쉽게 파일을 불러올 수 있어요!
앞으로도 LaTeX의 다양한 활용법을 Murfy를 통해 직접 연습하면서 더 깔끔하고 체계적인 문서를 작성해 보시길 바랍니다.
다음 포스트에서는 학술 문서에서 빠질 수 없는 참고문헌 관리를 다뤄볼 예정이에요.
bib 파일을 만들고 \cite, \ref와 같은 명령어를 통해 활용하는 방식까지 단계별로 정리해 드릴테니 기대해 주세요! 🚀
Murfy 공식 블로그