Thế tiến thoái lưỡng nan của Chế độ Toán học trong Typst: Cộng đồng chia rẽ về các Thay đổi Trình phân tích cú pháp

Nhóm Cộng đồng BigGo
Thế tiến thoái lưỡng nan của Chế độ Toán học trong Typst: Cộng đồng chia rẽ về các Thay đổi Trình phân tích cú pháp

Trong thế giới của sắp chữ khoa học, Typst đã nổi lên như một giải pháp thay thế hiện đại cho LaTeX, hứa hẹn cú pháp sạch hơn và trải nghiệm người dùng tốt hơn. Tuy nhiên, một vấn đề dai dẳng đã châm ngòi cho cuộc tranh luận gay gắt giữa người dùng và các nhà phát triển: cách trình phân tích cú pháp chế độ toán học xử lý các biểu thức như x)e^abs(x). Cộng đồng hiện đang vật lộn với những câu hỏi cơ bản về thiết kế cú pháp, kỳ vọng của người dùng và khả năng tương thích ngược.

Vấn đề cốt lõi: Khi Toán học trở nên Mơ hồ

Cuộc tranh cãi tập trung vào cách trình phân tích cú pháp toán học của Typst diễn giải chuỗi ký tự theo sau là dấu ngoặc đơn. Khi người dùng viết x), họ thường mong đợi chỉ có chữ cái i xuất hiện dưới dạng chỉ số dưới. Thay vào đó, Typst hiển thị toàn bộ x) làm chỉ số dưới, coi toàn bộ chuỗi là một đơn vị duy nhất. Điều này xảy ra vì trình phân tích cú pháp phải quyết định xem các biểu thức như abs(x) đại diện cho lệnh gọi hàm Typst, đánh giá hàm toán học, hay phép nhân ngầm định.

Vấn đề trở nên đặc biệt rõ ràng với các phần đính kèm—chỉ số trên và chỉ số dưới. Trong các biểu thức như e^abs(x), liệu hàm giá trị tuyệt đối có nên liên kết chặt chẽ hơn chỉ số trên, khiến nó tương đương với e^(abs(x))? Hay chỉ số trên nên liên kết chặt chẽ hơn, biến nó thành (e^abs)(x)? Con người một cách trực quan hiểu điều đầu tiên, nhưng trình phân tích cú pháp lại gặp khó khăn với sự mơ hồ này.

Thật là vô lý khi điều này xảy ra trong trình phân tích cú pháp, như thể bạn bằng cách nào đó có thể tính đến tất cả các trường hợp bằng cách đoán xem mọi người muốn nói gì. Bạn hoàn toàn phải có một thao tác nhóm như {} ít nhất là có sẵn như một phương án dự phòng.

Hành vi hiện tại của chế độ Math trong Typst:

  • x) được hiển thị dưới dạng chỉ số dưới "itx" thay vì chỉ là "i"
  • e^abs(x) được hiển thị dưới dạng e^(abs(x)) do thứ tự ưu tiên của lời gọi hàm
  • Các lời gọi hàm có độ ưu tiên ràng buộc chặt chẽ hơn so với chỉ số dưới/chỉ số trên

Phản ứng của Cộng đồng và các Giải pháp được Đề xuất

Cộng đồng Typst đã thảo luận sôi nổi về vấn đề này trên nhiều nền tảng khác nhau, với các nhà phát triển thừa nhận rằng hành vi hiện tại là quá thiếu trực quan và trái ngược với kỳ vọng của mọi người. Một số giải pháp đã xuất hiện từ các cuộc thảo luận này, mỗi giải pháp đều có sự đánh đổi.

Phương án B, quay trở lại hành vi của Typst 0.3, sẽ khiến x) hoạt động như mong đợi nhưng phá vỡ e^abs(x), đòi hỏi phải có dấu ngoặc đơn rõ ràng. Một số người dùng thấy điều này có thể chấp nhận được, lưu ý rằng công cụ typst chạy đủ nhanh đến mức hầu hết thời gian tôi có thể chạy một cửa sổ xem trước được đồng bộ hóa, điều này giúp dễ dàng phát hiện ra lỗi cụ thể này.

Các đề xuất khác bao gồm phân tích cú pháp thời gian chạy (Phương án C), sử dụng thông tin kiểu để giải quyết sự mơ hồ, và MathAttachCall (Phương án D), một cách tiếp cận kết hợp. Tuy nhiên, những lo ngại đã được đặt ra về cách những phương án này có thể ảnh hưởng đến công cụ và tô sáng cú pháp. Như một bình luận viên đã nhận xét, Việc quá 'thông minh' chắc chắn sẽ dẫn đến nhiều đau đầu và nhầm lẫn hơn là chỉ có một quy tắc đơn giản, nhất quán.

Các Giải Pháp Được Đề Xuất:

  • Phương Án B: Quay lại hành vi của Typst 0.3 - các phần đính kèm trực quan nhưng lỗi các lệnh gọi hàm trong số mũ
  • Phương Án C: Phân tích cú pháp trong thời gian chạy - sử dụng thông tin kiểu dữ liệu nhưng làm phức tạp các công cụ
  • Phương Án D: MathAttachCall - phương pháp kết hợp, vẫn giữ một số sự mơ hồ
  • Phương Án E: Cú pháp mới - yêu cầu `` cho các hàm Typst trong chế độ toán học

Sự chia rẽ Văn hóa trong Ký hiệu Toán học

Cuộc thảo luận tiết lộ sự khác biệt sâu sắc hơn về văn hóa trong cách mọi người diễn giải ký hiệu toán học. Các biểu thức như 1/2(x + y) được diễn giải khác nhau giữa các truyền thống toán học. Một số người dùng mong đợi toàn bộ (x + y) nằm ở mẫu số, trong khi những người khác đọc nó là (1/2) * (x + y). Sự mơ hồ này tồn tại ngay cả khi không có hàm Typst nào liên quan.

Một bình luận viên nhận xét, Có lẽ đó cũng là một vấn đề văn hóa, vì cá nhân tôi sẽ hiểu tất cả các biểu thức này chỉ có số một là tử số và phần còn lại ở dưới. Điều này cho thấy không có một quy tắc phân tích cú pháp đơn lẻ nào có thể làm hài lòng tất cả người dùng, vì bản thân ký hiệu toán học chứa đựng những mơ hồ vốn có mà các cộng đồng khác nhau giải quyết theo những cách khác nhau.

Ý kiến Cộng đồng:

  • Đa số cho rằng hành vi hiện tại không trực quan
  • Chia rẽ về việc nên ưu tiên tính dự đoán được hay phân tích thông minh
  • Sự khác biệt văn hóa trong cách diễn giải ký hiệu toán học ảnh hưởng đến sở thích
  • Quan ngại về khả năng tương thích ngược và lộ trình di chuyển sang LaTeX

Dòng thời gian Phát triển và Tình trạng Hiện tại

Tình hình đã phát triển nhanh chóng trong vài tuần gần đây. Một yêu cầu hợp nhất để triển khai Phương án B đã từng được hợp nhất trong thời gian ngắn nhưng sau đó bị hoàn tác sau khi các nhà phát triển phát hiện ra những vấn đề sâu hơn với thiết kế cũ mới. Tính đến cuối tháng 10 năm 2025, công việc vẫn tiếp tục trên một cách tiếp cận mới nhằm cân bằng hành vi trực quan với tính khả thi về kỹ thuật.

Tác giả bài viết gốc, người ban đầu ủng hộ các giải pháp phân tích cú pháp thông minh hơn, giờ đây mạnh mẽ ủng hộ Phương án B, lập luận rằng cả [hàm Typst và hàm toán học] nên có cùng mức độ ưu tiên, để giữ cho mọi thứ có thể dự đoán được. Điều này đại diện cho một sự thay đổi quan điểm đáng kể, thừa nhận rằng tính dự đoán và nhất quán có thể có giá trị hơn là cố gắng diễn giải hoàn hảo ý định của người dùng.

Hướng tới Tương lai: Tương lai của Toán học Typst

Cuộc tranh luận đang diễn ra làm nổi bật những thách thức trong việc thiết kế cú pháp toán học cân bằng giữa sức mạnh và sự đơn giản. Trong khi một số người dùng mong muốn khả năng tương thích LaTeX, những người khác đánh giá cao cách tiếp cận sạch sẽ hơn của Typst. Việc giải quyết vấn đề này rất có thể sẽ định hình sự chấp nhận của Typst trong các cộng đồng học thuật và khoa học, nơi việc sắp chữ toán học chính xác là điều cần thiết.

Như một bình luận viên lạc quan đã lưu ý, Tôi thích những bài viết được lập luận chặt chẽ, kỹ lưỡng như thế này với tất cả các sự đánh đổi được xem xét. Nó khiến tôi tự tin vào tương lai của Typst. Cuộc thảo luận minh bạch và sự cân nhắc cẩn thận các phương án thay thế cho thấy rằng bất kỳ giải pháp nào xuất hiện cũng sẽ được xem xét kỹ lưỡng, ngay cả khi nó không làm hài lòng tất cả mọi người.

Nhóm phát triển Typst dường như cam kết tìm kiếm một giải pháp lâu dài thay vì áp dụng các bản sửa lỗi nhanh chóng. Với việc sắp chữ toán học là một trường hợp sử dụng cốt lõi của hệ thống, việc làm đúng chế độ toán học là rất quan trọng cho sự thành công lâu dài của Typst với tư cách là một nền tảng tài liệu hiện đại.

Tham khảo: The Math Mode Problem