{{template_exam_A_gbk.synctex.gz(uploading...)}}123(https://pics.latexstudio.net/uploads/20241219/1aee48b17e17eb10f6930de016a3302f.png)
请提供模板链接或者压缩包文件,同时建议你检查TeXStudio
的配置,是否使用了正确的编译命令。
下面的问题都将基于该链接下载的压缩文件。
解压之可以得到一份117行的template_exam_A_utf8.tex
文件
%
% 说明:使用 xelatex 编译,在 texlive 2017 中编译通过
%
\documentclass[UTF8]{ctexart}
\usepackage[a4paper,top=2.0cm,bottom=2.5cm,left=2.8cm,right=2.8cm,%
includehead,includefoot]{geometry}
\usepackage{amsmath,amssymb,amsfonts,bm}
\usepackage{graphicx,xcolor}
\usepackage[xetex,colorlinks,linkcolor=blue]{hyperref}
\usepackage{makecell,interfaces-makecell}
\usepackage{calc}
\renewcommand{\baselinestretch}{1.3}
%%%%% ===== 自定义命令 ===========================================================
\newcommand{\ul}[1]{\underline{\makebox[#1]{}}}
\newcommand{\ull}[2]{\underline{\makebox[#1]{\kaishu #2}}}
\newcommand{\ulaa}[1]{\underline{\makebox[3em]{\Large\textcircled{\normalsize #1}}}}
\newcommand{\dis}{\displaystyle}
\pagestyle{plain}
\begin{document}
\zihao{-4} % 小四号字体
%%%%% ===== 试卷头 ===============================================================
\begin{center}
{\heiti\LARGE 华东师范大学期末试卷 (A)} \bigskip
$20xx-20xx$ 学年第 X 学期
\bigskip\bigskip
%%%%% ===== 课程信息,包括课程名,课程性质等
\setlength{\tabcolsep}{1mm}
\renewcommand{\arraystretch}{1.4}
\begin{tabular}{p{7.5cm}p{6.5cm}}
课程名称:\ull{4.0cm}{\zihao{4} 数~值~分~析} & \\
学生姓名:\ul{4.0cm} &
学\hspace{10.5mm}号:\ul{4.0cm} \\
专\hspace{2em}业:\ull{4.0cm}{数学与应用数学} &
年级/班级:\ull{4.0cm}{20xx级} \\
课程性质:\ {\kaishu 专业X修} \\
\end{tabular}\smallskip
%%%%% ===== 得分表,其中 numexer 表示题号个数,这里设为 8,可根据实际需要修改,其他可以不用修改。
\newcounter{numexer}\setcounter{numexer}{8} % 题号个数,这里为 8
\newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
\newlength{\cellwidth}\setlength{\cellwidth}{\textwidth*\ratio{0.6pt}{\value{numexer} pt}}
\begin{tabular}{|*{\thenumcol}{c|}} \hline
\repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
& \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
\repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
\end{tabular}
\end{center}
\medskip
\noindent\dotfill
\medskip
\linespread{1.5}\selectfont
\noindent{\heiti 一、填充题} (每空 2 分,共 24 分)
\newcounter{forlist}
\begin{list}{\arabic{forlist}.}
{\setlength{\topsep}{2mm}
\setlength{\listparindent}{0pt}
\setlength{\labelsep}{5pt}
\setlength{\itemsep}{0.8em}
\setlength{\parsep}{5pt}
\usecounter{forlist}}
\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{1})_2$,
$(110)_2 = (\ulaa{2})_{10}$。
\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{3})_2$,
$(110)_2 = (\ulaa{4})_{10}$。
\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{5})_2$,
$(110)_2 = (\ulaa{6})_{10}$。
\end{list}
\newpage
\linespread{1.3}\selectfont
\begin{list}{\heiti\Chinese{forlist}、}
{\setlength{\topsep}{1mm}
\setlength{\listparindent}{0pt}
\setlength{\itemsep}{2em}
\setlength{\labelsep}{0pt}
\usecounter{forlist}
\setcounter{forlist}{1}}
\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。
\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。
\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。
\end{list}
\end{document}
按照文档说明: 使用xelatex
在TeXLive2017
下可以顺利编译。但当我们用TeXLive2024
在命令行下用xelatex
编译时却会发现得到如下错误,无法编译成功:
! Package etoolbox Error: \scr@load@hook undefined.
See the etoolbox package documentation for explanation.
Type H <return> for immediate help.
...
l.55 \renewrobustcmd*\scr@load@hook
[2]{%
?
通过反向检索该错误,我们不难发现这是因为interfaces-makecell
宏包因为过期在TeXLive2021
中已经正式弃用,这导致了下面的代码中的\repeatcell
失效:
\begin{tabular}{|*{\thenumcol}{c|}} \hline
\repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
& \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
\repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
\end{tabular}
参考了以下两个链接:
https://tex.stackexchange.com/questions/625226/alternative-to-repeatcell-from-the-interfaces-package-since-texlive-2021
https://tex.stackexchange.com/questions/297919/create-tabular-depending-on-counter
我简单封装了一个命令\scorebox
用于绘制得分框(不建议题号数量过大)
\ExplSyntaxOn
\NewDocumentCommand{\scorebox}{m}
{
\newcounter{numexer}\setcounter{numexer}{#1}
\newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
\dim_new:N \cellwidth
\fp_set:Nn \l_tmpa_fp { .6 * \textwidth / \value{numexer} }
\dim_set:Nn \cellwidth { \fp_to_dim:N \l_tmpa_fp }
\begin{tabular}{|*{\int_eval:n { #1 + 2 }}{c|}} \hline
\int_zero:N \g_tmpa_int
\prg_replicate:nn { #1 } {%
\int_gincr:N \g_tmpa_int \makebox[\cellwidth]{\zhnumber{\int_to_arabic:n { \g_tmpa_int }}} & } \makebox[.12\textwidth]{总分} & \makebox[.16\textwidth]{阅卷人签名}\\
\hline
\prg_replicate:nn { \int_eval:n { #1 + 1 } } {&}\\
\hline
\end{tabular}
}
\ExplSyntaxOff
至此..在TeXLive2024
下可以编译...
\documentclass[UTF8]{ctexart}
\usepackage[a4paper,top=2.0cm,bottom=2.5cm,left=2.8cm,right=2.8cm,includehead,includefoot]{geometry}
\usepackage{amsmath,amssymb,amsfonts,bm}
\usepackage{graphicx,xcolor}
\usepackage[xetex,colorlinks,linkcolor=blue]{hyperref}
\usepackage{makecell}
% \usepackage{interfaces-makecell}
\usepackage{calc}
\renewcommand{\baselinestretch}{1.3}
%%%%% ===== 自定义命令 ===========================================================
\newcommand{\ul}[1]{\underline{\makebox[#1]{}}}
\newcommand{\ull}[2]{\underline{\makebox[#1]{\kaishu #2}}}
\newcommand{\ulaa}[1]{\underline{\makebox[3em]{\Large\textcircled{\normalsize #1}}}}
\newcommand{\dis}{\displaystyle}
% https://tex.stackexchange.com/questions/625226/alternative-to-repeatcell-from-the-interfaces-package-since-texlive-2021
% https://tex.stackexchange.com/questions/297919/create-tabular-depending-on-counter
\ExplSyntaxOn
\NewDocumentCommand{\scorebox}{m}
{
\newcounter{numexer}\setcounter{numexer}{#1}
\newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
\dim_new:N \cellwidth
\fp_set:Nn \l_tmpa_fp { .6 * \textwidth / \value{numexer} }
\dim_set:Nn \cellwidth { \fp_to_dim:N \l_tmpa_fp }
\begin{tabular}{|*{\int_eval:n { #1 + 2 }}{c|}} \hline
\int_zero:N \g_tmpa_int
\prg_replicate:nn { #1 } {%
\int_gincr:N \g_tmpa_int \makebox[\cellwidth]{\zhnumber{\int_to_arabic:n { \g_tmpa_int }}} & } \makebox[.12\textwidth]{总分} & \makebox[.16\textwidth]{阅卷人签名}\\
\hline
\prg_replicate:nn { \int_eval:n { #1 + 1 } } {&}\\
\hline
\end{tabular}
}
\ExplSyntaxOff
\pagestyle{plain}
\begin{document}
\zihao{-4} % 小四号字体
%%%%% ===== 试卷头 ===============================================================
\begin{center}
{\heiti\LARGE 华东师范大学期末试卷 (A)} \bigskip
$20xx-20xx$ 学年第 X 学期
\bigskip\bigskip
%%%%% ===== 课程信息,包括课程名,课程性质等
\setlength{\tabcolsep}{1mm}
\renewcommand{\arraystretch}{1.4}
\begin{tabular}{p{7.5cm}p{6.5cm}}
课程名称:\ull{4.0cm}{\zihao{4} 数~值~分~析} & \\
学生姓名:\ul{4.0cm} &
学\hspace{10.5mm}号:\ul{4.0cm} \\
专\hspace{2em}业:\ull{4.0cm}{数学与应用数学} &
年级/班级:\ull{4.0cm}{20xx级} \\
课程性质:\ {\kaishu 专业X修} \\
\end{tabular}\smallskip
%%%%% ===== 得分表,其中 numexer 表示题号个数,这里设为 8,可根据实际需要修改,其他可以不用修改。
% \newcounter{numexer}\setcounter{numexer}{8} % 题号个数,这里为 8
% \newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
% \newlength{\cellwidth}\setlength{\cellwidth}{\textwidth*\ratio{0.6pt}{\value{numexer} pt}}
% \begin{tabular}{|*{\thenumcol}{c|}} \hline
% \repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
% & \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
% \repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
% \end{tabular}
%%%%%%%%%%%%%
\scorebox{8}
%%%%%%%%%%%%%
\end{center}
\medskip
\noindent\dotfill
\medskip
%%% The rest of the exercise...
OK,已经上传了