2 điểm bởi GN⁺ 2025-10-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ dàn trang tài liệu Typst phiên bản 0.14 đã được phát hành, bao gồm các tính năng chính như hỗ trợ khả năng truy cập mặc định, xử lý ảnh PDF và căn đều ở cấp ký tự
  • Phiên bản này hỗ trợ chuẩn PDF/UA-1 để giúp tuân thủ các quy định về khả năng truy cập, đồng thời bổ sung khả năng chèn trực tiếp PDF dưới dạng ảnh
  • Tính năng căn đều ở cấp ký tự (character-level justification) giúp tạo bố cục đoạn văn cân đối hơn về mặt thị giác
  • Tính năng xuất HTML được tăng cường, chuyển đổi nhiều thành phần tài liệu sang HTML ngữ nghĩa và cũng giới thiệu API HTML có kiểu
  • Bản cập nhật này tăng cường tạo tài liệu tự động trong môi trường công nghiệp và ứng phó với quy định về khả năng truy cập, qua đó mở rộng mạnh phạm vi ứng dụng thực tế của Typst

Tổng quan về Typst 0.14

  • Typst khởi đầu trong học thuật, nhưng gần đây đã mở rộng sang môi trường công nghiệp với các nhu cầu như soạn thảo tài liệu thủ công, báo cáo tự động và pipeline tạo PDF hàng loạt
    • Phiên bản 0.14 lần này bao gồm hàng loạt tính năng cốt lõi cho các ứng dụng công nghiệp như vậy
  • Có các cải tiến tập trung vào môi trường sản xuất như khả năng truy cập, chuẩn PDF, căn đều ở cấp ký tự và xuất HTML
  • Có thể dễ dàng cập nhật trên cả ứng dụng web lẫn CLI, đồng thời cũng có hướng dẫn migration sang phiên bản mới

Khả năng truy cập (Accessibility)

  • Typst 0.14 tự động tạo tagged PDF cho khả năng truy cập theo mặc định, cho phép các công nghệ hỗ trợ như trình đọc màn hình nhận diện cấu trúc tài liệu
    • Khi sử dụng markup và các phần tử tích hợp sẵn, các thẻ phù hợp sẽ được gán tự động
  • Thông qua tham số alt mới được thêm vào, có thể cung cấp mô tả thay thế (alt text) cho hình vẽ hoặc hình ảnh
    • Trong ví dụ mã, mô tả thay thế được thêm cho một sơ đồ gồm hai hình chữ nhật và mũi tên, giúp người dùng khiếm thị cũng có thể nắm được cùng một thông tin
  • Tính năng xuất PDF/UA-1 cho phép tự động hóa việc kiểm tra khả năng truy cập của tài liệu
    • Có thể phát hiện các vấn đề như thiếu tiêu đề tài liệu, phân cấp tiêu đề sai hoặc thiếu mô tả thay thế
  • PDF/UA-1 hỗ trợ tuân thủ các quy định quốc tế về khả năng truy cập như European Accessibility Act (EAA) của EU và ADA Title II của Mỹ
    • EU dự kiến áp dụng từ ngày 28/6/2025, còn Mỹ từ ngày 24/4/2026
    • Các doanh nghiệp xử lý tài liệu cho khách hàng hoặc cơ quan chính phủ nên cân nhắc triển khai Typst 0.14

Mở rộng hỗ trợ chuẩn PDF

  • Trước đây chỉ hỗ trợ PDF 1.7, nay có thể chọn từ PDF 1.4 đến 2.0
  • Chuẩn PDF/A cũng được mở rộng từ hai chuẩn con trước đó thành hỗ trợ đầy đủ cả 4 phần và các mức độ phù hợp
  • Việc chọn chuẩn cụ thể giúp tối ưu khả năng tương thích, lưu trữ lâu dài và đáp ứng quy định của tài liệu
  • Có thể xem chi tiết liên quan trong phần tham chiếu chuẩn PDF của tài liệu Typst

Dùng PDF làm ảnh

  • Typst 0.14 hỗ trợ PDF như một định dạng ảnh native
    • Khi xuất PDF, nội dung được giữ nguyên; khi xuất HTML/SVG, nó sẽ được chuyển sang SVG; còn với PNG hoặc bản xem trước web thì sẽ được raster hóa
  • Toàn bộ quá trình chuyển đổi đều được thực hiện bên trong trình biên dịch Typst, không phụ thuộc vào hệ thống bên ngoài
  • Tính năng này được hiện thực nhờ thư viện xử lý PDF mới viết bằng Rust là hayro
    • hayro là thư viện hoàn toàn dựa trên Rust do cộng tác viên cộng đồng Typst @LaurenzV phát triển, mang lại tính di động và hiệu năng cao

Căn đều ở cấp ký tự (Character-level Justification)

  • Đã bổ sung tính năng điều chỉnh không chỉ khoảng cách giữa từ mà cả khoảng cách giữa các ký tự để cân bằng thị giác cho đoạn văn
    • Phần lớn phần mềm hiện nay chỉ điều chỉnh khoảng cách giữa từ, nhưng Typst cho phép kiểm soát tinh hơn đến khoảng cách ký tự
  • Trong tương lai, dự án cũng sẽ nghiên cứu điều chỉnh độ rộng ký tự bằng variable fonts hoặc chèn Kashida cho tiếng Ả Rập
  • Typst dùng cùng thuật toán mặc định như LaTeX, nhưng bổ sung khả năng căn đều ở cấp ký tự mà LaTeX không có
    • Nếu dùng quá mức có thể tạo cảm giác thiếu tự nhiên, nhưng với ngưỡng phù hợp và sự kết hợp thuật toán hợp lý, có thể cải thiện tinh tế chất lượng dàn trang
  • Kết quả là tạo ra độ xám (grayness) của đoạn văn cân đối hơn, mang lại chất lượng dàn trang ở mức xuất bản chuyên nghiệp

Xuất HTML được cải thiện

  • Tính năng xuất HTML được giới thiệu thử nghiệm trong Typst 0.13 đã được cải thiện mạnh trong 0.14
    • Đã bổ sung ánh xạ HTML ngữ nghĩa (show rules) cho nhiều phần tử tích hợp như chú thích cuối trang, mục lục/tổng quan, trích dẫn v.v.
  • Nhờ cải thiện xử lý văn bản, phần lớn các phần tử trong Model category được chuyển đổi đúng sang HTML
  • Mới bổ sung giao diện Typed HTML
    • Có thể chỉ định thuộc tính an toàn kiểu như #html.video(autoplay: true, width: 1280, …)
    • Cách này an toàn và trực quan hơn so với phương thức html.elem dựa trên chuỗi trước đây
  • Tính năng xuất HTML vẫn là tính năng thử nghiệm; trong CLI có thể bật bằng tùy chọn --features html hoặc biến môi trường TYPST_FEATURES=html
    • Trên ứng dụng web cũng cần bật riêng cho từng dự án
  • Trong tương lai, ứng dụng web Typst cũng sẽ chính thức hỗ trợ xuất HTML

Migration sang Typst 0.14

  • Bản phát hành này là một bản cập nhật ổn định với rất ít thay đổi phá vỡ tương thích
    • Một số kiểm tra xác thực đã được siết chặt hơn, vì vậy nhãn, URL liên kết và danh sách phông chữ không được để trống
  • Các thay đổi chính
    • pdf.embed → thay bằng pdf.attach
    • Đổi tên hai kiểu trích dẫn tài liệu tham khảo
    • Cờ --make-deps của CLI được thay bằng --deps --deps-format make
    • Một số symbol bị ngừng sử dụng, trình biên dịch sẽ tự động hiển thị cảnh báo
  • Trên ứng dụng web, trải nghiệm nâng cấp phiên bản đã được cải thiện
    • Trước đây luôn dùng phiên bản mới nhất, nhưng giờ khi phát hiện phiên bản mới sẽ tự động đề xuất nâng cấp và kiểm tra tương thích
    • Sau khi biên dịch bằng phiên bản mới, hệ thống sẽ so sánh lỗi và cảnh báo rồi hiển thị kết quả

Cộng đồng và kế hoạch sắp tới

  • Typst 0.14 là kết quả của 8 tháng phát triển và hợp tác với cộng đồng
  • Nhân dịp phát hành sẽ tổ chức Discord community call vào ngày 7/11
    • Mục đích là chia sẻ trải nghiệm người dùng và thu thập phản hồi
  • Nhóm Typst dự kiến sẽ tiếp tục thúc đẩy hoàn thiện xuất HTML, tăng cường khả năng truy cập và cải thiện chất lượng dàn trang

1 bình luận

 
GN⁺ 2025-10-25
Ý kiến trên Hacker News
  • Có một điểm về Typst thường dễ gây nhầm lẫn nên nói trước cho rõ.
    Trình biên tập trực tuyến (typst.app) là phần mềm thương mại, còn compiler/CLI (github.com/typst/typst) là mã nguồn mở.
    Tôi chỉ dùng CLI nhưng rất hài lòng với kết quả. Ban đầu tôi dùng nó để thay thế PowerPoint, nhưng nó cũng rất hợp để làm poster hay viết tài liệu đơn giản. Tôi thích việc không phải lo quên cú pháp phức tạp như LaTeX, và cú pháp rất dễ quay lại dùng sau một thời gian

    • Tôi đã chỉ dùng LaTeX suốt hàng chục năm, nhưng tháng này chuyển một dự án lớn sang Typst và không hề hối hận.
      Kết hợp TinyMist với VS Code mang lại trải nghiệm phát triển rất tốt. Chỉ trong một ngày tôi đã chỉnh được cả template, điều mà với LaTeX lúc nào cũng là ác mộng
    • TinyMist là một lựa chọn thay thế tốt để phát triển cục bộ trên VS Code hoặc Cursor.
      Trang chính thức của TinyMist
    • Năm ngoái tôi đã chuyển hoàn toàn từ LaTeX sang Typst. Tôi viết sách, hóa đơn, cả slide bằng Typst. Giờ thì tôi không muốn đụng lại LaTeX nữa
    • Tôi thích Marp, nhưng muốn biết vì sao mọi người lại chuộng Typst hơn
    • Xem phân tích về Typst của isitreallyfoss.com, nhìn chung mọi thứ đều ổn, nhưng có nhắc rằng trình quản lý gói Typst Universe có thể kết nối tới máy chủ của Typst GmbH
  • Đây là những điều tôi cảm nhận mỗi khi dùng Typst.

    1. Khi biên dịch không tạo ra hàng loạt file thừa
    2. Tốc độ biên dịch gần như tức thì
    3. Thông báo lỗi dễ hiểu như compiler của Rust
    4. Cú pháp danh sách linh hoạt nên dễ xử lý các mục dài
    5. Có thể đặt macro gần nơi cần dùng
    6. Dễ quản lý phiên bản (diff)
    7. Lề, khoảng cách, thiết lập trang... đều đơn giản
    8. Luôn là biên dịch một lượt duy nhất
    9. Hỗ trợ kiểu trích dẫn CSL vẫn chưa thật sự hoàn chỉnh
    10. Tính năng mặc định phong phú nên ít phụ thuộc package
    11. Dung lượng cài đặt nhỏ và là một bản phân phối duy nhất
      Tôi đặc biệt mong chờ tính năng PDF hỗ trợ accessibility và xuất HTML trong Typst 0.14
    • Tôi dùng Tectonic với LaTeX để giải quyết việc tự tải dependency và biên dịch một lượt.
      Cũng có nhiều người dùng giao diện web như Overleaf. Vì vậy trong các ưu điểm của Typst, thứ thực sự nổi bật với tôi chủ yếu là tốc độ biên dịch và chất lượng chẩn đoán
    • Tôi chỉ dùng LaTeX một chút, nhưng Typst thì thực sự rất dễ học. Tôi đã xuất bản một cuốn sách bằng Typst, và ngoài vài tinh chỉnh chi tiết như chỉnh vị trí số trang thì mọi thứ rất mượt.
      Pandoc hỗ trợ Typst tốt nên việc chuyển sang docx hay epub cũng dễ. Các issue liên quan cũng được xử lý rất nhanh
    • Trước đây tôi từng đăng câu hỏi trên Stack Overflow về việc LaTeX tạo ra quá nhiều file, đến giờ vẫn còn nhận thông báo
    • Typst thực sự tốt hơn LaTeX rất nhiều. Với LaTeX lúc nào cũng có cảm giác sửa, chờ, rồi cầu nguyện
    • Typst có cấu trúc an toàn ngay cả với đầu vào không đáng tin cậy, nên tôi thấy yên tâm hơn
  • Tính năng chuyển PDF sang SVG để render trực tiếp trong HTML, PNG và phần xem trước web thật ấn tượng.
    Toàn bộ khả năng xử lý PDF này đều được tích hợp trong compiler của Typst, nhờ thư viện hayro được triển khai hoàn toàn bằng Rust

    • hayro cũng có thể dùng độc lập, và còn chạy được trên WebAssembly.
      GitHub link, trang demo
    • Tôi tò mò không biết hayro được tạo riêng cho Typst hay được phát triển độc lập từ đầu
  • Dù không trực tiếp dùng Typst, tôi vẫn muốn ủng hộ qua gói đăng ký.
    Với tư cách là người vừa yêu vừa ghét LaTeX, tôi rất vui khi thấy có một giải pháp thay thế. Tôi đặc biệt thích việc họ coi trọng microtypography

    • Typst là mã nguồn mở nên có thể tự dùng qua CLI. Theo tôi, thay vì đăng ký thì trực tiếp dùng thử rồi gửi phản hồi còn có giá trị hơn
    • Tôi cũng từng quyên góp trực tiếp, còn giờ thì hỗ trợ bằng cách đăng ký web app. Tôi dùng xen kẽ cả CLI lẫn web app, và web app tiện cho việc thử nghiệm hoặc chia sẻ.
      Nếu có chương trình bounty cho hỗ trợ HTML thì tôi còn muốn ủng hộ thêm
    • Tôi muốn biết Typst có thực sự đang phát triển microtypography hay không. Ví dụ trong liên kết trông rất ấn tượng
    • LaTeX không tệ, nhưng phụ thuộc môi trường quá nhiều
    • LaTeX là phần mềm mã nguồn mở đã 50 năm tuổi, nên hình thành các bản phân phối khổng lồ và cú pháp phức tạp.
      Typst thì dựa trên kinh nghiệm đó để tạo ra một binary gọn gàng chỉ 45MB.
      Đây là công cụ tuyệt vời có thể xử lý trực tiếp JSON, CSV và tạo cả sách, brochure lẫn card
  • Lý do giới học thuật chưa thể rời bỏ LaTeX là vì Beamer, TikZ, Overleaf.
    Beamer cung cấp nhiều style và font, TikZ cho phép vẽ hình không cần GUI.
    Overleaf có khả năng cộng tác tốt hơn Typst Cloud. Hy vọng một ngày nào đó Typst sẽ đạt được mức đó

    • Tôi khuyên dùng Touying cho slide và CeTZ để thay thế TikZ.
      Cũng nên cân nhắc đưa version control vào quy trình
    • Tôi cũng từng làm rất nhiều slide bài giảng bằng LaTeX, nhưng tốc độ biên dịch quá chậm. Typst nhanh hơn, và CeTZ cũng thay thế TikZ được.
      Chưa đến mức Beamer, nhưng typst-presentate cũng khá dùng được
    • Tôi đã làm slide bằng Typst, và thấy việc thêm tính năng đặc biệt đơn giản hơn. CeTZ cũng hoạt động khá tốt, ở mức tương tự TikZ
    • Tôi cũng đã tạo một theme slide học thuật bằng Touying.
      Theme Touying Unistra Pristine
    • Tôi đã tự làm một công cụ slide bằng Typst, điều mà với LaTeX có lẽ tôi sẽ không bao giờ thử.
      Có nhiều công cụ thay thế TikZ, nhưng vẫn chưa có cái nào thật sự hoàn hảo
  • Tôi đã viết lại hoàn toàn bản CV .docx đã duy trì hơn 10 năm bằng Typst.
    Tôi tách kinh nghiệm và style ra bằng file dữ liệu TOML, rồi tự động đổ vào template mong muốn.
    Dù là một dự án hơi quá tay, tôi vẫn thấy rất vui, và cú pháp Typst trực quan đến mức làm được mà không cần tutorial

    • Tôi tò mò không biết bạn dùng package có sẵn hay tự viết. Tôi cũng muốn viết lại CV bằng Typst nhưng vẫn chưa gấp
  • Điều tôi khó chịu nhất với Typst là nó vẫn chưa hỗ trợ dấu phân cách thập phân theo locale.
    Xem issue này.
    Nếu không sớm giải quyết định dạng số theo ngôn ngữ thì sau này có thể phát sinh xung đột cú pháp.
    Dù vậy nhìn chung Typst vẫn nhanh và đơn giản, nên tôi rất hài lòng

  • Việc có thể dùng PDF như một định dạng ảnh native là một bước tiến lớn trong việc thay thế LaTeX

    • Vài ngày trước tôi còn phải vòng qua muchpdf, giờ thì tính năng tích hợp sẵn đã giải quyết được
  • Cảm ơn đội ngũ Typst. Ban đầu tôi làm CV bằng Typst để học Git,
    nhưng một ngày nào đó tôi muốn tạo một tài liệu ô chữ bằng Typst. Tôi vẫn chưa biết cách làm các ô bảng thành hình vuông, nhưng sớm muộn gì cũng sẽ thử

    • Trường hợp đó thì tôi khuyên nên thử CeTZ
  • Trước đây tôi dùng GitHub/Azure Markdown + Mermaid + MathJax để làm tài liệu mô hình tài chính, nhưng càng phức tạp thì càng vất vả.
    Giờ tôi dùng Typst, và vì là compiler viết bằng Rust nên cài đặt dễ, lại không có chuyện gửi dữ liệu ra ngoài vì lý do bảo mật.
    Thiết kế hiện đại đến mức có cảm giác như cách nhau 40 năm

    • Nhân tiện, Typst cũng bán phiên bản web app có thể tự host