DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u...

57
DETHI.STY 3.1 ĐNH DNG CÁC LOI Đ THI VÀ BÀI TP Nguyn Hu Đin Khoa Toán - Cơ - Tin hc ĐHKHTN Hà Ni, ĐHQGHN Mc lc GII THIU ....................................................................... 4 1. Hin ti gói lnh có các loi câu hi: ............................................. 4 2. Đòi hi gói lnh kèm theo ....................................................... 4 3. Nhng tp kèm theo gói lnh .................................................... 5 4. Li cám ơn ....................................................................... 6 5. Hn ch ca gói lnh ............................................................ 6 PHN I. TÙY CHN [BAITAP] CA DETHI.STY ................................. 7 6. Phn m đu ca tp loi này .................................................... 7 7. Mt câu hi và li gii ........................................................... 8 8. Các lnh đnh dng cho các loi câu hi ......................................... 9 8.1. Câu hi t lun ....................................................................... 9 8.2. Câu hi trc nghim ................................................................. 10 8.3. Câu hi trc nghim dng đc bit ................................................... 12 8.4. Câu hi trc nghim trong bng ..................................................... 15 8.5. Câu hi đin ch trng .............................................................. 16 8.6. Câu hi đúng sai .................................................................... 17 9. S dng tp ngoài và lnh gi vào .............................................. 18 9.1. Các tp câu hi ...................................................................... 18 9.2. Các lnh ly câu hi t trong tp ..................................................... 18 9.3. Các lnh ly câu hi vào b nh ...................................................... 19 9.4. Nhãn trích dn cho các bài tp ....................................................... 21 10. Chn s ngu nhiên ........................................................... 23 1

Transcript of DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u...

Page 1: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

DETHI.STY 3.1 ĐỊNH DẠNGCÁ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

GIỚI THIỆU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1. Hiện tại gói lệnh có các loại câu hỏi: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

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

3. Những tệp kèm theo gói lệnh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4. Lời cám ơn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5. Hạn chế của gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

PHẦN I. TÙY CHỌN [BAITAP] CỦA DETHI.STY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

6. Phần mở đầu của tệp loại này . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

7. Một câu hỏi và lời giải . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8. Các lệnh định dạng cho các loại câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98.1. Câu hỏi tự luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

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

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

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

8.5. Câu hỏi điền chỗ trống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168.6. Câu hỏi đúng sai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9. Sử dụng tệp ngoài và lệnh gọi vào . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189.1. Các tệp câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.2. Các lệnh lấy câu hỏi từ trong tệp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.3. Các lệnh lấy câu hỏi vào bộ nhớ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199.4. Nhãn trích dẫn cho các bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

10. Chọn số ngẫu nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1

Page 2: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

11. Mẫu thiết lập đề cho từng loại câu hỏi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1. Đề tự luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

11.2. Đề trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

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

11.4. Trắc nghiệm theo bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

11.5. Đề có thể thiết kế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

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

PHẦN II. TÙY CHỌN [BAITHI] CỦA DETHI.STY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

12. Phần mở đầu của một đề thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

13. Câu hỏi tự luận và đề thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2913.1. Câu hỏi tự luận trực tiếp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2913.2. Câu hỏi tự luận lưu trong tệp dùng chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

13.3. Môi trường đặt câu hỏi ra đề thi: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

14. Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3014.1. Câu hỏi trực tiếp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

14.2. Câu hỏi được lưu trong tệp giống như tùy chọn khác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

14.3. Môi trường làm đề thi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

14.4. Những tùy chọn tạo ra đề thi trắc nghiệm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

15. Câu hỏi các dạng khác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3215.1. Câu hỏi gạch dưới . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

15.2. Câu hỏi điền vào . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3315.3. Câu hỏi đúng sai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3415.4. Câu hỏi tương ứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

16. Tổng hợp câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

PHẦN III. NHỮNG KINH NGHIỆM VÀ LƯU Ý SỬ DỤNG. . . . . . . . . . . . . . . . . . . . . . 36

17. Dùng hình trong câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3617.1. Đưa hình và bảng với đánh số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3617.2. Đưa hình và bảng vào bên cạnh câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3817.3. Đặt các tệp hình vào một thư mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

18. Các phương pháp lấy câu hỏi từ tệp dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3918.1. Lấy một số câu hỏi theo nhãn đã biết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

18.2. Lấy một số câu hỏi ngẫu nhiên từ tệp dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

18.3. Lấy toàn bộ câu hỏi và lấy đồng thời trong nhiều tệp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

19. Các phương án đầu ra của đề thi trắc nghiệm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

20. Cài đặt gói lệnh dethi.sty vào hệ thống MiKTeX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

PHẦN IV. NHỮNG GÓI LỆNH QUAN TRỌNG CÓ SỬ DỤNG. . . . . . . . . . . . . . . . . . 47

Page 3: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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

B. Gói lệnh picinpar.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

C. Gói lệnh enumitem.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

D. Gói lệnh shortlst.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

E. Gói lệnh float.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52E.1. Tạo ra một môi trường động mới . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

E.2. Những lệnh liên quan đến gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53E.3. Sử dụng gói lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

F. Gói lệnh nonfloat.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

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

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

Page 4: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

GIỚI THIỆU

Trước đây tôi có viết ra gói lệnh dethi.sty và lamdethi.sty tạ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. Mỗi gói lệnh có những mạnh và yếu riêng.Lần này tôi kết hợp cả hai gói lệnh và dùng chung tệp cơ sở câu hỏi vẫn gọi là gói lệnh dethi.styphiên bản 3.0. Do vậy dùng gói lệnh với tùy chọn:

1. \usepackage[baithi]{dethi} với cấu trúc làm bài thi trong lớp vieexamdesign.cls cóthể sáo trộn đề thi câu hỏi và các phương án.

2. \usepackage[baitap]{dethi} với cấu trúc làm bài thi hoặc bài tập trong lớparticle.cls, book.cls,... có thể nhúng câu hỏi vào bất cứ lớp nào của LaTeX.

Cả hai tùy chọn đều có khả năng dùng riêng các câu hỏi trực tiếp, nhưng dùng chung tệp câuhỏi và lời giải.Tài liệu này soạn dùng \usepackage[baitap]{dethi} và các câu hỏi minh họa chạytrực tiếp từ dữ liệu trong tệp kèm theo gói lệnh.

1. Hiện tại gói lệnh có các loại câu hỏi:

1. Đề thi trắc nghiệm;2. Đề thi trắc nghiệm dạng đặc biệt;3. Đề thi tự luận;4. Đề thi điền chỗ trống;5. Đề thi đúng sai;6. Đề thi trắc nghiệm theo kiểu bảng;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.

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ác lệ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.• picinpar đặt vị trí hình bên cạnh câu hỏi.

Page 5: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

• lastpage Lấy trang cuối cùng của một tài liệu.• 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ói lệnh thích hợp vớimọi gói lệnh LATEX kể cả gói lệnh về hình.

3. Những tệp kèm theo gói lệnh

Tên tệp Chức năng và ý nghĩa sử dụngvieexamdesign.cls Đây là lớp để dùng soạn đề thi do tác giả Jason

Alexander soạn ra. Tôi đã có sửa đổi đôi chỗ cho phùhợp với nhu cầu ra đề ở Việt Nam.

dethi.sty Gói lệnh đề thi với hai tùy chọn [baithi] và [baitap].baitap.sty Gói lệnh cho tùy chọn [baitap] với lớp article.cls,

book.cls,...baithi.sty Gói lệnh cho tùy chọn [baithi] với lớp vieexamde-

sign.clsdethihelp30.pdf Hướng dẫn sử dụng gói lệnh đề thicauhoi01-tuluan.tex Tệp chứa các câu hỏi tự luậncauhoi02-dtracnghiem.tex Tệp chứ các câu hỏi dễ trắc nghiệmcauhoi02-ktracnghiem.tex Tệp chứ các câu hỏi khó trắc nghiệmcauhoi02-tracnghiemgd.tex Tệp chứa các câu hỏi gạch dướicauhoi03-tracnghiemdv.tex Tệp chứa các câu hỏi điền vàocauhoi04-matching.tex Tệp chứa câu hỏi cặp gép tương ứngcauhoi05-dungsai.tex Tệp chứa các câu hỏi đúng sai.cauhoi06-tracnghiem-bang.tex Tệp chứa các câu hỏi bảngcauhoi07-baithietke.tex Tếp chứa các câu hỏi tự thiết kếvidu01-tuluan-f1.tex Làm đề thi tùy chọn [baithi] dùng tệp câu hỏividu01-tuluan-f2.tex Làm đề thi tùy chọn [baitap] dùng tệp câu hỏividu01-tuluan.tex Làm đề tự luận không dùng tệp câu hỏi.vidu02-tracnghiem-1dung.tex Làm đề với đầu vào phương án đúng luôn là A.vidu02-tracnghiem-coloigiai.tex Làm đề có lời giải đi kèm khi in ra.vidu02-tracnghiem-f1.tex Làm đề thi tùy chọn [baithi] dùng tệp câu hỏividu02-tracnghiem-f2.tex Làm đề thi tùy chọn [baitap] dùng tệp câu hỏividu02-tracnghiem-kiemtrade.tex Kiểm tra lại đềvidu02-tracnghiem.tex Làm đề không có tệp câu hỏi.vidu02-tracnghiemdv-f1.tex Làm đề điền vào tùy chọn [baithi].vidu02-tracnghiemdv-f2.tex Làm đề điền vào tùy chọn [baitap].vidu02-tracnghiemdv.tex Làm đề điền vào không cần tệp.vidu02-tracnghiemgd-f1.tex Làm đề gach dưới tùy chọn [baithi]vidu02-tracnghiemgd-f2.tex Làm đề gach dưới tùy chọn [baitap]vidu02-tracnghiemgd.tex Làm đề gach dưới không tệp.vidu05-tracnghiemds-f1.tex Làm đề đúng sai [baithi]vidu05-tracnghiemds-f2.tex Làm đề đúng sai [baitap]

Page 6: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

vidu05-tracnghiemds.tex Làm đề đúng sai trực tiếpvidu06-tonghop-f1.tex Làm đề tổng hợp với [baithi] trong tệp câu hỏi.vidu06-tonghop-f2.tex Làm đề tổng hợp với [baitap] trong tệp câu hỏi.vidu06-tonghop.tex Làm đề tổng hợp không tệp câu hỏi.01cauhoi-toan-1dung.tex Câu hỏi chỉ có phương án A đúng01cauhoi-toan-2017.tex Câu hỏi Toán đề thi minh họa 201701de-mh-toan-k17-f1.tex Làm đề tùy chọn [baithi] có tệp câu hỏi01de-mh-toan-k17-f2.tex Làm đề tùy chọn [baitap] có tệp câu hỏi01de-mh-toan-k17.tex Làm đề tùy chọn [baitap] không dùng tệp câu hỏi08cauhoi-tienganh-2009.tex Câu hỏi tiếng Anh08de-mh-anh-k17.tex Làm đề trực tiếp từ câu hỏi08de-tienganh-2009-f1.tex Làm đề với tệp tùy chọn [baithi]08de-tienganh-2009-f2.tex Làm đề với tệp tùy chọn [baitap]centerpage.sty Gói lệnh quy tâm trang văn bảnlastpage.sty Gói lệnh lấy trang cuối cùngshortlst.sty Gói lệnh sắp thứ tự hàng ngangtitledot.sty Gói lện cho chấm số tiêu đềmulticol.sty Gói lệnh làm cột văn bản

4. Lời cám ơn

Trong quá trình làm gói lệnh tôi đã nhận được nhiều góp ý và đề xuất những chức năng hoànthiện cho người dùng. Nhân đây tôi gửi lài cảm ơn chân thành tới các bạn trao đổi trên trang web:http://nhdien.wordpress.com và trao đổi trực tiếp qua Email: [email protected].

Chúc các bạn may mắn!

Một kỷ niệm ngày 20 tháng 11 năm 2016.

5. Hạn chế của gói lệnh

1. Tùy chọn [baitap] chưa làm đẹp kết quả in ra.2. Số trang bài thi trong tùy chọn [baithi] chưa vét hết khả năng tự động.3. Tùy chọn [baithi] với trên 40 bản bài thi trở lên chạy hơi bị chậm.4. Tùy chọn [baitap] chưa được nghiên cứu kỹ với các dạng câu hỏi khác nhau.

Page 7: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

PHẦN I. TÙY CHỌN [BAITAP] CỦA DETHI.STY

Tùy chọn này dùng dethi.sty trong lớp article.cls, book.cls để làm đề thi và sách tài liệu riêng.

6. Phần mở đầu của tệp loại này

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

\documentclass[12pt]{article}

\usepackage{amsmath,amsxtra,amssymb,latexsym, amscd,amsthm}

\usepackage{graphicx}

\usepackage{picinpar}

\usepackage[utf8]{vietnam}

\usepackage{longtable}%

\usepackage{multicol}%

\usepackage{color}

\usepackage{mathptmx}

\usepackage[baitap]{dethi}

% \usepackage{mathpazo}

\voffset=-3cm

% \hoffset=-2cm

\textheight 24truecm

\textwidth 19truecm

\madethi{103}

\def\tentruong{\small ĐH KHTN HÀ NỘI}

\def\tenkhoa{Khoa Toán - Cơ -Tin học}

\def\loaidethi{(Đề thi chính thức)}

\def\tenkythi{ĐỀ THI HỌC KÌ 2009-2010}

\def\tenmonhoc{Môn thi: Toán trắc nghiệm}

\def\thoigian{Thời gian làm bài: 60 phút}

\usepackage{fancybox}

\cornersize*{3.6mm}

% \daungoac{\Ovalbox}{} %khoan chữ phương án

\khoanh{\Ovalbox} %khoanh quan đáp án

%\daungoac{(}{)}%%{[}{]}%Dấu quanh phương án trả lời: {(}{)};{}{.};{}{)}

\chuphuongan{\small\bfseries\Alph}

\mauchu{blue} %Mầu chữ phương án

\PSNrandseed{\time}

% \coloigiai

\usepackage{centerpage} %gói lệnh căn các trang vào trung tâm

\usepackage{lastpage} %gói lệnh lấy trang cuối cùng

\graphicspath{{hinh-cauhoi/}}

Page 8: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\setlength{\shortitemwidth}{0.17\textwidth}

7. Một câu hỏi và lời giải

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

\begin{defproblem}{<Nhãn của bài>}

<Nội dung đề bài>

\begin{onlysolution}

\begin{solution}

<Nội dung lời giải>

\end{solution}

\end{onlysolution}

\end{defproblem}

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ầncó 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ễ để sau này lấy ra hàng loạt cùng loại, phần sau arctan cho khác nhau,duy nhất trong tệp dữ liệu. Vì vậy ta có thể cho số cũng được như diffeasy:2 bài số 2 trongtệ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 verbatim. Với tùychọ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 cho vào đây được.Với tùy chọn kèm theo có thể chỉ hiện ra lời giải hoặc không.

Ví dụ định nghĩa bài toán:

\begin{defproblem}{diffeasy:arctan}

$y = \arctan x = \tan^{-1}x$

\begin{onlysolution}

\begin{solution}%

$$\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}

\end{eqnarray*}

\end{solution}

\end{onlysolution}

\end{defproblem}

Với lệnh sử dụng và kết quả:

Page 9: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

7 8

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

\item \useproblem{diffeasy:arctan}

\end{enumerate}

: 2

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

Còn thêm \showanswers chỉ hiện lời giải

7 8

\showanswers

\begin{enumerate}[label={

\bf Câu \arabic*. }]

\item \useproblem{diffeasy:arctan}

\end{enumerate}

: 2

Câu 1. Lấy đạo hàm hàm số sau y =arctan x = tan−1 xLời giải: tan y = x lấy đạo hàm theo x:sec2 y dy

dx = 1,

dydx

=1

sec2 y=

11 + tan2 y

=1

1 + x2

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

7 8

\begin{enumerate}[label={

\bf Câu \arabic*. }]

\hideanswers

\item \useproblem{diffeasy:arctan}

\showanswers

\useproblem{diffeasy:arctan}

\end{enumerate}

: 2

Câu 1. Lấy đạo hàm hàm số sau y =arctan x = tan−1 x Lấy đạo hàm hàm sốsau y = arctan x = tan−1 xLời giải: tan y = x lấy đạo hàm theo x:sec2 y dy

dx = 1,

dydx

=1

sec2 y=

11 + 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.

8. 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ỏi rồ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ệp sau đó gọi ra sử dụng. Nghĩa là phần câu hỏi đượcsoạ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ứctiếp như định dạng trên và có thể lưu vào tệp để gọi ra.

8.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

Page 10: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\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. Ví dụ

\baituluan{logic:5}{%Câu hỏi 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ục như sau:

"Hàm $f(x)$ được gọi là hàm liên tục tại $x_0\in D$ nếu cho trước một số

$\epsilon>0$ tùy ý thì ta có được một số $\delta>0$ tương ứng sao cho

với mọi $x\in D$ thỏa mãn $|x-x_0|<\delta$ thì $|f(x)-f(x_0)|<\epsilon$".\\

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ên tục tại điểm $x_0$)

}{%Trả lời

a) $(\forall \epsilon)(\exists \delta) (\forall x\in D): $

$|x-x_0|<\delta \rightarrow |f(x)-f(x_0)|<\epsilon$.\\

b) $(\exists \epsilon) (\forall \delta) (\exists x\in D) : $

$|x-x_0|<\delta \rightarrow |f(x)-f(x_0)|>\epsilon$

}%Hết câu hỏi 5

7 8

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

\hideanswers

\showanswers

\item \useproblem{logic:5}

\end{enumerate}

: 2

Câu 1. Trong môn học giải tích toán học người ta định nghĩa hàm liên tục như 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ỏa mã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ên tục tại điểm x0)

Lời giải a) (∀ε)(∃δ)(∀x ∈ D) : |x− x0| < δ→ | f (x)− f (x0)| < ε.b) (∃ε)(∀δ)(∃x ∈ D) : |x− x0| < δ→ | f (x)− f (x0)| > ε

8.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

Page 11: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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

<Nội dung câu hỏi>

}{%Trả lời

\datcot

\bonpa

<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. \datcot Đặt độ rộng cho mỗi phương án mặc định bằng lệnh \shortitemwidth:

Có thể đặt lại cho phù hợp \setlength{\shortitemwidth}{0.1\textwidth}.Tùy chọn \datcot[2] lấy hai cột làm một cột, như vậy mỗi dòng chỉ còn hai cột.Tùy chọn \datcot[4] lấy bốn cột làm một cột, như vậy mỗi dòng chỉ còn một cột.Phụ thuộc vào các đáp án có nội dung dài hoặc ngắn để đặt.

4. <các phương án trả lời>: Phải có 4 phương án như sau:{\dung{<Nội dung đáp án>}} Cho phương án đúng. Phải có ngoặc nhọn ở ngoài và hai ngoặcnhọn cuối cùng phải sất nhau.{\sai{<Nội dung đáp án>}} Cho phương án sai. Phải có ngoặc nhọn ở ngoài và hai ngoặcnhọn cuối cùng phải sất nhau.

Ví dụ

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

Giả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

\datcot

\bonpa

{\sai{$\frac{3}{2}$;}}

{\dung{$-3\log_32 $;}}

{\sai{$\frac{5}{7}$;}}

{\sai{$\log_23 $;}}

}%Hết một bài

Làm đề bài

7 8

\hideanswers

\begin{enumerate}

\item \useproblem{giaitich:11}

\end{enumerate}

: 2

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. 57 ; B. log2 3;

C. 32 ; D. −3 log3 2;

Page 12: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Đề bài và trả lời

7 8

\showanswers

\begin{enumerate}

\item \useproblem{giaitich:11}

\end{enumerate}

: 2

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. 57 ; B. log2 3;

C. 32 ; D. −3 log3 2;

Trả lời rút gọn

7 8

\hideproblems

\showanswers

\begin{enumerate}

\item \useproblem{giaitich:11}

\end{enumerate}

: 2

1.� �� �� �� �D

8.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ạngloạ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>

}

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

\baitracnghiem{chontu:1}{%%<Câu hỏi 1

}{

\datcot

\bonpat

{\dung{\underline{h}our }}

{\sai{\underline{h}igh }}

{\sai{\underline{h}ouse }}

{\sai{\underline{h}ome}}

}%Hết một bài

Loại bài toán chọn từ cũng là bài toán trắc nghiệm nhưng định dạng hơi đặc biệt nhiều câu hỏichỉ có phương án liền với dòng, nên phần nội dung câu hỏi không có. Tôi tạo ra câu hỏi giốngnhư trắc nghiệm phưng dùng Bốn phương án có chữ t: \bonpat

Để dễ hiểu ta lấy một loạt bài toán như vậy trong 1 tệp:

\def\dschontu{chontu:1,chontu:2,chontu:3}

Page 13: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\loadselectedproblems[btchontu]{\dschontu}{08cauhoi-tienganh-2009}

\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ới những từ còn lạitrong mỗi câu sau.

1.A. house B. home C. hour D. high

2.A. patience B. cancer C. nation D. basic

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

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

<Nội dung câu hỏi>

}{%Trả lời

\datcot

\bonpah

<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;Chú ý từ đúng, sai đều có chữ h.

3. <Các phương án trả lời> là các phương án đúng và sai\datcot đặt cột vẫn không thay đổi.\bonpah bốn phương án thêm chưc h để hịnh dạng trả lời.{\dung{<Nội dung đáp án>}}

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

Ví dụ

\baitracnghiemgd{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

Page 14: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\datcot

\bonpanh

{\sai{That}}

{\sai{the}}

{\dung{which}}

{\sai{the}}

}%Hết một bài

Thực hiện cũng có thể dùng nhãn như phần trăc nghiệm nhưng ở đây ta lấy trong tệp ra:

\def\dssuatu{suatu:1,suatu:2,suatu:3}

\loadselectedproblems[btsuatu]{\dssuatu}{08cauhoi-tienganh-2009}

\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ải sửa để các câu sautrở 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.

Có đáp án và trả lời

\showanswers

\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}[ resume,label={\bf Câu \arabic*.\ }]

\foreachproblem[btsuatu]{\item[\ref{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ải sửa để các câu sautrở 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.

Page 15: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Đáp án rút gọn cùng với câu hỏi trắc nghiệm khác.

\hideproblems

\showanswers

\begin{multicols}{3}

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

\foreachproblem[btsuatu]{\item[\ref{prob:\thisproblemlabel}]\thisproblem}

\end{enumerate}

\end{multicols}

Câu 1.� �� �� �C

� � Câu 2.� �� �� �� �D Câu 3.

� �� �� �C� �

8.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ụ lập bảng câu hỏi:

\hideanswers

\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 16: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

7 8

\hideanswers

\renewcommand{\arraystretch}{1.5}

\begin{tabular}{| p{0.6\textwidth} |c|}

\hline

\textbf{Câu hỏi} & \textbf{Trả lời}\\

\hline %

1. \useproblem{bangtn:2}

&\\

\hline

\end{tabular}

: 2

Câu hỏi Trả lời

1. exp(ln x) = x pour tout xappartenant à

� �R� �]0 ; +∞[� �[0 ; +∞[

Đáp án7 8

\showanswers

\renewcommand{\arraystretch}{1.5}

\begin{tabular}{| p{0.6\textwidth} |c|}

\hline

\textbf{Câu hỏi} & \textbf{Trả lời}\\

\hline %

1. \useproblem{bangtn:2}

&\\

\hline

\end{tabular}

: 2

Câu hỏi Trả lời

1. exp(ln x) = x pour tout xappartenant à

� �× R� �]0 ; +∞[� �[0 ; +∞[

8.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ùng lệnh cho cau hỏitự luận

\baitracnghiemdv*{<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ụ thiết lập đề:

\baitracnghiemdv*{diencho:so1}{%Câu hỏi 1

How much \blank{wood} would a \blank{woodchuck} chuck,

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

}

Ví dụ câu hỏi:

Page 17: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

7 8

\hideanswers

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

\item \useproblem{diencho:s1}

\end{enumerate}

: 2

Câu 3. How much would a chuck, if a would ,wood?

Ví dụ trả lời:

7 8

\showanswers

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

\item \useproblem{diencho:s1}

\end{enumerate}

: 2

Câu 3. How much wood would a woodchuck chuck, if a woodchuck would chuck, wood?

8.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ùng lệnh cho cau hỏitự luận

\baitracnghiemds*{<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 \answer{Sai}

Ví dụ thiết lập đề

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

\answer{Đúng} This sentence is not false.

}

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

\answer{Đúng} ‘Roger \& Trường Me’ chronicles

one man’s attempt to get into

Disneyland so that he can visit Toontown.

}

Page 18: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Ví dụ lập câu hỏi

7 8

\hideanswers

\begin{enumerate}

\item \useproblem{dungsai:1}

\item \useproblem{dungsai:2}

\end{enumerate}

: 2

1. This sentence is not false.2. ‘Roger & Trường Me’

chronicles one man’s attempt to get intoDisneyland so that he can visit Toontown.

Ví dụ trả lời câu hỏi

7 8

\showanswers

\begin{enumerate}

\item \useproblem{dungsai:1}

\item \useproblem{dungsai:2}

\end{enumerate}

: 2

1. Đúng This sentence is not false.2. Đúng ‘Roger & Trường Me’

chronicles one man’s attempt to get intoDisneyland so that he can visit Toontown.

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

9.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ệp cũng không ảnhhưởng gì, để dễ quản lý và sử chữa ta ghi vào các tệp khác nhau. Ví dụ kèm theo bao gồm các tệp:

• cauhoi01-tuluan.tex Tệp những câu hỏi tự luận.• cauhoi02-dtracnghiem.tex , cauhoi02-ktracnghiem.texTệp những câu hỏi trắc

nghiệm.• cauhoi02-tracnghiemgd.tex Tệp những câu hỏi trác nghiệm gạch dưới.• cauhoi06-tracnghiem-bang.tex Tệp những câu hỏi trắc nghiệm bảng.• cauhoi03-tracnghiemdv.tex Tệp những câu hỏi điền chỗ trống.• cauhoi05-dungsai.tex Tệp những câu hỏi đúng sai.• cauhoi07-baithilietke.tex Tệp những câu hỏi liệt kê.• cauhoi04-matching.tex Tệp những câu hỏi điền tương ứng.

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ết lập đề thi chỉ lấy mộtsố câu trong đó thôi.

9.2. Các lệnh lấy câu hỏi từ trong tệp

A. Lệnh \selectrandomly lấy ngẫu nhiên vài câu hỏi trong một tệp và đặttrong môi trườngmôi trường enumerate

\begin{enumerate}

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

\end{enumerate}

Page 19: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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:

\hideanswers

\begin{enumerate}

\selectrandomly{cauhoi03-tracnghiemdv}{2}

\end{enumerate}

1. One main component of Nietzche’s moral philosophy is the .2. thought that without a strong, , effective government, chaos

would reign in the state of nature.

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ôi trường trên cho ta bộcâu hỏi cần lập.

B. Lệnh \selectallproblems đư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ụ

\hideanswers

\begin{enumerate}

\selectallproblems{cauhoi05-dungsai}

\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 can visit Toontown.3. Laden swallows fly faster than unladen swallows, unless they carry co-

conuts.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.

9.3. Các lệnh lấy câu hỏi vào bộ nhớ

A. Lệnh \loadrandomproblems gọi câu hỏi vào bộ nhớ, chỉ khi nào dùng bằng lệnh khác mớilấy vào văn bản.

\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 bí danh chứa các câu hỏi trong bộ nhớ, để dùngnó sau này như bttuluan, hoặc bttracnghiem,...

Page 20: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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áolỗ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}{cauhoi01-tuluan}

Có thể lấy hàng loạt tệp vào một lúc như

\loadrandomproblems[bttracnghiem]{20}{cauhoi02-dtracnghiem}

\loadrandomproblems[btdiencho]{3}{cauhoi03-tracnghiemdv}

\loadrandomproblems[btdungsai]{4}{cauhoi05-dungsai}

\loadrandomproblems[btbangtn]{5}{cauhoibangtn}

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

\showproblems

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

\item\useproblem[bttuluan]{logic:4}

\item\useproblem[bttracnghiem]{dtracnghiem:b02}

\end{enumerate}

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ủamệ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óithông thường.

2. Tập xác định của hàm số y =

√x2 − 5x + 6

x + 2là:

A. (−∞, 2] ∪ [3,+∞) \ {−2} B. (−∞, 2] ∪ [3,+∞)

C. R \ [2; 3] D. R \ {3; 2;−2}

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. Laden swallows fly faster than unladen swallows, unless they carry co-conuts.

Câu 2. ‘Roger & Trường Me’ chronicles one man’s attempt to get into Disneylandso that he can visit Toontown.

Câu 3. ‘Monty Python and the Holy Grail’ is a very funny movie.Câu 4. All animals are created equal, but some animals are more equal than others.

Page 21: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Câu 5. This sentence is not false.

C. Thực ra các đề bài được gọi ở hình thức không có tệp để chứa thì chương trì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

\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ồi dù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ác lệnh phần trướccó 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.

9.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ỗi bài được gán mộtnhãn chính là nhãn của bài toán. Ví dụ

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

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

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

\selectalllabels{cauhoi01-tuluan}

\end{enumerate}

Page 22: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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ông chia 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ừ 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ủamệ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 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ục như 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ố δ > 0tương ứng sao cho với mọi x ∈ D thỏa mã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ên tục tại điểm x0)

Tham khảo các nhãn \ref{all:logic:1} là ??, \ref{all:logic:3} là ??, \ref{all:logic:2} là??

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*.\ }]

\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}

Page 23: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

10. 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 ratheo số trong năm sau tiếp theo đặt \PSNrandseed{\year}

2. \PSNgetrandseed:\PSNgetrandseed{<Biến ghi>} Chứa số vừa truy nhậ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ên từ 1 đến n, rồi ghivào <Biến ghi>. Ví dụ sinh ra một số trong khoảng 1 đến 10 rồ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 trongkhoạ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ọn ngẫ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ực hiện lặp thì thực hiện <Văn bản> bằnglệ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}}

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

11.1. Đề tự luận

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

\loadrandomproblems[dttuluan]{4}{cauhoi01-tuluan}

\hideanswers

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

\foreachproblem[dttuluan]{

\item\label{prob:\thisproblemlabel}\thisproblem}

\end{enumerate}

Page 24: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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}

11.2. Đề trắc nghiệm

1. Chỉ in ra đề

\loadrandomproblems[bttracnghiem]{5}{cauhoi02-dtracnghiem}

\hideanswers

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

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

Page 25: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\hideproblems

\showanswers

\begin{multicols}{3}

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

\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]

\foreachdataset{\thisdataset}{%

\foreachproblem[\thisdataset]{

\item[\ref{prob:\thisproblemlabel}]\thisproblem}

}

\end{enumerate}

\end{multicols}

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

1. chỉ in ra đề

\loadrandomproblems[btdiencho]{5}{cauhoi03-tracnghiemdv}

\loadrandomproblems[btdungsai]{5}{cauhoi05-dungsai}

\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}

Page 26: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\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}

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

1. In ra đề bài

\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.

Page 27: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

11.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{cauhoi07-baithietke}{2}

\end{longtable}

Câu hỏi A B C1. Kết quả (3 + 2)× 5 là? 25 13 102. 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.

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

Tôi đã làm một tệp vidu06-tonghop-f2.tex Cách thức làm các bài tập theo chương củ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ần củ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.

Page 28: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

PHẦN II. TÙY CHỌN [BAITHI] CỦA DETHI.STY

Tùy chọn này trong lớp vieexamdesign.cls chuyên dùng làm đề thi. Các đề thi có thể tráo câu hỏivà phương án cho nhiều đề và đám án khác nhau một lúc, có thể in ra phiếu thi tương ứng đốivới trắc nhiêm.

12. Phần mở đầu của một đề thi

\documentclass[11pt]{vieexamdesign}

\usepackage{amsmath,amsxtra,latexsym, amssymb, amscd}

\usepackage[utf8]{vietnam}

\usepackage{color}

\usepackage{graphicx}

\usepackage{picinpar}

\usepackage{mathptmx}

% \usepackage{mathpazo}

\usepackage[baithi]{dethi} %Gói lệnh cho đề thi Việt Nam

\usepackage{lastpage}

% \usepackage{fancybox}

% \cornersize*{3.6mm}

\Fullpages %Định dạng trang đề thi

\ContinuousNumbering %Đánh số liên tục các bài thi

\NumberOfVersions{3} %10 là số bài thi khác nhau được in ra

\SectionPrefix{\relax }%\bf Phần \Roman{sectionindex}. \space}

\tieudetracnghiem %hoặc tieudetuluan

\tieudedapan

%\tieudetren

\tieudeduoi

\daungoac{}{.} %Dấu quanh phương án trả lời: {(}{)};{}{.};{}{)}

%\chuphuongan{\alph} %Ký tự cho các phương án

%\chuphuongan{\arabic} %\Roman%\roman%kể cả số cho các phương án

\chucauhoi{Câu} %Chữ trước các số câu hỏi

% \chucauhoi{ } %Chữ trước các số câu hỏi

\mauchu{red} %Mầu số câu hỏi và phương án

\def\v#1{\overrightarrow{#1}} %Làm vectơ

\graphicspath{{hinh-cauhoi/}} %Đường dẫn của nơi để hình

\khoanh{\cbox} %Khoanh các phương án: \cbox, \fbox

\hovaten{Họ và tên} %Nếu không muốn có dòng này không gõ lệnh

% \tenlop{Tên lớp} %Nếu không muốn có dòng này không gõ lệnh

\sobaodanh{Số báo danh} %Nếu không muốn có dòng này không gõ lệnh

%\ketqua{} %In ra phần Kết quả

%\giamkhao{} %In ra phần chữ ký giám khảo ở phiếu thi

Page 29: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

%\NoRearrange %Lệnh không trộn đề

% \socotdapan{3} %số cột đáp án và phiếu thi

% \motphieuthi %In ra một phiếu thi, Mặc định là không hiện ra phiếu thi

% \nhieuphieuthi %In ra mỗi đề một phiếu thi

%\coloigiai %In ra đáp án có lời giải, không có \ShortKey và phiếu thi

% \lietkedatrue %in đáp án theo kiểu liệt kê

\ShortKey %Lệnh hiện ra đáp án mỗi đề thi

% \OneKey %Lệnh chỉ in ra 1 bản đáp án

% \NoKey %Lệnh không in ra phần đáp án

\tentruong{BỘ GIÁO DỤC VÀ ĐÀO TẠO}

\tenkhoa{ĐỀ MINH HỌA}

\loaidethi{Đề gồm có \pageref{LastPage} trang}%{ĐỀ THI LẠI}%%{ĐỀ CHÍNH THỨC}

\tenkythi{KÌ THI TRUNG HỌC PHỔ THÔNG QUỐC GIA NĂM 2017}

\tenmonhoc{Môn: Toán}

\madethi{100}

\thoigian{\underline{Thời gian làm bài: 90 phút, không kể thời gian phát đề}}

13. Câu hỏi tự luận và đề thi

13.1. Câu hỏi tự luận trực tiếp

\begin{question}

<Nội dung câu hỏi>

\begin{answer}

<Nội dung đáp án>

\end{answer}

\end{question}

13.2. Câu hỏi tự luận lưu trong tệp dùng chung

(Đã nói ở phần trước).

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

<Nội dung câu hỏi>

}{%Trả lời

<Nội dung đáp án>

}%Hết câu hỏi 1

13.3. Môi trường đặt câu hỏi ra đề thi:

\begin{shortanswer}[title={\relax}, rearrange=no ]

Page 30: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

........

\end{shortanswer}

Ví dụ đặt câu hỏi ở phần A trong tệp kèm theo: vidu01-tuluan.texVí dụ đặt câu hỏi ở phần B trong tệp kèm theo: vidu01-tuluan-f1.tex

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

14.1. Câu hỏi trực tiếp.

\begin{question}

<Nội dung câu hỏi>

\datcot[2]

\bonpa

<bốn phương án đúng, sai>

\end{question}

Ví dụ: Mỗi câu hỏi đều có dạng sau:

\begin{question}

Theo quan niệm hiện đại, cơ sở vật chất chủ yếu của sự sống là

\datcot[2]

\bonpa

{\sai{axit nuclêic và lipit. }}

{\dung{saccarit và phôtpholipit.}}

{\sai{prôtêin và axit nuclêic. }}

{\sai{prôtêin và lipit.}}

\end{question}

1. Lệnh \datcot không có tùy chọn là để mặc định cho chương trình thu xếp. Khi thấy 4 phươngán trả lời đều 4 cột, hoặc hai cột, hoặc 3 cột ngang nhau thì không cần đặt thêm gì chương trìnhtự thu xếp đẹp nhất. Trường hợp 4 phương án có độ rộng không đều ta có thể đặt độ rộng bằngphương án dài nhất chiếm bao nhiêu cột. Ví dụ \datcot[2] là xác định mỗi phương án rộng 2 cột,tương tự như vậy với \datcot[3], \datcot[4], \datcot[5].

2. Các lệnh về phương án câu hỏi: Tùy vào bài có các lệnh \haipa lệnh hai phương án, \bapa lệnhba trương án trả lời \bonpa bốn phương án và \nampa

3. Nội dung bốn phương án thứ tự cho vào trong ngoặc nhọn\bonpa{{\sai{A}}{{\dung{B}}{{\sai{C}}{{\sai{D}}. Bao quanh mỗi phương án phải là lệnh\dúng hoăcl \sai

4. Lệnh về phương án đặc biệt với các đối số và cách thức tương tự chỉ có khác lệnh một chút

\bonpak{{\sai{A}}{{\dung{B}}{{\sai{C}}{{\sai{D}} phương án của câu hỏi không đảothứ tự A, B, C, D; nhưng vẫn đảo thứ tự câu hỏi.

Page 31: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\bonpab{{\sai{A}}{{\dung{B}}{{\sai{C}}{{\sai{D}} Phương án thứ tư luôn luôn cố địnhkhông đổi.

\bonpat{{\sai{A}}{{\dung{B}}{{\sai{C}}{{\sai{D}} Bốn phương án thẳng hàng với câuhỏi bạn xem ví dụ ở đề thi tiếng Pháp.

5. Chương trình tự tính toán để chia làm bốn cột và các phương án A, B, C, D. Nếu phương ánnhiều chữ hơn bề rộng một cột thì phương án sau lùi lại và như vậy sắp xếp không được đẹp. Đểkhắc phục điều này các bạn thấy phương án dài nhất trong 4 phương án có độ rộng 2 cột thì thêm\datcot[2], để chương trình tính rằng tuy ít chữ nhưng vẫn tính độ rộng bằng các phương ánkhác ví dụ như:

\begin{question}

Bất đẳng thức $-4(a^2-2a-3)\le -8(a^2-2a-3)$

\datcot[2]

\bonpa

{\dung{Đúng với mọi $a\in(0; 3]$;}}

{\sai{Đúng với mọi $a\in\rr$;}}

{\sai{Sai với mọi $a\in\rr$;}}

{\sai{Sai với mọi $a\in (-\infty; 0)$;}}

\end{question}

Nhiều khi chỉ cần thêm độ rộng vào một phương án còn các phương án kia sẽ được sắp xếpthích hợp. Các bạn xem tệp ví dụ rất ít phải thêm vào độ rộng các cột. Để chương trình tự thu xếplấy.

14.2. Câu hỏi được lưu trong tệp giống như tùy chọn khác

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

<Nội dung câu hỏi>

}{%Trả lời

\datcot

\bonpa

<Các phương án trả lời>

}%Hết câu hỏi 1

14.3. Môi trường làm đề thi trắc nghiệm

\begin{multiplechoice}[title={\bf I. Các câu hỏi dễ}, keycolumns=3]%

......

\end{multiplechoice}

hoặc

\begin{vnmultiplechoice}[title={\bf I. Các câu hỏi dễ}, keycolumns=3]%

Page 32: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

......

\end{vnmultiplechoice}

1. title là tiêu đề phần nội dung chung cho các câu hỏi; rearrange=yes có đảo đề và no khongđảo đề. keycolumns=6 đáp án chia làm sáu cột để liệt kê kết quả đúng.

2. Khi đảo đề thì các câu hỏi đặt trong khu nàu đảo với nhau thôi không đảo ra ngoài nó.

3. Môi trường vnmultiplechoice khi lấy câu hỏi từ tệp vào không bị lỗi.

4. Ví dụ đặt câu hỏi ở phần A. trong tệp: vidu02-tracnghiem.tex

5. Ví dụ đặt câu hỏi ở phần B. trong tệp: vidu02-tracnghiem-f1.tex

14.4. Những tùy chọn tạo ra đề thi trắc nghiệm.

Trên phần đầu định hướng đầu ra quan trong sau:

1. \lietketrue in ra đáp án theo jiểu danh sách, không theo mặc định in ra 4 phương án.

2. \motphieuthi in ra một phiếu thi mẫu để sao chụp. \nhieuphieuthi mỗi đề một phiếuthi kèm theo.

3. \coloigiai in ra có lời giải nhưng phải bỏ các lựa chọn \shortkey và các tùy chọnkhác đặt lại [keycolumns=1]. Các câu hỏi không đảo và phương án giữ nguyên.Ví dụ trong tệpvidu02-tracnghiem-coloigiai.tex

4. Các đáp án đúng sai có thể đặt ở dòng phương án đúng thứ nhất để sau này chươngtrình phân bổ dễ dàng và chúng ta soạn cũng dễ dàng không nhấm lẫn. Ví dụ về điều này xemtệp dữ liệu 01cauhoi-toan-1dung.tex và chương trình vidu02-tracnghiem-1dung.tex

15. Câu hỏi các dạng khác

15.1. Câu hỏi gạch dưới

A. Câu hỏi trực tiếp.

\begin{question}

My \saih{younger} brother \saih{has} worked in \saih{a} bank \dungh{since} a long time.

\datcot

\bonpah

{\sai{younger}}

{\sai{has}}

{\sai{a}}

{\dung{since}}

\end{question}

Chú ý: câu gạch dưới là \dungh hoặc \saih, các tùy chọn như cũ và \bonpah thêm chữ h.

B. Câu hỏi trong tệp.

Page 33: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\baitracnghiemgd{suatu:2}{

My \saih{younger} brother \saih{has} worked in \saih{a} bank \dungh{since} a long time.

}{%Phương án trả lời

\datcot

\bonpah

{\sai{younger}}

{\sai{has}}

{\sai{a}}

{\dung{since}}

}

Xem câu hỏi trong tệp cauhoi02-tracnghiemgd.tex

C. Môi trường sử dụng

\begin{vnmultiplechoice}[title={\bf Câu hỏi gạch dưới}, keycolumns=3]

.......

\end{vnmultiplechoice}

Ví dụ là tệp:vidu02-tracnghiemgd.tex

15.2. Câu hỏi điền vào

A. Câu hỏi trực tiếp.

\begin{question}

Mill’s theory of morality is known as \blank{Utilitarianism}

\end{question}

B. Câu hỏi trong tệp.

\baitracnghiemdv*{diencho:so2}{%Câu hỏi 2

\blank{Wittgenstein}’s first work was the \textsl{Tractatus-\blank{Logico}

Philosophicus}.

}

Xem câu hỏi trong tệp cauhoi02-tracnghiemdv.tex

C. Môi trường sử dụng

\begin{vnfillin}[title={\bf Câu hỏi điền từ vào chỗ trống},

resetcounter=yes,keycolumns=2]

.......

\end{vnfillin}

Ví dụ là tệp:vidu02-tracnghiemdv.tex

Page 34: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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

A. Câu hỏi trực tiếp.

\begin{question}

\answer{Sai} Laden swallows fly faster than unladen swallows, unless

they carry coconuts.

\end{question}

B. Câu hỏi trong tệp.

\baitracnghiemds*{truefalse:b04}{%

\answer{Đúng} ‘Monty Python and the Holy Grail’ is a very funny movie.

}

Xem câu hỏi trong tệp cauhoi05-dungsai.tex

C. Môi trường sử dụng

\begin{truefalse}[title={\bf Câu hỏi đúng sai}]

.......

\end{truefalse}

Ví dụ là tệp:vidu05-tracnghiemds.tex

15.4. Câu hỏi tương ứng

A. Câu hỏi trực tiếp.

Ghép nối các ....

\pair{Elvis Costello}{Spike}

\pair{Nirvana}{Nevermind}

\pair{Love and Rockets}{Earth, Sun, Moon}

\pair{The Jesus and Mary Chain}{Automatic}

\pair{The Dave Matthews Band}{Under the Table and Dreaming}

B. Câu hỏi trong tệp.

\newproblem*{matching:b01}{%

\pair{Elvis Costello}{Spike}

\pair{Nirvana}{Nevermind}

\pair{Love and Rockets}{Earth, Sun, Moon}

\pair{The Jesus and Mary Chain}{Automatic}

\pair{The Dave Matthews Band}{Under the Table and Dreaming}

}

Page 35: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Xem câu hỏi trong tệp cauhoi04-matching.tex

C. Môi trường sử dụng

\begin{matching}[title={\bf Câu hỏi ghép nối}]

.......

\end{matching}

Ví dụ là tệp:vidu02-tracnghiemtu-f1.tex

16. Tổng hợp câu hỏi

Những loại câu hỏi trên có thể tổng hợp trong một đề thi hay một cuốn sách:

1. vidu06-tonghop-f1.tex là dùng các câu hỏi theo lựa chọn\usepackage[baithi]{dethi}.

2. vidu06-tonghop-f2.tex là dùng các câu hỏi theo lựa chọn\usepackage[baitap]{dethi}. Đây là một cuốn sách có các loại câu hỏi khác nhau.

Page 36: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

PHẦN III. NHỮNG KINH NGHIỆM VÀ LƯU Ý SỬ DỤNG

17. Dùng hình trong câu hỏi

17.1. Đưa hình và bảng với đánh số

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ảngvà hình phải luôn tại vị trí được đặt vào, vì vậy gói lệnh không chấ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[scale=1]{tex1} đềuđược, không thay đổi gì. Vấn đề là ta phải đánh số các hình hoặc bảng bằng lệ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ùngnhã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ường longtable nhưng với\caption{...}

\begin{center}

\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%

Page 37: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\includegraphics[width=0.8\linewidth,clip=]{input}%

\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 4

Hai 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[scale=0.8]{hinh12mat}

\figcaption{Chú thích hình}%

\label{fig:input}%

\end{figure}

}{%Trả lời

Nế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 cho D̂AK = 60o. Chứng minhrằng hai mặt phẳng ACK và BAL vuông góc.

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ới ABCDE, thì góc D̂AKtăng cho đến khi AEKPL lại nằm trên mặt phẳng chứa ABCDE. .....

Page 38: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

17.2. Đưa hình và bảng vào bên cạnh câu hỏi

1. Dùng gói lệnh picinpar.sty (xem phụ lục) với cấu trúc

\begin{window}[<số dòng>, <căn lề>, <văn bản>, <chú thích>]

<vă bản bên cạnh>

\end{window}

Hình sẽ bám theo câu hỏi và đáp án chứ không chạy đi nơi khác

\baitracnghiem{t2017:b01}{%

Đường cong trong hình bên là đồ thị của một hàm số trong

\begin{window}[0,r,{\hspace*{1cm}\includegraphics[scale=0.6]{toan01}

\hspace*{1cm}},{\label{fig:b01}}]

bốn hàm số được liệt kê ở bốn phương án $A, B, C, D$ dưới

đây. Hỏi hàm số đó là hàm số nào ?

\end{window}

}{

\datcot[4]

\bonpa

{\sai{$y=-x^2+x-1$.}}

{\sai{$y=-x^3+3x+1$.}}

{\dung{$y=x^3-3x+1$.}}

{\sai {$y=x^4-x^2+1$.}}

}}

1. Đường cong trong hình bên là đồ thị của một hàm số trongbốn hàm số được liệt kê ở bốn phương án A, B, C, D dưới đây. Hỏihàm số đó là hàm số nào ?

A. y = x3 − 3x + 1.B. y = x4 − x2 + 1.C. y = −x2 + x− 1.D. y = −x3 + 3x + 1.

2. Còn các hình ở giữa câu hỏi đưa vào bằng môi trường

\begin{center}

\includegraphics[scale =0.7]{hinh1}

\end{center}

Độ phóng scale=1.0 là giữ nguyên hình như nó vốn có.

\baitracnghiem{t2017:b10}{%

Cho một tấm nhôm hình vuông cạnh 12 cm. Người ta cắt ở bốn góc của tấm

nhôm đó bốn hình vuông bằng nhau, mỗi hình vuông có cạnh bằng $x$ (cm), rồi gập tấm

Page 39: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

nhôm lại như hình vẽ dưới đây để được một cái hộp không nắp. Tìm $x$ để hộp nhận

được có thể tích lớn nhất.

\begin{center}

\includegraphics[scale =0.4]{toan03}

\end{center}

}{

\datcot

\bonpa

{\sai{$x=6$.}}

{\dung{$x=3$.}}

{\sai{$x=2$.}}

{\sai {$x=4$.}}

}

1. Cho một tấm nhôm hình vuông cạnh 12 cm. Người ta cắt ở bốn góc của tấm nhôm đóbốn hình vuông bằng nhau, mỗi hình vuông có cạnh bằng x (cm), rồi gập tấm nhôm lại như hìnhvẽ dưới đây để được một cái hộp không nắp. Tìm x để hộp nhận được có thể tích lớn nhất.

A. x = 2. B. x = 4. C. x = 6. D. x = 3.

17.3. Đặt các tệp hình vào một thư mục

Để cho gọn những tệp hình ta để vào một thư mục bên trong thư mục đang chứa các tệp TeXbằng lệnh \graphicspath{{hinh-cauhoi/}}tất cả các hình câu hỏi trong thư mục \hinh-cauhoi

18. Các phương pháp lấy câu hỏi từ tệp dữ liệu

18.1. Lấy một số câu hỏi theo nhãn đã biết

1. Khi biết một số nhãn của các câu hỏi ví dụ t2017:b10,t2017:b15 ta lấy vào:

\loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017}

Dùng nó trong tùy chọn [baithi]:

\begin{vnmultiplechoice}[keycolumns=3]%

\useproblem[bttn]{t2017:b10}

Page 40: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\useproblem[bttn]{t2017:b15}

\end{vnmultiplechoice}

Trong tùy chọn [baitap]

\loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017}

\showproblems

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

\item\useproblem[bttn]{t2017:b10}

\item\useproblem[bttn]{t2017:b15}

\end{enumerate}

2. Tương tự nếu có nhiều nhãn đưa vào danh sách:

\def\dsnhan{t2017:b20,t2017:b21,t2017:b22}

\loadselectedproblems[bttnnew]{\dsnhan}{01cauhoi-toan-2017}

Sử dụng các nhãn như trên, nhưng ở đây ta dùng cách khác trong tùy chọn [baithi]

\begin{vnmultiplechoice}[keycolumns=3]%

\foreachproblem[bttnnew]{\thisproblem}

\end{vnmultiplechoice}

Trong tùy chọn [baitap]

\showproblems

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

\foreachproblem[bttnnew]{\item\label{prob:\thisproblemlabel}\thisproblem}

\end{enumerate}

3. Lấy các nhãn câu hỏi trong tệp dữ liệu:Với lớp vieexamdesign.cls đưa vào tự chọn draft;\documentclass[11pt,draft]{vieexamdesign}

Lấy toàn bộ câu hỏi bằng lệnh và môi trường

\begin{vnmultiplechoice}[keycolumns=3]%

\selectallproblems{01cauhoi-toan-2017}

\end{vnmultiplechoice}

Khi biên dịch sẽ có trang đầu tiên chứa các nhãn kèm theo tên tệp chứa nhãn như

[01cauhoi-toan-2017,t2017:b01] [01cauhoi-toan-2017,t2017:b02]

[01cauhoi-toan-2017,t2017:b03] [01cauhoi-toan-2017,t2017:b04]

[01cauhoi-toan-2017,t2017:b05] [01cauhoi-toan-2017,t2017:b06]

....

Page 41: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Chép nhãn vào một tệp và lấy nhãn bằng thay thế tên tệp bằng trắng,...

t2017:b01, t2017:b02, t2017:b03, t2017:b04, t2017:b05, t2017:b06, t2017:b07,

t2017:b08, t2017:b09, t2017:b10, t2017:b11, t2017:b12, t2017:b13, t2017:b14,

t2017:b15, t2017:b16, t2017:b17, t2017:b18, t2017:b19, t2017:b20, t2017:b21,

t2017:b22, t2017:b23, t2017:b24, t2017:b25, t2017:b26, t2017:b27, t2017:b28,

t2017:b29, t2017:b30, t2017:b31, t2017:b32, t2017:b33, t2017:b34, t2017:b35,

t2017:b36, t2017:b37, t2017:b38, t2017:b39, t2017:b40, t2017:b41, t2017:b42,

t2017:b43, t2017:b44, t2017:b45, t2017:b46, t2017:b47, t2017:b48, t2017:b49,

t2017:b50

18.2. Lấy một số câu hỏi ngẫu nhiên từ tệp dữ liệu

1. Bằng lệnh lấy một số câu hỏi, ví dụ như lấy 5 câu hỏi trong tệp cauhoi02-ktracnghiem.tex

\loadrandomproblems[ktracnghiem]{5}{cauhoi02-ktracnghiem}

Tương ứng lệnh này dùng các câu hỏi được gọi vào bộ nhớ trên như sau:Tùy chọn [baithi] của dethi

\begin{vnmultiplechoice}[keycolumns=3]

\foreachproblem[ktracnghiem]{\thisproblem}

\end{vnmultiplechoice}

Tùy chọn [baitap]

\showproblems

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

\foreachproblem[ktracnghiem]{\item\label{prob:\thisproblemlabel}\thisproblem}

\end{enumerate}

2. Lệnh lấy một số ngẫu nhiên câu hỏi trong tệp dữ liệu mà không cần đưa qua bộ nhớ, ví dụ lấy4 câu hỏi từ tệp 01cauhoi-toan-2017:Trong tùy chọn [baithi]

\begin{vnmultiplechoice}[keycolumns=3]

\selectrandomly{01cauhoi-toan-2017}{4}

\end{vnmultiplechoice}

Trong tùy chọn [baitap]

\showproblems

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

\selectrandomly{01cauhoi-toan-2017}{4}

\end{enumerate}

Page 42: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

18.3. Lấy toàn bộ câu hỏi và lấy đồng thời trong nhiều tệp

1. Lấy toàn bộ câu hỏi trong tệp, tùy chọn [baithi]

\begin{vnmultiplechoice}[keycolumns=3]

\selectallproblems{01cauhoi-toan-2017}

\end{vnmultiplechoice}

Tùy chọn [baitap]

\showproblems

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

\selectallproblems{01cauhoi-toan-2017}

\end{enumerate}

2. Những lệnh trên có thể lấy câu hỏi trong nhiều tệp khác nhau một lúc. xem trong tệpvidu02-tracnghiem-nhan-cauhoi.tex

Nhưng chú ý không đồng thời lấy hai lần câu hỏi có cùng một nhãn, mỗi câu hỏi chỉ lấy vàobộ nhớ 1 lần, nếu nhiều hơn chương trình sẽ bóa lỗi.

19. Các phương án đầu ra của đề thi trắc nghiệm

Đầu ra của bài thi trắc nghiệm là khác nhau nếu ta đặt đúng.

1. \NumberOfVersions{3} số bản bài thi in ra chọn cùng \ShortKey.

2. \ShortKey in ra các đáp án rút gọn của bài thi.

3. \NoKey không in ra một đáp án nào.

4. \OneKey in ra một đáp kèm câu hỏi và đánh dấu phương án đúng.

5. \ContinuousNumbering trong đề thi có nhiều khối khác nhau số thứ tự câu hỏi được đánhliên tục.

6. \motphieuthi in ra kèm với đáp án là một bản phiếu thi.

7. \nhieuphieuthi in ra kèm theo mỗi đề một phiếu thi.

8. \khoanh{...} khoanh nhãn đáp án và phiếu thi có thể dùng \cbox, \fbox hoặc \Ovalboxcùng gói lệnh \usepackage{fancybox} và \cornersize*{3.6mm}.

9. \daungoac{}{.} dấu quanh phương án trả lời: {(}{)};{}{.};{}{)}

10. \chuphuongan{\alph} ký tự cho các phương án.

11. \chuphuongan{\arabic} \Roman,\roman kể cả số cho các phương án.

12. \chucauhoi{Câu} Chữ trước các số câu hỏi.

13. \mauchu{red} mầu chữ câu hỏi và đáp án.

14. \NoRearrange không tráo đổi câu hỏi.

Page 43: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

15. \lietkedatrue đáp án gồm danh sách các phương án đúng.

16. \coloigiai dùng cho đáp án liệt kê đánh dấu phương án kèm theo lời giải bằng lệnh\loigiai{...............}

17. \Fullpages định dạng trang đề thi, muốn định dạng lại đặt lệnh sau đây sau lệnh này:

\textheight 24truecm

\textwidth 18truecm

18. Khoảng các giữa các phương án được thay đổi lệnh sau để phù hợp, hiện nay mặc địnhtrong tùy chọn [baithi] là \setlength{\shortitemwidth}{0.20\textwidth}, tùy chọn [baitap] là\setlength{\shortitemwidth}{0.15\textwidth}.

19. Khoảng cách giữa các dòng được điều khiển bằng lệnh sau và mặc định là\setlength{\baselineskip}{12truept}

20. keycolumns=3 đặt số cột đáp án và phiếu thi đồng bộ với số câu hỏi.

21. \pageref{LastPage} là số trang bài thi. Một số trường hợp số trang này tính không đúng,chỉ đúng khi có một trang đáp án hoặc đồng thời có một phiếu thi.

22. \soanthao dùng cho khi nhập câu hỏi, lệnh này không đảo đề và các phương án và chỉchạy một bản đề thi để cho nhanh khi đang soạn câu hỏi.

23. Bài thi in hai cột với tùy chọn \twocolumn:\documentclass[11pt,twocolumn]{vieexamdesign}

Đặt khoảng cách giữa hai cột \setlength{\columnsep}{1cm}

24. Trong [baithi] có tùy chọn \documentclass[11pt, draft]{vieexamdesign}

có một trang đầu các nhãn câu hỏi.

25. Trong [baitap] có tùy chọn \documentclass[11pt, draft]{article}

cho đáp án đánh dấu vuông trên phương án đúng của câu hỏi.

26. Trong một bài thi có thể có những câu hỏi chỉ có 2 phương án, 3 phương án cùng với4, 5 phương án đều được. Tất nhiên phải có một phương án đúng: Hai phương án cũng có\haipa, \haipak và baphương án có \bapa, \bapak, \bapab, \bapat và 5 phương án cũng cónhư vậy: tệp ví dụ: vidu02-tracnghiem-nhom-cauhoi.tex.

27. Trong một bài thi có thể nhóm các câu hỏi trong một chủ đề mà các câu hỏi của chủ đềđó không tráo đi chỗ khác chủ đề. trong tệp vidu02-tracnghiem.tex hai chủ đề: I. Câu hỏi dễ và II.Câu hỏi khó không tráo cho nhau được. Điển hình là bài thi tiếng Anh: 08de-mh_anh_k17.tex cókhối câu hỏi khác nhau không thể đảo được. Tóm lại, trong môi trường

\begin{multiplechoice}[title={\bf I. Các câu hỏi dễ}, keycolumns=3]%

...............................

\end{multiplechoice}

các câu hỏi không chạy ra ngoài. Ngoài ra còn khối môi trường tương tự di chuyển cả khối:

Page 44: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\begin{multiplechoice}[title={\bf I. Các câu hỏi khó}, keycolumns=3]%

...............................

\begin{block}

.........................

\end{block}

\end{multiplechoice}

Ví dụ có ở trong tệp vidu02-tracnghiem-nhom-cauhoi.tex.

28. Tráo các phương án trong tùy chọn [baitap] cũng tương tự như trong tùy chọn [baithi].

29. Có thể làm các thư mục ở phía trong thư mục đang chứa tệp TeX của đề thi. Ví dụ tacó thể làm các thư mục /hinhhoc/; /daiso/;... để chứa các tệp câu hỏi theo cùng loại. Giả sử tacó tệp câu hỏi cauhoi-toan-2009a.tex trong thu mục phía trong ./cauhoidaiso/ thì các lời gọithực hiện như\selectrandomly{./cauhoidaiso/cauhoi-toan-2009a.tex}{20}

Dấu ./ đại diện cho thư mục trước đó.

30. Lệnh \khaibao đưa vào ở đầu thì phiếu trả lời có phần khai phiếu trả lời ngắn gọn. Mặcđịnh là những ô khai báo mẫu BGD&ĐT.

31. Làm đề thi 10 phút hoặc 15 phút, số câu hỏi ít ta in luôn phiếu trả lời ở cuối ta thực hiện:Phần kết thúc đề thi không có phiếu thi đi cùng thì đưa vào môi trường

\begin{examclosing}

\centerline{-- HẾT --}

\end{examclosing}

Còn không có khối này sẽ in liền phiếu trả lời trắc nghiệm.

32. Khi dữ liệu đã lớn thì ta muốn lấy câu hỏi vào không có những câu hỏi năm trước đãdùng?

• Bắt đầu năm học từ tháng nào \SetStartMonth{<n>}, <n> là số tương ứng 1-tháng một,2-tháng hai, ... mặc định n=9.Sau đó đặt lệnh \SetStartMonth

• Bắt đầu năm \SetStartYear{2014} và đặt \PSNrandseed{\GetStartYear}

• Danh sách đã dùng làm đề thi được ghi vào tệp: dadung.tex\ExcludePreviousFile[3]{dadung.tex} Ghi lại câu hỏi đã dùng trong [3] năm. Ví dụ dùng

\SetStartYear{2013}

\PSNrandseed{\GetStartYear}

\ExcludePreviousFile[3]{dadung.tex}

và thay 2013 bằng 2014 cho danh sách trong tệp dadung.tex

\previousproblem{dtracnghiem:b03}{dtn}{2013}

\previousproblem{dtracnghiem:b20}{dtn}{2013}

\previousproblem{dtracnghiem:b05}{dtn}{2013}

\previousproblem{dtracnghiem:b16}{dtn}{2013}

\previousproblem{dtracnghiem:b02}{dtn}{2013}

Page 45: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\previousproblem{dtracnghiem:b12}{dtn}{2013}

\previousproblem{dtracnghiem:b13}{dtn}{2013}

\previousproblem{dtracnghiem:b04}{dtn}{2013}

\previousproblem{dtracnghiem:b18}{dtn}{2013}

\previousproblem{dtracnghiem:b06}{dtn}{2013}

\previousproblem{dtracnghiem:b10}{dtn}{2014}

\previousproblem{dtracnghiem:b01}{dtn}{2014}

\previousproblem{dtracnghiem:b11}{dtn}{2014}

\previousproblem{dtracnghiem:b07}{dtn}{2014}

\previousproblem{dtracnghiem:b17}{dtn}{2014}

\previousproblem{dtracnghiem:b08}{dtn}{2014}

\previousproblem{dtracnghiem:b19}{dtn}{2014}

\previousproblem{dtracnghiem:b15}{dtn}{2014}

\previousproblem{dtracnghiem:b14}{dtn}{2014}

\previousproblem{dtracnghiem:b09}{dtn}{2014}

Như vậy lấy hai 2 năm khác nhau chọn câu hỏi hoàn toàn khác nhau.

20. Cài đặt gói lệnh dethi.sty vào hệ thống MiKTeX

Để dùng dethi.sty khắp nơi không cần chép theo ta thực hiện các bước sau đây:

Bước 1. Tạo thư mục dethi trong thư mục của MiKTeX 2.9:C:\Program Files\MiKTeX2.9\tex\latex\dethi

Bước 2. Chép các tệp sau đây vào thư mục đó: (Hình 2)

vieexamdesign.cls

dethi.sty

baitap.sty

baithi.sty

centerpage.sty

titledot.sty

shortlst.sty

lastpage.sty

multicol.sty

nonfloat.sty

picinpar.sty

substr.sty Hình 2: Thư mục dethi

Bước 3. Mở chương trình đặt của MiKTeX:(Hình 3)All apps (hoặc Program File) -->MiKTeX 2.9-->Settings (Admin)

Bước 4. Nhấn vào nút [refresh FNDB] và sau đó đóng lại là xong (Hình 3).

Page 46: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Sau bước này ta dùng gói lệnh này ở bất cứ đâu trong máy tính, không cần chép theo gói lệnh.

Hình 3: Đồng bộ gói lệnh dethi

Page 47: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

PHẦN IV. NHỮNG GÓI LỆNH QUAN TRỌNG CÓ SỬ DỤNG

A. Gói lệnh ifthen.sty

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ònngượ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 sovớ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 lẻ 47.

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

Nguyễn Thu Hồng

Page 48: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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 \min nhỏ hơn \horiz và \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ànhchuyể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ị true hoặc false

\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 \ifthenelse và 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 quacá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 haicột của văn bản mỗi cột có \paperwidth>15 và ở 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ệnh ifthen là sự chuyển đổi giữa hai cách viết khác nhaucủ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 \USUK sẽ 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.

Page 49: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

B. Gói lệnh picinpar.sty

Gói lệnh pincipar của Friedhelm Sowa cho phép một cửa sổ được đưa vào giữa đoạn văn bản.Môi trường cơ bản của gói lệnh này là window và có hai môi trường khác là figwindow, tabwindow.Chú ý môi trường figwindow và môi trường figure với một số môi trường khác cho ảnh hoặc đồthị nhiều khi thứ tự lần lượt được xếp không đúng. Công thức chung là

\begin{window}[<số dòng>, <căn lề>, <văn bản>, <chú thích>]

<vă bản bên cạnh>

\end{window}

<số dòng> Số dòng của đoạn mà cửa sổ bắt đầu xuất hiện.

<căn lề> Căn văn bản trong cửa sổ (l mặc định căn trái, c căn vào giữa và r căn bên phải).

<văn bản> Văn bản muốn đưa vào cửa sổ

<chú thích> Giải thích văn bản trong cửa sổ, lựa chọn này là các tiêu đề cho hai môi trườngfigwindow và tabwindow

Ví dụ sau mô tả đưa hình vào bên cạch văn bản.

\baitracnghiem{t2017:b01}{%

Đường cong trong hình bên là đồ thị của một hàm số trong

\begin{window}[0,r,{

\hspace*{1cm}\includegraphics[scale=0.6]{toan01}\hspace*{1cm}},{\label{fig:b01}}]

bốn hàm số được liệt kê ở bốn phương án $A, B, C, D$ dưới

đây. Hỏi hàm số đó là hàm số nào ?

\end{window}

}{

\datcot[4]

\bonpa

{\sai{$y=-x^2+x-1$.}}

{\sai{$y=-x^3+3x+1$.}}

{\dung{$y=x^3-3x+1$.}}

{\sai {$y=x^4-x^2+1$.}}

}}

1. Đường cong trong hình bên là đồ thị của một hàm số trongbốn hàm số được liệt kê ở bốn phương án A, B, C, D dưới đây. Hỏihàm số đó là hàm số nào ?

A. y = x3 − 3x + 1.B. y = x4 − x2 + 1.C. y = −x2 + x− 1.D. y = −x3 + 3x + 1.

Môi trường figwindow và tabwindow có đánh số hình bên dưới

Page 50: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\begin{figwindow}[<số dòng>, <căn lề>, <văn bản>, <chú thích>]

<vă bản bên cạnh>

\end{figwindow}

Trong ví dụ sau ta dùng lệnh \shortstack để đặt kí tự trên một ký tự khác.

7 8

\begin{window}[1,c,{

\fbox{\shortstack{H\\ a \\ y}}},{}]

Con sóng dưới lòng sâu \\

Con sóng trên mặt nước \\

Ôi con sóng nhớ bờ \\

Ngày đêm không ngủ được\\

\end{window}

: 2

Con sóng dưới lòng sâuCon sóng trên mặtÔi con sóng nhớNgày đêm không

Hay

nướcbờngủ được

C. 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 trong môi trườngenumerate, itemmize, description. Gói lệnh này không cùng với gói lệnh enumerate.sty, khidùng chung sẽ báo lỗi, trong nó đã có đầy đủ các môi trường danh sách chuẩn rồi, tôi dùnggói lệnh làm nhãn và điều khiển các câ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ùngmôi trường có 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òng sát nhau hơn.\setlist{nolistsep} tất cả các khoảng cách trong môi trường danh sách đều cho bằng 0. Dùnglệnh này để kéo sát các câu hỏi trắc nghiệm sát nhau.

Page 51: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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ượng bao nhiêu so vớimép trái tài liệu cho ở phía bên phải, có thể cho bằng 0pt, 2truecm, ...

(b) leftmargin=* Hoàn toàn tương tự như trên để nhãn lùi vào cho lề trái là 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ãnlabel={\bf Câu \arabic*.\ } thêm từ vào trước số. Ứng dụ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à 13 thì số 5 và 1 thẳnghà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ốt khi đề thi có nhiềuphần.

(f) lstart=8 Bắt đầu đánh số từ 8, mặc định bao giờ cũng đánh số từ 1 nế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ùng widest=000

Ta đã dùng

\setlist{noitemsep}

\setlist{nolistsep}

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

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

D. 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àmcá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ôi trường và cả ngoài môitrườ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ữ.

Page 52: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

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}

E. Gói lệnh float.sty

E.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ệnhnày tạo ra môi trường Định lý, Mệnh đề, Bổ đề, Định nghĩa, ...Ta chú ý là trước lệnh này thường cólệnh \theoremstyle{...} để điều khiển nội dung in nghiêng hoặc không nghiêng trong các môitrườ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ươngtrì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ình chỉ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ích ngoài khung và ở phíadưới.

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

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

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ể;

Page 53: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

Program E.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;

}

• 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ường hình và bảng tathườ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}

E.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.2ta cũng có thể đổi tên như ví du trên đặt \floatname{Program}{Chương trình}

Chương trình E.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;

}

Page 54: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

2. \floatplacement Mặc định hình được chỉ ra khi có tùy chọn. Nếu toàn bài đặt chú thíchmộ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ại cho bảng đóngkhung

\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\\ \hline

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

\end{tabular} \end{center}

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

\label{table1}}

\end{table}

n(

n0

) (n1

) (n2

) (n3

) (n4

) (n5

) (n6

) (n7

)0 11 1 12 1 2 13 1 3 3 14 1 4 6 4 15 1 5 10 10 5 16 1 6 15 20 15 6 17 1 7 21 35 35 21 7 1

Bảng 3: 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ách cá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

E.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ăng thêm khả năng,ví dụ thêm tùy chọn cố định [H], dùng

Page 55: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\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}

\caption{Dùng graphicx}\label{fig:}

\end{figure}

Hình 4: 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ụ E.1 Đây là ví dụ hay

A2 = B2 + C2

F. Gói lệnh nonfloat.sty

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

Page 56: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

\begin{figure}[!ht]

\centering

\includegraphics[height=2cm,width=3cm]{*}

\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 đầu trang sau hoặc về cuốibài. Nhiều lớp hoặc gói lệnh không dùng chế độ động này, gói lệnh nonfloat.sty đáp ứng yêu cầunày, nhưng không dùng được môi trường table và figure nữa, mà phải thay đổi một chút. Đánglẽ 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}%

\figcaption{Figure Caption}%

\label{fig:input}%

\end{minipage}

G. 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ực hiện có thể in câuhỏi riêng và trả lời riêng, tôi đã hướng dẫn làm sách theo các chương. Trang web của tôi có bàiriêng về gói lệnh này. Bạn tham khảo nguyên bản tại tại địa chỉwww.ctan.org/tex-archive/macros/latex/contrib/answers/

Page 57: DETHI.STY 3.1 ĐÀNH D—NG CÁC LO—I ĐŠ THI VÀ BÀI …. \usepackage[baitap]{dethi} vîi c u trúc làm bài thi ho c bài t“p trong lîp article.cls, book.cls,...có th”

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

2. probsoln.sty Gói lệnh tao ra đề thi mà tôi đã sử dụng để làm ra gói lệnh này. Nguyênbả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ệ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. Chỉ dùng làm đề độc lập, tuy rất mạnh và đãđược sử dụng nhiều. Gói lệnh đã được nói trong trang web của tôi và kèm vào với Chương trìnhVieTeX.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] Jason Alexander, The examdesign classhttp://www.ctan.org/tex-archive/macros/latex/contrib/examdesign

[4] Nguyễn Hữu Điển, Gói lệnh dethi.sty 2.0 làm đề thi trắc nghiệmhttps://nhdien.wordpress.com/2016/09/14/goi-lenh-dethi-sty-2-0-lam-de-thi-trac-nghiem/

[5] Nguyễn Hữu Điển, lamdethi.sty 1.0 gói lệnh mới làm đề thi và bài tậphttps://nhdien.wordpress.com/2010/01/20/lamdethi.sty 1.0 gói lệnh mới làm đề thi và bàitập

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