This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Bỏ qua một phần mã nguồn

Bài toán

Khi soạn tài liệu, ta có thể muốn bỏ qua một câu, một đoạn nào đó trong mã nguồn TeX. Cách thông thường là xóa đi phần muốn bỏ. Nhưng cách này tỏ ra bất tiện khi ta muốn giữ lại một phần để tham khảo về sau. Từ đó, đặt ra vấn đề, làm thế nào để một phần mã nguồn sẽ không xuất hiện trong kết quả biên dịch.

Ví dụ trong đoạn mã sau, tác giả muốn lưu lại hàm số g(x) vì cho rằng chúng liên quan tới bài toán đang xét trên hàm số f(x). Anh ta đã dùng dấu phần trăm % để "chú thích"

Khảo sát hàm số sau đây
  $y = f(x) = x^3 - 2x + 1$
  % $$y = g(x) = x^3 -2x -1 $$

Việc dùng dấu phần trăm % có thể áp dụng đối với nhiều dòng

Khảo sát hàm số sau đây
  $y = f(x) = x^3 - 2x + 1$
  %
  % phần bắt đầu phần trăm sẽ không xuất hiện trong kết quả biên dịch
  %
  % Hàm số trên liên quan mật thiết với hàm số $y = g(x) = x^3 -2x -1 $
  % đồ thị của $g(x)$ có được từ đồ thị $f(x)$ bằng phép tịnh tiến thích hợp
  % khi xét trên cùng hệ trục tọa độ
  %

Việc dùng dấu phần trăm lại phát sinh tiếp một bất tiện: Nếu ta muốn lấy lại phần đã chú thích (tức là trước đây ta bỏ qua phần mã nguồn, nhưng giờ muốn thấy chúng tiếp tục xuất hiện trong kết quả biên dịch), thì phải xóa đi dấu phần trăm trên từng dòng một cách thủ công; và điều này là một cực hình nếu có quá nhiều dòng.

Gói comment của Victor Eijkhout (tác giả TeX by Topic) giải quyết hầu hết các vấn đề nêu trên.

Sử dụng gói

Định nghĩa môi trường

Gói comment cung cấp hai lệnh sau để định nghĩa môi trường mới hoặc để thay đổi cờ (xem bên dưới) của môi trường:

\includecomment{abc} % định nghĩa môi trường abc, với cờ 'INCLUDE'
\excludecomment{defx} % định nghĩa môi trường defx, với cờ 'EXCLUDE'

Gói comment cũng đã định nghĩa sẵn môi trường comment với cờ ban đầu EXCLUDE.

Sử dụng

Ta sử dụng các môi trường đã định nghĩa theo cách thông thường

a a a a a a a a a a a a a a a a a a a a a 

\begin{abc}
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
\end{abc}

a a a a a a a a a a a a a a a a a a a a a 

\begin{defx}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
\end{defx}

a a a a a a a a a a a a a a a a a a a a a 

Cờ và kết quả

Có hai cờ được xét tới là INCLUDEEXCLUDE.

  1. Khi môi trường mang cờ INCLUDE, toàn bộ nội dung bên trong môi trường của nó sẽ được hiểu như một phần của tài liệu, nghĩa là việc dùng môi trường 'abc' với cờ 'INCLUDE' tương đương với việc không dùng môi trường đó.
  2. Với môi trường có cờ EXCLUDE, toàn bộ nội dung của môi trường sẽ bị bỏ qua, không xuất hiện trong kết quả biên dịch.

Các cờ của môi trường có thể thay đổi bằng các lệnh đã đưa ra. Nếu có nhiều lệnh thay đổi cờ, thì việc thay đổi gần nhất sẽ có tác dụng. Ví dụ

\includecomment{abc} % đặt cờ INCLUDE
\excludecomment{abc} % đặt cờ EXCLUDE
\includecomment{abc} % đặt cờ INCLUDE, đây là thay đổi cuối cùng có tác dụng

Nhờ việc thay đổi cờ dễ dàng này, mà tất cả các vấn đề đã nêu trong mục "Bài toán" được giải quyết.

Ví dụ

Ví dụ 1

\includecomment{abc}
\excludecomment{defx}

% abc => INCLUDE, def => EXCLUDE

a a a a a a a a a a a a a a a a a a a a a 

\begin{abc}
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
\end{abc}

a a a a a a a a a a a a a a a a a a a a a 

\begin{defx}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
\end{defx}

a a a a a a a a a a a a a a a a a a a a a 

Kết quả biên dịch sẽ là

a a a a a a a a a a a a a a a a a a a a a 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
a a a a a a a a a a a a a a a a a a a a a 
a a a a a a a a a a a a a a a a a a a a a 

Ví dụ 2

\includecomment{abc}
\excludecomment{defx}
\excludecomment{abc}

% abc => EXCLUDE, def => EXCLUDE

a a a a a a a a a a a a a a a a a a a a a 

\begin{abc}
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
\end{abc}

a a a a a a a a a a a a a a a a a a a a a 

\begin{defx}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
\end{defx}

a a a a a a a a a a a a a a a a a a a a a 

Kết quả biên dịch sẽ là

a a a a a a a a a a a a a a a a a a a a a 
a a a a a a a a a a a a a a a a a a a a a 
a a a a a a a a a a a a a a a a a a a a a 

Tập tin mẫu

\documentclass{article}

\usepackage{comment}

\includecomment{abc}
\excludecomment{defx}
\excludecomment{abc}

\begin{document}

a a a a a a a a a a a a a a a a a a a a a 

\begin{abc}
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
\end{abc}

a a a a a a a a a a a a a a a a a a a a a 

\begin{defx}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
\end{defx}

a a a a a a a a a a a a a a a a a a a a a 
\end{document}