Hacer que el archivo catch funcione con foreach de pgffor

Hacer que el archivo catch funcione con foreach de pgffor

Considere el siguiente MWE, extraído de mi solución paraesta pregunta:

\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}

produce

avance

Tenga en cuenta el espacio adicional en el último elemento de la primera lista y el colapso del último elemento de la segunda lista.

No puedo entender por qué el último elemento de cada lista se trata de manera diferente.

Alguna idea de como arreglar esto?

Respuesta1

El problema es la línea final implícita automáticamente al final de los archivos de entrada.

Eliminé todos los espacios falsos para que el resultado fuera más claro.

\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}

ingrese la descripción de la imagen aquí

información relacionada