如何在生成的 .pdf_tex 文件中转义下划线?

如何在生成的 .pdf_tex 文件中转义下划线?

根据这个:https://tex.stackexchange.com/a/2107/41370 我必须使用 inkscape 生成一个 PDF 文件和一个相应的 .pdf_tex 文件。

由于我的原始 SVG 文件包含类图,它具有许多带有下划线的标识符(例如“size_t”),因此我收到许多错误。

当使用建议的声明来包含图形时,它显示:缺少 $ .... 该行:

    \put(0.00768156,0.29678743){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{+ prepareSpawns(parent : Task*, count : std::size_t)}}}%

生成的文件中的下划线如何替换?

编辑:使用 Inkscape 0.48.4 r9939

答案1

我尝试自己修复此问题,但最终需要以下方面的帮助:svg 包 \includesvg 在 sgv 中带有下划线,这让我可以为您提供以下解决方案:

  1. 定义自定义宏\escapeus(来自定义“转义下划线”环境
  2. 将命令包装\includesvg\escapeus命令中

前任:

% The custom \escapeus macro to escape underscores:
\makeatletter
    \DeclareRobustCommand*{\escapeus}[1]{%
        \begingroup\@activeus\scantokens{#1\endinput}\endgroup}
    \begingroup\lccode`\~=`\_\relax
        \lowercase{\endgroup\def\@activeus{\catcode`\_=\active \let~\_}}
\makeatother

\begin{figure}
    \centering % Make it look nice in the center
    % Wrap your \includesvg in the custom macro to escape the underscores
    \escapeus{\includesvg{mysvgfile}}
\end{figure}

相关内容