我现在正在使用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}.