我從 @DavidCarlisle 獲得了一個程式碼,它產生輸出 txt 文件,我想將所有輸出檔案放在 pgfplotstable 中。
所以我嘗試添加
\ifnum\the\filecount=1 \pgfplotstableread[col sep=comma]{data1.txt}{\main} \else {.........} \fi
但這只會給出一些奇怪的Omega並且\pgfplotstabletypeset[col sep=comma]{\main}
不起作用。
我該怎麼辦?
\documentclass[a4paper]{article}
\usepackage{pgfplotstable}
\newcount\filecount
\newwrite\cisout
\begin{document}
{
\endlinechar=\newlinechar%
\filecount=1 %
\def\aaa{file number \the\filecount}%
\loop%
\immediate\openout\cisout=data\the\filecount.txt %
\immediate\write\cisout{%
111, 222, \aaa
}%
\immediate\closeout\cisout %
\advance\filecount by 1 %
\ifnum\filecount<5 %
\ifnum\the\filecount=1 \pgfplotstableread[col sep=comma]{data1.txt}{\main} \else\fi
\repeat %
}%
\section{pgfplotstable Test - bad}
%\pgfplotstabletypeset[col sep=comma]{\main}
\dots and some bad Omegas above\dots
\section{input Test - good}
\input{data1.txt}
\input{data3.txt}
\end{document}
答案1
\ifnum\filecount=1
當計數器已經提前時,您正在執行此操作,因此\pgfplotstableread
永遠不會執行 的程式碼。
另外,即使你成功地執行了它,整個\loop
都是在一個組中,所以\main
在組的最後也會被忘記。
歐米茄的產生是因為\fi
沒有遵守%
。
這是一個工作代碼,儘管尚不清楚您的目標是什麼。
\documentclass[a4paper]{article}
\usepackage{pgfplotstable}
\newcount\filecount
\newwrite\cisout
\begin{document}
\filecount=1
\def\aaa{file number \the\filecount}%
\loop
\immediate\openout\cisout=data\the\filecount.txt
\immediate\write\cisout{%
111, 222, \aaa
}
\immediate\closeout\cisout
\ifnum\the\filecount=1 \pgfplotstableread[col sep=comma]{data1.txt}{\main}\fi
\advance\filecount by 1
\ifnum\filecount<5
\repeat
\section{pgfplotstable Test - bad}
\pgfplotstabletypeset[col sep=comma]{\main}
\section{input Test - good}
\input{data1.txt}
\input{data3.txt}
\end{document}
答案2
最終,這是您想要實現的目標嗎?
\documentclass[a4paper]{article}
\usepackage{pgfplotstable}
\newcount\filecount
\newwrite\cisout
\begin{document}
{
\filecount=0
\immediate\openout\cisout=data1.txt
\immediate\write\cisout{a, b, c}% write header
\loop\ifnum\filecount<5
\advance\filecount by 1
\immediate\write\cisout{111, 222, \the\filecount }%
\repeat% no \fi needed
\immediate\closeout\cisout
\pgfplotstableread[col sep=comma]{data1.txt}{\main}%
\pgfplotstabletypeset\main
\end{document}
該版本使用\foreach
.
\documentclass[a4paper]{article}
\usepackage{pgfplotstable}
\newwrite\cisout
\begin{document}
\immediate\openout\cisout=data1.txt
\immediate\write\cisout{a, b, c}% write header
\foreach \i in {1,..., 5}%
{\immediate\write\cisout{111, 222, \i }}%
\immediate\closeout\cisout
\pgfplotstableread[col sep=comma]{data1.txt}{\main}%
\pgfplotstabletypeset\main
\end{document}