我定义了一个新命令

由于使用了detokenize,写入到文件时意外地出现了空格,导致语法高亮无法正常显示
以下是我手动删除空格的语法高亮显示
\begin {multicols*}{3}\noindent 
\hyperlink {gainian:1}{1\songti 名词—\pageref {gainian:1}}\\
\hyperlink {gainian:2}{2\songti 动词—\pageref {gainian:2}}\\
\end {multicols*}\NewDocumentCommand{\Gai@qv@Nian@qv}{m}{%
    \stepcounter{gainian}%递增计数器 
    \label{gainian:\arabic{gainian}}
    \textbf{\songti\arabic{gainian}概念:#1}
    \immediate\write\gainianfile{%
\detokenize{\hyperlink}\string{\detokenize{gainian:}\arabic{gainian}\string}\string{\arabic{gainian}\detokenize{\songti#1—\pageref}\string{\detokenize{gainian:}\arabic{gainian}\string}\string}\detokenize{\\}}%写入文件
}
\begin{document}
\tableofcontents
\chapter{第一章}
\section{第一节}
\makeatletter
\Gai@qv@Nian@qv{名词}
\clearpage
\Gai@qv@Nian@qv{动词}
\makeatother
\end{document}