UltKit

TTF, OTF hay WOFF: chọn định dạng font nào để cài và dùng cho web

Hãy cài TTF hoặc OTF trên máy tính và dùng WOFF2 cho website. TrueType và OpenType là định dạng dành cho máy tính mà mọi hệ điều hành đều đọc được; WOFF và WOFF2 là cùng dữ liệu font đó nhưng được nén để tải qua mạng, và trình duyệt ưu tiên WOFF2 vì nó nhẹ hơn khoảng 30%.

Jonas WeberJonas WeberBiên tập viên hiệu suất web
Cập nhật 11 phút đọc
Kệ và ngăn kéo chất đầy các con chữ in typo bằng gỗ cũ với nhiều kích thước và màu sắc khác nhau
Answer

Nên dùng định dạng phông chữ nào: TTF, OTF, WOFF hay WOFF2?

Với máy tính, hãy cài TTF hoặc OTF; cả hai đều chạy trên Windows, macOS và Linux. Với website, hãy ưu tiên WOFF2 trước và chỉ dùng WOFF làm phương án dự phòng. Các tệp TTF hoặc OTF gốc đưa lên trang web nặng gấp 2–3 lần mức cần thiết.

TrueType, OpenType, WOFF và WOFF2 giải thích dễ hiểu

TrueType là định dạng lâu đời nhất trong bốn định dạng. Apple tung ra cùng System 7 vào năm 1991 và Microsoft đưa vào Windows 3.1 vào năm sau. Phông TrueType mô tả mỗi chữ cái bằng đường cong bậc hai, mỗi đoạn cong chỉ có một điểm điều khiển và dễ vẽ trên phần cứng đời đầu. Nó cũng mang hinting: các chương trình nhỏ nằm trong phông, căn nét và đường cong vào lưới điểm ảnh để chữ vẫn sắc nét trên màn hình độ phân giải thấp. Phần mở rộng .ttf vẫn dùng cho các phông có đường viền bậc hai này.

OpenType, do Microsoft và Adobe công bố năm 1996, là một lớp bao chứ không phải một kiểu đường viền mới. Nó có thể chứa đường viền TrueType hoặc đường viền PostScript lưu trong bảng CFF, dùng đường cong bậc ba với hai điểm điều khiển mỗi đoạn. Quanh các đường viền đó, nó bổ sung các bảng bố cục cho kiểu chữ nâng cao: ligature chuẩn và tùy chọn, small caps, chữ số kiểu cổ, bộ kiểu (stylistic sets), ký tự thay thế theo ngữ cảnh và kerning. Theo quy ước, phông OpenType dựa trên CFF được lưu thành .otf, còn phông OpenType có đường viền TrueType giữ phần mở rộng .ttf.

WOFF và WOFF2 là các lớp bao dành cho web. WOFF được soạn thảo năm 2009 và trở thành khuyến nghị của W3C năm 2012; nó nén từng bảng phông bằng zlib. WOFF2 trở thành khuyến nghị của W3C năm 2018, chuyển sang Brotli và tiền xử lý dữ liệu glyph trước, nên thường nhỏ hơn WOFF khoảng 30%. Ba định dạng phụ hoàn thiện bức tranh. EOT là định dạng web riêng của Internet Explorer, phông SVG là giải pháp tạm thời thời đầu chỉ có trên Safari, còn phông biến thiên (variable fonts), được thêm vào OpenType 1.8 năm 2016, gói cả dải độ đậm hoặc độ rộng vào một tệp.

  1. 1991

    TrueType

    Apple tung ra đường viền bậc hai và hinting cùng System 7; Windows 3.1 theo sau năm 1992.

  2. 1996

    OpenType

    Microsoft và Adobe công bố một vùng chứa chung cho đường viền TrueType hoặc CFF, cùng các tính năng bố cục.

  3. 2012

    WOFF 1.0

    Được soạn thảo năm 2009, trở thành khuyến nghị của W3C: cùng các bảng đó, nén bằng zlib.

  4. 2016

    Phông biến thiên

    OpenType 1.8 cho phép một tệp chứa các trục độ đậm, độ rộng hoặc độ nghiêng liên tục.

  5. 2018

    WOFF2

    Khuyến nghị của W3C dùng Brotli; thường nhỏ hơn WOFF khoảng 30%.

Nên cài định dạng font nào trên máy tính

Hãy cài TTF hoặc OTF và đừng bận tâm chọn loại nào. Windows 10 và 11 cài cả hai bằng cách nhấp chuột phải rồi chọn Install, macOS mở cả hai trong Font Book, còn máy tính Linux nhận chúng từ ~/.local/share/fonts sau khi bộ nhớ đệm phông được làm mới. Word, Photoshop, ứng dụng Figma trên máy tính, Affinity và LibreOffice đều đọc được cả hai. Nếu nhà thiết kế gửi cùng một họ phông ở cả hai dạng, OTF thường là bản gốc do nhà thiết kế chữ vẽ, còn TTF là bản chuyển đổi cho phần mềm cũ.

Những trường hợp sự khác biệt thực sự quan trọng khá hẹp. Một số chương trình máy cắt và thêu, engine game và thư viện hiển thị cho vi điều khiển chỉ hiểu đường viền TrueType, nên OTF dựa trên CFF hiển thị lỗi ở đó và cần chuyển OTF sang TTF. Ngược lại, không có gì trên máy tính cài trực tiếp WOFF hay WOFF2: các tệp đó được đóng gói cho trình duyệt. Chỉ cài một phiên bản của mỗi họ phông, vì TTF và OTF trùng tên nội bộ sẽ làm rối menu phông và ứng dụng có thể chọn nhầm.

TrueType Collection.ttc · bộ sưu tập phông chữ · .otc
Một tệp duy nhất chứa nhiều phông, thường là các kiểu hoặc biến thể ngôn ngữ của một họ phông, cho phép chúng dùng chung các glyph giống nhau để tiết kiệm dung lượng. Windows và macOS cài tất cả phông bên trong cùng lúc; các họ phông CJK của hệ thống như Noto Sans CJK thường được phân phối theo cách này. Bộ sưu tập dựa trên đường viền CFF đôi khi dùng phần mở rộng .otc.
Các con chữ chì xếp trong những ngăn nhỏ của hộc khay chữ bằng gỗ
Ảnh: Unsplash

Nên dùng định dạng font nào cho website

Mọi phiên bản hiện hành của Chrome, Edge, Firefox và Safari đều đọc được WOFF2, nên nó cần là nguồn đầu tiên và thường là duy nhất trong quy tắc @font-face. Chỉ thêm dòng WOFF phía sau nếu số liệu phân tích của bạn vẫn có trình duyệt từ trước khoảng 2016, như Android WebView cũ hoặc trình duyệt trên TV. Trình duyệt duyệt danh sách src theo thứ tự và tải định dạng đầu tiên nó hỗ trợ, nên phương án dự phòng không tốn gì với khách truy cập hiện đại. Nếu đã có tệp TrueType cho máy tính, TTF sang WOFF tạo bản dự phòng đó chỉ trong một lần.

Tránh dùng TTF hoặc OTF gốc trên website trừ khi nền tảng buộc bạn, như một số trình tạo email và hệ thống nội dung cũ. Trình duyệt vẫn hiển thị tốt, nhưng tệp được truyền không nén trừ khi máy chủ gzip phông, và ai cũng có sẵn một bản cài được cho máy tính. Dòng font-display: swap bên dưới bảo trình duyệt hiển thị chữ ngay bằng phông dự phòng rồi thay bằng phông của bạn khi tải xong, thay vì ẩn chữ tới 3 giây trong lúc chờ.

Hãy lưu tệp trên tên miền của chính bạn nếu có thể. Chrome, Safari và Firefox hiện chia bộ nhớ đệm theo từng trang, nên phông tải từ CDN dùng chung không còn được tái sử dụng giữa các website, và tự lưu trữ còn tiết kiệm một lần tra DNS và kết nối. Chỉ thêm <link rel="preload"> cho một hoặc hai độ đậm dùng ở phần đầu trang; tải trước mọi kiểu sẽ tranh băng thông với ảnh.

@font-face với WOFF2 trước, WOFF dự phòng và swap
@font-face {
  font-family: "Source Serif";
  src: url("/fonts/source-serif-regular.woff2") format("woff2"),
       url("/fonts/source-serif-regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2013-2014, U+2018-201E, U+20AC;
}

Dung lượng file font thông thường và vì sao nên tạo subset

Một độ đậm chữ Latin lưu dạng WOFF2 thường nặng 20–60 KB. Cùng phông đó ở dạng TTF không nén thường lớn gấp hai đến ba lần, và họ phông có thêm Hy Lạp, Kirin và tiếng Việt có thể vượt 200 KB mỗi kiểu. Phông tiếng Trung, Nhật, Hàn thuộc một quy mô khác: một độ đậm CJK đầy đủ chứa hàng chục nghìn glyph và thường lên tới vài megabyte kể cả sau khi nén WOFF2, quá nhiều để tải trước khi trang hiển thị được chữ.

Subsetting loại bỏ các ký tự mà trang không bao giờ dùng, còn unicode-range cho trình duyệt biết tệp bao phủ những ký tự nào, nên chỉ tải tệp đó khi trang thực sự có các ký tự ấy. Google Fonts dùng đúng cách này cho CJK, cắt mỗi họ phông thành nhiều lát nhỏ tải theo nhu cầu. Với phông của riêng bạn, tùy chọn Giữ ký tự trong công cụ chuyển đổi font chữ cắt tệp xuống Latin + accents hoặc Chỉ các ký tự tôi nhập trước khi lên máy chủ; hãy giữ Tất cả ký tự cho mọi thứ bạn cài trên máy tính.

Độ đậm chữ Latin thông thường ở dạng WOFF2
20–60 KB
Mức tiết kiệm WOFF2 so với WOFF thông thường
≈ 30%
Một độ đậm CJK đầy đủ thông thường, kể cả ở dạng WOFF2
Vài MB

Chuyển đổi font chữ giữa các định dạng và những gì bị hỏng

TTF sang OTF và ngược lại chỉ là đổi vùng chứa đối với phông kiểu TrueType: bảng đường viền, số đo và tính năng bố cục được chuyển nguyên vẹn. Trường hợp đáng chú ý là OTF dựa trên CFF chuyển sang TTF. Đường cong bậc ba không thể sao chép vào định dạng đường viền bậc hai, nên mỗi đường cong được vẽ lại thành một hoặc nhiều đoạn bậc hai với sai số nhỏ hơn nhiều so với một điểm ảnh. Hint của PostScript cũng không thể chuyển đổi, vì vậy công cụ OTF sang TTF cung cấp Hinting với các lựa chọn Giữ, Xóa hoặc Tự động hinting.

Chuyển từ web về máy tính là kiểu chuyển đổi phổ biến nhất. Bạn tải một giao diện hoặc bộ thiết kế, chỉ thấy tệp .woff hoặc .woff2, mà cần phông trong Word hay Figma. WOFF sang TTF bỏ lớp nén và ghi lại các bảng gốc, nên glyph, kerning và tính năng giữ nguyên như ban đầu. Thứ không thể khôi phục là những gì bản web đã loại bỏ, như ký tự bị bỏ do subsetting hoặc hint bị xóa để tiết kiệm byte.

Hầu hết sự cố khi chuyển đổi bắt nguồn từ ba thứ: hinting, tính năng bố cục và trục biến thiên. Danh sách dưới đây nêu các triệu chứng bạn có thể gặp sau khi chuyển và nguyên nhân thường gặp của từng triệu chứng.

  • Chữ nhỏ bị mờ hoặc không đều trên Windows sau khi chuyển đổi

    Hint gốc đã bị xóa hoặc không chuyển được. Hãy chuyển lại với Hinting đặt là Tự động hinting; trên màn hình Retina và điện thoại, sự khác biệt hiếm khi thấy được.

  • Ligature, small caps hoặc bộ kiểu không còn hoạt động

    Ứng dụng có thể không hiển thị tính năng OpenType, hoặc bước subsetting đã loại bỏ các glyph thay thế mà các tính năng đó trỏ tới. Hãy chuyển tệp gốc với Tất cả ký tự và kiểm tra ứng dụng có bảng kiểu chữ hoặc OpenType hay không.

  • Phông biến thiên giờ chỉ hiện một độ đậm

    Một số công cụ làm phẳng phông biến thiên thành một bản tĩnh duy nhất. Hãy giữ nguồn biến thiên và kiểm tra kết quả có danh sách trục hay không trước khi xóa bản gốc.

  • Phông đã chuyển xuất hiện hai lần trong menu phông

    Cả hai phiên bản dùng chung tên họ phông nội bộ. Hãy gỡ cài đặt tệp cũ, hoặc đặt Tên họ phông chữ mới trong Cài đặt nâng cao trước khi chuyển đổi.

Kiểm tra font trước khi sử dụng hoặc chuyển đổi

Tệp phông là một cơ sở dữ liệu nhỏ, và ba phần của nó trả lời hầu hết câu hỏi. Bảng name chứa tên họ phông, tên kiểu, phiên bản, dòng bản quyền và thường cả URL giấy phép; Font Book trên macOS hiển thị trong chế độ xem thông tin, còn bản xem trước phông của Windows hiển thị vài dòng đầu. Độ phủ glyph cho biết phông dàn được những ngôn ngữ nào: phông chỉ có Latin sẽ lặng lẽ chuyển sang kiểu chữ khác với các ký tự tiếng Ba Lan, Thổ Nhĩ Kỳ hay tiếng Việt mà nó thiếu. Với phông biến thiên, bảng fvar liệt kê các trục, như độ đậm từ 100 đến 900 hoặc độ rộng từ 75 đến 125.

Giấy phép đáng xem qua một lần trước khi đưa bất cứ thứ gì lên mạng. Các hãng phông thương mại thường bán riêng giấy phép máy tính, web và ứng dụng; giấy phép máy tính thường cho cài trên một số máy nhất định nhưng không cho phép phân phối tệp tới khách truy cập website hay đóng gói vào ứng dụng di động. Chuyển đổi phông chỉ đổi định dạng tệp, không bao giờ đổi giấy phép, nên WOFF2 tạo từ TTF máy tính mang cùng điều khoản với TTF đó. Phông theo SIL Open Font License, bao gồm phần lớn Google Fonts, có thể được chuyển đổi, subset và tự lưu trữ.

  • Tên họ phông và tên kiểu hiển thị đúng trong bảng name
  • Số phiên bản khớp với bản phát hành bạn định dùng
  • Mọi ngôn ngữ trong văn bản của bạn đều có đủ ký tự dấu và ký tự đặc biệt
  • Phông biến thiên vẫn liệt kê các trục độ đậm hoặc độ rộng
  • Giấy phép bao gồm mục đích sử dụng: máy tính, website, ứng dụng hoặc nhúng vào tài liệu

Bảng lựa chọn: định dạng font phù hợp cho từng việc

Hầu hết câu hỏi về phông chữ quy về nơi tệp sẽ được dùng. Nếu cài trên máy tính hoặc đóng gói trong ứng dụng, hãy dùng TrueType hoặc OpenType; nếu trình duyệt tải về, hãy dùng các lớp bao web đã nén. Bảng dưới đây ghép các công việc phổ biến với định dạng nên chọn và cách chuyển đổi để có được nó, để bạn bỏ qua lịch sử và đến thẳng tệp cần dùng.

Hai công việc nằm giữa các nhóm. EPUB 3 chấp nhận TTF, OTF và WOFF, nên ebook có thể dùng cả hai họ định dạng, còn tệp phông SVG cùng dòng với đồ họa vector nhưng ngày nay chủ yếu quan trọng với một số phần mềm máy vẽ và khắc, chứ không phải trình duyệt.

Chọn định dạng phông chữ nào, theo công việc
Công việcĐịnh dạng nên dùngNếu bạn chỉ cóChuyển
Cài trên Windows, macOS hoặc LinuxTTF hoặc OTFWOFF hoặc WOFF2WOFF → TTF
Phần mềm từ chối OTF của bạnTTFOTF dựa trên CFFOTF → TTF
Phông chữ website tự lưu trữWOFF2TTF hoặc OTFTTF → WOFF2
Dự phòng cho trình duyệt rất cũWOFFTTFTTF → WOFF
Website tiếng Trung, Nhật hoặc HànCác lát WOFF2 đã subsetTTF hoặc OTF đầy đủSubset, rồi WOFF2
Nhiều độ đậm trong một tệpTTF hoặc WOFF2 biến thiênTTF biến thiênGiữ các trục khi chuyển đổi
Ebook (EPUB 3)TTF, OTF hoặc WOFFWOFF2WOFF2 → TTF

Điểm chính cần nhớ

  • Cài TTF hoặc OTF trên máy tính; cả hai đều chạy trên Windows, macOS và Linux.
  • Với website, ưu tiên WOFF2, chỉ thêm WOFF cho trình duyệt rất cũ và đặt font-display: swap.
  • WOFF và WOFF2 là các lớp bao đã nén, nên chuyển sang chúng chỉ thay đổi dung lượng tải về chứ không đổi chữ.
  • Subset theo hệ chữ và unicode-range; điều này quan trọng nhất với phông CJK nặng tới vài megabyte.
  • Chuyển đổi chỉ đổi định dạng tệp, không bao giờ đổi giấy phép, và có thể làm mất hinting hoặc trục biến thiên nếu bạn không cẩn thận.
Chia sẻXFacebookWhatsAppTelegram

Câu hỏi thường gặp

OTF có chất lượng tốt hơn TTF không?

Không theo cách nào bạn nhìn thấy được ở cỡ chữ thông thường. Đường cong bậc ba và bậc hai có thể mô tả cùng hình dạng chữ, và cả hai định dạng đều mang cùng tính năng OpenType. Tệp OTF thường là bản vẽ gốc của nhà thiết kế, đó là lý do thực tế duy nhất để ưu tiên chúng.

Vì sao font tải về lại là file ZIP chứa cả TTF, WOFF và WOFF2?

Nhà cung cấp đưa cho bạn một tệp cho mỗi mục đích. Hãy cài TTF trên máy tính và tải WOFF2, cùng WOFF nếu muốn có bản dự phòng, lên website của bạn.

WOFF2 có dùng được trong email không?

Chỉ một phần. Apple Mail và iOS Mail tải phông web từ stylesheet được liên kết, còn Gmail và Outlook trên Windows bỏ qua phông tùy chỉnh và hiển thị phông dự phòng, nên hãy luôn kết thúc danh sách font-family bằng một phông hệ thống an toàn.

Có thể dùng file TTC trên website không?

Không trực tiếp. Trình duyệt cần mỗi phông một tệp, nên hãy trích xuất từng phông ra khỏi bộ sưu tập rồi chuyển từng cái sang WOFF2.

Variable font có thay thế được các file độ đậm riêng lẻ không?

Thường là có. WOFF2 biến thiên bao phủ độ đậm từ 100 đến 900 thường nhỏ hơn bốn độ đậm tĩnh trở lên cộng lại, và mọi trình duyệt hiện hành đều hỗ trợ. Nếu chỉ dùng một hoặc hai độ đậm, tệp tĩnh vẫn có thể nhẹ hơn.

Còn nên tạo font EOT và SVG nữa không?

Hiếm khi. EOT chỉ quan trọng với Internet Explorer 8 trở xuống, và phông SVG bị Chrome và Firefox hiện hành bỏ qua, nên chỉ đáng tạo cho hệ thống cũ hoặc phần mềm đọc được chúng.

Đọc tiếp