在 tex 中复制可粘贴的代码

在 tex 中复制可粘贴的代码

我有需要复制粘贴的 XML 代码。以下是代码

<joint name="joint1" type="continuous">
  <parent link="link1"/>
  <child link="link2"/>
  <origin xyz="5 3 0" rpy="0 0 0" />
</joint>

我已使用 accsup 使其可复制/粘贴,如下所示:

\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{listings}
\lstset{ 
upquote=true,
columns=fullflexible,
literate={\ }{{\copyablespace}}1
}

\usepackage[space=true]{accsupp}
% requires the latest version of package accsupp
\newcommand{\copyablespace}{
\BeginAccSupp{method=hex,ActualText=00A0}
\ %
\EndAccSupp{}
}

我是 LaTex 新手,不确定这里到底发生了什么。但是BeginAccSupp部分内容是将 pdf 中的每个空格替换为 3 个空格,当我复制粘贴时也是如此。

<joint   name="joint1"   type="continuous">
    <parent   link="link1"/>
    <child   link="link2"/>
    <origin   xyz="5   3   0"   rpy="0   0   0"   />
</joint>

我究竟做错了什么?

编辑 !:经过@Phelype Oleinik 的解决方案后,PDF 看起来很好,而且我复制/粘贴后的缩进也很好,但行之间的空格仍然相同

<joint   name="joint1"   type="continuous">
 <parent   link="link1"/>
 <child   link="link2"/>
 <origin   xyz="5   3   0"   rpy="0   0   0"   />
</joint>

编辑2:一个可行的破解方法(但不适用于字符串空格)是用制表符替换 中的空格{lstlisting}

因此 tex 中的代码如下所示:

<joint  name="joint1" type="continuous">
  <parent   link="link1"/>
  <child    link="link2"/>
  <origin   xyz="5 3 0" rpy="0 0 0" />
</joint>

复制/粘贴的代码如下所示:

<joint name="joint1"   type="continuous">
 <parent link="link1"/>
 <child link="link2"/>
 <origin xyz="5   3   0"   rpy="0   0   0"   />
</joint

但不确定是否要采用这种方法。

相关内容