如何去除 csvsimple 读取的数字的百分比字符?

如何去除 csvsimple 读取的数字的百分比字符?

我有一个 CSV 表,其中包含一些百分比数字,其中百分比字符明确写在 CSV 数据中(无法更改)。有没有(LaTeX3)方法可以删除百分比字符和前面的空格以仅打印数字(并使用 ist in \num)?

\documentclass{article}
\begin{filecontents*}{\jobname.csv}
a;b;5 %
c;d;87,58 %
e;f;100,0 %
\end{filecontents*}

\usepackage{csvsimple}

\begin{document}
\noindent
\csvreader[no head, respect percent, separator=semicolon]{\jobname.csv}{}{%
   percent of \csvcoli (\csvcoliii)\\
}
\end{document}

我已经完成了一半并删除了百分比字符,但是我仍无法删除空格……

\documentclass{article}
\begin{filecontents*}{\jobname.csv}
a;b;5 %
c;d;87,58 %
e;f;100,0 %
\end{filecontents*}

\usepackage{xparse,csvsimple}

\ExplSyntaxOn
\group_begin:
\catcode`\%=12
   \cs_new:Nn \scores_strip_percent_and_use:n {
      \tl_set:Nx \l_tmpa_tl {#1}
      \tl_show:N \l_tmpa_tl
      \tl_replace_once:Nnn \l_tmpa_tl { % } { }
      \tl_use:N \l_tmpa_tl
   }
\group_end:
\NewDocumentCommand { \printCSV } { } {
   \csvreader[no~head, respect~percent, separator=semicolon]{\jobname.csv}{}{
      percent~of~\csvcoli
      \c_space_tl
      (\scores_strip_percent_and_use:n { \csvcoliii }) \\
   }
}
\ExplSyntaxOff

\begin{document}
\noindent\printCSV
\end{document}

答案1

\regex_replace_once:nnN简单:意思是“在标记列表的末尾\s*\%\Z跟着一串空格。%

\documentclass{article}
\begin{filecontents*}{\jobname.csv}
a;b;5 %
c;d;87,58 %
e;f;100,0 %
\end{filecontents*}

\usepackage{xparse,csvsimple}

\ExplSyntaxOn

\NewDocumentCommand{\striptrailingpercent}{m}
 {
  \tl_set:Nx \l_tmpa_tl { #1 }
  \regex_replace_once:nnN { \s* \% \Z } {} \l_tmpa_tl
  \tl_use:N \l_tmpa_tl
 }

\ExplSyntaxOff

\NewDocumentCommand {\printCSV}{}{%
   \csvreader[no head, respect percent, separator=semicolon]{\jobname.csv}{}{%
     \noindent percent of \csvcoli\ (\striptrailingpercent{\csvcoliii}) \par
   }
}

\begin{document}

\printCSV

\end{document}

在此处输入图片描述

您可以将输出提供给\num

\documentclass{article}
\begin{filecontents*}{\jobname.csv}
a;b;5 %
c;d;87,58 %
e;f;100,0 %
\end{filecontents*}

\usepackage{xparse,csvsimple,siunitx}

\sisetup{group-separator=.} % just to show that \num has effect

\ExplSyntaxOn

\NewDocumentCommand{\striptrailingpercent}{m}
 {
  \tl_set:Nx \l_tmpa_tl { #1 }
  \regex_replace_once:nnN { \s* \% \Z } {} \l_tmpa_tl
  \num{\tl_use:N \l_tmpa_tl}
 }

\ExplSyntaxOff

\NewDocumentCommand {\printCSV}{}{%
   \csvreader[no head, respect percent, separator=semicolon]{\jobname.csv}{}{%
     \noindent percent of \csvcoli\ (\striptrailingpercent{\csvcoliii}) \par
   }
}

\begin{document}

\printCSV

\end{document}

在此处输入图片描述

相关内容