VieTeX

Chương trình soạn thảo TeX

Gói lệnh titledot.sty phiên bản 1.0

Posted by nhdien on 12/07/2009

1. Giới thiệu

Rất nhiều người muốn các số các đoạn với tiêu đề có dấu chấm. Trước  đây tôi thường tư vấn là chấm thêm điểm vào định nghĩa các số đếm của lớp văn bản. Nhưng nhiều khi giữa tiêu đề và mục lục chấm không được hay lắm. Ngoài ra chỗ mục lục không gắn chữ [Chương] vào mục lục được. Một vấn đề nữa là thay chữ Chương bằng Chuyên đề, Nội dung,… thì làm thế nào? Tôi đã dựa vào gói lệnh titlesec.sty và titletoc.sty để làm ra gói lệnh titledot.sty thỏa mãn các yêu cầu trên.

2. Tạo lập gói lệnh

Tôi cũng đã tham khảo gói lệnh secdot.sty tại

http://tug.ctan.org/tex-archive/macros/latex/contrib/misc/

Gói lệnh này cũng chấm các số nhưng chỉ cho lớp article.cls và chỉ cho \section,
Tôi viết thêm cho cả \subsection, \chapter nếu dùng cho tiếng Anh thì cũng tốt. Tôi cũng gửi kèm đây để các bạn tham khảo.

Gói lệnh đòi hỏi hai gói lệnh titlesec.sty và titletoc.sty có tại

http://www.ctan.org/tex-archive/macros/latex/contrib/titlesec/

 và định nghĩa lại

\titlecontents{chapter}[ 4.8pc]
  {\addvspace{3pt}\bfseries}
  {\contentslabel[\hfill\@tenchuong \ \thecontentslabel.]{6pc}}
  {}
  {\dotfill\quad\thecontentspage}

\titlecontents{section}[2.8pc]
  {\addvspace{3pt}\bfseries}
  {\contentslabel[\thecontentslabel.]{1.8pc}}
  {}
  {\dotfill\quad\thecontentspage}

\titlecontents{subsection}[2.8pc]
{\small}
   {\thecontentslabel. }
  {}
  {\dotfill\quad\thecontentspage}

Những lệnh này chỉnh lại mục lục in ra cho đẹp.
Ngoài ra còn tùy chọn in mục lục với subsection không xuống dòng.

Tất cả tôi đã đóng gói và ví dụ, hướng dẫn bạn lấy về tại đây

gói lệnh titledot.sty

3. Sử dụng gói lệnh

Chỉ cần đưa vào \usepackage{titledot} mà không cần đưa vào hai gói lệnh titlesec.sty và titletoc.sty.

3.1 Cho lớp văn bản article

3.2 Cho lớp văn bản book.cls

4. Kết luận

Chi tiết bạn xem trong tài liệu

5 Responses to “Gói lệnh titledot.sty phiên bản 1.0”

  1. Lương Vũ said

    Thầy ơi, có cách nào chỉnh cho chữ MỤC LỤC nằm chính giữa (canh giữa) không ạ? Em đọc 2 quyển sách của thầy mà vẫn chưa làm được.
    Trả lời
    Bạn đưa gói lệnh vào đầu:
    \usepackage{fncychap}
    Thêm lệnh trước mục lục
    \ChTitleVar{\centering\Huge\bfseries}
    \tableofcontents

  2. anhvu said

    lam sao để chỉnh lại để khoảng cách ……. nay rộng hơn chút
    Trả lời
    Bạn học TeX đi thôi, chứ không cái gì cũng hỏi.
    \makebox[5cm]{\dotfill}

  3. sơn said

    Em chào Thầy ạ,

    Em có một vấn đề muốn hỏi Thầy, xin Thầy chỉ giáo giúp em với ạ.

    Em có định nghĩa là các lệnh section, subsection, subsubsection. Đồng thời em cũng có sử dụng lệnh titlecontents để định nghĩa là các tiêu mục này trong mục lục.

    Ở đây, em áp dụng cho section và subsection.

    Nhưng khi xuất ra file .pdf thì em thấy, chỉ số trang trong mục lục của section, subsection lùi lại vào trong so với subsubsection (subsubsection không được định nghĩa lại ạ).

    Em xin Thầy giúp em chỉnh lại sao cho section và subsection lùi ra so với subsubsection (bởi vì số trang của subsubsection nằm ở cận lề phải trang).

    Em xin cảm ơn Thầy ạ, đoạn code của em như sau ạ:

    \documentclass[a4paper, 12pt]{article}
    \usepackage[sf, bf, compact, topmarks, calcwidth, pagestyles]{titlesec}
    \usepackage{titletoc}
    \usepackage[utf8]{vietnam}
    \usepackage[left=2cm, right=2cm, top=1cm, bottom=2cm]{geometry}
    \usepackage[colorlinks]{hyperref}

    \newcommand{\dongke}{\titlerule[2px]}

    \newcommand{\damnghieng}{\usefont{T5}{cmr}{bx}{it}}

    \makeatletter
    \renewcommand \thesection {Chương \@arabic\c@section}
    \renewcommand \thesubsection {\@arabic\c@section.}
    \renewcommand \thesubsubsection {\thesubsection\@arabic\c@section.}
    \makeatother

    %\titleformat{\tên lệnh}[display]{Định dạng cho nhãn và tiêu đề}{Định dạng thêm cho nhãn}{Khoảng cách giữa nhãn và tiêu đề (có thể cho bằng 0cm)}{Định dạng thêm cho tiêu đề}[Định dạng khoảng cách giữa định dạng lệnh này và lệnh tiếp theo]

    \titleformat{\section}[display]{\sf \Huge \bfseries \vspace*{2cm}}{\damnghieng \thesection . \dongke}{0cm}{\vspace*{1cm}\filleft}[\vspace*{3cm} \dongke \vspace*{1cm}]

    \titleformat{\subsection}{\sf \LARGE \bfseries}{\thesubsection \ }{0cm}{}[\vspace*{0.1cm}]

    \titleformat{\subsubsection}{\sf \Large \bfseries \damnghieng}{\thesubsubsection \ }{0cm}{}[\vspace*{0.1cm}]

    \titlecontents{section}
    [3cm]
    {\vspace{1cm} \bfseries}
    {\contentslabel[\thecontentslabel.]{3cm}}
    {}
    {\hfill \thecontentspage}

    \titlecontents{subsection}
    [2cm]
    {\vspace{0.25cm}}
    {\contentslabel[\thecontentslabel]{1cm}}
    {}
    {\dotfill \quad \thecontentspage}

    %\titlecontents{subsubsection}
    %[3cm]
    %{\vspace{0.1cm}}
    %{\contentslabel[\thecontentslabel]{1.5cm}}
    %{}
    %{\dotfill \quad \thecontentspage}

    \begin{document}

    \large %fontsize = 12pt

    \tableofcontents

    \newpage

    \section[Giới thiệu về lập trình C\# trên Windows và hệ điều hành Linux]{Giới thiệu về lập trình C\# trên Windows và hệ điều hành Linux}

    \subsection{Công nghệ thông tin và truyền thông}

    \subsubsection{Công nghệ thông tin và truyền thông Công nghệ thông tin và truyền thông Công nghệ thông tin và truyền thông Công nghệ thông tin và truyền thông }

    Giới thiệu về lập trình C\# trên Windows và hệ điều hành Linux với nhiều dòng lệnh nhá bạn.

    \newpage

    \section{Lập trình C\# trên nhiều hệ điều hành}

    \end{document}
    Trả lời
    Khi bạn chưa thạo TeX thì không nên định nghĩa lại. Khi người ta định nghĩa các lệnh đó có rất nhiều thông số kết hợp với môi trường chung, khi định nghĩa lại thì mất đi rất nhiều thông số và văn bản bị méo mó. Bạn hãy dùng cách đơn giản và dùng lệnh điều khiển ngoài các lệnh này. Bạn xem lại mấy gói lệnh titledot.sty của tôi trong trang web này. Càng sử ít định nghĩa của họ càng tốt, đừng mất công định nghĩa lại những cái có sẵn khi mình không bằng họ.

  4. tranquangthanh said

    Thưa thầy,
    Em đang đánh một tài liệu toán, trong đó có cả “Phần” và “Chương”. Theo thiết kế của thầy, trong mục lục đã được thêm chữ “Chương”, còn chữ “Phần” thì phải làm như thế nào để được thêm vào ạ? Em đã thử làm như chữ “Chuyên đề” nhưng mà không được. Em cám ơn thầy

    Trả lời
    Để tôi xem lại, nhưng có thể chủ động thêm vào mục lục bằng lệnh \addcontents mà dã dùng ở các chương có dấu * như lời nói đầu, hoặc giới thiệu.

  5. Khuat Van Thanh said

    Thưa Thầy,
    Em thấy sau số chương, tên chương liền ngay sau dấu chấm mà không có khoảng cách, “Chương 1.Tên của một chương và chuyên đề”. Thầy có thể chỉnh để sau Chương 1. có khoảng cách rồi mới đến Tên chương… không ạ. Em cảm ơn thầy.

    Trả lời
    Tạm thời mở titledot.sty thêm \ vào chỗ như
    \titlecontents{chapter}[4.8pc]
    {\addvspace{3pt}\bfseries}
    {\contentslabel[\hfill\@tenchuong \ \thecontentslabel.\ ]{6pc}}
    {}
    {\dotfill\quad\thecontentspage}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: