Theo mặc định thì chỉ có Chương mới được in đậm còn các phần khác thì chữ thường (đối với kiểu tài liệu book, report), và Section mới được in đậm còn các phần khác thì chữ thường (đối với kiểu tài liệu article). Bây giờ bạn muốn điều khiển cho các thành phần khác cũng in đậm hoặc in nghiêng theo thì phải làm sao? Gói lệnh tocloft sẽ giúp bạn.

Đọc thêm các thủ thuật liên quan đến mục lục khác trên Math2IT.

Theo mặc định, nếu bạn dùng đoạn code sau

\documentclass{book}
\begin{document}
 
\tableofcontents

\chapter{Chapter 1}

\chapter{Chapter 2}
\section{Section 1}
\subsection{Subsection 1}
\subsection{Subsection 2}
\section{Section 2}
  
\end{document}

thì kết quả sẽ là

Mặc định

Giả sử giờ bạn muốn giống như vầy

Sau khi chỉnh sửa

Cách đơn giản nhưng thủ công

Mỗi khi bạn gõ \chapter , \section  hay \subsection  thì luôn có thể viết dưới dạng

\section[cái hiện ở mục lục]{cái hiện trong bài}

Trong dấu ngoặc vuông là cái sẽ hiện ở mục lục. Nếu bạn không có dấu ngoặc vuông thì cái trong dấu ngoặc nhọn cũng chính là cái hiện ở mục lục luôn.

Bây giờ, bạn chỉ việc cho cái hiện trong ngoặc vuông in đậm hoặc in nghiêng theo ý của bạn là được, ví dụ

\section[\textbf{Section 2}]{Section 2}
\subsection[\textit{Subsection 1][Subsection 1}

Nhược điểm của phương pháp này là bạn phải làm thủ công ở tất cả các section, subsection hay chapter của tài liệu. Ở phần tiếp theo, tôi sẽ giúp bạn làm tự động hết tất cả nhờ vào gói lệnh tocloft.

Làm tự động

Đoạn code cho hình minh họa ở đầu bài là

\documentclass{book}

\usepackage{tocloft}
\renewcommand\cftchapfont{\mdseries}
\renewcommand\cftchappagefont{\mdseries}

\renewcommand\cftsecfont{\bfseries}
\renewcommand\cftsecpagefont{\bfseries}

\renewcommand\cftsubsecfont{\itshape}
\renewcommand\cftsubsecpagefont{\itshape}

\begin{document}
 
\tableofcontents

\chapter{Chapter 1}

\chapter{Chapter 2}
\section{Section 1}
\subsection{Subsection 1}
\subsection{Subsection 2}
\section{Section 2}
  
\end{document}

Ở đây bạn cần dùng gói lệnh tocloft. Giải thích thêm cách sử dụng trong đoạn code trên. Đối với mỗi chapter, section hay subsection, bạn cần có đủ hai dòng code (tôi đã cố tình tách chúng ra trong đoạn code trên cho bạn dễ nhìn)

Thay đổi cho Chapter (Chương)

\renewcommand\cftchapfont{thông-số}
\renewcommand\cftchappagefont{thông-số}

Thay đổi cho Section (Mục)

\renewcommand\cftsecfont{thông-số}
\renewcommand\cftsecpagefont{thông-số}

Thay đổi cho Subsection (Phụ mục)

\renewcommand\cftsubsecfont{thông-số}
\renewcommand\cftsubsecpagefont{thông-số}

Trong đó, thông-số  có các tùy chọn sau

  • \mdseries  : in thường chữ (bỏ in đậm, in nghiêng)
  • \bfseries  : in đậm chữ.
  • \itshape  : in nghiêng chữ.

Sửa lỗi “Command \[email protected] already defined.”

Lỗi này phát sinh vì bạn đã sử dụng hai gói lệnh tocloftsubfigure (hay subfig) cùng lúc. Cả hai gói lệnh này đều sử dụng lệnh lofdepth hết nên nó mới báo là đã có một gói dùng lệnh này rồi. Lỗi cũng phát sinh nếu bạn dùng gói tocloft với svg vì gói svg sẽ sử dụng gói subfig.

Cách sửa lỗi, thay vì khai báo \usepackage{tocloft} , bạn khai báo như sau

\usepackage[subfigure]{tocloft}

Chúc bạn thành công.

Share

CÙNG CHỦ ĐỀ

CÓ THỂ BẠN SẼ THÍCH