내 솔루션에서 추출된 다음 MWE를 고려하십시오.이 질문:
\begin{filecontents*}{demolist1.dat}
1,2,3
\end{filecontents*}
\begin{filecontents*}{demolist2.dat}
{1,0,2},{0,3},{1,1}
\end{filecontents*}
\documentclass{article}
\usepackage{catchfile}
\usepackage{pgffor}
\CatchFileDef{\mylist}{demolist1.dat}{}
\CatchFileDef{\mynestedlist}{demolist2.dat}{}
\begin{document}
\foreach \x in \mylist {
``\x'' \quad
}
\hrulefill
\foreach \x in \mynestedlist {
\foreach \y in \x {
``\y'' \quad
}
\par
}
\end{document}
그것은 생산한다
첫 번째 목록의 마지막 요소에 추가 공간이 있고 두 번째 목록의 마지막 요소가 축소된 점에 유의하세요.
각 목록의 마지막 요소가 다르게 처리되는 이유를 이해할 수 없습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있나요?
답변1
문제는 입력 파일의 끝 부분에 자동으로 암시되는 끝줄입니다.
출력을 더 명확하게 만들기 위해 가짜 공백을 모두 제거했습니다.
\begin{filecontents*}{\jobname1.dat}
1,2,3
\end{filecontents*}
\begin{filecontents*}{\jobname2.dat}
{1,0,2},{0,3},{1,1}
\end{filecontents*}
\documentclass{article}
\usepackage{catchfile}
\usepackage{pgffor}
\CatchFileDef{\mylist}{\jobname1.dat}{\endlinechar=-1 }
\CatchFileDef{\mynestedlist}{\jobname2.dat}{\endlinechar=-1 }
\begin{document}
\foreach \x in \mylist {``\x''\quad}
\hrulefill
\foreach \x in \mynestedlist {\foreach \y in \x {``\y''\quad}\par}
\end{document}