官方解答

官方解答

我现在正在使用expl3,我想从文件中读取数据,并将它们存储在中,然后逐个comma list使用。comma list

我没有任何代码,我只知道exp13有这些功能,所以需要有人帮助我。

(我猜\seq_gset_from_clist:NN也许在将以下数据存储在之后会用到comma list。)

\begin{filecontents*}{\jobname.dat}
 1.23
 -3.78
 1.23
 -3.78
\end{filecontents*}

答案1

官方解答

打开一个读取流并逐行映射。

\begin{filecontents*}{\jobname.dat}
 1.23
 -3.78
 1.23
 -3.78
\end{filecontents*}

\documentclass{article}
\usepackage{expl3}

\ExplSyntaxOn
\ior_new:N \g_zongxian_readfile_stream
\ior_open:Nn \g_zongxian_readfile_stream { \jobname.dat }
\clist_clear:N \l_tmpa_clist
\ior_map_inline:Nn \g_zongxian_readfile_stream
 { \clist_put_right:Nn \l_tmpa_clist { #1 } }

\clist_show:N \l_tmpa_clist

\stop

非官方答案

设置\endlinechar中没有真正的界面expl3

\begin{filecontents*}{\jobname.dat}
 1.23
 -3.78
 1.23
 -3.78
\end{filecontents*}

\documentclass{article}
\usepackage{expl3}

\ExplSyntaxOn

\tl_set_from_file:Nnn \l_tmpa_tl { \endlinechar=`, } { \jobname.dat }
\clist_set:NV \l_tmpa_clist \l_tmpa_tl

\clist_show:N \l_tmpa_clist

\stop

两种方法在控制台上的输出

The comma list \l_tmpa_clist contains the items (without outer braces):
>  {1.23}
>  {-3.78}
>  {1.23}
>  {-3.78}.

相关内容