LaTeX
Thứ Sáu, 12/05/2017, 00:05
Tự định nghĩa môi trường LaTeX mới cho riêng mình

Tự định nghĩa môi trường LaTeX mới cho riêng mình

Việc tự định nghĩa môi trường LaTeX thường được áp dụng khi bạn có ý định biên soạn một đoạn tài liệu theo một cách trình bày đặc biệt nào đó, hoặc đôi khi những môi trường LaTeX gốc chưa đáp ứng đủ thẩm mỹ của bạn, khi đó bạn có thể sửa chúng theo ý muốn.
Bài viết sẽ giới thiệu các bạn cách để tự định nghĩa môi trường LaTeX mới, cùng với những trường hợp ứng dụng điển hình.

Cú pháp định nghĩa

Ta nên đặt đoạn định nghĩa phía TRƯỚC \begin{document}  để có tác dụng toàn tại liệu:
\newenvironment{tên-môi-trường-mới}[số lượng tham số]{Lệnh-mở-đầu-môi-trường}{Lệnh-kết-thúc-môi-trường}
Như vậy, với định nghĩa trên, khi bạn soạn thảo như sau
\begin{tên-môi-trường-mới} Tôi yêu TEXmath \end{tên-môi-trường-mới}
thì LaTeX sẽ hiểu như sau
Lệnh-mở-đầu-môi-trường Tôi yêu TEXmath Lệnh-kết-thúc-môi-trường
Sau đây là một số ứng dụng điển hình

Đặt lại tên môi trường cho dễ nhớ

Đây là cách sử dụng dễ nhất. Khi bạn muốn dùng \begin{md}  thay cho \begin{proposition}  thì bạn làm như sau
\newenvironment{md} {\begin{proposition}} {\end{proposition}}
Như vậy, ta đã không thêm bớt gì ở Lệnh-mở-đầu-môi-trường và Lệnh-kết-thúc-môi-trường. Từ nay khi gõ \begin{md}  và \end{md}  thì LaTeX hiểu là \begin{proposition}  và \end{proposition} .

Tạo môi trường có cách trình bày đặc biệt

Giả sử ta muốn tạo một môi trường tên là mt trong đó văn bản sẽ canh giữa, có màu đỏ và in nghiêng. Ta định nghĩa
\newenvironment{mt} {\begin{center} \color{red} \it} {\end{center}}
 
Bây giờ ta muốn đưa phần màu sắc trở thành một tham số, ta định nghĩa như sau
\newenvironment{mt}[1] {\begin{center} \color{#1} \it} {\end{center}}
và khi sử dụng, ta bắt đầu môi trường bằng bằng \begin{mt}{blue} . Bạn có thể biến tấu những môi trường đã có theo ý mình muốn.

Tinh chỉnh một môi trường đã có

Lúc này thay vì dùng \newenvironment  thì bạn dùng \renewenvironment. Một số môi trường thường "bị" định nghĩa lại gồm: itemize, align, equation, twocolumns,... Ví dụ sau đây sẽ định nghĩa lại môi trường equation, trong đó ta thêm phần label như là một tham số
\renewenvironment{equation}[1]      {\begin{equation} \label{#1}}      {\end{equation}}

Thay đổi cách mở đầu chương mới

Đoạn code sau đây được tham khảo từ trang web sharelatex.com. Đây cũng là một cách định nghĩa lại môi trường mặc dù không sử dụng lệnh \renewenvironment . Trường hợp này họ đã sử dụng \def  để định nghĩa lại những lệnh đã dùng để định nghĩa môi trường gốc. Với sao cho đẹp hơn (nhưng không thay đổi cách sử dụng).
\documentclass{report} \makeatletter \def\thickhrulefill{\leavevmode \leaders \hrule height 1.2ex \hfill \kern \z@} \def\@makechapterhead#1 { \vspace*{10\p@} {\parindent \z@ \centering \reset@font \thickhrulefill\quad \scshape\bfseries\textit{\@chapapp{} \thechapter} \quad \thickhrulefill \par\nobreak \vspace*{10\p@} \interlinepenalty\@M \hrule \vspace*{10\p@} \Huge \bfseries #1 \par\nobreak \par \vspace*{10\p@} \hrule \vskip 100\p@} } \begin{document} \chapter{Sự im lặng của bầy cừu} \end{document}
 
Nếu bạn đã thành thạo LaTeX và thích thử nghiệm cái mới thì hãy tạo ra nhiều môi trường hữu íchchia sẻ môi trường của bạn cho mọi người cùng sử dụng nhé.
 
notion image
Cùng chủ đề