> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ko/more-topics/39-mltex-enctex-and-synctex-tex-extensions.md).

# MLTeX EncTeX 및 SyncTeX TeX 확장

## TeX 확장 기능에 대한 몇 가지 배경 정보

TeX는 40년이 넘는 오랜 개발 역사를 가지고 있습니다! 그동안 e-TeX, pdfTeX, XeTeX, LuaTeX 등과 같은 새로운 TeX “버전”이 개발되었습니다. 완전히 새로운 엔진과 다양한 추가 기능 외에도, 여러 *확장 기능* 이 있으며, 이들은 일반적으로 Knuth의 원래 소프트웨어를 향상하기 위한 특정 기능 구현에 중점을 둡니다.

XeTeX와 LuaTeX 같은 현대적인 TeX 엔진의 등장으로, UTF-8 인코딩 텍스트의 기본 지원과 같은 강력한 추가 기능을 새 TeX 엔진들이 제공하면서 일부 레거시 TeX 확장 기능의 필요성과 사용은 줄어들었습니다. 이 페이지의 목적은 MLTeX와 EncTeX를 포함하여, 여전히 다음에서 참조되는 것을 볼 수 있는 확장 기능에 관한 몇 가지 참고 사항을 제공하는 것입니다 [TeX 엔진의 명령줄 옵션](/latex/ko/more-topics/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX와 EncTeX는 모두 더 이상 개발되지 않지만, 매우 유용한 확장 기능인 SyncTeX는 계속 활발히 개발되고 있으며 Overleaf에서 지원됩니다.

## MLTeX

*다국어 TeX*, 즉 MLTeX는 일반 Computer Modern(CM) 글꼴을 사용하여 악센트 문자가 있는 단어의 하이픈 처리를 가능하게 하는 TeX 수정판으로 1992년부터 1995년 사이에 개발되었습니다.

### MLTeX 활성화(사용 설정)

MLTeX는 이른바 `.fmt` (포맷 파일)의 일부로 작동하도록 설계되었으며, 이는 사실상 TeX 매크로 집합을 미리 컴파일한 바이너리 버전입니다. 포맷 파일을 만들려면 TeX 엔진을 이른바 `INI` 모드로 전환하고, 매크로 컬렉션을 처리한 후 `\dump` 명령을 실행하여 `.fmt` 파일을 기록합니다. 다음을 참조하세요 [이 글](/latex/ko/in-depth-articles/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) INI 모드에 대한 설명입니다.

MLTeX를 활성화하려면, *이를 지원하는 엔진의 경우*, 예를 들어 pdfTeX에서는 다음과 같이 작성합니다

```
pdftex -ini -mltex *pdfetex.ini
```

여기서 `pdfetex.ini` 는 TeX Live 배포판에 포함된 파일입니다.

**별표의 이유는 (`*`)?** 별표는 pdfTeX를 이른바 “확장 모드”로 전환하며, 이 모드는 e-TeX 프리미티브 지원을 활성화합니다. 이를 생략하고 다음을 입력하면 `pdftex -ini -mltex pdfetex.ini` 다음 오류가 발생합니다:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX 치명적 오류: 이 파일은 확장 모드에서만 처리할 수 있습니다;
  혹시 별표를 빼먹으셨나요?
```

**참고**: “확장 모드”를 활성화하기 위해 별표를 사용하는 대신 `-etex` 명령줄 옵션을 대신 사용할 수 있습니다:

```
pdftex -ini -etex -mltex pdfetex.ini
```

**참고**: 다음을 사용하는 경우 `-mltex` 명령줄의 옵션을 `.fmt` 파일과 함께 사용했는데 해당 파일이 *생성되지 않은* 경우에는 MLTeX를 활성화한 상태로 *작동하지* 작동하지 않습니다: MLTeX는 적절한 포맷 파일을 통해 “활성화”해야 합니다.

다음을 사용할 때 `-mltex` 옵션을 사용하는 동안 `.fmt` 파일 생성 시 “true” 값을 가진 불리언 변수가 `.fmt` 파일에 기록되어, TeX 엔진에 MLTeX 확장 기능이 활성화되었으며 사용자에게 제공되어야 함을 알립니다. 명시적으로 `-mltex` 옵션을 설정하지 않으면 해당 변수는 “false”가 됩니다. 해당 변수의 값이 “false”로 감지되면(그 `.fmt` 파일이 TeX 실행 중 다시 로드될 때) MLTeX 확장 기능을 사용하려 하면 `정의되지 않은 명령...` 오류가 발생합니다. MLTeX 프리미티브가 등록(로드)되지 않아 인식되지 않기 때문입니다.

다음을 실행한 후 `pdftex -ini -mltex *pdfetex.ini` 을 명령줄에서 실행하면 MLTeX v2.2가 활성화되었음을 보여 주는 다음과 유사한 텍스트가 표시됩니다:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
\write18 enabled.
확장 모드 진입
MLTeX v2.2 enabled
....
....
....
파일 pdfetex.fmt에 덤프 시작
....
출력 페이지 없음.
전사 기록이 pdfetex.log에 작성되었습니다.
```

그 결과 `.fmt` 라는 파일이 생성됩니다 `pdfetex.fmt` 을 통해 MLTeX 명령을 사용할 수 있습니다:

```
pdftex -fmt=pdfetex <yourfile.tex>
```

여기서 `<yourfile.tex>` 은 MLTeX 전용 프리미티브를 사용할 수 있습니다

MLTeX는 원래 별도의 변경 파일로 배포되었습니다. [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), 이것은 Knuth의 마스터 소스 코드([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en))와 병합하여 여러 새 프리미티브를 포함한 MLTeX라는 새 버전의 TeX를 만들 수 있었습니다. 오늘날 다음의 MLTeX 코드는 `mltex.ch` 에 포함되어 주요 `tex.ch` 변경 파일에 통합되었으며, 이 파일은 거의 모든 TeX 엔진을 빌드하는 데 사용됩니다.

### MLTeX 프리미티브

다음 참고 사항은 대부분 파일에서 준비하고 재현한 것입니다 `web2c.info` 에 포함된 [TeX Live](https://tug.org/texlive/) 배포판.

* **`\charsubdef`**: 문자 대체 정의. 두 문자 글리프(존재하는 것)를 사용하여 악센트 문자 글리프(현재 글꼴에 반드시 존재할 필요는 없음)를 구성하는 방법을 선언합니다.

  ```
  \charsubdef COMPOSITE [=] ACCENT BASE
  ```

  COMPOSITE, ACCENT, BASE는 각각 일반적인 TeX 구문으로 표현된 글꼴 글리프 번호입니다: 기호 표현에는 \`\e, 8진수에는 '145, 16진수에는 "65, 10진수에는 101을 사용합니다. 따라서 단일 문자로 입력하거나 다음을 사용하여 입력한 문자 글리프 코드가 `\char` 프리미티브에 의해 글꼴 글리프에 매핑될지, 아니면 `\accent` 글리프 구성에 매핑될지를 정의합니다.

  예를 들어 e-서컴플렉스의 글리프 코드가 138(10진수)이고, 서컴플렉스 악센트가 위치 18에 있으며 소문자 ‘e’가 일반적인 ASCII 위치인 10진수 101에 있는 Computer Modern 글꼴을 사용한다고 가정하면, 다음을 사용합니다 `\charsubdef` 은 다음과 같습니다:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: 다음 목록의 최대값을 설정합니다 `\charsubdef` 목록. 예:

  ```
  \charsubdefmax=-1 % 모든 대체 비활성화
  \charsubdefmax=256 % 모든 대체 활성화
  ```
* **`\tracingcharsubdef`**: 대체 추적. 다음의 문제를 진단하는 데 도움을 주기 위해 `\charsubdef`, MLTeX는 프리미티브 매개변수인 `\tracingcharsubdef`을 제공합니다. 양수이면, 다음을 사용할 때마다 `\charsubdef` 이 보고됩니다. 이는 문자가 재정의되는 시점을 추적하는 데 도움이 될 수 있습니다.

## EncTeX

EncTeX는 1997년부터 2004년 사이에 새로운 프리미티브를 추가하여 유연한 입출력 재인코딩을 제공하는 TeX 확장 기능으로 개발되었습니다. 예를 들어 TeX에 입력되는 데이터를 변환하는 수단을 제공합니다. 이를 통해 표준 8비트 TeX 엔진에서 사용할 UTF-8 인코딩과 같은 멀티바이트 시퀀스를 변환할 수 있습니다.

### EncTeX 활성화(사용 설정)

MLTeX와 마찬가지로 EncTeX도 이른바 `.fmt` (포맷 파일)의 일부로 작동하도록 설계되었습니다—다음을 참조하세요 [MLTeX](#mltex), 위에서 포맷 파일/INI 모드에 대한 설명을 확인할 수 있습니다.

EncTeX를 활성화하려면, *이를 지원하는 엔진의 경우*, 예를 들어 pdfTeX에서는 다음과 같이 작성하여 EncTeX가 활성화된 포맷 파일을 만듭니다

```
pdftex -ini -enc *pdfetex.ini
```

여기서 `pdfetex.ini` 는 TeX Live 배포판에 포함된 파일입니다.

**별표의 이유는 (`*`)?** 별표는 pdfTeX를 이른바 “확장 모드”로 전환하며, 이 모드는 e-TeX 프리미티브 지원을 활성화합니다. 이를 생략하고 다음을 입력하면 `pdftex -ini -mltex pdfetex.ini` 다음 오류가 발생합니다:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX 치명적 오류: 이 파일은 확장 모드에서만 처리할 수 있습니다;
  혹시 별표를 빼먹으셨나요?
```

**참고**: “확장 모드”를 활성화하기 위해 별표를 사용하는 대신 `-etex` 명령줄 옵션을 대신 사용할 수 있습니다:

```
pdftex -ini -etex -mltex pdfetex.ini
```

다음 `-enc` 명령줄 옵션은 결과물 `pdfetex.fmt` 포맷 파일에 일부 데이터를 기록하여 pdfTeX 엔진이 EncTeX를 활성화하도록 합니다.

**참고**: 다음을 사용하는 경우 `-enc` 명령줄의 옵션을 `.fmt` 파일과 함께 사용했는데 해당 파일이 *생성되지 않은* EncTeX가 활성화된 상태에서 *작동하지* 작동하지 않습니다: EncTeX는 적절히 생성된 포맷 파일을 통해 “활성화”해야 합니다.

### EncTeX 프리미티브

EncTeX는 TeX 엔진에 10개의 새로운 프리미티브 명령을 추가합니다:

* 초기 릴리스(1997)의 프리미티브 3개:
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 2003년에 추가된 프리미티브 7개(UTF-8 지원용):
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

이러한 프리미티브의 사용법과 동작은 다음에 잘 문서화되어 있습니다 [EncTeX 참조 매뉴얼](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), EncTeX의 저자 Petr Olšák가 작성했습니다. 여기서 불필요한 중복을 피하기 위해 관심 있는 독자는 해당 문서를 참조하시기 바랍니다.

### EncTeX에 대한 추가 정보

* [EncTeX의 두 번째 버전: UTF-8 지원](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): EncTeX의 저자 Petr Olšák가 쓴 글입니다.
* [EncTeX 참조 매뉴얼](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (영어).

### MLTeX와 EncTeX 모두 활성화(사용 설정)

MLTeX와 EncTeX를 모두 활성화하려면 다음과 같은 명령줄을 사용하여 적절한 포맷 파일을 생성합니다

```
pdftex -ini -enc -mltex *pdfetex.ini
```

여기서 `pdfetex.ini` 는 TeX Live 배포판에 포함된 파일입니다.

**별표의 이유는 (`*`)?** 별표는 pdfTeX를 이른바 “확장 모드”로 전환하며, 이 모드는 e-TeX 프리미티브 지원을 활성화합니다. 이를 생략하고 다음을 입력하면 `pdftex -ini -enc -mltex pdfetex.ini` 다음 오류가 발생합니다:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX 치명적 오류: 이 파일은 확장 모드에서만 처리할 수 있습니다;
  혹시 별표를 빼먹으셨나요?
```

**참고**: “확장 모드”를 활성화하기 위해 별표를 사용하는 대신 `-etex` 명령줄 옵션을 대신 사용할 수 있습니다:

```
pdftex -ini -etex -enc -mltex pdfetex.ini
```

위 명령줄을 실행한 후에는 MLTeX와 EncTeX가 모두 활성화되었음을 알리는 다음과 같은 메시지가 표시됩니다:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
확장 모드 진입
MLTeX v2.2 enabled
 encTeX v. Jun. 2004, reencoding enabled.
....
....
....
파일 pdfetex.fmt에 덤프 시작
....
출력 페이지 없음.
전사 기록이 pdfetex.log에 작성되었습니다.
```

와 `pdfetex.fmt` MLTeX와 EncTeX를 모두 활성화하는 포맷 파일이 생성됩니다.

## SyncTeX

SyncTeX 확장 기능은 2008년부터 제공되었으며, 제작자인 Jérôme Laurens가 계속 활발히 개발하고 있습니다. Overleaf를 비롯해 널리 사용되고 있으며, 현재 사용되는 모든 TeX 엔진에서 지원됩니다.

### SyncTeX는 무엇을 하나요?

TeX로 조판한 문서를 볼 때, 예를 들어 출판사 제출 전 교정/검토를 위해 문서를 살펴보다가 오류를 발견하여 TeX 소스 코드에서 수정해야 할 수 있습니다. 그러나 TeX 파일에서 올바른 위치를 찾는 일은 까다로울 수 있으며, 특히 상당한 분량의 문서라면 더욱 그렇습니다. 반대로 TeX 소스 파일의 위치에서 최종 조판 PDF의 해당 페이지 위치로 바로 이동하고 싶을 수도 있습니다. 두 경우 모두 다음이 필요합니다 *동기화* TeX 파일의 특정 위치와 조판 결과 표시 내 해당 위치를 동기화하는 것입니다. 이것이 바로 SyncTeX가 제공하는 기능입니다. 즉, TeX 파일의 위치와 조판된 문서의 페이지 위치를 자동으로 연결하는 방법입니다.

SyncTeX가 활성화되면 다음 확장자를 가진 특수 파일을 기록합니다 `.synctex.gz` (gz 압축) 또는 `.synctex` (비압축), 이는 다음에 따라 달라집니다 [SyncTeX에 제공된 명령줄 옵션](#synoptions). SyncTeX를 지원하는 텍스트 편집기와 (대부분의) PDF 뷰어는 해당 파일을 사용하여 입력(TeX 코드)과 출력(조판된 PDF 표시) 간에 필요한 동기화를 수행할 수 있습니다. 물론 사용자의 텍스트 편집기와 PDF 문서 뷰어가 SyncTeX가 기록한 `.synctex.gz` (또는 `.synctex`) 파일에 포함된 데이터를 기반으로 텍스트 파일/PDF 뷰어 위치를 전달할 수 있는 적절한 기능을 갖추지 않고서는 이것이 그냥 “발생”할 수 없습니다.

TeX 엔진 내에서 제공되는 기능, 즉 다음을 생성하는 기능 외에도 `.synctex.gz` 파일—SyncTeX는 특별한 [파서](https://github.com/jlaurens/synctex/) 도 제공하며, 이 파서는 다음을 읽습니다 `.synctex.gz` (또는 `.synctex`) 파일에서 관련 페이지/줄 위치 정보를 추출합니다. 애플리케이션은 SyncTeX 지원을 제공하기 위해 이 파서를 사용합니다.

### SyncTeX 활성화(사용 설정)

SyncTeX를 지원하는 TeX 엔진에는 SyncTeX를 활성화/비활성화하는 두 가지 방법이 있습니다:

* 명령줄 옵션: `-synctex=NUMBER`
* 다음에 있는 명령 `.tex` 파일: `\synctex` 원시

### 명령줄에서 SyncTeX 사용하기

다음을 사용할 수 있습니다 `-synctex=NUMBER` pdfTeX처럼 SyncTeX를 지원하는 TeX 엔진을 실행할 때의 옵션입니다.

#### 예시

* SyncTeX 활성화: 출력 `.synctex.gz` (gz 압축 파일):

```
pdftex -synctex=1 myfile.tex
```

생성 결과 `myfile.synctex.gz`

* SyncTeX 활성화: 출력 `.synctex` (비압축 파일):

```
pdftex -synctex=-1 myfile.tex
```

생성 결과 `myfile.synctex`

* SyncTeX 비활성화:

```
pdftex -synctex=0 myfile.tex
```

SyncTeX 출력이 생성되지 않습니다.

### SyncTeX의 유일한 프리미티브

SyncTeX는 하나의 프리미티브를 제공합니다. `\synctex`, 사용자는 이를 자신의 `.tex` 파일에 추가하세요:

* SyncTeX 활성화: `\synctex=1`
* SyncTeX 비활성화: `\synctex=0`

### SyncTeX에 대한 추가 정보

* [Jérôme Laurens의 TUGBoat 기사](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), SyncTeX의 저자.
* 다음 [GitHub 저장소](https://github.com/jlaurens/synctex) SyncTeX 파서의.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ko/more-topics/39-mltex-enctex-and-synctex-tex-extensions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
