使用mhchem宏包以后,为什么无法编译?

发布于 2022-03-17 12:37:36

求助:使用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,让它两边都能留空就更好了)

查看更多

关注者
0
被浏览
886
1210
1210 2022-03-17
道阻且长,行则将至,行而不辍,未来可期

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模板的最新版,然后在再试试

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览