\usepackage[margin=1in]{geometry} \usepackage{environ} % 加了这个再\def\myitem就不报错了 \usepackage{extarrows} \usepackage{amssymb, amsfonts, amstext, amsmath, amsopn, amsthm} % \usepackage{mathrsfs} % \mathscr \usepackage{enumitem} \usepackage{setspace} \usepackage{color} \usepackage{mylatex} \usepackage{diagbox} \usepackage{makecell} \usepackage{mathtools} % \coloneqq 在好几个包里都出现了,不知道引入哪个最好 % \usepackage{floatflt} % \usepackage{wrapfig} \usepackage{picinpar} % \usepackage{cutwin} % https://www.zhihu.com/question/26837705 试了好几个,发现能在列表和证明环境中完美使用的只有picinpar \usepackage{amsrefs} \usepackage{hyperref} \usepackage{subfiles} \setlist[1]{label=\arabic{enumi}., listparindent=\parindent} \setlist[2]{label=(\arabic{enumii}), listparindent=\parindent} \definecolor{shadecolor}{RGB}{204,232,207} \def\myitem#1#2{ \item \textbf{#1} \begin{enumerate} #2 \end{enumerate} } \ExplSyntaxOn \cs_set:Nn \rawquestionandanswer:Nnnn {% \begin{shaded}% \ifstrequal{#2}{-}{}{\format_item:Nn #1{#2}} #3% \end{shaded}% \begin{zhongwen}% #4% \end{zhongwen}% } \cs_set:Nn \format_item:Nn { \IfBlankTF{#2}{ \item }{ \item[#1{#2}] } } \cs_set:Nn \simple_format:n {R#1.} \newcommand{\questionandanswer}[3][]{% \rawquestionandanswer:Nnnn \simple_format:n {#1}{#2}{#3} } \ExplSyntaxOff % 成功实现了,而且下划线也没问题!!!似乎是函数式程序设计,或者装饰器模式?