định dạng các loại đề thi và bài tập · pdf fileĐịnh...

33
lamdethi.sty định dạng các loại đề thi và bài tập Nguyễn Hữu Điển Khoa Toán - Cơ - Tin học ĐHKHTN Hà Nội, ĐHQGHN Mục lục 1. Giới thiệu ..................................................... 2 2. Đòi hỏi gói lệnh kèm theo .................................... 3 3. Tùy chọn của gói lệnh ......................................... 3 4. Định dạng bài thi ............................................. 4 4.1. Một đề bài và lời giải ............................................. 4 4.2. Các lệnh định dạng cho các loại câu hỏi .......................... 6 4.2.1. Câu hỏi tự luận .............................................. 6 4.2.2. Câu hỏi trắc nghiệm ......................................... 6 4.2.3. Câu hỏi trắc nghiệm dạng đặc biệt ........................... 7 4.2.4. Câu hỏi trắc nghiệm trong bảng ............................ 10 4.2.5. Câu hỏi điền chỗ trống ..................................... 11 4.2.6. Câu hỏi đúng sai ........................................... 11 4.3. Sử dụng tệp ngoài và lệnh gọi vào .............................. 12 4.3.1. Các tệp câu hỏi ............................................. 12 4.3.2. Các lệnh lấy đề bài trực tiếp ở tệp ........................... 12 4.3.3. Các lệnh lấy đề bài ở tệp .................................... 13 4.4. Nhãn trích dẫn cho các bài tập .................................. 15 4.4.1. Chọn số ngẫu nhiên ........................................ 17 4.5. Mẫu thiết lập đề cho từng loại câu hỏi .......................... 18 4.5.1. Đề tự luận .................................................. 18 4.5.2. Đề trắc nghiệm ............................................. 18 4.5.3. Đề điền chỗ và đúng sai .................................... 20 4.5.4. Trắc nghiệm theo bảng ..................................... 20 4.5.5. Đề có thể thiết kế ........................................... 21 4.5.6. Bài tập cho các chương cuốn sách ........................... 22 1

Upload: vuthu

Post on 04-Feb-2018

245 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

lamdethi.sty định dạng các loại đề thi vàbài tập

Nguyễn Hữu ĐiểnKhoa Toán - Cơ - Tin học

ĐHKHTN Hà Nội, ĐHQGHN

Mục lục

1. Giới thiệu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Đòi hỏi gói lệnh kèm theo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3. Tùy chọn của gói lệnh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4. Định dạng bài thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4.1. Một đề bài và lời giải . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4.2. Các lệnh định dạng cho các loại câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.2.1. Câu hỏi tự luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.2.2. Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.2.3. Câu hỏi trắc nghiệm dạng đặc biệt . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.2.4. Câu hỏi trắc nghiệm trong bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2.5. Câu hỏi điền chỗ trống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2.6. Câu hỏi đúng sai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3. Sử dụng tệp ngoài và lệnh gọi vào . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.1. Các tệp câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.2. Các lệnh lấy đề bài trực tiếp ở tệp . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.3. Các lệnh lấy đề bài ở tệp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.4. Nhãn trích dẫn cho các bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4.1. Chọn số ngẫu nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.5. Mẫu thiết lập đề cho từng loại câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.5.1. Đề tự luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.5.2. Đề trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.5.3. Đề điền chỗ và đúng sai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.5.4. Trắc nghiệm theo bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.5.5. Đề có thể thiết kế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.5.6. Bài tập cho các chương cuốn sách . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1

Page 2: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 2

5. Đưa hình và bảng vào câu hỏi, lời giải . . . . . . . . . . . . . . . . . . . . . . . 22

6. Hướng phát triển gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

A. Phụ lục về các gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

A.1. Gói lệnh enumitem.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

A.2. Gói lệnh shortlst.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

A.3. Gói lệnh float.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

A.3.1. Tạo ra một môi trường động mới . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

A.3.2. Những lệnh liên quan đến gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . 29

A.3.3. Sử dụng gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

A.4. Gói lệnh nonfloat.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

A.5. Gói lệnh ifthen.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

A.6. Các gói lệnh soạn đề thi hoặc câu hỏi kiểm tra khác . . . . . . . . . . . . . 33

Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1. Giới thiệu

1. Trước đây tôi có viết ra gói lệnh dethi.sty cùng với việc sử đổi examdesign.clstạo ra đề trắc nghiệm và một số loại đề thi với sự sáo trộn cả câu hỏi lẫn phươngán trả lời. Tôi dùng gói lệnh này nhiều lần và rất tốt, nhưng đây là một lớp vănbản nên không dùng chung với các định dạng văn bản khác. Nghĩa là khi dùnglại câu hỏi làm sách, tập hợp thành tuyển tập thì lại phải sửa định dạng và gâykhó khăn cho người dùng.

2. Gói lệnh answer.sty và alterqcm.sty là những gói lệnh kết hợp được vớicác văn bản khác. Do đó tôi có thiết kế mẫu làm các đề thi tự luận và các bàitập trong nhiều chương của một cuốn sách. Tôi đã dùng và chạy khá tốt, khiđề bài và lời giải trong cùng một khung soạn thảo nhưng lúc đưa ra thì táchđược lời giải ra vị trí tùy ý của văn bản.

3. Một gói lệnh đơn giản probsoln.sty của Nicola L.C. Talbot cũng nhằmmục đích tạo ra các đề thi theo tùy chọn một số trong các bài đã có. Gói lệnhcó thể lấy từ tệp ngoài vào một số câu hỏi để lập ra đề mới. Gói lệnh có tại địachỉ

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

Bạn có thể xem tài liệu hướng dẫn.

4. Hoàn toàn dựa vào gói lệnh probsoln.sty để chữa lại cho thích hợp vớimôi trường của ta và thêm rất nhiều mục đích khác nhau khi sử dụng. Do cóthay đổi khá nhiều khác với bản gốc nên tôi tạm đặt là lamdethi.sty, tôi đã cốgắng bao lưu các lệnh của gói lệnh probsoln.sty và thêm lệnh cho thích hợp vớiyêu cầu mới. Gói lệnh kết hợp với mọi định dạng của LATEX.

Hiện tại gói lệnh mới làm được:

Page 3: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 3

1. Đề thi trắc nghiệm;2. Đề thi trắc nghiệm dạng đặc biệt;3. Đề thi tự luận;4. Đề thi trắc nghiệm theo kiểu bảng;5. Đề thi điền chỗ trống;6. Đề thi đúng sai;7. Kết hợi mọi tổ hợp các loại đề trên;8. Định dạng giữa đề thi và bài tập trong tài liệu tổng hợp, sách là một.9. Soạn thảo đề và đáp án, kể cả đề không có đáp án đều được.

10. In ra đề riêng, lời giải riêng hoặc cùng một lúc đề được.11. Đề trắc nghiệm có thể lập phiếu trắc nghiệm cho các số câu hỏi thích hợp.12. Làm đề thi có thể chọn ngẫu nhiên một số câu hỏi trong tệp đề đã có

không giới hạn số lượng.13. Có thể dùng trực tiếp đề và lời giải trong tệp làm đề hoặc đưa các đề thi

và lời giải vào tệp lưu trữ rồi lấy ra dễ dàng theo nhãn của các dề.

Hạn chế gói lệnh: Tráo các phương án trong câu hỏi trắc nghiệm chưa làmđược.

Sau đây là các hướng dẫn sử dụng gói lệnh là chính.

2. Đòi hỏi gói lệnh kèm theo

Để vận hành tốt gói lệnh mới cần thiết có các gói lệnh sau để thực hiện cáclệnh:

• ifthen gói lệnh để lập trình điều khiển.• substr gói lệnh sử lý dãy ký tự, văn bản.• amsmath dùng một số cấu trúc toán và lệnh.• shortlst lập danh sách thứ tự chạy theo hàng.• enumitem đánh nhãn thông qua tùy chọn.• float đặt cố định hình và bảng không trong môi trường duy chuyển

nhưng đánh số được.

Trong khi soạn thảo câu hỏi cần các lệnh của gói lệnh ta có thể đưa vào. Góilệnh thích hợp với mọi gói lệnh LATEX kể cả gói lệnh về hình.

3. Tùy chọn của gói lệnh

Khi dùng gói lệnh \usepackage[<Tùy chọn>]{lamdethi}, tùy chọn có các khảnăng

1. answers Cho phép hiện ra lời giải khi gọi câu hỏi.2. noanswers Không hiện ra lời giải (mặc định)3. draft Hiện ra nhãn bài toán và tên tệp dữ liệu đã gán khi dùng câu hỏi.

Page 4: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 4

Nên dùng chức năng này để biết bài đã đưa ra là bài nào.4. final Phương án cuối cùng in ra không có các nhãn trên kèm theo.

4. Định dạng bài thi

4.1. Một đề bài và lời giải

Định dạng cơ bản một bài tập

\begin{baitap}{<Nhãn của bài>}\begin{problems}<Nội dung đề bài>\end{problems}\begin{loigiai}<Nội dung lời giải>\end{loigiai}\end{baitap}

1. <Nhãn của bài> Mỗi bài được gán cho một nhãn, đặc điểm của nhãn làchi làm hai phần có dấu hai chấm ở giữa. Phần trước dấu chấm ta cóthể cho cùng nhóm ký tự như diffeasy loạt bài đạo hàm loại dễ để saunày lấy ra hàng loạt cùng loại, phần sau arctan cho khác nhau, duy nhấttrong tệp dữ liệu. Vì vậy ta có thể cho số cũng được như diffeasy:2 bàisố 2 trong tệp của ta.

2. <Nội dung đề bài>, chấp nhận tất cả lệnh của LATEX trừ môi trường ver-batim. Với tùy chọn kèm theo có thể chỉ hiện ra đề bài hoặc không.

3. <Nội dung lời giải> Tất cả lệnh và môi trường, kể cả hình ảnh đều chovào đây được. Với tùy chọn kèm theo có thể chỉ hiện ra lời giải hoặckhông.

Ví dụ

\begin{baitap}{diffeasy:arctan}\begin{problems}\(y = \arctan x = \tan^{-1}x\)\end{problems}\begin{loigiai}\[\tan y = x\]diff w.r.t. $x$:\begin{eqnarray*}\sec^2y\frac{dy}{dx} & = & 1\\\frac{dy}{dx} & = & \frac{1}{\sec^2y}\\& = & \frac{1}{1+\tan^2y}\\& = & \frac{1}{1+x^2}

Page 5: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 5

\end{eqnarray*}\end{loigiai}\end{baitap}

Với lệnh

\begin{enumerate}\item \useproblem{diffeasy:arctan}\end{enumerate}

cho ra kết quả

1. Lấy đạo hàm hàm số sau y = arctan x = tan−1 x

Còn thêm vào lệnh

\showanswers\begin{enumerate}\item \useproblem{diffeasy:arctan}\end{enumerate}

Cho kết quả chỉ lời giải

1. Lời giải.:tan y = x

diff w.r.t. x:

sec2 ydy

dx= 1

dy

dx=

1

sec2 y

=1

1 + tan2 y

=1

1 + x2

Cho cả lời giải và đề bài

\begin{enumerate}\hideanswers\item \useproblem{diffeasy:arctan}\showanswers\useproblem{diffeasy:arctan}

\end{enumerate}

Page 6: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 6

1. Lấy đạo hàm hàm số sau y = arctan x = tan−1 x

Lời giải.:tan y = x

diff w.r.t. x:

sec2 ydy

dx= 1

dy

dx=

1

sec2 y

=1

1 + tan2 y

=1

1 + x2

Như vậy, với lệnh \useproblem{<Nhãn của bài>} và kết hợp với\hideanswers và \showanswers ta có thể cho ra phần câu hỏi hoặc trả lời.

4.2. Các lệnh định dạng cho các loại câu hỏi

Như vậy ta có thể viết đề bài và lời giải trực tiếp trên một văn bản các câu hỏirồi dùng chúng, còn câu nào không dùng sẽ không hiện ra. Nhưng như vậy sẽrối trên một văn bản, gói lệnh có khả năng đưa tất cả các câu hỏi vào các tệpsau đó gọi ra sử dụng. Nghĩa là phần câu hỏi được soạn riêng ra từng tệp tùyý khi sử dụng thì gọi vào. Định dạng macro sau đây có thể dùng trức tiếp nhưđịnh dạng trên và có thể lưu vào tệp để gọi ra.

4.2.1. Câu hỏi tự luận

Giống hệt như ví dụ trên chỉ có khác là các môi trường được rút gọn lại

\baituluan{<Nhãn của bài>}{%Câu hỏi 1<Nội dung đề bài>}{%Trả lời<Nội dung lời giải>}%Hết câu hỏi 1

Cách dùng giống ở trên và cách dùng khác nữa ở phần sau.

4.2.2. Câu hỏi trắc nghiệm

Soạn một câu hỏi trắc nghiệm cũng có hai phần

\baitracnghiem{<Nhãn của bài>}{%Câu hỏi 1

Page 7: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 7

<Nội dung câu hỏi>}{%Trả lời<Các phương án trả lời>}%Hết câu hỏi 1

1. <Nhãn của bài> Giống phần trên.2. <Nội dung câu hỏi> Câu hỏi được tính đến bắt đầu phương án. Các lệnh

và môi trường toán đều dùng được.3. <Các phương án trả lời> Có hai lệnh dành cho phương án:

\dung[<n>]{<Nội dung đáp án>}\sai[<n>]{<Nội dung đáp án>}

Bình thường không có tùy chọn [<n>] thì các phương án chỉ chiếm 1/4 theochiều ngang. Nếu cả 4 phương án ngắn thì để mặc định không coa tùy chọnnày. Nếu một trong 4 phương án rộng hơn 1/4 thì ta chía 2 phương án 1 cộtvằn cho [2] vào mỗi lệnh đúng sai. Còn các phương án quá dài cho [4] tất cảxếp hàng dọc luôn. Nếu văn bản chạy 4 phương án ngắn mà vẫn xuống dòngthì các bạn chỉnh lại 1 chút như

\setlength{\shortitemwidth}{0.1\textwidth}Số 0.1 có thể tăng hoặc giảm 1 chút như 0.15.

Ví dụ

\baitracnghiem{giaitich:1}{%Câu hỏi 2Giải phương trình $2^{3\frac{x-1}{x }}\cdot 3^x=\sqrt{9}$ vàchỉ ra nghiệm không nguyên của nó.}{%Phương án trả lời\sai {$\frac{3}{2}$;}\dung {$-3\log_32 $;}\sai {$\frac{5}{7}$;}\sai {$\log_23 $;}}%Hết một bài

Câu 1. Giải phương trình 23 x−1x · 3x =

√9 và chỉ ra nghiệm không nguyên của

nó.A. 3

2 ; B. −3 log3 2; C. 57 ; D. log2 3;

4.2.3. Câu hỏi trắc nghiệm dạng đặc biệt

A. Một câu hỏi trắc nghiệm thường có phần dẫn giải và phần các phương án,nhưng thực tế nhiều đề ra phần dẫn giải họ chung vào một cụm sau đó chỉ cócác câu phương án. Định dạng loại này chỉ bằng lệnh

\bangtracnghiem*{<Nhãn của bài>}{%Câu hỏi 1<Các phương án trả lời>

Page 8: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 8

}

Như vậy chỉ có phương án trả lời. Ta xét ví dụ

\baitracnghiem*{chontu:1}{%Câu hỏi 1\dung{\underline{h}our }\sai{\underline{h}igh }\sai{\underline{h}ouse }\sai{\underline{h}ome}}%Hết một bài\baitracnghiem*{chontu:2}{%Câu hỏi 2\sai{ b\underline{a}sic }\sai{n\underline{a}tion }\dung{c\underline{a}ncer }\sai{p\underline{a}tience}}%Hết một bài\baitracnghiem*{chontu:3}{%Câu hỏi 3\sai{ stopp\underline{ed} }\sai{work\underline{ed} }\dung{want\underline{ed} }\sai{lik\underline{ed}}}%Hết một bài

Với cách dùng trong tệp

\def\dschontu{chontu:1,chontu:2,chontu:3}\loadselectedproblems[btchontu]{\dschontu}{cauhoitienganh378}\tieude{Chọn từ (ứng với A hoặc B, C, D) có phần gạch dưới

được phát âm khác với những từ còn lại trong mỗi câu sau.}\begin{enumerate}[leftmargin=*,align=left,label={\bf Câu \arabic*.}]\foreachproblem[btchontu]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

Chọn từ (ứng với A hoặc B, C, D) có phần gạch dưới được phát âm khác vớinhững từ còn lại trong mỗi câu sau.

Câu 1. A. hour B. high C. house D. homeCâu 2. A. basic B. nation C. cancer D. patienceCâu 3. A. stopped B. worked C. wanted D. liked

B. Dạng trắc nghiệm đặc biệt gạch dưới và các phương án ta dùng lệnh

\bangtracnghiemb{<Nhãn của bài>}{%Câu hỏi 1<Nội dung câu hỏi>}{%Trả lời

Page 9: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 9

<Các phương án trả lời>}%Hết câu hỏi 1

Phần nội dung và phương án như sau:

1. <Nhãn của bài> vẫn như ở trên2. <Nội dung câu hỏi> có gách dưới với các phương án sai hoặc đùng dùng

lệnh:\dungh<Từ gạch dưới> phương án từ đúng theo hàng;\saih<Từ gạch dưới> phương án từ sai theo hàng;

3. <Các phương án trả lời> là các phương án đúng và sai\dung{<Nội dung đáp án>}\sai{<Nội dung đáp án>}

Ví dụ

\baitracnghiemb{suatu:1}{%Câu hỏi 1\saih{That} is \saih{the} man \dungh{which}told me \saih{the} bad news.

}{%Phương án trả lời\sai{That}\sai{the}\dung{which}\sai{the}

}%Hết một bài\baitracnghiemb{suatu:2}{%Câu hỏi 2My \saih{younger} brother \saih{has} workedin \saih{a} bank \dungh{since} a long time.

}{%Phương án trả lời\sai{younger}\sai{has}\sai{a}\dung{since}}%Hết một bài\baitracnghiemb{suatu:3}{%Câu hỏi 3\saih{It is} \saih{the English} pronunciationthat \dungh{cause} me \saih{a lot of} difficulties.

}{%Phương án trả lời\sai{It is}\sai{the English}\dung{cause}\sai{a lot of}}%Hết một bài

Thực hiện

Page 10: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 10

\def\dssuatu{suatu:1,suatu:2,suatu:3}\loadselectedproblems[btsuatu]{\dssuatu}{cauhoitienganh378}

\tieude{Chọn phương án (A hoặc B, C, D) ứng với từ/ cụm từcó gạch dưới cần phải sửa để các câu sau trở thành chính xác.}

\begin{enumerate}[leftmargin=*,align=left, label={\bf Câu \arabic*.}]\foreachproblem[btsuatu]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

Chọn phương án (A hoặc B, C, D) ứng với từ/ cụm từ có gạch dưới cần phảisửa để các câu sau trở thành chính xác.

Câu 1. ThatA

is theB

man whichC

told me theD

bad news.

Câu 2. My youngerA

brother hasB

worked in aC

bank sinceD

a long time.

Câu 3. It isA

the EnglishB

pronunciation that causeC

me a lot ofD

difficulties.

4.2.4. Câu hỏi trắc nghiệm trong bảng

Soạn một câu hỏi trắc nghiệm bảng cũng có hai phần

\bangtracnghiem{<Nhãn của bài>}{%Câu hỏi 1<Nội dung câu hỏi>}{%Trả lời<Các phương án trả lời>}%Hết câu hỏi 1

1. <Nhãn của bài> Giống phần trên.2. <Nội dung câu hỏi> Câu hỏi được tính đến bắt đầu phương án. Các lệnh

và môi trường toán đều dùng được.3. <Các phương án trả lời> Có hai lệnh dành cho phương án:

\chon {<Nội dung đáp án>}\khong{<Nội dung đáp án>}

Ví dụ

\bangtracnghiem{bangtn:2}{exp$(\ln x) = x$ pour tout $x$ appartenant à}{%Phương án trả lời\chon{$\mathbb{R}$}\khong{$\big]0~;~+ \infty\big[$}\khong{$\big[0~;~+\infty\big[$}}%Hết một bài

Page 11: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 11

Câu hỏi Trả lời

1. exp(ln x) = x pour tout x appartenant à R]

0 ; +∞

[

[

0 ; +∞

[

4.2.5. Câu hỏi điền chỗ trống

Ta có thể dùng phương án * cho bất cứ môi trường nào cũng được, tôi dùnglệnh cho cau hỏi tự luận

\baitracnghiem*{<Nhãn của bài>}{<Nội dung câu hỏi điền>}

1. <Nhãn của bài> Giống phần trên.2. <Nội dung câu hỏi điền> Văn bản có khoảng để chống điền vào với

lệnh \blank{<Từ cần điền>}Ví dụ

\baitracnghiem*{diencho:so1}{%Câu hỏi 1How much \blank{wood} would a \blank{woodchuck} chuck,

if a \blank{woodchuck}would \blank{chuck}, wood?

}

1. How much would a chuck, if awould , wood?

4.2.6. Câu hỏi đúng sai

Ta có thể dùng phương án * cho bất cứ môi trường nào cũng được, tôi dùnglệnh cho cau hỏi tự luận

\baitracnghiem*{<Nhãn của bài>}{<Nội dung câu hỏi điền>}

1. <Nhãn của bài> Giống phần trên.2. <Nội dung câu hỏi điền> Văn bản có khoảng bằng nhau để điền vào

với lệnh \answers{Đúng} hoặc \answers{Sai}Ví dụ

Page 12: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 12

\baitracnghiem*{dungsai:1}{%Câu hỏi 1\answers{Đúng} This sentence is not false.

}\baitracnghiem*{dungsai:2}{%Câu hỏi 1

\answers{Đúng} ‘Roger \& Trường Me’ chroniclesone man’s attempt to get into

Disneyland so that he can visit Toontown.}

1. This sentence is not false.2. ‘Roger & Trường Me’ chronicles one man’s attempt to get

into Disneyland so that he can visit Toontown.

4.3. Sử dụng tệp ngoài và lệnh gọi vào

4.3.1. Các tệp câu hỏi

Mỗi loại câu hỏi tôi đã ghi vào một tệp riêng. Có thể ghi chung vào một tệpcũng không ảnh hưởng gì, để dễ quản lý và sử chữa ta ghi vào các tệp khácnhau. Ví dụ kèm theo bao gồm các tệp:

• cauhoituluan.tex Tệp những câu hỏi tự luận.• cauhoitracnghiem.tex Tệp những câu hỏi trắc nghiệm.• cauhoibangtn.tex Tệp những câu hỏi trắc nghiệm bảng.• cauhoidiencho.tex Tệp những câu hỏi điền chỗ trống.• cauhoidungsai.tex Tệp những câu hỏi đúng sai.

Bạn có thể bố trí các tệp chứa các câu hỏi dễ, các câu hỏi khó, ... khi thiếtlập đề thi chỉ lấy một số câu trong đó thôi.

4.3.2. Các lệnh lấy đề bài trực tiếp ở tệp

A. Lấy một vài câu hỏi trong một tệp được bao quanh môi trường enumerate

\begin{enumerate}\selectrandomly{<Tên tệp>}{<Số câu hỏi>}

\end{enumerate}

1. <Tên tệp> tên tệp có chứa câu hỏi, nếu không phải thì báo lỗi.2. <Số câu hỏi> số câu hỏi cần đưa ra trong số các câu hỏi trong tệp.

Ví dụ đưa ra 2 câu hỏi của tệp điền chỗ trống:

\begin{enumerate}\selectrandomly{cauhoidiencho}{2}

\end{enumerate}

Page 13: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 13

1. Nhất trí How much would a chuck, if awould , wood?

2. ’s first work was the Tractatus- Philosophicus.

Có thể lấy mỗi tệp vài câu một cách ngẫu nhiên rồi cũng đưa vào môitrường trên cho ta bộ câu hỏi cần lập.

B. Có thể đưa ra toàn bộ số câu hỏi của tệp:

\begin{enumerate}\selectallproblems{<Tên tệp>}\end{enumerate}

<Tên tệp> là các tệp có cấu trúc trên, kể cả tệp chứa định dạng chung nhất ởphần đầu. Ví dụ

\begin{enumerate}\selectallproblems{cauhoidungsai}\end{enumerate}

1. This sentence is not false.2. ‘Roger & Trường Me’ chronicles one man’s attempt to get into

Disneyland so that he an visit Toontown.3. Laden swallows fly faster than unladen swallows, unless they

carry coconuts.4. ‘Monty Python and the Holy Grail’ is a very funny movie.5. All animals are created equal, but some animals are more

equal than others.

4.3.3. Các lệnh lấy đề bài ở tệp

A. Một lệnh nhập câu hỏi để dùng sau này không nhập vào văn bản, chỉ khinào dùng nó bằng lệnh khác mới lấy vào.

\loadrandomproblems[<Tên tệp chứa câu hỏi>]{<Số câu hỏi>}{<Tên tệp>}1. <Tên tệp chứa câu hỏi> Ta đặt một tên chứa các câu hỏi trong bộ nhớ,

để dùng nó sau này như bttuluan, hoặc bttracnghiem,...2. <Số câu hỏi> Số nguyên, lớn nhất bằng số câu hỏi có trong <Tên tệp>,

không thì báo lỗi.3. <Tên tệp> Một trong các tệp chứa câu hỏi ở trên.

Ví dụ lấy 4 câu trong tệp tự luận (ta đã biết tệp có hơn 3 câu hỏi)

\loadrandomproblems[bttuluan]{5}{cauhoituluan}Có thể lấy hàng loạt tệp vào một lúc như

\loadrandomproblems[bttracnghiem]{12}{cauhoitracnghiem}\loadrandomproblems[btdiencho]{6}{cauhoidiencho}

Page 14: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 14

\loadrandomproblems[btdungsai]{5}{cauhoidungsai}\loadrandomproblems[btbangtn]{11}{cauhoibangtn}

Khi đó ta có thể dùng lệnh theo nhãn để lấy ra

\begin{enumerate}[leftmargin=*,align=left,label={\bf Câu \arabic*.\ }]

\item\useproblem[bttuluan]{logic:4}\item\useproblem[bttracnghiem]{mc:bay}

\end{enumerate}

Câu 1. a) Phát biểu định nghĩa thế nào là hạng từ và công thức tân từ trong lýthuyết hệ tân từ.b) Cho vị từ ba biến P(x, y, z) ≡ ”x.y = z” trên trường sốthực. Xác định giá trị chân lý của mệnh đề: (∀x)(∀y)(∃z)P(x, y, z)

và (∃z)(∀x)(∀y)P(x, y, z). Diễn giải mệnh đề thành câu nói thôngthường.

Câu 2. Giải hệ phương trình{

x(x + 3y) = 18,

y(3y + x) = 6

và chỉ ra đại lượng n(x2 + y2), ở đây n là số nghiệm của hệ phươngtrình.

A. 10; B. 1; C. 20; D. 6;

Bạn có thể đặt tạm thời draft cho tùy chọn gói lệnh sẽ nhìn thấy nhãn.

B. Khi lấy ra rồi ta có thể gọi các bài ra nhờ tệp dữ liệu như

\begin{enumerate}[leftmargin=*,align=left,label={\bf Câu \arabic*.\ }]

\foreachproblem[btdungsai]{\item\thisproblem}\end{enumerate}

Câu 1. This sentence is not false.Câu 2. ‘Roger & Trường Me’ chronicles one man’s attempt to get

into Disneyland so that he an visit Toontown.Câu 3. Laden swallows fly faster than unladen swallows, unless

they carry coconuts.Câu 4. ‘Monty Python and the Holy Grail’ is a very funny movie.Câu 5. All animals are created equal, but some animals are more

equal than others.

C. Thực ra các đề bài được gọi ở hình thức không có tệp để chứa thì chươngtrình dùng tệp [default] để chứa chúng. Có thể dùng cấu trúc gọi liệt kê tất cảcác dữ liệu đã gọi chứa các câu hỏi

Page 15: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 15

\begin{enumerate}[leftmargin=*,align=left, resume,label={\bf Câu \arabic*.\ }]

\foreachdataset{\thisdataset}{%\foreachproblem[\thisdataset]{\item\thisproblem}}\end{enumerate}

D. Đặc biệt chẳng cần dùng lệnh trên chỉ cần \input cauhoituluan.tex rồidùng lệnh

\begin{enumerate}[leftmargin=*,align=left, resume,label={\bf Câu \arabic*.\ }]

\item\useproblem{logic:2}\item\useproblem{logic:1}

\end{enumerate}

Bởi vì tập dữ liệu chứa mặc định chứa các bài gọi vào là [default]. Tất cả cáclệnh phần trước có dùng tệp cơ sở dữ liệu đều dùng thay vào đó [default] làđược như

\begin{enumerate}[leftmargin=*,align=left, resume,label={\bf Câu \arabic*.\ }]

\foreachproblem[default]{\item\thisproblem}\end{enumerate}

Chú ý tệp này [default] có tất cả các bài dùng cách gọi không gán vào tệp dữliệu cụ thể nào.

4.4. Nhãn trích dẫn cho các bài tập

1. Khi dùng liệt kê ta có thể dùng nhãn cho số bài tập như

\begin{enumerate}[{\bf Câu 1.}]\item \label{logic:4}\useproblem[bttuluan]{logic:4}\item \label{logic:1}\useproblem[bttuluan]{logic:1}\item \label{logic:2}\useproblem[bttuluan]{logic:2}\item \label{logic:3}\useproblem[bttuluan]{logic:3}

\end{enumerate}

Sau đó dùng \ref{logic:4},\ref{logic:1},...

2. Dùng liệt kê tất cả các bài tập lện \selectalllabels{cauhoituluan} mỗibài được gán một nhãn chính là nhãn của bài toán. Ví dụ

\setlist{labelwidth=40pt, itemindent=45pt,topsep=0pt,

Page 16: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 16

partopsep=0pt,parsep=0pt,leftmargin=0pt,align=right}\begin{enumerate}[label={\bf Câu \arabic*.\ }]\selectalllabels{cauhoituluan}\end{enumerate}

Câu 1. a) Cho P1, P2 và Q là những mệnh đề. Hãy chỉ ra sự tương đương sauđây

(P1 ∨ P2) → Q ≡ (P1 → Q) ∧ (P1 → Q).

b) Sử dụng sự tương đương trên chứng minh mệnh đề sau đây: " Nếu n khôngchia hết cho 3 thì n2 không chia hết cho 3".

Câu 2. a) Phát biểu định nghĩa 4 phần của lý thuyết tiên đề L.b) Cho công thức A, B, C tùy ý. Chứng minh rằng

((A → B) ∧ (B → C)) ` A → C.

Câu 3. Cho công thức

(A → B) → ((B → C) → ((A ∨ B) → C)).

Hãy thực hiệna) Đưa công thức về dạng chuẩn tắc hội.b) Chỉ ra công thức là hằng đúng.

Câu 4. a) Phát biểu định nghĩa thế nào là hạng từ và công thức tân từ tronglý thuyết hệ tân từ.b) Cho vị từ ba biến P(x, y, z) ≡ ”x.y = z” trên trường số thực. Xác định giátrị chân lý của mệnh đề: (∀x)(∀y)(∃z)P(x, y, z) và (∃z)(∀x)(∀y)P(x, y, z). Diễngiải mệnh đề thành câu nói thông thường.

Câu 5. Trong môn học giải tích toán học người ta định nghĩa hàm liên tụcnhư sau: "Hàm f (x) được gọi là hàm liên tục tại x0 ∈ D nếu cho trước một sốε > 0 tùy ý thì ta có được một số δ > 0 tương ứng sao cho với mọi x ∈ D thỏamãn |x − x0| < δ thì | f (x)− f (x0)| < ε".a) Hãy viết lại định nghĩa theo các ký hiệu của hệ toán tân từ.b) Hãy lập mệnh đề phủ định cho định nghĩa trên (nghĩa là hàm không liêntục tại điểm x0)

Tham khảo các nhãn \ref{all:logic:1} là Câu 1. , \ref{all:logic:3} là Câu3. , \ref{all:logic:2} là Câu 2.

3. Có thể dùng liệt kê các câu hỏi đã gọi ra rồi dùng

\begin{enumerate}[leftmargin=*,align=left, resume,label={\bf Câu \arabic*.\ }]

Page 17: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 17

\foreachproblem[bttuluan]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

Từ sau đó ta dùng nhãn

\begin{enumerate}\foreachproblem[bttuluan]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}\end{enumerate}

4.4.1. Chọn số ngẫu nhiên

Ta có lệnh sinh số giả ngẫu nhiên khi dùng lệnh \loadrandomproblems.

1. \PSNrandseed: \PSNrandseed{<n>} Số <n> là số nguyên khác không.Để sinh ra các số ngẫu nhiên mối khi biên dich ta có thể đặt ở đầu văn bản\PSNrandseed{\time} hoặc để sinh ra theo số trong năm sau tiếp theo đặt\PSNrandseed{\year}

2. \PSNgetrandseed: \PSNgetrandseed{<Biến ghi>} Chứa số vừa truynhập vào <Biến ghi>. Ví dụ

\newcount\myseed\PSNgetrandseed{\myseed}

3. \PSNrandom: \PSNrandom{<Biến ghi>}{<n>} sinh ra một số tự nhiêntừ 1 đến n, rồi ghi vào <Biến ghi>. Ví dụ sinh ra một số trong khoảng 1 đến 10rồi ghi vào \myreg:

\newcount\myreg\PSNrandom{\myreg}{10}

4. \random: \random{<Số đếm>}{<cận dưới>}{<cận trên>} Sinh ra sốngẫu nhiên trong khoạng cận dưới đến cận trên và ghi vào số đếm. Ví dụ

\newcounter{myrand}\random{myrand}{3}{8}

5. \doforrandN: \doforrandN{<n>}{<cmd>}{<list>}{<Văn bản>} Chọnngẫu nhiên n giá trị trong <Văn bản> cách nhau bởi dấu phảy. Mỗi lần thựchiện lặp thì thực hiện <Văn bản> bằng lệnh <cmd>Ví dụ gọi đề bài từ hai của danh sách tệp:

\doforrandN{2}{\thisfile}{file1,file2,file3}{%\loadrandomproblems{1}{\thisfile}}

Page 18: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 18

4.5. Mẫu thiết lập đề cho từng loại câu hỏi

4.5.1. Đề tự luận

Có 3 phương án thể hiện đề. trong tệp dethituluan.tex triển khai ba khả năngnày các bạn có thể biên dịch 1. Chỉ in ra đề thi

\loadrandomproblems[dttuluan]{4}{cauhoituluan}\hideanswers\begin{enumerate}[leftmargin=*,align=left,

resume,label={\bf Câu \arabic*.\ }]\foreachproblem[dttuluan]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

2. Chỉ in ra lời giải

\showanswers\begin{enumerate}[leftmargin=*,align=left,

resume,label={\bf Câu \arabic*.\ }]\foreachdataset{\thisdataset}{%

\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}}\end{enumerate}

3. In đầy đủ cả đề và lời giải

\hideproblems\showanswers\begin{enumerate}[leftmargin=*,align=left,

resume,label={\bf Câu \arabic*.\ }]\foreachdataset{\thisdataset}{%

\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}}\end{enumerate}

4.5.2. Đề trắc nghiệm

1. Chỉ in ra đề

\loadrandomproblems[bttracnghiem]{15}{cauhoitracnghiem}\hideanswers\begin{enumerate}[leftmargin=*,align=left,

Page 19: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 19

resume,label={\bf Câu \arabic*.\ }]\foreachproblem[bttracnghiem]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

2. In ra câu hỏi và đáp án

\showanswers\begin{enumerate}[leftmargin=*,align=left,

resume,label={\bf Câu \arabic*.\ }]\foreachdataset{\thisdataset}{%

\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}}\end{enumerate}

3. In ra đáp án ngắn gọn

\hideproblems\showanswers\begin{multicols}{3}\begin{enumerate}[leftmargin=*,align=left]\item[\sf Phương án] A\quad B\quad C \quad D\foreachdataset{\thisdataset}{%

\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}}\end{enumerate}\end{multicols}

4. In ra phiếu kiểm tra theo đề

\lamtieude\begin{center}{\bf PHIẾU KIỂM TRA TRẮC NGHIỆM}\end{center}Họ và tên \dotfill Lớp \dotfill\hideproblems\showanswers\lamphieu\begin{multicols}{3}\begin{enumerate}[leftmargin=*,align=left]\item[\sf Phương án] A\quad B\quad C \quad D\foreachdataset{\thisdataset}{%

Page 20: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 20

\foreachproblem[\thisdataset]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}}\end{enumerate}\end{multicols}

4.5.3. Đề điền chỗ và đúng sai

1. chỉ in ra đề

\loadrandomproblems[btdiencho]{5}{cauhoidiencho}\loadrandomproblems[btdungsai]{5}{cauhoidungsai}\hideanswers\noindent {\bf Điền vào chỗ trống}\begin{enumerate}[{\bf Câu 1.}]\foreachproblem[btdiencho]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}\noindent {\bf Trả lời đúng sai}\begin{enumerate}[{\bf Câu 1.}]\foreachproblem[btdungsai]{\item\label{prob:\thisproblemlabel}\thisproblem}\end{enumerate}

2. In ra đề và đáp án

\begin{center}{\bf ĐỀ BÀI VÀ ĐÁP ÁN }\end{center}\showanswers\noindent {\bf Điền vào chỗ trống}\begin{enumerate}\foreachproblem[btdiencho]{\item[\bf Câu \ref{prob:\thisproblemlabel}.]\thisproblem}\end{enumerate}\noindent {\bf Trả lời đúng sai}\begin{enumerate}\foreachproblem[btdungsai]{\item[\bf Câu \ref{prob:\thisproblemlabel}.]\thisproblem}\end{enumerate}

4.5.4. Trắc nghiệm theo bảng

1. In ra đề bài

Page 21: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 21

\newcounter{problem}\renewcommand{\PSNitem}{\refstepcounter{problem}%\theproblem. }\renewcommand{\endPSNitem}{ }\loadrandomproblems[btbangtn]{11}{cauhoibangtn}\setcounter{problem}{0}\hideanswers\renewcommand{\arraystretch}{1.5}

\begin{longtable}{| p{0.7\textwidth} |c|}\hline\centering \textbf{Câu hỏi} & \textbf{Trả lời}\\\hline %\foreachproblem[btbangtn]{\addtocounter{problem}{1}\theproblem.\thisproblem}&\\\hline\end{longtable}

2. Thay \hideanswers bằng \showanswers cho đề bài và lời giải.

4.5.5. Đề có thể thiết kế

1. Ta có thể thiết kế dạng câu hỏi

\newproblem{tab:1}{%Kết quả $(3+2)\times5$ là? &25 \ifshowanswers\selected\else\notselected\fi &13 \notselected &10 \notselected &}{Brackets come first}%

\newproblem{tab:2}{%Kết quả $-1+2\times3$ là? &3 \notselected &-7 \notselected &5 \ifshowanswers\selected\else\notselected\fi &}{Multiplication comes first}%

2. Rồi thiết kế câu hỏi trả lời

\begin{longtable}{lrrrl}\bfseries Câu hỏi & \bfseries A & \bfseries B &\bfseries C & \ifshowanswers \bfseries Reason\fi\\\selectrandomly{cauhoithietke}{2}\end{longtable}

Page 22: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 22

Câu hỏi A B C

1. Kết quả (3 + 2)× 5 là? 25 13 10

2. Kết quả −1 + 2 × 3 là? 3 -7 5

3. Quan sát kỹ ví dụ này cho ta sáng tạo hình thức các câu hỏi khác nữa.

4.5.6. Bài tập cho các chương cuốn sách

Tôi đã làm một tệp baitapcuasach.tex Cách thức làm các bài tập theo chươngcủa sách, hoặc là in theo từng chương hoặc là cuối cùng ta in theo từng phầncủa bài tập trong từng chương. Các bạn tham khảo tệp này và nảy sinh các ýtưởng mới.

5. Đưa hình và bảng vào câu hỏi, lời giải

Do các câu hỏi được lấy ra gần như cố định toàn bộ nội dung câu hỏi và trảlời, nên bảng và hình phải luôn tại vị trí được đặt vào, vì vậy gói lệnh khôngchấp nhận môi trường di động kiểu như table hay figure mà có tùy chọn vị trí.Nhưng các môi trường bình thường như tabular, longtable, ... và các lệnhđưa ảnh vào như \includegraphics[height=2cm,width=3cm]{tex1.eps} đềuđược, không thay đổi gì. Vấn đề là ta phải đánh số các hình hoặc bảng bằnglệnh \caption{...} không được, đây là lệnh cho môi trường động.

Để khắc phục hạn chế trên ta dùng gói lệnh float.sty và dùng theo mẫu sauđể có số và dùng nhãn được:

1. Đối với bảng

\begin{table}[H]\centering%\tabcaption{Chú thích bảng}%\label{tab:Commands}%\begin{tabular}{c c c}*&*&*\\*&*&*\\\end{tabular}\end{table}

Ngoài ra để có số bảng có thể dùng gói lệnh longtable.sty với môi trườnglongtable nhưng với \caption{...}

\begin{center}

Page 23: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 23

\begin{longtable}{c c c}*&*&*\\*&*&*\\\caption{Chú thích bảng}%\label{tab:Commands}%\end{longtable}\end{center}

2. Đối với hình

\begin{figure}[H]\centering%\includegraphics[width=0.8\linewidth,clip=]{input.eps}%\figcaption{Chú thích hình}%\label{fig:input}%\end{figure}

Lấy nhãn bằng \ref{fig:input} và \ref{tab:Commands}.

3. Ví dụ

\baituluan{Viduhinh:1}{%Câu hỏi 4Hai ngũ giác đều $ABCDE$ và $AEKPL$ trong không gian sao cho$\widehat{DAK} =60^o$. Chứng minh rằng hai mặt phẳng $ACK$và $BAL$ vuông góc.\begin{figure}[H]\centering%\includegraphics[width=5cm, height=5cm]{hinh12mat.eps}\figcaption{Chú thích hình}%\label{fig:input}%\end{figure}}{%Trả lờiNếu ta quay $AEKPL$ quanh trục $AE$,bắt đầu ở vị trí trùng nhau với $ABCDE$, thì góc $\widehat{DAK}$tăng cho đến khi $AEKPL$ lại nằm trên mặt phẳng chứa $ABCDE$. .....}%Hết câu hỏi

\begin{enumerate}[label={\bf Câu \arabic*.\ }]\showanswers\item \useproblem{Viduhinh:1}\end{enumerate}

Câu 1. Hai ngũ giác đều ABCDE và AEKPL trong không gian sao choD̂AK = 60o. Chứng minh rằng hai mặt phẳng ACK và BAL vuông góc.

Page 24: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 24

A

B

C

D E

KP

L

T

O

Hình 1: Chú thích hình

Lời giải. Nếu ta quay AEKPL quanh trục AE, bắt đầu ở vị trí trùng nhau vớiABCDE, thì góc D̂AK tăng cho đến khi AEKPL lại nằm trên mặt phẳng chứaABCDE. .....

6. Hướng phát triển gói lệnh

1. Có thể nói rằng gói lệnh này làm tất cả các loại đề thi của các gói đã có. Ngoàira nó còn thích ứng với sự thay đổi của các dạng đề thi khác. Đặc biệt, Tôi sẽsưu tầm các dạng đề thi để thử, các bạn có dạng đề thi nào có thể gửi cho tôiđể cùng thiết kế.

2. Tài liệu này gửi kèm các tệp sau đây:

baitapcuasach.texcauhoibangtn.texcauhoidiencho.texcauhoidungsai.texcauhoithietke.texcauhoitracnghiem.texcauhoituluan.texdethibangtn.texdethidiencho.texdethidungtructiep.texdethithietke.texdethitracnghiem.texdethituluan.texhinh1.texlamdethi.stylamdethihelp.pdfshortlst.stytitledot.sty

Page 25: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 25

3. Đây là công cụ thu thập và sử dụng các đề thi thành tuyển tập rất nhanh,chính xác và sử dụng chúng. Nếu có thời gian tôi sẽ thu thập trên mạng mộtsố đề làm thành sách.

Page 26: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 26

A. Phụ lục về các gói lệnh

A.1. Gói lệnh enumitem.sty

Mục đích gói lệnh này là chủ động điều khiển các nhãn và khoảng cách trongmôi trường enumerate, itemmize, description. Gói lệnh này không cùng vớigói lệnh enumerate.sty, khi dùng chung sẽ báo lỗi, trong nó đã có đầy đủ cácmôi trường danh sách chuẩn rồi, tôi dùng gói lệnh làm nhãn và điều khiển cáccâu hỏi với khoảng cách thích hợp. Khi đưa gói lệnh \usepackage{enumitem}vào đầu văn bản, thì có thể thực hiện lệnh và môi trường. Khi dùng môi trườngcó tùy chọn

\begin{enumerate}[<Tùy chọn>]\item <Văn bản>\end{enumerate}

Mặc định của tùy chọn như là không có gói lệnh, ta có thể gán lại

1. Thông số cho các khoảng cách đứng của danh sách:topsep, partopsep, parsep, itemsep

2. Khoảng các theo chiều ngang:leftmargin, rightmargin, listparindent, labelwidth, labelsep, itemindent

3. Có thể đặt lại khi thực hiện môi trường

\begin{enumerate}[ leftmargin=*,itemindent=12pt, ...]\item <Các danh sách văn bản>\end{enumerate}

4. Có thể đặt lại chung cho toàn văn bản bằng lệnh\setlist{topsep=0pt, partopsep=0pt, parsep=0pt, itemsep=0pt, ...}

5. \setlist{noitemsep} bỏ khoảng cách dòng trong danh sách và các dòngsát nhau hơn.\setlist{nolistsep} tất cả các khoảng cách trong môi trường danh sách đềucho bằng 0. Dùng lệnh này để kéo sát các câu hỏi trắc nghiệm sát nhau.

6. Dùng với tùy chọn phong phú như sau

\begin{enumerate}[labelindent=\parindent, leftmargin=*,label=\Roman*., align=left, resume, start=8, widest=IV]

\item <Danh sách>\end{enumerate}

(a) labelindent=\parindent Nhãn của danh sách được lùi vào đại lượngbao nhiêu so với mép trái tài liệu cho ở phía bên phải, có thể cho bằng 0pt,2trucm, ...

Page 27: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 27

(b) leftmargin=* Hoàn toàn tương tự như trên để nhãn lùi vào cho lề tráilà bao nhiêu. Ngoài các số cụ thể như 2cm, có thể cho bằng * là giá trị mặcđịnh.

(c) label=Roman*. Đánh số nhãn của danh sách, verb!label=Roman*.! chữsố la mã I, II, III, ... còn verb!label=arabic*.! cho chữ số thường dùng 1, 2, 3,....Ta có thể cho nhãn label={\bf Câu \arabic*.\ } thêm từ vào trước số. Ứngdụng điều này các bạn xem mẫu tôi đã dùng để có các nhãn thích hợp.

(d) align=left Nhãn được dong thẳng hàng theo bên trái, ví dụ 5 và 13thì số 5 và 1 thẳng hàng. Mặc định là thẳng hàng bên phải.

(e) resume Cho phép đánh số tiếp tục môi trường trước đó, ứng dụng tốtkhi đề thi có nhiều phần.

(f) lstart=8 Bắt đầu đánh số từ 8, mặc định bao giờ cũng đánh số từ 1nếu không có resume.

(g) widest=IV Độ rộng của nhãn có thể ví dụ có 3 chữ số có thể dùngwidest=000

Ta đã dùng

\setlist{noitemsep}\setlist{nolistsep}\setlist{labelwidth=40pt, itemindent=45pt,topsep=0pt,

partopsep=0pt,parsep=0pt,leftmargin=0pt,align=right}

A.2. Gói lệnh shortlst.sty

Gói lệnh nhằm mục đích đánh số danh sách chạy theo chiều ngang, tôiđã dùng gói lệnh làm các phương án cho câu hỏi trắc nghiệm. Khi đưa\usepackage{shortlst} ta có 3 môi trường

1. shortitemize Danh sách chấm tròn đen.

2. shortenumerate Danh sách đánh số thứ tự.

3. runenumerate Danh sách đánh số chạy liên liên tục bên trong môitrường và cả ngoài môi trường nối liên tục.

Một số lệnh thông số điều khiển môi trường này như sau:

1. \runitemsep khoảng cách giữa các danh sách được đặt lại với mặcđịnh\setlength{\runitemsep}{1em plus .5em minus .5em}.

2. \labelsep cách chỉ số và chữ.

3. \labelwidth độ rộng của nhãn.

4. \shortitemwidth độ rộng của một cột danh sách danh sách. giá trịmặc định là lấy độ rộng của văn bản trừ đi các chỗ để nhãn rồi chia cho 4. Cóthể đặt lại cho thích hợp: \setlength{\shortitemwidth}{0.5\textwidth}

Page 28: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 28

A.3. Gói lệnh float.sty

A.3.1. Tạo ra một môi trường động mới

Tạo ra môi trường có thể dùng một số lệnh khác nhau như \newtheorem, ta đãbiết dùng lệnh này tạo ra môi trường Định lý, Mệnh đề, Bổ đề, Định nghĩa, ...Tachú ý là trước lệnh này thường có lệnh \theoremstyle{...} để điều khiển nộidung in nghiêng hoặc không nghiêng trong các môi trường sử dụng sau này.Hoàn toàn tương tự như vậy gói lệnh float.sty có lệnh làm môi trường động\newfloat{<Tên môi trương>} và trước đó là lệnh \floatstyle{<Tùy chọn>}ví dụ

\floatstyle{plaintop}\newfloat{program}

Rồi dùng môi trường program như môi trường động với tiêu đề chú thích ởphia trên đoạn chương trình. <Tùy chọn> có các từ khóa:

1. plain Chú thích động không già thay đổi so với LATEX mà ở dưới hìnhchỉnh vào giữa.

2. plaintop Chú thích hình ở phía trên và tương tự như tùy chọn trên.

3. boxed Khối môi trường động được đóng khung, nhưng chú thíchngoài khung và ở phía dưới.

4. ruled Chú thích nằm trong hai đường kẻ ngang và cuối khối cũng cóđường kẻ ngang như.

Ví dụ

\floatstyle{ruled}\newfloat{Program}{htbp}{lop}[section]

ta có thể dùng Lệnh và thông số đầy đủ như sau: required and one optional

Program A.1 Đây là chương trình dùng phong cách ruled.#include <stdio.h>int main(int argc, char **argv){

int i;for (i = 0; i < argc; ++i)

printf("argv[%d] = %s\n", i, argv[i]);return 0;

}

argument; it is of the form\newfloat{<Tên môi trường>}{<Vị trí>}{<tệp chứa mục lục>}[<Trong đoạn>]

Page 29: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 29

1. <Tên môi trường> Đặt tên cho môi trường để dùng.

2. <Vị trí> Là các quy định đơn lẻ chữ cái hoặc kết hợp để đặt khối:• t tại Đầu trang;

• b tại Cuối trang;

• p tại Trang Di động;

• h tại Đây, nếu có thể;

• H Tại Đây, dứt khoát như vậy.Chú ý là chỉ có tùy chọn H là mới còn, các tùy chọn khác giống như môi trườnghình và bảng ta thường dùng.

3. <tệp chứa mục lục> Phần mở rộng của<Tên môi trường>.<tệp chứa mục lục> như là *.toc.

4. <Trong đoạn> Trong chapter, section, part.

Ví dụ ở trên là

\floatstyle{ruled}\newfloat{Program}{tbp}{lop}[section]\begin{Program}\begin{verbatim}\dots\ program text \dots\end{verbatim}\caption{\dots\ caption \dots}\end{Program}

A.3.2. Những lệnh liên quan đến gói lệnh

Một số lệnh cơ bản ở phần trên đã nhắc tới, còn một số lệnh khác liên quan:

1. \floatname Mạc định tên môi trường là tên chú thích luôn nhưFigure 1.1 hoặc Table 1.2 ta cũng có thể đổi tên như ví du trên đặt\floatname{Program}{Chương trình}

Chương trình A.2 Đây là chương trình dùng phong cách ruled.#include <stdio.h>int main(int argc, char **argv){

int i;for (i = 0; i < argc; ++i)

printf("argv[%d] = %s\n", i, argv[i]);return 0;

}

2. \floatplacement Mặc định hình được chỉ ra khi có tùy chọn. Nếu

Page 30: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 30

toàn bài đặt chú thích một kiểu thi đặt \floatplacement{figure}{tp} kiểuđầu trang di động.

3. \restylefloat Lệnh đặt lại phong cách của khối động, như ta đặt lạicho bảng đóng khung

\floatstyle{boxed}\restylefloat{table}

\begin{table}[H] \def\B#1{$\displaystyle{n\choose#1}$}\begin{center} \begin{tabular}{c|cccccccc}$n$&\B0&\B1&\B2&\B3&\B4&\B5&\B6&\B7\\ \hline0 & 1\\1 & 1&1\\2 & 1&2&1\\3 & 1&3&3&1\\4 & 1&4&6&4&1\\5 & 1&5&10&10&5&1\\6 & 1&6&15&20&15&6&1\\7 & 1&7&21&35&35&21&7&1

\end{tabular} \end{center}\caption{Pascal’s triangle. This is a re-styled \LaTeX\ \texttt{table}.%

\label{table1}}\end{table}

n

(

n

0

) (

n

1

) (

n

2

) (

n

3

) (

n

4

) (

n

5

) (

n

6

) (

n

7

)

0 1

1 1 1

2 1 2 1

3 1 3 3 1

4 1 4 6 4 1

5 1 5 10 10 5 1

6 1 6 15 20 15 6 1

7 1 7 21 35 35 21 7 1

Bảng 2: Pascal’s triangle. This is a re-styled LATEX table.

4. \listof \listof{<Tên môi trường>}{<Tiêu đề>} tạo ra danh sáchcác môi trường đã sử dụng có cùng tên và thêm tiêu đề ở trên.Giống nhưlệnh \listoffigures và \listoftables

Page 31: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 31

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

1. Khi dùng gói lệnh này môi trường table và figure giữ nguyên giá trị và tăngthêm khả năng, ví dụ thêm tùy chọn cố định [H], dùng

\floatstyle{plaintop}\restylefloat{figure}

đặt lại chú thích hình và bảng.

\begin{figure}[H]\centering\includegraphics[height=4cm,width=6cm]{banco1.eps}\caption{Dùng graphicx}\label{fig:}\end{figure}

Hình 2: Dùng graphicx

2. Nhiều lớp hoặc môi trường cố định dùng được với tùy chọn [H] màkhông bị báo lỗi.

3. Sáng tạo ra các khối như

\floatstyle{ruled}\newfloat{vidu}{htbp}{lop}[section]\floatname{vidu}{Ví dụ}\begin{vidu}$$A^2=B^2+C^2$$\caption{Đây là ví dụ hay}\end{vidu}

Ví dụ A.1 Đây là ví dụ hay

A2 = B2 + C2

Page 32: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 32

A.4. Gói lệnh nonfloat.sty

Trong chế độ LaTeX bình thường thì môi trường table và figure luôn để bảngvà hình trong chế độ di động, nghĩa là với thông số

\begin{figure}[!ht]\centering\includegraphics[height=2cm,width=3cm]{*.eps}\caption{}\label{fig:}\end{figure}

thì hình có thể đặt tại vị trí có lệnh nếu còn chỗ không thì chuyển sang đầutrang sau hoặc về cuối bài. Nhiều lớp hoặc gói lệnh không dùng chế độ độngnày, gói lệnh nonfloat.sty đáp ứng yêu cầu này, nhưng không dùng được môitrường table và figure nữa, mà phải thay đổi một chút. Đáng lẽ là

\begin{table}[htbp]\caption{Table Caption}%\label{tab:supertitle}%\begin{tabular}{...}...\end{tabular}\end{table}

ta thay bằng

\begin{minipage}{\linewidth}\centering%\tabcaption{Commands for Table and Figure Captions}%\label{tab:Commands}%\begin{tabular}{c l c }...\end{tabular}\end{minipage}

Hình được thay bằng

\begin{minipage}{\linewidth}\centering%\includegraphics[width=0.8\linewidth,clip=]{input.eps}%\figcaption{Figure Caption}%\label{fig:input.eps}%\end{minipage}

Page 33: định dạng các loại đề thi và bài tập · PDF fileĐịnh dạng giữa đề thi và bài tập trong tài ... Làm đề thi có thể chọn ngẫu nhiên một số

http://nhdien.wordpress.com - Nguyễn Hữu Điển 33

A.5. Gói lệnh ifthen.sty

Gói lệnh để lập trình điều khiển đã có nói đầy đủ trong cuốn sách của tôi.

A.6. Các gói lệnh soạn đề thi hoặc câu hỏi kiểm tra khác

1. answers.sty Gói lệnh soạn câu hỏi và trả lời liên tục nhưng thi thựchiện có thể in câu hỏi riêng và trả lời riêng, tôi đã hướng dẫn làm sách theo cácchương. Trang web của tôi có bài riêng về gói lệnh này. Bạn tham khảo nguyênbản tại tại địa chỉwww.ctan.org/tex-archive/macros/latex/contrib/answers/

2. probsoln.sty Gói lệnh tao ra đề thi mà tôi đã sử dụng để làm ra góilệnh này. Nguyên bản chỉ có các môi trường đơn giản tự luận, trắc nghiệm thôsơ. Gói lệnh có tại địa chỉhttp://tug.ctan.org/tex-archive/macros/latex/contrib/probsoln/

3. dethi.sty cùng với việc sử đổi examdesign.cls tạo ra đề trắc nghiệmvà một số loại đề thi với sự sáo trộn cả câu hỏi lẫn phương án trả lời. Chỉ dùnglàm đề độc lập, tuy rất mạnh và đã được sử dụng nhiều. Gói lệnh đã được nóitrong trang web của tôi và kèm vào với Chương trình VieTeX.http://nhdien.wordpress.com

4. alterqcm.sty làm đề thi theo dạng bảng. Có tại địa chỉhttp://tug.ctan.org/tex-archive/macros/latex/contrib/alterqcm/

Tài liệu

[1] Nguyễn Hữu Điển,Nguyễn Minh Tuấn, LaTeX tra cứu và soạn thảo,NXBĐHQG, 2001.

[2] Nguyễn Hữu Điển, LaTeX gói lệnh và phần mềm công cụ, NXBĐHQG, 2004.

[3] Các địa chỉ gói lệnh đã được liệt kê ở trên