기초 스타일링
set 규칙
#set page(width: 15cm, margin: (left: 4cm, right: 4cm))
멋진 결과물이 나왔네요! 하지만 문서의 모든 곳에서 매번 복잡한 인수를
사용하며 함수를 호출하는 것은 매우 번거로운 일입니다.
그래서 Typst에는 **규칙(rules)**이라는 개념이 있습니다.
정확히는 문서를 구성하는 요소들이 따라야 할 규칙이죠.
#set par(justify: true)
가장 먼저 살펴볼 것은 `set` 규칙입니다.
위 예제에서 `par`(단락, paragraph의 약자)에 규칙을 적용하자
이후의 모든 단락이 **양쪽 맞춤(justified)**으로 정렬되었습니다.
이 규칙은 설정된 지점 이후의 모든 요소에 적용되지만,
특정 **범위(scope)** 내에서만 유효합니다(범위에 대해서는 나중에 자세히 다룹니다).
#par(justify: false)[
물론 필요할 때는 `set` 규칙을 개별적으로 덮어쓸 수도 있습니다.
`set` 규칙은 단순히 해당 요소의 인수에 대한 **기본값** 을
지정하는 것이기 때문입니다.
]
참고: 위 예제의 첫 번째 줄에서는 양쪽 맞춤 효과를 잘 보여주기 위해
페이지 크기를 줄이고 좌우 여백을 넓게 설정했습니다.
길이 단위
다른 규칙으로 넘어가기 전에, Typst에서 사용하는 길이에 대해 알아봅시다.
Typst는 다음과 같은 다양한 절대 길이 단위를 지원합니다.
#set rect(height: 1em)
#table(
columns: 2,
[포인트(Points)], rect(width: 72pt),
[밀리미터(Millimeters)], rect(width: 25.4mm),
[센티미터(Centimeters)], rect(width: 2.54cm),
[인치(Inches)], rect(width: 1in),
[글꼴 크기 기준(Relative to font size)], rect(width: 6.5em)
)
여기서 `1em`은 **현재 글꼴의 크기**와 같습니다.
문맥에 맞춰 유연하게 크기를 조절할 때 매우 유용한 단위이므로
앞으로 자주 사용하게 될 것입니다.
다양한 요소 설정하기
모든 내장 함수와 해당 함수의 이름 있는 인자(named arguments)에 set 규칙을 적용할 수 있습니다. 즉, 원하는 인자를 기본값으로 고정할 수 있다는 뜻입니다.
예를 들어, 문서의 모든 인용구에 출처를 자동으로 표시하고 싶다면 다음과 같이 설정할 수 있습니다.
#set quote(block: true, attribution: [Typst 예시 북])
#quote[
Typst는 정말 훌륭한 도구입니다!
]
#quote[
인터넷에 떠도는 명언의 가장 큰 문제는
그 진위 여부를 확인하기가 매우 어렵다는 점입니다.
]
나만의 기본값 만들기
set 규칙을 활용하면 문서 전체의 스타일을 취향에 맞게 한 번에 정의할 수 있습니다.
#set par(justify: true)
#set list(indent: 1em)
#set enum(indent: 1em)
#set page(numbering: "1")
- 목록 첫 번째 항목
- 목록 두 번째 항목
+ 순서가 있는 항목 1
+ 순서가 있는 항목 2
Typst의 기본 스타일이 마음에 들지 않는다면, 주저하지 말고 여러분만의 set 규칙을 정의해 보세요!
번호 매기기
= 번호 매기기
제목(heading)과 같은 일부 요소에는 `numbering`이라는 속성이 있습니다.
여기에 특정 "번호 매기기 패턴"을 지정하고 `set` 규칙과 결합하면
복잡한 계층 구조도 자동으로 관리할 수 있습니다.
#set heading(numbering: "I.1:")
= 1단계 제목
= 또 다른 1단계 제목
== 2단계 소제목
== 또 다른 2단계 소제목
=== 3단계 상세 제목
== 다시 2단계로
= 다시 1단계로
이외에도 설정할 수 있는 유용한 속성들이 무수히 많습니다. 더 자세한 내용은 공식 레퍼런스를 참고해 보세요.
이제 더 강력하고 흥미로운 기능인 show 규칙에 대해 알아보겠습니다.