Câu trả lời tất nhiên có thể phụ thuộc vào nhiều yếu tố, nhưng nếu chúng ta bắt đầu với mã văn bản đơn giản, được định dạng tốt , thì người ta có thể ít nhiều khái quát hóa mọi thứ ở đây.
Ban đầu 'định dạng' trong văn bản gốc sẽ là:
xuống dòng , không gian và tab ký tự. Lưu ý rằng ngắt dòng mới và ngắt dòng thủ công (như trong phần mềm DTP) không giống nhau và ngược lại, một số ngôn ngữ hiếm có thể
cho phép các ký tự định dạng khác, mặc dù tôi chưa bao giờ nghe thấy như vậy.
Nhận xét không phải là một phần thực thi của mã, vì vậy những nhận xét có thể được định dạng lại mà không có nhiều rủi ro, nếu ai đó biết đó có thực sự là một nhận xét hay không. Vì vậy, điều đầu tiên cần xem xét là cách các bình luận được gắn thẻ.
Một số điều cơ bản về định dạng văn bản gốc ban đầu là tốt để biết. Ví dụ, đối với Python, có hướng dẫn kiểu PEP8 . Trong khi được tạo cho Python, hướng dẫn định dạng này có thể được sử dụng làm tài liệu tham khảo cho các ngôn ngữ chính như C / C ++ và Java. Nhìn vào các dự án ví dụ khác nhau có thể giúp đỡ khi nghi ngờ.
Do đó, nguyên tắc đầu tiên sẽ là: Không thay đổi văn bản nguồn.
Tôi sẽ đi qua một danh sách kiểm tra - đảm bảo rằng:
- Không nhân vật autoreplacing xảy ra trên bất kỳ sân khấu.
- Không có chỉnh sửa nào cho văn bản được thực hiện (trừ khi bạn chắc chắn 100% chúng phải được thực hiện).
- Không có kết thúc tốt đẹp xuất hiện.
- Các vết lõm được bảo quản trực quan và nhất quán (khoảng bốn x chiều rộng cho mỗi mức độ thụt).
- Mức độ thụt đầu tiên (không) nên được nhìn thấy.
- Các kiểu được xác định không phá hủy định dạng của cú pháp (nếu tô sáng cú pháp được sử dụng).
- Có một bản sao lưu của nguồn trong văn bản thuần túy, để có thể kiểm tra lại định dạng ban đầu hoặc bắt đầu lại.
- Số dòng, nếu có, nên còn nguyên vẹn đặc biệt nếu chúng được tham chiếu trong phần giải thích.
Trên thực tế nếu nguồn ban đầu được định dạng chính xác, không nên có dòng gói nào cả. Nếu các đường bao bọc vẫn xuất hiện và không thể tránh khỏi, thì thụt lề một cấp là giải pháp phổ biến nhất (xem PEP được liên kết ở trên). Nếu ngắt dòng là cần thiết - tham khảo tốt hơn hướng dẫn phong cách hoặc tác giả.
Vẫn còn một số ký tự 'khoảng trắng' nhỏ có thể yêu cầu thay thế. Vì nguồn có thể bao gồm các ký tự tab, tất nhiên điều này có nghĩa là bộ sắp chữ phải đảm bảo rằng tất cả các tab ở đầu mỗi dòng đều nhất quán, tức là các vết lõm lồng nhau được bảo toàn trực quan và mọi mức thụt tiếp theo có cùng chiều rộng (khoảng bốn x chiều rộng trên một cấp độ thụt).
Lý tưởng nhất là các vết lõm được tạo bằng ký tự khoảng trắng hoặc dấu cách và dấu cách hỗn hợp nên được thay thế bằng bảng (hoặc với những gì phần mềm DTP có thể làm tốt hơn cho các vết lõm lồng nhau), vì vậy, nếu cần, điều chỉnh các vết lõm có thể dễ dàng hơn.
Tất nhiên người ta có thể để lại khoảng trắng, nhưng có thể khó quản lý độ rộng của chúng khi thay đổi phông chữ và khó hơn để căn chỉnh các vết lõm bên trong như trong các cột của bảng.
Phông chữ đơn cách + dấu cách
Lưu ý rằng nếu nguồn được định dạng với không gian chủ đích và được dự định để được đọc trong các font chữ đơn duy nhất, (ví dụ ASCII-sơ đồ hoặc ASCII-art) ta nên giữ gìn không gian hoàn toàn không thay đổi , nhưng quyết định này nên được thực hiện ngay từ đầu. Phông chữ "Courier New" là phổ biến nhất cho trường hợp này. Tuy nhiên, nếu không thực sự cần thiết, tôi khuyên bạn không nên sử dụng đơn cách, bởi vì ngày càng ít người mới chọn cách đơn cách để mã hóa ngày nay và trong trường hợp đọc lại, phông chữ tỷ lệ sẽ cho trải nghiệm đọc tốt hơn.
Nói chung, phông chữ cô đọng (ví dụ Arial hẹp) hoặc phông chữ nhỏ hơn có thể hoạt động tốt hơn: nó tạo ra sự nhấn mạnh hơn so với văn bản cơ thể, nó sẽ làm cho mã nhỏ gọn hơn và do đó ít có khả năng xuất hiện dòng gói không mong muốn.
Tôi nghĩ ở đây người ta có thể vẽ một dòng, và nếu việc trên được thực hiện, thì có khả năng 99% là mọi thứ sẽ ổn, ít nhất là đối với một khối mã phông chữ đơn giản không có màu.
Công cụ và định dạng nâng cao
Hơn nữa, giao diện có thể được cải thiện đáng kể bằng cách sử dụng tô sáng cú pháp.
in màu hoặc xem màn hình: trong bố cục đầy đủ màu sắc, mọi tính năng tô sáng đều có thể được sử dụng, vì vậy đây là trường hợp tốt nhất, nhưng in có thể cho một số thay đổi màu.
in màu xám hoặc b / w: tất nhiên ở đây người ta có thể sử dụng chữ in đậm (ví dụ: từ khóa) hoặc chữ nghiêng (ví dụ: bình luận) nhưng lưu ý rằng màu sắc sẽ được chuyển thành màu xám với tất cả các hậu quả. Ví dụ, các bình luận chuyển sang màu xám có thể trông tuyệt vời trên màn hình, nhưng có thể trở nên quá nhạt trên giấy.
Câu hỏi quan trọng nhất là, liệu trình tạo bố cục có các công cụ có thể biểu diễn mã ở dạng dễ đọc hay không. May mắn thay, có rất nhiều công cụ miễn phí để chỉnh sửa mã, nổi bật nhất (đối với Windows) là: Notepad ++, VSCode, Visual Studio . Nhưng hãy lưu ý về khả năng tự động hội tụ các tab vào khoảng trắng.
Trong Notepad ++, có một tùy chọn để xuất mã dưới dạng RTF , nó sẽ bảo toàn tất cả định dạng và tô sáng cú pháp của nguồn.
Nếu bố cục không yêu cầu thay đổi dòng văn bản trong trình bày mã, người ta có thể trực tiếp sử dụng hình ảnh (ảnh chụp màn hình) - nó không linh hoạt như văn bản, nhưng sẽ bảo toàn định dạng và đánh số dòng 100% và có thể tiết kiệm rất nhiều thời gian. Ví dụ, số dòng có thể khó để bảo quản ở dạng văn bản. Ngoài ra, xuất sang PDF là một cách thay thế tốt - nhưng không phải tất cả phần mềm DTP đều có thể nhúng các tệp PDF và một số định dạng có thể bị mất khi in sang PDF.
Ví dụ: thiết lập của tôi cho mã Python trong Notepad ++ trông như thế này:
Đây chỉ là để minh họa, rằng người ta có thể trực tiếp sử dụng ảnh chụp màn hình và đó thực sự có thể là phương pháp dễ nhất. Có nhiều công cụ khác nhau có thể giúp chụp màn hình - người ta có thể cần 'khâu' màn hình để có hình ảnh có độ phân giải cao hơn.
Tất nhiên, bảng màu là theo từng cá nhân, được xác định trong cấu hình kiểu của trình chỉnh sửa, vốn đã biết ngôn ngữ được hỗ trợ, do đó khó tạo định dạng sai ngay cả khi người ta không biết cú pháp. Ở đây quy tắc kiểu chữ chung nên hoạt động: không quá nhiều màu sắc, phông chữ nhất quán, thụt lề, khoảng cách dòng thoải mái.
Các công cụ / plugin bổ sung cho các định nghĩa ngôn ngữ tùy chỉnh cũng rất phổ biến, nhưng các công cụ này đòi hỏi kiến thức cú pháp.