
我正在嘗試為學生創建一些練習。所以我們的想法是,如果解決方案計數器設定為 0,則使用一個命令,該命令使解決方案變為白色;如果計數器設定為 1,則顯示解決方案。
(此外,如果計數器設置為0,我創建了一個顯示方格紙(用於計算)的框,如果計數器設置為1,則顯示一個白色背景的框和解決方案;但我想暫時保持簡單,所以只需專注於命令)
這是該命令的一個最小工作範例:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\newcounter{wf}
\setcounter{wf}{1}
\newcommand{\whf}[1]{%
\ifnum\value{wf}=0%
\textit{#1}%
\else%
\textcolor{white}{\itshape #1}%
\fi%
}
\begin{document}
The following word is white sometimes: \whf{Test}, hope it works.
\end{document}
它運行得很好並且很好,但是:
現在我想對所有解決方案進行概述。所以我只想展示解決方案而不展示練習。我能期望的最好的結果是:「除了 \whf 命令中的內容之外什麼都不顯示」左右。
我現在已經創建了大量練習,我希望有一個解決方案
不必再進行每項練習
將解決方案緊湊地組合在一起,而不是分佈在許多頁面上
(獎勵)練習的數量(另一個計數器)與根據練習的解決方案一起顯示
所以我希望我的英語不是太差,對於冗長的描述感到抱歉。我希望您能理解我的問題並為我提供解決方案。
謝謝。
答案1
如果解決方案只是文字,不涉及 TeX 程式碼,您可以將解決方案寫入單獨的檔案。若要開啟文件,請使用
\newwrite\solfile
\immediate\openout\solfile\jobname Solutions.tex
\jobname
儲存目前主 TeX 檔案的名稱,因此XXXSolutions.tex
如果主檔案稱為 ,則包含解決方案的檔案將命名為XXX.tex
。
若要寫入文件,請使用
\immediate\write\solfile{...}
這會將大括號之間的內容寫入\solfile
。這些內容已擴展,因此您必須採取預防措施,確保正確的標記最終出現在文件中。
下面的程式碼放入檔案中,將產生包含單行的test.tex
文件testSolutions.tex
\solution {Test}
您可以透過定義巨集來格式化答案\solution
。
您的程式碼與檔案命令:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\newcounter{wf}
\setcounter{wf}{1}
\newwrite\solfile % <<<<<<<<<<<<<<<<<<<<<<
\immediate\openout\solfile\jobname Solutions.tex% <<<<<<<<<<<<<<<<<<<<<<
\newcommand{\whf}[1]{%
\ifnum\value{wf}=0%
\textit{#1}%
\else%
\textcolor{white}{\itshape #1}%
\fi%
\immediate\write\solfile{\noexpand\solution{#1}}% <<<<<<<<<<<<<<<<<<<<<<
}
\begin{document}
The following word is white sometimes: \whf{Test}, hope it works.
\end{document}