khóa học overleaf latex cho người bắt đầu

Hướng dẫn Overleaf

Tạo một tài liệu trong Overleaf
Tải lên một project
Sao chép một dự án
Tạo một project từ một mẫu có sẵn
Sử dụng menu dự án Overleaf
Thêm hình ảnh trong Overleaf
Xuất file từ Overleaf
Làm việc ngoại tuyến trong Overleaf
Sử dụng Track Changes trong Overleaf
Sử dụng tài liệu tham khảo trong Overleaf
Chia sẻ project của bạn với người khác
Sử dụng tính năng Lịch sử
Gỡ lỗi lỗi thời gian chờ biên dịch
Hướng dẫn về các tính năng cao cấp của Overleaf

Cơ bản về LaTeX

Tạo file LaTeX đầu tiên
Chọn trình biên dịch LaTeX
Đoạn văn và dòng mới
In đậm, in nghiêng và gạch chân
Danh sách

Toán học trong latex

Biểu thức toán học
Chỉ số dưới và chỉ số trên
Dấu ngoặc vuông và dấu ngoặc tròn
Ma trận
Phân số và Nhị thức
Căn chỉnh các công thức
Các toán tử
Khoảng cách trong toán học
Tích phân, tổng và giới hạn
Hiển thị kiểu trong toán học
Danh sách các chữ cái Hy Lạp và ký hiệu toán học
Phông chữ toán học
Sử dụng Bảng ký hiệu trong Overleaf

hình ảnh và bảng biểu

Bảng biểu và hình ảnh
Chèn hình ảnh
Chèn Bảng
Chỉnh vị trí hình ảnh và bảng
Danh sách các bảng và hình
Vẽ Diagram trực tiếp trong LaTeX
Gói TikZ

Tài liệu tham khảo và trích dẫn

Quản lý thư mục với bibtex
Quản lý thư mục với natbib
Quản lý thư mục với biblatex
Thư mục Bibtex
Thư mục Natbib
Trích dẫn Natbib
Thư mục Biblatex
Trích dẫn Biblatex

Cấu trúc tài liệu

Các phần và chương
Mục lục
Tham chiếu chéo các phần, phương trình và số thực
Chỉ số
Thuật ngữ
Danh pháp
Quản lý trong một dự án lớn
Các project LaTeX nhiều tệp
Siêu liên kết

Định dạng trong latex

Độ dài trong LaTeX
Tiêu đề và chân trang
Đánh số trang
Định dạng đoạn văn
Ngắt dòng và khoảng trắng
Căn chỉnh văn bản
Kích thước trang và lề
Tài liệu một mặt và hai mặt
Nhiều cột
Bộ đếm
Mã danh sách
Làm nổi bật mã với minted
Sử dụng màu sắc trong LaTeX
Chú thích
Ghi chú bên lề

Phông chữ

Kích thước phông chữ, họ phông chữ và kiểu chữ
Kiểu chữ
Hỗ trợ phông chữ hiện đại với LaTeX

Bài thuyết trình

Máy chiếu
Powerdot
Áp phích

Lệnh trong latex

Lệnh
Môi trường

Lĩnh vực cụ thể

Định lý và chứng minh
Công thức hóa học
Biểu đồ Feynman
Biểu đồ quỹ đạo phân tử
Ký hiệu cờ vua
Mẫu đan
Gói CircuiTikz
Gói Pgfplots
Bài kiểm tra sắp chữ trong LaTeX
Đan
Ma trận giá trị thuộc tính

Tập tin class

Hiểu về các gói và tệp lớp
Danh sách các gói và tệp lớp
Viết gói của riêng bạn
Viết lớp học của riêng bạn

TeX/LaTeX nâng cao

Các bài viết chuyên sâu về TeX/LaTeX

NỘI DUNG HỌC OVERLEAF LATEX

Ba cách để chèn danh sách trong Overleaf

Overleaf cung cấp 3 cách để tạo danh sách bằng LaTeX:

  1. Sử dụng Insert Bulleted List (x) hoặc Insert Numbered List (y) trên thanh công cụ của trình soạn thảo để chèn danh sách vào Visual Editor hoặc Code Editor.
  2. Dán một danh sách đã định dạng vào Visual Editor.
  3. Viết mã LaTeX của riêng bạn bằng cách sử dụng Code Editor.

Các tùy chọn 1 và 2 được thiết kế để tự động tạo mã LaTeX cần thiết cho việc dàn trang danh sách. Tuy nhiên, đối với những ai muốn viết mã LaTeX của riêng mình, tùy chọn 3 có thể là lựa chọn ưu tiên. Tùy chọn này cung cấp sự linh hoạt lớn nhất và là trọng tâm chính của bài viết này.

Giới thiệu

Bài viết này cung cấp một cái nhìn tổng quan về việc dàn trang và tùy chỉnh các loại danh sách khác nhau trong LaTeX:

  • Môi trường itemize để tạo danh sách có gạch đầu dòng (không có thứ tự)
  • Môi trường enumerate để tạo danh sách đánh số (có thứ tự)
  • Môi trường description để tạo danh sách mô tả

Việc dàn trang danh sách là một chủ đề rộng lớn vì danh sách trong LaTeX có thể cấu hình rất linh hoạt, cho phép tạo ra nhiều loại danh sách và cấu trúc khác nhau. Chúng tôi sẽ khảo sát và minh họa một số phương pháp bạn có thể sử dụng để cấu hình và tùy chỉnh danh sách của mình.

Ví dụ về danh sách cơ bản

Môi trường itemize để tạo danh sách có gạch đầu dòng (không có thứ tự)

Danh sách không có thứ tự (có gạch đầu dòng) được tạo ra bằng môi trường itemize, trong đó mỗi mục danh sách bắt đầu bằng lệnh item, lệnh này cũng tạo ra ký hiệu gạch đầu dòng.

Lists are easy to create:

begin{itemize}

  item List entries start with the verb|item| command.

  item Individual entries are indicated with a black dot, a so-called bullet.

  item The text in the entries may be of any length.

end{itemize}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Môi trường enumerate để tạo danh sách đánh số (có thứ tự)

Danh sách có thứ tự (đánh số) có cú pháp giống như danh sách không có thứ tự nhưng sử dụng môi trường enumerate: mỗi mục phải được đặt trước bằng lệnh item, lệnh này sẽ tự động sinh số để đánh dấu mục. Các số này bắt đầu từ 1 với mỗi lần sử dụng môi trường enumerate—lưu ý rằng hành vi đánh số mặc định của LaTeX có thể được thay đổi/kiểm soát qua gói enumitem.

Numbered (ordered) lists are easy to create:

begin{enumerate}

  item Items are numbered automatically.

  item The numbers start at 1 with each use of the texttt{enumerate} environment.

  item Another entry in the list

end{enumerate}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Môi trường description

Ví dụ sau đây minh họa môi trường description. Nhãn (tùy chọn) cho mỗi mục được đặt trong dấu ngoặc vuông sau lệnh item:

item[label text] Text of your description goes here…

Chúng tôi cũng sử dụng gói blindtext để tạo một số văn bản giả bằng tiếng Anh trong mục thứ ba. Để có tiếng Anh, chúng ta cần sử dụng gói babel với tùy chọn ngôn ngữ [english]:

usepackage[english]{babel}

Dưới đây là ví dụ:

documentclass{article}

usepackage[english]{babel} % To obtain English text with the blindtext package

usepackage{blindtext}

begin{document}

 

begin{description}

   item This is an entry textit{without} a label.

   item[Something short] A short one-line description.

   item[Something long] A much longer description. blindtext[1]

end{description}

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Thay đổi nhãn của các mục riêng lẻ

Như được trình bày trong ví dụ về môi trường description, lệnh item có một tham số tùy chọn, trong dấu ngoặc vuông. Bạn có thể sử dụng tính năng này trong các môi trường itemize và enumerate để thay đổi nhãn mặc định của các mục riêng lẻ trong danh sách của bạn:

item[label text] Text of your entry goes here…

Văn bản nhãn sẽ được sử dụng để tạo nhãn cho mục này.

 

Change the labels using verb|item[label text]| in an texttt{itemize} environment

begin{itemize}

  item This is my first point

  item Another point I want to make 

  item[!] A point to exclaim something!

  item[$blacksquare$] Make the point fair and square.

  item[NOTE] This entry has no bullet

  item[] A blank label?

end{itemize}

 

vspace{10pt}

 

Change the labels using verb|item[label text]| in an texttt{enumerate} environment

begin{enumerate}

  item This is my first point

  item Another point I want to make 

  item[!] A point to exclaim something!

  item[$blacksquare$] Make the point fair and square.

  item[NOTE] This entry has no bullet

  item[] A blank label?

end{enumerate}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Danh sách lồng ghép

Trong LaTeX, bạn có thể chèn một danh sách vào bên trong một danh sách khác. Các loại danh sách trên có thể được bao gồm lồng ghép với nhau, có thể là hỗn hợp hoặc cùng loại, với độ sâu lên đến 4 cấp.

 

begin{enumerate}

   item The labels consists of sequential numbers

   begin{itemize}

     item The individual entries are indicated with a black dot, a so-called bullet

     item The text in the entries may be of any length

     begin{description}

     item[Note:] I would like to describe something here

     item[Caveat!] And give a warning here

     end{description}

   end{itemize}

   item The numbers starts at 1 with each use of the texttt{enumerate} environment

end{enumerate}

 

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Danh sách lồng ghép: kiểu nhãn

Kiểu nhãn của các mục trong danh sách lồng ghép thay đổi theo độ sâu của nó trong danh sách. Đối với danh sách itemize lồng ghép, loại gạch đầu dòng thay đổi; đối với danh sách enumerate, định dạng số thay đổi theo độ sâu của mục. Cả hai đều bị giới hạn ở độ sâu tối đa 4 cấp.

Danh sách enumerate lồng ghép: định dạng số

begin{enumerate}

   item First level item

   item First level item

   begin{enumerate}

     item Second level item

     item Second level item

     begin{enumerate}

       item Third level item

       item Third level item

       begin{enumerate}

         item Fourth level item

         item Fourth level item

       end{enumerate}

     end{enumerate}

   end{enumerate}

 end{enumerate}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Danh sách itemize lồng ghép: kiểu gạch đầu dòng

Kiểu gạch đầu dòng thay đổi tùy thuộc vào độ sâu của các danh sách lồng ghép:

begin{itemize}

   item First level item

   item First level item

   begin{itemize}

     item Second level item

     item Second level item

     begin{itemize}

       item Third level item

       item Third level item

       begin{itemize}

         item Fourth level item

         item Fourth level item

       end{itemize}

     end{itemize}

   end{itemize}

 end{itemize}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Tùy chỉnh danh sách

Danh sách trong LaTeX có thể được cấu hình cao, cung cấp nhiều khả năng để tạo ra nhiều loại danh sách tùy chỉnh khác nhau. Bạn có thể thực hiện các sửa đổi trực tiếp đối với các loại danh sách tiêu chuẩn của LaTeX hoặc, tốt hơn, sử dụng gói enumitem đa năng để thực hiện điều này cho bạn.

CTAN cung cấp một số gói liên quan đến danh sách mà bạn có thể cân nhắc nếu có yêu cầu tùy chỉnh cụ thể. Thêm vào đó, tex.stackexchange cung cấp rất nhiều câu hỏi liên quan đến danh sách với các câu trả lời mang lại cái nhìn hữu ích và ví dụ tuyệt vời!

Chúng ta sẽ bắt đầu với một số ví dụ về việc sửa đổi nhãn danh sách, sau đó chuyển sang tùy chỉnh bố cục danh sách.

Tùy chỉnh danh sách: thay đổi nhãn

Đầu tiên, chúng ta sẽ trình bày cách thay đổi nhãn danh sách mà không sử dụng gói enumitem.

Lệnh tạo nhãn tiêu chuẩn

Danh sách tùy chỉnh có thể được tạo ra bằng cách sử dụng gói enumitem hoặc sửa đổi trực tiếp các danh sách tiêu chuẩn. Dưới đây là một tóm tắt về một số lệnh LaTeX tiêu chuẩn, biến đếm và tham số danh sách mà bạn có thể cần lưu ý.

Bảng sau đây cho thấy các lệnh LaTeX được sử dụng để tạo nhãn ở mỗi cấp độ của các môi trường danh sách itemize và enumerate:

Level

enumerate label commands

itemize label commands

Level 1

labelenumi

labelitemi

Level 2

labelenumii

labelitemii

Level 3

labelenumiii

labelitemiii

Level 4

labelenumiv

labelitemiv

Biến đếm cho enumerate

Môi trường danh sách enumerate cũng sử dụng bốn biến đếm để theo dõi giá trị nhãn hiện tại ở mỗi cấp độ:

Level

enumerate counter variable

Level 1

enumi

Level 2

enumii

Level 3

enumiii

Level 4

enumiv

Ví dụ: tùy chỉnh nhãn của danh sách enumerate

Bạn có thể cấu hình nhãn tiêu chuẩn của LaTeX bằng cách sử dụng renewcommand để định nghĩa lại các lệnh tạo nhãn và, đối với môi trường enumerate, bạn cũng có thể sử dụng các biến đếm tương ứng.

Dưới đây là một số ví dụ thực tế thực hiện việc này mà không sử dụng gói enumitem.

1. Ví dụ thực tế

documentclass{article}

begin{document}

renewcommand{labelenumii}{arabic{enumi}.arabic{enumii}}

renewcommand{labelenumiii}{arabic{enumi}.arabic{enumii}.arabic{enumiii}}

renewcommand{labelenumiv}{arabic{enumi}.arabic{enumii}.arabic{enumiii}.arabic{enumiv}}

 

begin{enumerate}

item One

item Two

item Three

begin{enumerate}

    item Three point one

    begin{enumerate}

    item Three point one, point one

        begin{enumerate}

        item Three point one, point one, point one

        item Three point one, point one, point two

        end{enumerate}

    end{enumerate}

end{enumerate}

item Four

item Five

end{enumerate}

 

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

In các biến đếm

In đoạn văn trước, lệnh `arabic` được sử dụng để dàn trang giá trị hiện tại của các biến đếm nhãn khác nhau. Lưu ý rằng “chữ số Ả Rập” và việc sử dụng lệnh `arabic` đề cập đến các chữ số từ 0 đến 9: xem bài viết [chữ số Ả Rập trên Wikipedia](https://en.wikipedia.org/wiki/Arabic_numerals) để biết thêm thông tin.

Nói chung, một biến đếm có thể được dàn trang theo các định dạng khác nhau bằng cách sử dụng một trong 5 lệnh sau:

  • arabic{counter variable}: In dạng số Ả Rập (0, 1, 2, 3, …).
  • roman{counter variable}: In dạng số La Mã thường (i, ii, iii, iv, …).
  • Roman{counter variable}: In dạng số La Mã viết hoa (I, II, III, IV, …).
  • Alph{counter variable}: In dạng chữ cái viết hoa (A, B, C, D, …).
  • alph{counter variable}: In dạng chữ cái viết thường (a, b, c, d, …).

Ví dụ:

documentclass{article}

begin{document}

begin{verbatim}

newcounter{foo}

setcounter{foo}{5}    

end{verbatim}

newcounter{foo}

setcounter{foo}{5} 

 

begin{itemize}

item verb|arabic{foo}| produces arabic{foo}

item verb|roman{foo}| produces roman{foo} 

item verb|Roman{foo}| produces Roman{foo}

item verb|Alph{foo}| produces Alph{foo}

item verb|alph{foo}| produces alph{foo}

end{itemize}

 

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

 

Chào bạn đọc! Đây là khóa học Latext Overleaf. Mục đích chỉ là chia khóa học bằng tiếng việt cho bạn nào ngại đọc bằng Tiếng anh. Khóa này được dịch nguyên bản từ tài liệu của overleaf. 

(Để học Latex, các bạn click vào mục menu bên tay trái)

Ví dụ không thực tiễn (vui vẻ)

Ví dụ này dàn trang emoji sử dụng phông chữ màu OpenType, vì vậy nó chỉ hoạt động trong LuaLaTeX. 

Mặc dù đây chỉ là một ví dụ vui vẻ, việc sử dụng LuaLaTeX cho thấy cách tùy chỉnh tất cả bốn lệnh tạo nhãn, và sử dụng các biến đếm nhãn, để tạo ra những nhãn không giống như thường lệ… Nhấp vào liên kết “Open in Overleaf” để xem mã đầy đủ.

 

renewcommand{labelenumi}{duck{enumi}}

renewcommand{labelenumii}{duck{enumi}.duckegg{enumii}}

renewcommand{labelenumiii}{duck{enumi}.duckegg{enumii}.duckegg{enumiii}}

renewcommand{labelenumiv}{duck{enumi}.duckegg{enumii}.duckegg{enumiii}.duckchick{enumiv}} 

 

begin{enumerate}

item A duck

item More ducks

item A flurry of ducks

begin{enumerate}

    item Ducks and eggs

    begin{enumerate}

    item Do I see… 

    item Ducks and pre-ducks 

       begin{enumerate}

       item Awww…

       item So cute!

       end{enumerate}

    end{enumerate}

end{enumerate}

item Back to ducks

item Again

end{enumerate}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Tùy chỉnh danh sách: thay đổi bố cục

Ngoài việc tùy chỉnh nhãn, bạn cũng có thể thay đổi khoảng cách và bố cục của danh sách. Tuy nhiên, trước tiên bạn cần biết các tham số LaTeX khác nhau xác định việc dàn trang và bố cục của danh sách.

Tham số danh sách LaTeX  

Bạn có thể sử dụng gói layouts để tạo ra một sơ đồ hiển thị các tham số danh sách LaTeX:

documentclass{article}

usepackage{layouts}

begin{document}

begin{figure}

listdiagram

caption{The LaTeX{} parameters which define typesetting and layout of lists.} 

end{figure}

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Tạo danh sách tùy chỉnh bằng cách sử dụng môi trường list  

LaTeX cung cấp môi trường danh sách chung, cung cấp khung cho việc tạo kiểu danh sách của riêng bạn. Sử dụng thông tin có trong sơ đồ trên, ví dụ sau là phiên bản đã được chỉnh sửa nhẹ của một ví dụ có trong phần danh sách của tài liệu tham khảo không chính thức LaTeX2e.

documentclass{article}

begin{document}

newcounter{boxlblcounter}  

newcommand{makeboxlabel}[1]{fbox{#1.}hfill}% hfill fills the label box

newenvironment{boxlabel}

  {begin{list}

    {arabic{boxlblcounter}}

    {usecounter{boxlblcounter}

     setlength{labelwidth}{3em}

     setlength{labelsep}{0em}

     setlength{itemsep}{2pt}

     setlength{leftmargin}{1.5cm}

     setlength{rightmargin}{2cm}

     setlength{itemindent}{0em} 

     letmakelabel=makeboxlabel

    }

  }

{end{list}}

 

newcommand{randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

 

noindentrandomtext

 

begin{boxlabel}

item randomtext

item randomtext

item randomtext

end{boxlabel}

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Sử dụng gói enumitem để sửa đổi và tạo danh sách

Gói enumitem là phương pháp được khuyến nghị để sửa đổi các danh sách LaTeX tiêu chuẩn hoặc tạo các định dạng danh sách tùy chỉnh của riêng bạn. enumitem cung cấp rất nhiều tính năng, vì vậy chúng tôi không thể bao quát hết tất cả, nhưng chúng tôi có thể cung cấp một số ví dụ cơ bản để giúp bạn bắt đầu. 

Tùy chọn gói enumitem: shortlabels  

Gói enumitem cung cấp một tham số cấu hình tùy chọn gọi là shortlabels mà bạn sử dụng thông qua:

usepackage[shortlabels]{enumitem}

Tùy chọn shortlabels  

Tùy chọn shortlabels bắt chước hành vi của gói enumerate, cung cấp phương pháp ngắn gọn để định nghĩa sơ đồ đánh số của các môi trường enumerate. Xem tài liệu của gói enumerate để biết thêm thông tin.

Sửa đổi danh sách tiêu chuẩn  

Với sự tham khảo từ sơ đồ tham số LaTeX, chúng ta có thể sử dụng enumitem để dễ dàng tùy chỉnh một danh sách LaTeX tiêu chuẩn, chẳng hạn như itemize:

documentclass{article}

usepackage{enumitem}

 

begin{document}

 

newcommand{randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

 

section*{Using LaTeX’s default settings for texttt{itemize}}

 

randomtext

 

begin{itemize}

item randomtext

   begin{itemize}

      item randomtext

        begin{itemize}

        item randomtext

        end{itemize}

   item randomtext

   end{itemize}

item randomtext

end{itemize}

 

section*{Using a custom texttt{itemize} via texttt{enumitem}}

 

subsection*{Note the effect of left and right margin settings}

 

randomtext

 

begin{itemize}[leftmargin=30pt, rightmargin=2cm]

item randomtext

   begin{itemize}

      item randomtext

        begin{itemize}

        item randomtext

        end{itemize}

   item randomtext

   end{itemize}

item randomtext

end{itemize}

 

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Tạo danh sách mới với enumitem  

Để tạo một kiểu danh sách mới với enumitem, bạn sử dụng lệnh `newlist` yêu cầu 3 tham số:

newlist{name}{list-type}{max-depth}

Tên: tên của danh sách của bạn, sẽ được sử dụng như một môi trường:  

`begin{name} … end{name}`

list-type: loại danh sách này phải là một trong các loại danh sách tiêu chuẩn của LaTeX:  

– enumerate  

– itemize  

– description

 

max-depth: độ sâu tối đa mà danh sách này sẽ được lồng ghép. LƯU Ý: đối với các danh sách vượt quá giới hạn lồng ghép mặc định của LaTeX là 4, bạn cũng phải sử dụng lệnh `setlistdepth{integer}` trong đó `integer` là độ sâu lồng ghép tối đa mà bạn dự định sử dụng. Xem ví dụ “Danh sách cho luật sư” để minh họa điều đó.

Sau khi bạn đã tạo danh sách mới, bạn có thể cấu hình nó bằng lệnh `setlist`.

Sử dụng setlist để cấu hình danh sách tùy chỉnh đã tạo bằng enumitem  

Trong ví dụ này, chúng ta sẽ tạo một danh sách mới gọi là myitems dựa trên enumerate. Chúng ta sẽ đặt max-depth là 3:

newlist{myitems}{enumerate}{3}

Một yêu cầu tối thiểu là sử dụng lệnh `setlist` để định nghĩa các nhãn cho danh sách tùy chỉnh này. Một cách để thực hiện điều đó, đối với các danh sách dựa trên enumerate, là sử dụng các biến đếm được tạo bởi gói enumitem—những biến đếm này sử dụng tên của danh sách của bạn: myitems trong ví dụ của chúng tôi.

Dưới đây là cách chúng tôi sử dụng các biến đếm tương ứng trong cấu hình nhãn của mình:

  • myitemsi cho các mục cấp 1
  • myitemsii cho các mục cấp 2
  • myitemsiii cho các mục cấp 3

Nếu chúng ta có nhiều hơn 3 cấp độ, các biến đếm tương ứng sẽ được gọi là myitemsiv (cấp 4), myitemsv (cấp 5) và tiếp tục như vậy, sử dụng số La Mã chữ thường.

Ngoài các nhãn, chúng ta cũng sẽ thiết lập một số giá trị cho leftmargin và rightmargin (xem sơ đồ tham số LaTeX).

documentclass{article}

usepackage{enumitem}

begin{document}

 

newcommand{randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

 

newcommand{shortrandomtext}{Hello, here is some text.}

% Create a custom list based on enumerate

% It is called “myitems”

% We’ll create a list that is 3 levels deep

newlist{myitems}{enumerate}{3}

 

% Configure the behaviour of level 1 entries

% NOTE: we use the list counter “myitemsi”

setlist[myitems, 1]

{label=arabic{myitemsi}., %1., 2., 3., …

leftmargin=parindent,

rightmargin=10pt

}

 

% Configure the behaviour of level 2 entries

% NOTE: we use the list counter “myitemsii”

setlist[myitems, 2]

{label=arabic{myitemsi}.arabic{myitemsii}, %1.1, 1.2, 1.3…

leftmargin=15pt,

rightmargin=15pt}

 

% Configure the behaviour of level 3 entries

% NOTE: we use the list counter “myitemsiii”

setlist[myitems, 3]

% Use a label of 1.1:<kern>(a), 1.1:<kern>(b) etc  

{label=arabic{myitemsi}.arabic{myitemsii}:kern1.5pt(alph{myitemsiii}),

leftmargin=30pt,

rightmargin=30pt}

 

randomtext

begin{myitems}

item randomtext

    begin{myitems}

    item randomtext

        begin{myitems}

        item randomtext

        item randomtext

        end{myitems}

    item shortrandomtext

    item shortrandomtext

    end{myitems}

item randomtext

end{myitems}

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Danh sách cho luật sư: Lồng ghép danh sách đến độ sâu tùy ý  

Gói enumitem cho phép bạn tạo các danh sách có thể được lồng ghép đến độ sâu tùy ý, loại bỏ giới hạn 4 cấp của LaTeX. Những người chuẩn bị hợp đồng với cấu trúc điều khoản phức tạp (lồng ghép sâu) có thể sẽ thấy điều này hữu ích, mặc dù mã lồng ghép có vẻ hơi đáng sợ…

documentclass{article}

usepackage{enumitem}

 

begin{document}

 

newlist{contract}{enumerate}{10}

setlist[contract]{label*=arabic*.}

setlistdepth{10} 

 

section*{Custom list nested to 10 levels deep!}

 

begin{contract}

item Level 1

 begin{contract}

 item Level 2

   begin{contract}

   item Level 3

     begin{contract}

     item Level 4

       begin{contract}

       item Level 5

        begin{contract}

        item Level 6

         begin{contract}

         item Level 7

          begin{contract}

          item Level 8

           begin{contract}

           item Level 9

            begin{contract}

            item Level 10

          end{contract}

         end{contract}

        end{contract}

       end{contract}

      end{contract}

     end{contract}

    end{contract}

   end{contract}

  end{contract}

 end{contract}

end{document}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Các điểm đánh dấu tùy chỉnh sử dụng gói enumitem và MetaPost

Các ví dụ sau chỉ hoạt động với LuaLaTeX và được thiết kế để gợi ý một số khả năng—dĩ nhiên, bạn có thể thay thế MetaPost bằng ứng dụng/công cụ vẽ yêu thích của mình!

Những ví dụ này sử dụng gói luamplib và cũng minh họa cách các lệnh mở rộng, chẳng hạn như `the` và `directlua`, có thể được sử dụng trong mã MetaPost.

Ví dụ 1: Điểm đánh dấu tự động thay đổi kích thước  

Ví dụ này tạo ra các điểm đánh dấu giảm kích thước khi độ sâu của danh sách tăng lên. 

% Declare a new itemize-based list via enumitem

newlist{myEnumerate}{itemize}{6}

 

% The nosep option removes all vertical spacing

% the label=protectmpbullet causes all bullets to be 

% drawn by a macro that uses MetaPost code. protect

% is required as noted in the enumitem manual 

 

setlist[myEnumerate]{nosep,label=protectmpbullet}

setlistdepth{6}

 

begin{myEnumerate}

item Level 1

  begin{myEnumerate}

   item Level 2

    begin{myEnumerate}

     item Level 3

      begin{myEnumerate}

       item Level 4

        begin{myEnumerate}

         item Level 5

          begin{myEnumerate}

           item Level 6

           end{myEnumerate}

        end{myEnumerate}

       end{myEnumerate}

    end{myEnumerate}

   end{myEnumerate}

end{myEnumerate}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu

Ví dụ 2: Điểm đánh dấu tùy chỉnh độc đáo  

Ví dụ này được lấy cảm hứng từ một ví dụ trên tex.stackexchange mà Overleaf đã sửa đổi để tạo ra các điểm đánh dấu tùy chỉnh bằng mã MetaPost. newlist{todolist}{itemize}{2}

begin{itemize}

  item Start thinking about what we hope to achieve

  begin{todolist}

  item[mpdot] Identify objectives

  item[mpyingyang] Balance environmental impact 

  item[mpsquare{0}{5}{0}] Implement plans

    begin{todolist}

    item[mpsquare{-0.5}{4}{0}] Stage 1 plans

    item[mpsquare{-0.5}{4}{-20}] Stage 2 plans

    item[mpsquare{-0.5}{4}{-40}] Stage 3 plans

    item[mpsquare{-0.5}{4}{-60}] Stage 4 plans

    end{todolist}

  end{todolist}

end{itemize}

Ví dụ này tạo ra kết quả sau:

Khóa học Latext cho người bắt đầu