File này được viết ra để tự động hóa việc xây dựng đáp án của một đề thi môn xác suất thống kê, sử dụng thongke.dapan và mẫu đáp án hiện có trên github. Ưu điểm của việc này là giúp giảm bớt sai số trong tính toán và tiết kiệm được nhiều công sức
# Để cài 2 thư viện thongke và thongke.dapan, chạy câu lệnh sau (cần có devtool - cài tử CRAN) # devtools::install_github("vungocbinh2009/thongke") # devtools::install_github("vungocbinh2009/thongke_dapan") library(thongke.dapan) library(thongke) # 3 thư viện còn lại có thể tải từ CRAN library(whisker) library(magrittr) library(stringr)
# Cài đặt seed random để có thể tái tạo lại đề khi cần. # Để lấy 1 số ngẫu nhiên làm seed, ta chạy hàm sau: # sample(x = 2147483647, size = 1) set.seed(123) # Biến này sẽ được chỉnh sửa sau. generate_pdf_file <- FALSE
Sau khi đã setup xong các packages, Các bạn hãy thực hiện các công việc sau tại mục này. - Nhập nội dung để thi - Sử dụng thư viện thongke để giải đề thi và knit xem đã đạt yêu chưa. - Sử dụng thư viện thongke.dapan để tạo đáp án. Mỗi đáp án cần gán vào 1 biến.
# Đặt tên các câu hỏi ở đây questions <- c("Câu 1", "Câu 2") %>% sprintf("\\textbf{%s}", .) # Thêm câu trả lời vào biến answer, theo đúng thứ tự câu hỏi trong biến question. answers <- c(answer_1, answer_2)
output_file <- "output.tex"
answer_title <- r"[ \begin{center} \textbf{\large Đáp án đề thi một môn học nào đó} Môn học: Một môn học nào đó - Mã lớp học: 123456 - Thời gian: Ngày tận thế. \end{center} ]"
answer_list_template <- readLines("https://raw.githubusercontent.com/vungocbinh2009/thongke.dapan/master/exam_template/answer_list_template.mustache") answer_template <- readLines("https://raw.githubusercontent.com/vungocbinh2009/thongke.dapan/master/exam_template/answer_template.mustache") rendered_answer_list <- NULL for(i in seq_along(questions)) { data <- list( question = questions[i], answer = answers[i] ) rendered_answer <- whisker.render(answer_template, data) rendered_answer <- str_replace_all(rendered_answer, "\n\t\t", "\n") rendered_answer <- str_replace_all(rendered_answer, "\n", "\n\t\t") rendered_answer_list <- c(rendered_answer_list, rendered_answer) } data <- list( answer_list = iteratelist(rendered_answer_list), answer_title = answer_title ) rendered_exam <- whisker.render(answer_list_template, data) writeLines(rendered_exam, output_file) # Compile latex file to pdf tools::texi2dvi(output_file, pdf = TRUE, clean = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.