求助:使用mhchem宏包以后,填空命令无法使用,且编译报错
使用模板:elegantbook、选择题模板:https://www.latexstudio.net/index.php/index/details/index/mid/2270.html(因为引入了elegantbook,所以使用了放在导言区的模板)(对其进行的修改:①\tk命令修改成了空的长度虽输入文字而变化{自己看着改的,可能改的有问题};②\kh命令,把原来的“()”改成了“【】”,并取消了原模板中括号中间的空格{这个应该没啥影响})
问题表现:使用mhchem宏包以后,填空命令无法使用,且编译报错
最小工作示例:https://pastebin.com/ep2ZeNrM
(为了方便,我把代码又贴在这里)
\documentclass[cn,12pt,green,fancy,chinesefont=founder,twocolumn]{elegantbook}
\punctstyle{kaiming}
\everymath{\displaystyle}
\usepackage{mhchem}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\pagestyle{empty}
\usepackage{ctex}
\usepackage{xcolor}
\usepackage{hlist}
\usepackage{enumerate}
\usepackage{ulem}
\usepackage{ifthen}
% 选择题的4个选项,使用一个命令根据选项内容长度自动排版
\newlength{\lab}
\newlength{\lb}
\newlength{\lc}
\newlength{\ld}
\newlength{\lhalf}
\newlength{\lquarter}
\newlength{\lmax}
\newcommand{\xx}[4]{%%%%%%%%%
\settowidth{\lab}{A.~#1~~~}
\settowidth{\lb}{B.~#2~~~}
\settowidth{\lc}{C.~#3~~~}
\settowidth{\ld}{D.~#4~~~}
\ifthenelse{\lengthtest{\lab > \lb}} {\setlength{\lmax}{\lab}} {\setlength{\lmax}{\lb}}
\ifthenelse{\lengthtest{\lmax < \lc}} {\setlength{\lmax}{\lc}} {}
\ifthenelse{\lengthtest{\lmax < \ld}} {\setlength{\lmax}{\ld}} {}
\setlength{\lhalf}{0.5\linewidth}
\setlength{\lquarter}{0.25\linewidth}
\ifthenelse{\lengthtest{\lmax > \lhalf}}
{%
\begin{hlist}[pre skip=0pt,item skip=0pt,,item offset={1.5em}, label=\Alpha {hlisti}.,pre label={}]1
\hitem #1
\hitem #2
\hitem #3
\hitem #4
\end{hlist}
} %%%
{%%
\ifthenelse{\lengthtest{\lmax > \lquarter}} %
{%
\begin{hlist}[pre skip=0pt,item skip=0pt,item offset={1.5em}, label=\Alpha {hlisti}.,pre label={}]2
\hitem #1
\hitem #2
\hitem #3
\hitem #4
\end{hlist}
}
{%
\begin{hlist}[\parskip=0pt,pre skip=0pt,item skip=0pt,item offset={1.5em}, label=\Alpha {hlisti}.,pre label={}]4
\hitem #1
\hitem #2
\hitem #3
\hitem #4
\end{hlist}
}}}
\newcommand{\tk}[2][ ]{\dashuline{\makebox[\width{#1}][c]{%
\ifanswer
\textcolor{red}{#2}%
\else
\phantom{#2}%
\fi}}}
\newcommand{\kh}[1]{\hfill【\ {{%
\ifanswer
{\makebox[0cm][c]{\textcolor{red}{#1}}}%
\else
\phantom{\makebox[0cm][c]{#1} }%
\fi}\ 】}}
\newif\ifanswer
\newcommand{\answer}[1]{\ifthenelse{\isodd{#1}}{\answertrue}{}}
\newcommand{\ty}[2]{\textcolor{blue}{\ {{%
\ifty
{%
(#1·#2)}%
\else
\hspace*{-1em}
\fi}\ }}}
\newif\ifty
\newcommand{\tiyuan}[1]{\ifthenelse{\isodd{#1}}{\tytrue}{}}
\setcounter{secnumdepth}{100}
\setcounter{tocdepth}{100}
% 本文档命令
\usepackage{array}
\newcommand{\ccr}[1]{\makecell{{\color{#1}\rule{1cm}{1cm}}}}
\definecolor{customcolor}{RGB}{32,178,170}
\colorlet{coverlinecolor}{customcolor}
% ################ 答案控制 ################
\answer{1}%%答案:1显示;0不显示
\tiyuan{1}%%题源:1显示;0不显示
% ################ _______ ################
\begin{document}
% \tableofcontents
% ################ 试题示例 ################
\begin{enumerate}
\item 年就开始你就看到\kh{A}
\xx{arg1}{arg2}{arg3}{arg4}
\item 年就开始你就看到\tk{你不会但是这里还是有很多东西}.
\item 年就开始你就看到\tk{A}.
\item \ty{2021}{西安一模}你我是不\kh{C}
\xx{那等我都不会}{那等我都不会}{那等我都不会}{那等我都不会}
\item 学习学习
\end{enumerate}
% ################ _______ ################
\end{document}
(弱弱说一句:如果有大佬能帮忙优化一下tk,让它两边都能留空就更好了)
tk问题:
导言区:
\usepackage{xeCJKfntef}
\xeCJKsetup{underline={format=\color{red},textformat=\color{red},skip=false}}
修改tk命令:
\newcommand{\tk}[1]{%
\ifanswer
\CJKunderline{#1}%
\else
\phantom{#1}%
\fi}
\newcommand{\kh}[1]{\hfill【\ {{%
\ifanswer
{\makebox[0.4cm][c]{\textcolor{red}{#1}}}%
\else
\phantom{\makebox[0.4cm][c]{#1} }%
\fi}\ 】}}
hk也改了下,
至于你说的mhchem宏包问题,这宏包没啥问题,
你可以使用下elegantbook模板的最新版,然后在再试试