GN⁺: 라텍스를 대체할 쉬운 학습 대안, Typst
(github.com/typst)Typst: 새로운 마크업 기반 조판 시스템
Typst 소개
- Typst는 LaTeX만큼 강력하면서도 배우고 사용하기 쉬운 마크업 기반 조판 시스템임
- 주요 기능:
- 일반적인 형식 작업을 위한 내장 마크업
- 유연한 함수
- 통합된 스크립팅 시스템
- 수학 조판, 참고문헌 관리 등
- 증분 컴파일 덕분에 빠른 컴파일 시간
- 친절한 오류 메시지
예제
- Typst 문서에서 페이지 크기나 제목 번호 매기기와 같은 요소 속성을 설정하는 규칙 사용
-
= Heading
구문을 사용하여 제목 삽입 - 수학 방정식은 달러 기호로 감싸서 표현
- 해시와 표현식을 사용하여 스크립트 입력 가능
- 피보나치 수열을 계산하고 결과를 중앙 정렬된 표에 표시
#set page(width: 10cm, height: auto)
#set heading(numbering: "1.")
= Fibonacci sequence
The Fibonacci sequence is defined through the recurrence relation $F_n = F_(n-1) + F_(n-2)$.
It can also be expressed in _closed form:_
$ F_n = round(1 / sqrt(5) phi.alt^n), quad phi.alt = (1 + sqrt(5)) / 2 $
#let count = 8
#let nums = range(1, count + 1)
#let fib(n) = (if n <= 2 { 1 } else { fib(n - 1) + fib(n - 2) })
The first #count numbers of the sequence are:
#align(center, table(columns: count, ..nums.map(n => $F_#n$), ..nums.map(n => str(fib(n)))))
설치
- Typst의 CLI는 다양한 소스에서 이용 가능
- 최신 릴리스의 소스 및 사전 빌드된 바이너리는 릴리스 페이지에서 다운로드 가능
- 패키지 관리자를 통해 설치 가능 (Linux, macOS, Windows)
- Rust 도구 체인을 사용하여 설치 가능
- Nix 및 Docker 사용 가능
사용법
- Typst 설치 후 다음과 같이 사용 가능:
typst compile file.typ typst compile path/to/source.typ path/to/output.pdf
- 소스 파일을 감시하고 변경 시 자동으로 재컴파일 가능:
typst watch file.typ
- 프로젝트에 맞는 사용자 정의 폰트 경로 추가 가능:
typst compile --font-path path/to/fonts file.typ typst fonts --font-path path/to/fonts
커뮤니티
- 주요 커뮤니티 모임 장소는 Discord 서버
- 공식 패키지 목록 및 Awesome Typst 저장소에서 커뮤니티가 만든 것들을 찾을 수 있음
- 커뮤니티에서 나쁜 경험을 했다면 연락 가능
기여
- 버그를 경험하면 이슈를 열 수 있음
- 새로운 기능이나 버그 수정을 구현하고 싶다면 기여 가이드를 따를 것
- Typst를 직접 빌드하려면 최신 안정 버전의 Rust 설치 필요
git clone https://github.com/typst/typst cd typst cargo build --release
발음 및 철자
- IPA: /taɪpst/
- "Ty"는 Ty pesetting의 "Ty"와 같고 "pst"는 Hi pst er의 "pst"와 같음
- Typst를 쓸 때는 대문자 "T"로 시작하는 고유 명사로 표기
디자인 원칙
- Typst는 세 가지 주요 목표를 염두에 두고 설계됨: 강력함, 단순함, 성능
- 세 가지 핵심 디자인 원칙:
- 일관성을 통한 단순함: Typst에서 한 가지를 아는 경우, 다른 것에도 그 지식을 적용할 수 있어야 함
- 조합성을 통한 강력함: 몇 가지 조합 가능한 시스템을 제공하여 유연성을 높임
- 증분성을 통한 성능: 모든 Typst 언어 기능은 증분 컴파일을 지원해야 함
GN⁺의 정리
- Typst는 LaTeX의 강력함을 유지하면서도 사용하기 쉽게 설계된 마크업 기반 조판 시스템임
- 수학 방정식, 참고문헌 관리 등 다양한 기능을 제공하며, 증분 컴파일 덕분에 빠른 컴파일 시간을 자랑함
- 커뮤니티와의 상호작용을 통해 지속적으로 발전하고 있으며, 기여를 환영함
- LaTeX를 대체할 수 있는 강력한 도구로, 조판 작업을 더 효율적으로 만들 수 있음
Hacker News 의견
-
Typst는 매우 놀라운 도구이며, 우리 조직에서는 매우 만족스러움
-
Typst를 사용해 많은 과제를 작성했으며, 학술적 글쓰기를 더 간편하고 재미있게 만들어줌
- Typst의 함수형 문법 덕분에 Microsoft Word나 Google Docs에서 발생하는 불규칙한 동작을 피할 수 있었음
- VSCode 같은 로컬 IDE를 사용하면 모든 기능을 활용할 수 있음
- LaTeX와 비교했을 때 문서 조판이 훨씬 간단함
- 그러나 긴 수식 입력에서는 LaTeX가 더 편리함
-
HTML 출력이 진행 중이라는 사실에 놀랐음
- LaTeX와 웹의 어색한 관계를 해결하려는 시도가 필요하다고 생각함
- 관련 이슈: GitHub 이슈 링크
-
Typst가 LaTeX를 대체하기를 기대함
- Jinja2 템플릿을 사용해 TeX 파일을 생성했지만, Typst는 JSON을 명령줄에서 받아 Python 단계를 제거할 수 있음
- 컴파일 시간도 밀리초 단위로 매우 빠름
-
Typst의 주요 문제는 LaTeX에 비해 기본적인 세밀한 타이포그래픽 기능을 처리하지 못함
- 수학 모드에서의 다양한 간격이나 구분 기호 크기 조절이 어려움
-
다른 스레드에서 이 주제를 봤음
- 성인 학부생으로 LaTeX를 사용해본 적 없고, Word 문서를 만들어야 했음
- 현재 워크플로우는 pandoc 스타일의 markdown과 zotero를 사용함
- 다른 대학으로 석사 과정을 옮길 예정이며, Typst로 전환할지 고민 중임
-
Typst는 Overleaf와 codimd 같은 서비스의 경쟁자일 것 같음
- 새로운 문법이지만 pandoc에서 지원됨
- Quarto를 사용해 HTML 출력을 생성하지만, 학술적 사용 문제를 해결하지 못함
- Word는 여전히 과학적 글쓰기에서 대체하기 어려울 것 같음
-
Typst의 가장 좋은 점은 직관적이라는 것임
-
Typst를 사랑함
- 프로그램 입력을 처리하기에 좋음
- JSON을 쉽게 처리할 수 있어 프로젝트에서 LaTeX를 Typst로 교체했음
- 관련 문서: Typst 문서 링크
- 프로젝트 링크: Resgen 링크