\startcomponent ma-cb-vn-tablesofcontent
\project ma-cb
\product ma-cb-vn
\environment ma-cb-env-vn

%\chapter{Table of contents (lists)}
\chapter{Mục lục (danh sách)}

%\index{table of contents}
%\index{list}
\index{mục lục}
\index{danh sách}

\Command{\tex{completecontent}}
\Command{\tex{placecontent}}
\Command{\tex{definelist}}
\Command{\tex{setuplist}}
\Command{\tex{writetolist}}
\Command{\tex{writebetweenlist}}
\Command{\tex{definecombinedlist}}
\Command{\tex{setupcombinedlist}}

%A table of contents contains chapter numbers, chapter titles
%and page numbers and can be extended with sections,
%sub sections, etc. A table of contents is generated
%automatically by typing:
Một mục lục chứa số chương, tiêu đề chương, số trang và có thể được mở rộng ra
với các tiết đoạn và tiết đoạn con, ... Một mục lục được tạo tự động bằng
lệnh:

\starttyping
\placecontent
\stoptyping

%Which table of contents is produced depends on the location
%of this command in your document. At the start of the
%document it will generate a list of chapters, sections etc.
%But at the top of a chapter:
Mục lục được viết ra dựa vào vị trí của lệnh này trong tài liệu. Tại lúc bắt
đầu tài liệu, nó sẽ tạo một danh sách các chương, tiết đoạn, ... Nhưng nếu tại
đầu của chương như thế này:

%\startbuffer
%\chapter{Hasselt in Summer}
%
%\placecontent
%
%\section{Hasselt in July}
%
%\section{Hasselt in August}
%
%\stopbuffer
\startbuffer
\chapter{Hasselt vào Hè}

\placecontent

\section{Hasselt vào tháng Bảy}

\section{Hasselt vào tháng Tám}

\stopbuffer

\typebuffer

%it will only produce a list of (sub) section titles with the
%corresponding section numbers and page numbers.
nó sẽ chỉ tạo danh sách tiêu đề tiết đoạn với số tiết đoạn và số trang tương
ứng.

%The command \type{\placecontent} is available after
%definition with:
Lệnh \type{\placecontent} có thể sử dụng sau khi đã định nghĩa với lệnh:

\shortsetup{definecombinedlist}

%This command and \type{\definelist} allows you to define
%your own lists necessary for structuring your documents.
Lệnh này và \type{definelist} cho phép bạn xác định danh sách cần thiết cho
cấu trúc tài liệu.

%The use of this command and its related commands is
%illustrated for the table of contents.
Cách dùng lệnh này và các lệnh liên quan đến nó được minh họa cho bảng nội
dung.

\startbuffer
\definelist[chapter]
\setuplist
   [chapter]
   [before=\blank,
    after=\blank,
    style=bold]

\definelist[section]
\setuplist
   [section]
   [alternative=d]
\stopbuffer

\typebuffer

%Now there are two lists of chapters and sections and these
%will be combined in a table of contents with the command
%\type{\definecombinedlist}.
Có hai danh sách các chương và các tiết đoạn và chúng sẽ được kết hợp lại
trong mục lục với lệnh \type{\definecombinedlist}.

\startbuffer
\definecombinedlist
   [content]
   [chapter,section]
   [level=subsection]
\stopbuffer

\typebuffer

%Now two commands are available: \type{\placecontent} and
%\type{\completecontent}. With the second command the title
%of the table of contents will be added to the table of
%contents.
Bây giờ có hai lệnh: \type{placecontent} và \type{\completecontent}. Với lệnh
thứ hai, tiêu đề mục lục sẽ được thêm vào mục lục.

%The layout of lists can be varied with the parameter
%\type{alternative}.
Bố trí của danh sách có thể được thay đổi với tham số \type{alternative}.

%\placetable
%  [here,force]
%  [tab:alternatives]
%  {Alternatives for displaying lists.}
%\starttable[|c|l|]
%\HL
%\NC \bf Alternative \NC \bf Display \NC\SR
%\HL
%\NC \type{a} \NC number -- title -- page number              \NC\FR
%\NC \type{b} \NC number -- title -- spaces -- page number    \NC\MR
%\NC \type{c} \NC number -- title -- dots -- page number      \NC\MR
%\NC \type{d} \NC number -- title -- page number (continuing) \NC\MR
%\NC \type{e} \NC reserved for interactive purposes           \NC\MR
%\NC \type{f} \NC reserved for interactive purposes           \NC\LR
%\HL
%\stoptable
\placetable
  [here,force]
  [tab:alternatives]
  {Các tùy chọn cho hiển thị danh sách.}
\starttable[|c|l|]
\HL
\NC \bf Tùy chọn \NC \bf Hiển thị \NC\SR
\HL
\NC \type{a} \NC số -- tiêu đề -- số trang              \NC\FR
\NC \type{b} \NC số -- tiêu đề -- khoảng trắng -- số trang    \NC\MR
\NC \type{c} \NC số -- tiêu đề -- các dấu chấm -- số trang      \NC\MR
\NC \type{d} \NC số -- tiêu đề -- số trang (tiếp tục) \NC\MR
\NC \type{e} \NC dành riêng cho các chủ định liên quan nhau           \NC\MR
\NC \type{f} \NC dành riêng cho các chủ định liên quan nhau           \NC\LR
\HL
\stoptable

%Lists are set up with:
Danh sách được thiết lạp với lệnh:

\shortsetup{setuplist}
\shortsetup{setupcombinedlist}

%If you want to change the layout of the generated table of
%contents you'll have to remember that it is a list.
Nếu bạn muốn thay đổi cách bố trí mục lục được tạo, bạn sẽ phải nhớ rằng nó là
một danh sách.

\startbuffer
\setupcombinedlist
  [content]
  [alternative=c,
   aligntitle=no,
   width=2.5cm]
\stopbuffer

\typebuffer

%This will result in a somewhat different layout than the
%default one.
Kết quả sẽ có một cách bố trí khác hơn danh sách mặc định

%Lists are called up and placed with:
Danh sách được gọi và được đặt với lệnh:

\shortsetup{placelist}

%So if you want a table of content you type:
Vì vậy, nếu bạn muốn có mục lục, bạn nhập lệnh:

\starttyping
\placecontent[level=section]
\stoptyping

%or
hoặc

\starttyping
\completecontent[level=section]
\stoptyping

%only the sections will be displayed. You may need this
%option when you have a well structured document that has sub
%sub sub sub sub sections and you don't want those in the
%table of contents.
để chỉ hiển thị các tiết đoạn. Bạn có thể cần tùy chọn này khi bạn có một tài
liệu được cấu trúc tốt và bạn không cần các tiết đoạn con xuất hiện trong mục
lục.

%A long list or a long table of contents will use up more
%than one page. To be able to force page breaking you can
%type:
Một danh sách dài hay một mục lục dài sẽ chiếm hơn một trang. Để có thể ép
sang trang, bạn dùng lệnh:

\starttyping
\completecontent[2.2,8.5,12.3.3]
\stoptyping

%A page break will occur after section 2.2 and 8.5 and
%sub section~12.3.3.
Chúng sẽ sang trang sau tiết đoạn 2.2 và 8.5 và tiết đoạn con 12.3.3.

%In some cases you want to be able to write your own text in
%an automatically generated list. This is done with:
Trong một số trường hợp, bạn muốn thêm một vài chữ vào trong danh sách được
tạo tự động. Điều này được thực hiện như sau:

\shortsetup{writetolist}
\shortsetup{writebetweenlist}

%For example if you want to make a remark in your table of
%contents after a section titled {\em Hotels in Hasselt}
%you can type:
Ví dụ nếu bạn muốn tạo một ghi chú vào mục lục sau một tiết đoạn có tiêu đề
{\em Khách sạn ở Hasselt}, bạn làm như sau:

% \startbuffer
% \section{Hotels in Hasselt}
% \writebetweenlist[section]{\blank}
% \writetolist[section]{}{---under construction---}
% \writebetweenlist[section]{\blank}
% \stopbuffer
\startbuffer
\section{Khách sạn ở Hasselt}
\writebetweenlist[section]{\blank}
\writetolist[section]{}{---đang được viết---}
\writebetweenlist[section]{\blank}
\stopbuffer

\typebuffer

\stopcomponent
