先學 iffalse 的語法
......
\newif\ifshowanswer
......
\begin{document}
\showanswertrue
\ifshowanswer
A: 如果用 showanswertrue 就顯示這行
\else
B: 如果用 showanswerfalse 或是都不加, 就顯示這行
\fi
\end{document}
\newif\ifshowanswer 設定新的 if 指令
\showanswertrue 在文章開頭加入這行, 就會顯示出A行, 否則顯示B行。
語法很簡單, 不過因為我們需要的是不印出答案時是只有格子或編號的樣式, 並且要不斷重複使用, 所以我們打包它。
......
\usepackage{multicol}
\usepackage{multirow}
\renewcommand{\multirowsetup}{\centering} %合併表格後, 內容水平且垂直置中
\renewcommand\arraystretch{1.2}%調整表格內行高
\newif\ifshowanswer
\newcommand{\ansis}[1]{
\ifshowanswer
\multirow{3}{\linewidth} {\large #1}
\else
\multirow{3}{\linewidth} {\mbox{}}
\fi }
......
\begin{document}
\showanswertrue
\begin{enumerate}
\item 填充題
%\hspace{-1cm}
\begin{tabularx}{\linewidth}{|X|X|X|X|X|}
\hline
\no. \ansis{ABC} &\no. \ansis{$\frac{3}{2}$} &\no. \ansis{$3$} \vspace*{1.5cm} \\
\hline
\no. \ansis{$2\pi$} &\no. \ansis{$\sqrt[3]{5}$} &\mbox{} \ansis{\mbox{}} \vspace*{1.5cm} \\
\hline
\end{tabularx}
\end{enumerate}
\end{document}
\usepackage{multicol}
\usepackage{multirow}
\renewcommand{\multirowsetup}{\centering} %合併表格後, 內容水平且垂直置中
\renewcommand\arraystretch{1.2}%調整表格內行高
這四行調整表格設定, 為了將答案在表格內水平並垂直置中, 我們要用合併表格的方式處理。
\multirow{3}{\linewidth} {\large #1} 合併表格的語法是 \multirow{列數}{表格寬度}{文字}, \large 用來把文字放大。表格中就用 \ansis{答案} 來填入解答。
所以, \showanswertrue 就會顯示答案, \showanswerfalse 就是顯示空格。
範例檔只是要讓各位看到差別所以複製了兩個同樣的內容, 實際使用當然只要寫一次就可以囉。
article_用latex做數學考卷6-2.tex
article_用latex做數學考卷6-2.pdf
沒有留言:
張貼留言