FATAL - too many open files

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


the-dust
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 6. Mai 2016, 13:23

FATAL - too many open files

Beitrag von the-dust »

Hallo,

ich habe ein Problem. Für mein der zeitiges Projekt benötige ich eine Menge an Bildern, die ich über eine Schlafe einbinde. Diese Bilder sind alle in einem Pfad ./inc/ und heißen hier mit Name. Das Einbinden funktioniert auch gut, doch ab einer Menge kommt der Fehler:

Sorry, but pdflatex.exe did not succeed. The log file hopefully contains the information to get MiKTeX going again:
C:/Users/Kiryl/AppData/Local/MiKTeX/2.9/miktex/log/pdflatex.log You may want to visit the MiKTeX project page, if you need help.

Process exited with error(s)


Die Log-Datei ist dabei die:

2016-05-06 13:18:58,124+0200 FATAL pdflatex - Too many open files: path="inc/BLues/BLues2.png"
2016-05-06 13:18:58,124+0200 FATAL pdflatex - Info: path="inc/BLues/BLues2.png"
2016-05-06 13:18:58,124+0200 FATAL pdflatex - Source: Libraries\MiKTeX\Core\internal.h
2016-05-06 13:18:58,124+0200 FATAL pdflatex - Line: 311
\documentclass[12pt,twoside,openleft]{book}
% Packages....
\newcommand{\stueck}[5]{
	% Include all Picture from root.
	\foreach \y in {1,...,50}{%
		\def\Pfad{./inc/#1/#1\y.png}
		\IfFileExists{\Pfad}{%
				\includegraphics[width=\textwidth, keepaspectratio, draft]{\Pfad}
			
			\ifthenelse{\not\equal{#2}{}}{%
				\ifthenelse{\equal{#2}{PB}}{}{%
					\vspace{#2}
				}
			}{}
		}{%
			\breakforeach
		}
	}
	\ifthenelse{\not\equal{#2}{}}{%
		\ifthenelse{\equal{#2}{PB}}{%
			\newpage
		}{}
	}{}
}
\begin{document}
   \stueck{Name}{0.3cm}
\end{document}
Das Verhalten des Codes ist bis zur bestimmten Anzahl der Dateien fehlerfrei, doch dann kommt der Fehler, wenn ich zu viele Dateien eingebunden habe.

Vielen Dank für Eure Hilfe

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4304
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Mache ein vernünftiges Beispiel. Da fehlen Pakete, die Klammern stimmen nicht, dein Befehl hat 5 Argumente, du setzt aber nur zwei. Ich habe jetzt keine Lust dass alles zu korrigieren bis ich endlich testen kann.

the-dust
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 6. Mai 2016, 13:23

Beitrag von the-dust »

Sorry, ja hier ist ein Beispiel
das Verzeichnis ./inc ist mit den einzubindenden Bildern
\documentclass[12pt,twoside]{book}
% Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{ifthen, xstring, etoolbox}
\usepackage{graphicx}
\usepackage{hyperref}
% Commands
\newcommand{\Stueck}[2]{
   % Include all Picture from inc.
   \foreach \y in {1,...,50}{%
	   \def\Pfad{./inc/#1\y.png}
	   \IfFileExists{\Pfad}{%
		   	\includegraphics[width=\textwidth, keepaspectratio, draft]{\Pfad}
   		
	   		\ifthenelse{\not\equal{#2}{}}{%
	   			\ifthenelse{\equal{#2}{PB}}{}{%
	   				\vspace{#2}
	   			}
	   		}{}
	   	}{%
		  	\breakforeach
		}
	}
	\ifthenelse{\not\equal{#2}{}}{%
		\ifthenelse{\equal{#2}{PB}}{%
			\newpage
		}{}
	}{}
}
\begin{document}
	\Stueck{Name}{}
\end{document}

Besserwisser

Beitrag von Besserwisser »

Unter Linux mit TeX Live 2016 kann ich das Problem nicht nachvollziehen. Sowohl, wenn inc leer ist als auch wenn ich dort 50 Dateien mit den Namen Name1.png bis Name50.png anlege (bei mir alles Kopien von example-image.png aus mwe) läuft dein Beispiel ohne Fehler durch.

Falls dein Beispiel bei dir also wirklich den genannten Fehler produziert, ist das entweder ein spezifisches Problem bei dir oder von MiKTeX unter Windows.

Was mich allerdings wundert, ist das inc/BLues/BLues2.png in deiner Fehlermeldung. Es wird ja in deinem Beispiel gar keine solche Datei geladen, sondern allenfalls eine ./inc/Name2.png.

the-dust
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 6. Mai 2016, 13:23

Beitrag von the-dust »

Ja das ist von einem früheren Log andem es auftritt.
Das Problem entsteht, wenn ich diesen Befehl über 100mal ausführe und über mehrere hundert Bilder einfüge.

Besserwisser

Beitrag von Besserwisser »

Und wir sollen jetzt erst einmal Rätselraten und probieren, um vielleicht ein Problem, das wir selbst nicht haben und von dem wir gar nicht wissen, ob es bei uns überhaupt auftritt, reproduzieren zu können?

Unter einem Minimalbeispiel verstehen wir hier etwas anderes …

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4304
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Ich bekomme die Fehlermeldung bei 504 Bildern. Sie verschwindet aber, wenn ich auf \foreach verzichte (das Gruppen einführt und m.E. für sowas problematisch ist) und die Schleife z.B. mit expl3 realisiere: http://tex.stackexchange.com/a/258178/2388

the-dust
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 6. Mai 2016, 13:23

Beitrag von the-dust »

Vielen Dank. Das funktioniert jetzt.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4304
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Wobei ich mittlerweile denke, das Problem ist nicht \foreach, sondern dass beim Kopieren die Leerzeile verschwunden war. 600 Bilder in einem Absatz sind schon problematisch. Du solltest Absätze lieber explizit mit \par angeben.

Antworten