Gói lệnh ifthen do Leslie Lamport viết để mở rộng khả năng thực hiện các lệnh của LATEX. Trong cú pháp của LATEX sử dụng rất nhiều lần lệnh trong gói này. Như bình thường gói lệnh được gọi vào bằng lệnh\usepackage{ifthen}ngay phần đầu văn bản.
Gói lệnh có hai lệnh chính có cú pháp như sau:
\ifthenelse{<kiểm tra>}{<văn bản có kiểm tra đúng>}{<văn bản kiểm tra sai>} \whiledo{<kiểm tra>}{<văn bản có kiểm tra đúng>}
<kiểm tra>là biểu thức lôgic. Biểu thức lôgic này đúng thì lấy<văn bản kiểm tra đúng>còn ngược lại thì lấy<văn bản kiểm tra sai>.
Còn công thức thứ hai thì nếu<kiểm tra>không đúng thì không làm gì cả, còn nếu đúng thì làm khối văn bản trong lệnh.
Biểu thức lôgic trong<kiểm tra>là một trong những khả năng sau đây:
Kiểm tra số
Kiểm tra số dùng các toán tử<, =, >tương ứng với nhỏ hơn thực sự, bằng, lớn hơn thực sự. Giá trị của số đếm có thể kiểm tra thông qua lệnh\value. Ví dụ dưới đây các bạn tự suy luận so với số trang của cuốn sách này.
7 8
\newcommand{\ba}{3}
\ifthenelse{\ba=3}{O.K.}{Cái gì đây?}\\ \ifthenelse{\value{page}<100}
{Trang nhỏ}{Trang lớn quá!}
: 2
O.K. Trang nhỏ
Trong LATEX còn có lệnh kiểm tra trang chẵn hoặc lẻ\isodd
7 8
\ifthenelse{\isodd{\value{page}}} {Đây là trang lẻ \thepage.}
{Đây là trang chẵn \thepage.}
: 2
Đây là trang chẵn 48.
Kiểm tra chuỗi kí tự
Kiểm tra chuỗi kí tự dùng lệnh
\equal{<chuỗi kí tự 1>}{<chuỗi kí tự 2>}
So sánh giữa hai chuỗi trên và đưa ra giá trị đúng hoặc sai. Ví dụ
7 8
\newcommand{\tenban}{Hồng}
\ifthenelse{\equal{\tenban}{Hồng}} {Nguyễn Thu \tenban}{Sai rồi??}
: 2
Kiểm tra độ dài
Mệnh đề lôgic so sánh giữa hai độ dài là \lengtest{<so sánh>}
ở đây<so sánh>bao gồm hai độ dài hoặc hai lệnh độ dài quan hệ bởi<, =hoặc>. Ví dụ \newlength{\horiz} \newlength{\vert} \newlength{\min}
...
\ifthenelse{\newlength{\horiz>\vert}}
{\setlength{\min}{\vert}}{\setlength{\min}{\horiz}}
Đặt\minnhỏ hơn\horizvà\vert.
Bộ chuyển đổi
Bộ chuyển đổi là thông số hoặc là đúng hoặc là sai hay còn gọi là cờ. Có ba lệnh để vận hành chuyển đổi:
\newboolean{<chuỗi kí tự>}Tạo ra bộ chuyển đổi.
\setboolean{<chuỗi kí tự>}{<giá trị>}Gán giá trịtruehoặcfalse \boolean{<chuỗi kí tự>}Kiểm tra giá trị.
Lệnh thứ ba dùng để kiểm tra trong câu lệnh của\ifthenelsevàwhiledo.
Kết hợp các mệnh đề lôgic
Bất kỳ mệnh đề lôgic ở trên đều có thể tổ hợp lại thành những mệnh đề phức hợp thông qua các toán tử lôgic sau:
\and \or \not \( \)
Nghĩa của chúng giống với lôgic bình thường. Ví dụ ta muốn đặt\textwidth=10cm nếu hai cột của văn bản mỗi cột có\paperwidth>15và ở những trang nhỏ hơn 100, thì
\ifthenelse{\lengtest{\textwidth>10cm} \or
\(\lengtest{\paperwidth>15cm} \and \value{page}<100\)} {\setlength{\textwidth}{10cm}} {}
Một ứng dụng thường dùng cho gói lệnhifthenlà sự chuyển đổi giữa hai cách viết khác nhau của ngôn ngữ cho cùng một từ, như trong tiếng Anh và tiếng Anh kiểu Mỹ.
\newbooolean{US}
\setboolean{US}{true} %Kiểu đọc tiếng Mỹ %\setboolean{US}{false} %Kiểu đọc tiếng Anh
\newcommand{USUK}[2]{\ifthenelse{\boolean{US}}{#1}{#2}}
Như vậy lệnh\USUKsẽ in ra đối số thứ nhất hoặc thứ hai phụ thuộc vào cách đặt cờUS, ví dụ như ... the \USUK{color}{colour} of a picture ...
Nếu là tiếng Anh kiểu Mỹ thì ta đặt\setboolean{US}{true}, còn tiếng Anh chính quốc thì ngược lại.