写入文件时使用了\detokenize导致写入了意外的空格

发布于 2024-07-21 22:43:58

我定义了一个新命令
image.png
image.png
由于使用了detokenize,写入到文件时意外地出现了空格,导致语法高亮无法正常显示
image.png

以下是我手动删除空格的语法高亮显示

\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}

查看更多

关注者
1
被浏览
443
1 个回答
鱼香肉丝没有鱼先生
脾气不好,别来惹我!!!

试试 \string

\newwrite\out
\immediate\openout\out=out.tex
\immediate\write\out{%
  \string\pageref{myref:\mynum}
}
\immediate\closeout\out

得到

\pageref{myref:1} 

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览