Typst 0.15.0 릴리스 노트
Typst 0.15.0은 글꼴 처리, 웹 내보내기 및 문서 구조에 대한 도구의 기능을 확장하는 중요한 업데이트입니다. 주요 추가 기능으로는 가변 글꼴 지원, 접근 가능한 HTML 수식을 위한 MathML 통합, 그리고 단일 프로젝트에서 여러 출력 파일을 생성할 수 있는 실험적인 번들 내보내기 대상이 포함됩니다.
핵심 기능 향상
가변 글꼴 지원
Typst는 이제 가변 글꼴을 지원하여 텍스트 스타일링을 보다 유연하게 제어할 수 있습니다. 시스템은 weight, stretch, style, size와 같은 표준 텍스트 매개변수를 wght, wdth, ital, slnt, opsz와 같은 일반적인 변형 축에 자동으로 매핑합니다.
새로운 variations 매개변수를 text 함수에 사용하여 사용자 정의 변형을 구성할 수 있습니다. 정적 글꼴과 가변 글꼴을 하나의 패밀리로 통합하기 위해 Typst는 이제 글꼴 패밀리 이름에서 "Variable", "Var", "VF"와 같은 접미사를 자동으로 제거합니다. 이는 이전에 font 설정에 이러한 접미사를 지정했던 사용자에게는 약간의 호환성 깨짐을 의미합니다.
다중 파일 번들 내보내기
실험적인 bundle 내보내기 대상이 도입되었습니다. 이 기능을 사용하면 단일 Typst 프로젝트가 동시에 여러 출력 파일을 생성할 수 있습니다. 이러한 번들은 PDF, HTML 페이지, PNG, SVG 및 임의의 자산을 조합한 형태가 될 수 있어, 하나의 소스에서 다중 페이지 웹사이트나 복잡한 문서 세트를 생성하는 것이 가능합니다.
향상된 참고문헌 관리
Typst 0.15.0은 이제 하나의 문서에 여러 참고문헌을 포함할 수 있게 하여 이전 제한을 없애고 보다 복잡한 학술 및 전문 문서 구조를 지원합니다.
웹 및 PDF 내보내기 개선
HTML 내보내기와 MathML
HTML 내보내기는 이제 MathML을 통해 수식을 기본적으로 지원합니다. 이 전환은 수학 표현식의 의미론을 보존함으로써 문서 접근성을 향상시키지만, 브라우저마다 렌더링 일관성이 다를 수 있습니다. 이는 이전에 html.frame을 사용해 수식을 SVG로 렌더링하던 표시 규칙에 대한 권장 대안입니다.
HTML 단락 그룹화
Typst는 HTML 내보내기 시 단락이 예상치 못한 <p> 요소로 나타나는 것을 방지하기 위해 단락 그룹화를 전면 재구성했습니다. 시스템은 이제 요소를 인라인 수준, 블록 수준 또는 "중립"으로 구분합니다.
- 인라인 수준: 텍스트,
box요소 및 HTML 구문 내용. - 중립: 대부분의 다른 HTML 요소.
- 블록 수준:
block요소와 내장 블록 수준 Typst 요소(예: 헤딩).
중립 요소는 이제 인접한 인라인 콘텐츠를 단락으로 강제하지 않아, Typed HTML API가 더 깔끔하고 예측 가능한 출력을 생성합니다.
PDF 및 SVG 향상
PDF 이미지 처리가 JPEG2000(JPXDecode) 및 JBIG2(JBIG2Decode) 이미지와 블렌드 모드 지원으로 개선되었습니다. SVG 내보내기는 font-variation-settings CSS 속성을 통해 가변 글꼴을 지원하고, 최상위 xmlns 속성이 없는 SVG도 처리합니다.
언어 및 레이아웃 변경
기준선 정렬
호환성 깨짐을 일으키는 변경으로, Typst는 이제 레이아웃 엔진의 더 많은 부분에서 기준선 정보를 유지합니다. 이는 특히 box, block, 리스트 항목에 영향을 줍니다. 예를 들어, 삽입이 있는 box 내부의 텍스트는 이제 주변 텍스트의 기준선과 정렬되고, 리스트 마커는 항목의 첫 번째 줄과 정확히 정렬됩니다(항목의 수직 크기에 관계없이).
파일 경로 처리
Typst는 전용 path 타입을 도입했습니다. 이를 통해 프로젝트 상대 경로를 패키지에 전달할 수 있으며, 하나의 파일에서 구성된 경로가 원본 파일을 기준으로 해석됩니다. 또한 Windows에서 흔히 사용되는 역슬래시(\)는 더 이상 지원되지 않으며, 크로스 플랫폼 호환성을 위해 슬래시(/)를 사용해야 합니다.
수학 모드 조정
수학 조판에 몇 가지 조정이 이루어졌습니다:
class함수: 이제 재귀적으로가 아니라 직접적인 본문에만 적용됩니다(소규모 호환성 깨짐).- 구분자:
chevron.l과 같은 추가 기호를 함수로 호출해lr요소를 생성할 수 있습니다. - 글리프 스트레칭:
lr.size또는stretch.size에 전달된 비율은 이제 표시 크기가 아니라 기본 글리프 크기를 기준으로 해석됩니다.
도구 및 제거 사항
CLI 및 진단
typst eval CLI 서브커맨드가 이제 typst query를 대체합니다. 또한 레이아웃 수렴 문제에 대해 자세한 진단 정보를 제공하여 개발자가 무한 레이아웃 루프의 원인을 파악할 수 있도록 돕습니다.
호환성 깨짐 제거
다음과 같은 여러 폐기된 기능이 제거되었습니다:
path요소는curve로 대체되었습니다.pattern타입은tiling으로 대체되었습니다.pdf.embed요소는pdf.attach로 대체되었습니다.- 범위가 지정된 디코드 함수(예:
json.decode)는 바이트를 직접 최상위 함수에 전달하는 방식으로 대체되었습니다.
커뮤니티 인사이트
Hacker News 토론에서 사용자들은 Typst가 LaTeX에 비해 컴파일 속도와 프로그래밍 방식 생성 측면에서 효율적이라고 강조했습니다. 한 사용자는 Typst가 "프로그램matically PDF 문서를 생성하면서 수천 달러를 절감했다"고 언급했습니다.
하지만 몇몇 제한점도 남아 있습니다. 인문학 전공 학생은 참고문헌을 포함하는 서술형 각주가 현재 잘 작동하지 않는다며 다음과 같이 말했습니다:
서술형 각주는 참고문헌을 포함할 때 실제로 잘 작동하지 않습니다... 인문학 분야에서 작업하거나 시카고 스타일 각주를 사용하는 사람들에게 큰 제약이 됩니다.
다른 사용자들은 LLM이 LaTeX에서 마이그레이션하는 데 도움이 되지만, 줄 높이와 레이아웃 미학 같은 구체적인 디자인 선택에서는 여전히 어려움을 겪는다고 언급했습니다.