Làm việc với Hyphenation
Đôi khi việc sử dụng dấu gạch nối là cần thiết để sắp xếp văn bản chặt chẽ hơn trong một tài liệu. Vào cùng lúc, nó là quan trọng để hiểu rằng các đặc tính của từ nối lại có thể khác nhau cho mỗi ngôn ngữ.
Theo thời điểm hiện tại, việc chèn dấu gạch ngang không còn thường xuyên như trước đây, đặc biệt trong các văn bản tiếng Anh. Tuy nhiên việc sử dụng tính năng này có thể ảnh hưởng nghiêm trọng đến các tài liệu của người dùng - sự kết hợp ảnh hưởng đến bố cục và do đó ảnh hưởng đến dạng hiển thị của các tập tin đầu ra, ví dụ ở định dạng PDF.
Đối với việc chia từ ngữ chính xác, các từ điển phân tách ngôn ngữ cụ thể được sử dụng. Aspose.Words sử dụng các thuật toán tiên tiến để làm việc với các từ điển như vậy và cho phép bạn nhận được cùng một cách phân tách như trong Microsoft Word.
Từ điển ngắt dấu
Các ngôn ngữ khác nhau dùng các quy tắc và nguyên tắc khác nhau để chèn từ, vì vậy giải pháp tối ưu cho việc chèn đúng là phải dùng các từ điển đặc biệt. Aspose.Words sử dụng các từ điển của OpenOffice.
Để kiểm tra chính tả, OpenOffice sử dụng Hunspell library, đây là một sự tổng quát hóa của thuật toán phân tách câu của TeX. Thuật toán này cho phép tự động không dùng dấu gạch nối, sử dụng các mẫu cạnh tranh và tùy chỉnh. Hunspell sử dụng Hyphen để gạch nối.
Hyphenation Algorithm
Aspose.Words thực hiện the TeX hyphenation algorithm và có thể tái sử dụng các từ điển phân đoạn của OpenOffice.
Tính năng của thuật toán Aspose.Words nên được tính đến
- Các tham số khoảng cách phân tách (LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDRELFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) được xác định trong từ điển phân tách bị bỏ qua. Aspose.Words sử dụng bộ khoảng cách của nó tùy thuộc vào chế độ tương thích tài liệu.
- Thuật toán tách từ trong Aspose.Words hỗ trợ composite hyphenation. Tuy nhiên, Aspose.Words chia các chuỗi ký tự chứa chữ cái và không phải chữ cái thành các phần chỉ có chữ cái (từ) và ngắt chúng riêng. Lưu ý rằng Microsoft Word logic phân tách các từ phức tạp tùy thuộc vào chế độ tương thích tài liệu. *: Thuật toán phân cách trong Aspose.Words không thực hiện non-standard hyphenation. Mẫu không theo tiêu chuẩn thì bị bỏ qua.
Đang tải từ điển phân tách dấu gạch ngang
Để sử dụng tính năng phân từ, trước tiên bạn cần đăng ký một danh sách từ vựng phân từ.Mã ví dụ sau cho thấy cách tải các từ điển phân từ cho các ngôn ngữ được chỉ định từ một tệp:
Ví dụ mã dưới cho thấy cách tải từ điển ngắt câu cho ngôn ngữ được chỉ định từ một luồng như thế nào:
Theo cách thay thế khác cho việc đăng ký trước các từ điển phân tách dấu gạch ngang, có thể chỉ đăng ký các từ điển phân tách dấu gạch ngang “theo yêu cầu. Để đạt được điều đó, hãy thực hiện IHyphenationCallback giao diện và sử dụng Callback callback tĩnh.
Mã ví dụ sau cho thấy cách thực hiện giao diện IHyphenationCallback:
Tác động của việc ngắt câu lên bố cục
Khi chia văn bản thành các dòng, Aspose.Words kiểm tra mỗi từ để xác định liệu nó có phù hợp hoàn toàn với dòng hiện tại không. Nếu một từ quá dài để phù hợp với cuối dòng, theo mặc định Aspose.Words di chuyển nó đến đầu dòng tiếp theo thay vì sử dụng dấu gạch nối.
Tuy nhiên, tính năng tách từ có thể được sử dụng trong Aspose.Words để chèn dấu gạch nối vào từ để loại bỏ khoảng trống trong văn bản định dạng hoặc giữ cho độ dài dòng bằng nhau trong cột hẹp. Điều này rõ ràng ảnh hưởng đến số lượng dòng và do đó là số trang. Nói cách khác thì sử dụng chức năng phân từ ảnh hưởng đến bố cục tài liệu.
Hyphnation và Justification (H&J)
Microsoft Word có logic phức tạp để chọn điểm ngắt nếu văn bản được sắp xếp và dấu gạch nối được bật. Nói tóm lại, Microsoft Word có thể thích hơn là thu gọn hoặc kéo dài các khoảng để tránh ngắt dòng. Hơn cả có lẽ là logic này dựa trên Knuth’s article.
Aspose.Words thực hiện thuật toán H&J của riêng mình có cùng kết quả như Microsoft Word và cung cấp cách ngắt dòng giống nhau trong tài liệu đầu ra.