Typst는 LaTeX만큼 강력하면서도 훨씬 쉽게 배우고 사용할 수 있도록 설계된 새로운 마크업 기반 조판 시스템입니다. Typst에는 다음이 포함됩니다.
이 저장소에는 Typst 문서를 로컬로 컴파일하는 데 필요한 모든 것인 Typst 컴파일러와 해당 CLI가 포함되어 있습니다. 최고의 글쓰기 경험을 위해 공동 온라인 편집자에 무료로 가입하는 것을 고려해 보세요.
Typst에 대한 간단한 소개는 당사 문서에서 확인할 수 있습니다. 그러나 하나의 이미지에 캡슐화된 Typst의 성능을 보려면 다음을 참조하세요.
무슨 일이 일어나고 있는지 분석해 보겠습니다.
우리는 설정된 규칙을 사용하여 페이지 크기나 제목 번호 매기기와 같은 요소 속성을 구성합니다. 페이지 높이를 auto
로 설정하면 내용에 맞게 크기가 조정됩니다. 설정된 규칙은 가장 일반적인 구성을 수용합니다. 완전한 제어가 필요한 경우 표시 규칙을 사용하여 요소의 모양을 완전히 재정의할 수도 있습니다.
= Heading
구문을 사용하여 제목을 삽입합니다. 하나의 등호는 최상위 제목을 만들고, 두 개는 부제목을 만드는 식입니다. Typst에는 이와 같이 보다 가벼운 마크업이 있습니다. 전체 목록은 구문 참조를 참조하세요.
수학 방정식은 달러 기호로 표시됩니다. 방정식 내용 주위에 추가 공백을 추가하면 방정식을 별도의 블록에 넣을 수 있습니다. 다중 문자 식별자는 따옴표로 묶지 않는 한 Typst 정의 및 함수로 해석됩니다. 이렇게 하면 floor
및 sqrt
와 같은 항목에 백슬래시가 필요하지 않습니다. 그리고 phi.alt
특정 기호 변형을 선택하기 위해 phi
에 alt
수정자를 적용합니다.
이제 우리는 스크립팅을 시작합니다. Typst 문서에 코드를 입력하려면 해시 뒤에 표현식을 작성하면 됩니다. n번째 피보나치 수를 계산하기 위해 두 개의 변수와 재귀 함수를 정의합니다. 그런 다음 중앙 정렬된 표에 결과를 표시합니다. 테이블 함수는 셀을 행 단위로 사용합니다. 따라서 먼저 수식 $F_1$
$F_8$
에 전달한 다음 계산된 피보나치 수를 전달합니다. 두 항목 모두 배열이고 배열의 항목을 개별 인수로 전달하려고 하기 때문에 확산 연산자( ..
)를 두 항목 모두에 적용합니다.
#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는 다양한 소스에서 사용할 수 있습니다.
릴리스 페이지에서 최신 Typst 릴리스에 대한 소스와 사전 구축된 바이너리를 얻을 수 있습니다. 해당 플랫폼에 맞는 아카이브를 다운로드하여 PATH
에 있는 디렉터리에 저장하세요. 향후 릴리스를 최신 상태로 유지하려면 간단히 typst update
실행하면 됩니다.
다양한 패키지 관리자를 통해 Typst를 설치할 수 있습니다. 패키지 관리자의 버전은 최신 릴리스보다 느릴 수 있습니다.
brew install typst
winget install --id Typst.Typst
Rust 툴체인이 설치되어 있으면 다음을 설치할 수 있습니다.
cargo install --locked typst-cli
포함된 최신 출시 Typst 버전cargo install --git https://github.com/typst/typst --locked typst-cli
Nix 사용자는 다음을 수행할 수 있습니다.
nix-shell -p typst
와 함께 typst
패키지를 사용하십시오.nix run github:typst/typst -- --version
. Docker 사용자는 docker run ghcr.io/typst/typst:latest --help
사용하여 사전 빌드된 이미지를 실행할 수 있습니다.
Typst를 설치한 후에는 다음과 같이 사용할 수 있습니다.
# Creates `file.pdf` in working directory.
typst compile file.typ
# Creates PDF file at the desired path.
typst compile path/to/source.typ path/to/output.pdf
소스 파일을 관찰하고 변경 사항이 있으면 자동으로 다시 컴파일할 수도 있습니다. Typst에는 증분 컴파일이 있으므로 매번 처음부터 컴파일하는 것보다 빠릅니다.
# Watches source files and recompiles on changes.
typst watch file.typ
Typst를 사용하면 프로젝트에 대한 사용자 정의 글꼴 경로를 추가하고 발견된 모든 글꼴을 나열할 수 있습니다.
# Adds additional directories to search for fonts.
typst compile --font-path path/to/fonts file.typ
# Lists all of the discovered fonts in the system and the given directory.
typst fonts --font-path path/to/fonts
# Or via environment variable (Linux syntax).
TYPST_FONT_PATHS=path/to/fonts typst fonts
다른 CLI 하위 명령 및 옵션은 아래를 참조하세요.
# Prints available subcommands and options.
typst help
# Prints detailed usage of a subcommand.
typst help watch
자동 완성 및 즉시 미리보기가 포함된 통합 IDE와 유사한 환경을 선호하는 경우 Typst의 무료 웹 앱을 확인해 보세요.
커뮤니티가 모이는 주요 장소는 Discord 서버입니다. 자유롭게 참여하여 질문하고, 다른 사람을 도우며, Typst로 만든 멋진 것들을 공유하거나, 채팅을 즐겨보세요.
그 외에도 커뮤니티에서 만든 항목을 찾을 수 있는 몇 가지 장소가 있습니다.
우리 커뮤니티에서 좋지 않은 경험을 했다면, 우리에게 연락해주세요.
우리는 커뮤니티의 기여를 보고 싶습니다. 버그가 발생하면 언제든지 문제를 열어주세요. 새로운 기능이나 버그 수정을 구현하려면 기여 가이드에 설명된 단계를 따르세요.
Typst를 직접 빌드하려면 먼저 안정적인 최신 Rust가 설치되어 있는지 확인하세요. 그런 다음 이 리포지토리를 복제하고 다음 명령을 사용하여 CLI를 빌드합니다.
git clone https://github.com/typst/typst
cd typst
cargo build --release
최적화된 바이너리는 target/release/
에 저장됩니다.
기여하는 또 다른 좋은 방법은 커뮤니티와 패키지를 공유하는 것입니다.
IPA: /taəpst/. Ty pesetting의 "Ty"와 Hi pst er의 "pst"입니다. Typst에 대해 쓸 때 이름을 고유 명사로 대문자로 쓰고 대문자 "T"를 사용합니다.
모든 Typst는 성능, 단순성, 성능이라는 세 가지 주요 목표를 염두에 두고 설계되었습니다. 우리는 LaTeX의 성능에 맞먹고 배우고 사용하기 쉬우면서도 즉시 미리보기를 실현할 수 있을 만큼 빠른 시스템이 필요한 때라고 생각합니다. 이러한 목표를 달성하기 위해 우리는 세 가지 핵심 설계 원칙을 따릅니다.
일관성을 통한 단순성: Typst에서 한 가지 작업을 수행하는 방법을 알고 있다면 해당 지식을 다른 작업으로 이전할 수 있어야 합니다. 동일한 작업을 수행하는 방법이 여러 개 있는 경우 그 중 하나는 다른 것과 다른 추상화 수준에 있어야 합니다. 예를 들어 = Introduction
과 #heading[Introduction]
은 전자가 후자의 구문 설탕일 뿐이므로 동일한 작업을 수행해도 괜찮습니다.
구성 가능성을 통한 강력함: 무언가를 유연하게 만드는 방법에는 두 가지가 있습니다. 모든 것을 위한 손잡이를 갖거나 다양한 방법으로 결합할 수 있는 몇 가지 손잡이를 갖는 것입니다. Typst는 두 번째 방식을 염두에 두고 설계되었습니다. 우리는 우리가 생각지도 못한 방식으로 구성할 수 있는 시스템을 제공합니다. TeX도 두 번째 범주에 속하지만 약간 낮은 수준이므로 사람들은 대신 LaTeX를 사용합니다. 하지만 실제로는 그렇게 많은 구성 가능성이 없습니다. 대신 모든 것을 위한 패키지가 있습니다( usepackage{knob}
).
증분을 통한 성능: 모든 Typst 언어 기능은 증분 컴파일을 수용해야 합니다. 다행스럽게도 백그라운드에서 대부분의 어려운 작업을 수행하는 증분 컴파일 시스템인 comemo
있습니다.