Verzeichnisse und "no room for a new \write"

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


MeganovaBass
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Do 24. Okt 2013, 23:40

Verzeichnisse und "no room for a new \write"

Beitrag von MeganovaBass »

Hallo Leute,

ich möchte gerne eine Datei mit vielen Theoremen haben (Definitionen, Sätze, Beweise, Beispiele, Vermerke, Aufgaben und Lösungen). Hierfür wäre auch ein Theoremverzeichnis sehr praktisch, das ich mir bereits angelegt habe und natürlich gibt es noch andere Verzeichnisse (Inhalts-, Abbildungs-, Tabellen- und Literaturverzeichnis sowie Index).

Die Theoreme wurden mit tcolorbox erstellt, d.h. dieses Paket ist das Kernelement dieses Beispiels. Ich habe herausgefunden, wie man damit Theoreme anfertigt und sie in Listen packt. Dafür verwende ich den Befehl \tcblistof. Soweit so gut, aber ich schaffe es nicht, die Datei zu kompilieren, ohne, dass ich etwas auskommentieren muss. Das habe ich im Folgenden mit Problem 1 bis Problem 4 benannt. Die dabei resultierende Fehlermeldung ist immer "No room for a new \write" und aus einer mehrstündigen Internetrecherche werde ich diesbezüglich leider auch nicht schlau.

Hat eine/r von euch eine Idee, wie man den folgenden Quellcode modifizieren kann, so dass man keines der vier Probleme auskommentieren muss?

Hier das Beispiel.

%----------------------------------------------------
% Dokumentenklasse und Pakete.
%----------------------------------------------------
\documentclass[ngerman,11pt,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[intlimits]{amsmath}
\usepackage{caption,array}
\usepackage[usenames,x11names,dvipsnames,table]{xcolor}
\usepackage{graphicx,rotating}
\usepackage[a4paper,outermargin=1in,innermargin=3cm]{geometry}
\usepackage{imakeidx,selinput,filecontents}
\usepackage{calc}
\usepackage{tikz}
\usepackage{tcolorbox} %Hier das zentrale Paket für dieses Beispiel.
\RequirePackage[framemethod=tikz]{mdframed}
\usepackage[bookmarks,bookmarksnumbered,backref,pagebackref,pdfpagelabels=true,colorlinks,extension=pdf,plainpages=false]{hyperref}
\usepackage[thref,hyperref,amsmath,thmmarks,framed]{ntheorem}



%----------------------------------------------------
% Mein Index.
%----------------------------------------------------
%Mit diesem Code wird ein Index erzeugt. Wenn ich die mystyle.ist-Datei ändern möchte, muss sie erstmal gelöscht werden, da filecontents nicht überschreibt.
\makeindex[columns=2,options=-s mystyle2]
	\begin{filecontents}{mystyle2.ist}
	delim_0 "\\dotfill\ "
	delim_1 "\\dotfill\ "
	\end{filecontents}



%----------------------------------------------------
% Definition der Theoreme.
%----------------------------------------------------
\theorembodyfont{\normalfont}
\tcbuselibrary{theorems,breakable} %tcolorbox lädt die Bibliothek von tikz, mit Seitenumbrüchen.

%Theorem "Definition" (tcolorbox).
\newcounter{defc} %Zähler.
\newtcbtheorem[number within=chapter, use counter=defc, list inside=Definitionen]{Def}{Definition}{breakable, colback=Green4!10, colframe=Green4, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{def} %Definition der Box.
\newcommand{\Definition}[3]{\begin{Def}[label={#2}]{#1}{}{} #3\end{Def}} %Definition des eignen Befehls.

%Theorem "Satz" (tcolorbox).
\newcounter{sac} %Zähler.
\newtcbtheorem[number within=chapter, use counter=sac, list inside=Saetze]{Sa}{Satz}{breakable, colback=Maroon!10, colframe=Maroon, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{sa} %Definition der Box.
\newcommand{\Satz}[3]{\begin{Sa}[label={#2}]{#1}{}{} #3\end{Sa}} %Definition des eigenen Befehls.

%Theorem "Beweis" (tcolorbox).
\newcounter{bewc} %Zähler.
\newtcbtheorem[number within=chapter, use counter=bewc, list inside=Beweise]{Bew}{Beweis}{breakable, colback=darkgray!10, colframe=darkgray, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{bew} %Definition der Box.
\newcommand{\Beweis}[3]{\begin{Bew}[label={#2}]{#1}{}{} #3\end{Bew}} %Definition des eigenen Befehls.

%Theorem "Beispiel" (tcolorbox).
\newcounter{bspc} %Zähler.
\newtcbtheorem[number within=chapter, use counter=bspc, list inside=Beispiele]{Bsp}{Beispiel}{breakable, colback=Blue4!10, colframe=Blue4, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{bsp} %Definition der Box.
\newcommand{\Beispiel}[3]{\begin{Bsp}[label={#2}]{#1}{}{} #3\end{Bsp}} %Definition des eigenen Befehls.

%Theorem "Vermerk" (tcolorbox).
\newcounter{vec} %Zähler.
\newtcbtheorem[number within=chapter, use counter=vec, list inside=Vermerke]{Ve}{Vermerk}{breakable, colback=LightSkyBlue4!10, colframe=LightSkyBlue4, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{bsp} %Definition der Box.
\newcommand{\Vermerk}[3]{\begin{Ve}[label={#2}]{#1}{}{} #3\end{Ve}} %Definition des eigenen Befehls.

%Theorem "Aufgabe" (tcolorbox).
\newcounter{aufc} %Zähler.
\newtcbtheorem[number within=chapter, use counter=aufc, list inside=Aufgaben]{Auf}{Aufgabe}{breakable, colback=OrangeRed3!10, colframe=OrangeRed3, fonttitle=\bfseries, separator sign={}, description delimiters={(}{)}, description color=white}{auf} %Definition der Box.
\newcommand{\Aufgabe}[3]{\begin{Auf}[label={#2}]{#1}{}{} #3\end{Auf}} %Definition des eigenen Befehls.

%Theorem "Lösung" (tcolorbox)
\newcounter{losc} %Zähler.
\newtcbtheorem[number within=chapter, use counter=losc, list inside=Loesungen]{Los}{Lösung}{breakable, colback=CadetBlue!10, colframe=CadetBlue, fonttitle=\bfseries, separator sign={}, description delimiters={}{)}, description color=white}{los} %Definition der Box.
\newcommand{\Loesung}[4]{\begin{Los*}[label={#2}]{\ref*{#3} (#1}{}{} #4\end{Los*}} %Definition des geeigneten Befehls.



\begin{document}
\tableofcontents

\chapter{Test}\label{Kapitel:Test}
\Definition{Probe-Definition}{LabelA}{Hier steht eine Definition.
	\begin{center}
	X\captionof{figure}{Dummy-Bild} Y\captionof{table}{Dummy-Tabelle}
	\end{center}}
\Satz{Probe-Satz}{LabelB}{Hier steht ein Satz\index{Dummy-Eintrag}.}
\Beweis{Probe-Beweis}{LabelC}{Hier steht ein Beweis.}
\Beispiel{Probe-Beispiel}{LabelD}{Hier steht ein Beispiel.}
\Vermerk{Probe-Vermerk}{LabelE}{Hier steht ein Vermerk.}
\Aufgabe{Probe-Aufgabe}{LabelF}{Hier steht eine Aufgabe.}
\Loesung{Probe-Lösung}{LabelG}{LabelF}{Hier steht eine Lösung.}
Mehr hierzu in \cite{Simplex}. %Nur für Show-Zwecke.
\newpage

\chapter*{Theoremverzeichnis}\label{Theoremverzeichnis}
\addcontentsline{toc}{chapter}{Theoremverzeichnis}
\tcblistof[\section*]{Definitionen}{\textsf{tcolorbox}-Definitionen}
\tcblistof[\section*]{Saetze}{\textsf{tcolorbox}-Sätze}
\tcblistof[\section*]{Beweise}{\textsf{tcolorbox}-Beweise}
\tcblistof[\section*]{Beispiele}{\textsf{tcolorbox}-Beispiele}
%\tcblistof[\section*]{Vermerke}{\textsf{tcolorbox}-Vermerke}	%Problem 1.
%\tcblistof[\section*]{Aufgaben}{\textsf{tcolorbox}-Aufgaben}	%Problem 2.
%\tcblistof[\section*]{Loesungen}{\textsf{tcolorbox}-Lösungen} %Problem 3.

%Hier wird der Index erzeut.
\cleardoublepage
\phantomsection
\renewcommand{\indexname}{Mein Index}
\indexprologue{\addcontentsline{toc}{chapter}{Mein Index}}
\printindex

%An dieser Stelle werden Abbildungs- und Tabellenverzeichnis eingefügt.
\listoffigures
\listoftables


%Beginn Problem 4.
%\begin{thebibliography}{1cm}
%\addcontentsline{toc}{chapter}{Literaturverzeichnis}
%\bibitem{Simplex} Grötschel, M. ($2003$). \emph{Lineare Optimierung: Algorithmische Diskrete Mathematik~II, Skriptum zur Vorlesung}. Berlin: TU, Institut für Mathematik.
%	
%\end{thebibliography}
%Ende Problem 4.
\end{document}

Ratgeber

"Raum" erweitern

Beitrag von Ratgeber »

Außer ein paar nicht zu ignorierenden Warnungen tritt bei mir dieser Fehler nicht auf. Versuche es mal mit einem Paket deiner Wahl aus der Rubrik "I/O-Management" (z. B: morewrites oder scrwfile).


MeganovaBass
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Do 24. Okt 2013, 23:40

Re: Verzeichnisse und "no room for a new \write"

Beitrag von MeganovaBass »

Okay, das ist interessant. Also ich verwende TeXStudio und MiKTeX (Windows). Welchen Editor verwendest du?


MeganovaBass
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Do 24. Okt 2013, 23:40

Re: Verzeichnisse und "no room for a new \write"

Beitrag von MeganovaBass »

Ah, ich habe noch etwas vergessen. Dein Hinweis hat mich das Problem lösen lassen. Ich habe einfach \usepackage{morewrites} in die Präambel eingefügt und schon hat es wieder funktioniert. Danke für deinen Hinweis.

ENDE


Ratgeber

Autor und Setzer

Beitrag von Ratgeber »

MeganovaBass hat geschrieben:
So 7. Jun 2020, 19:42

[…] Also ich verwende TeXStudio und MiKTeX (Windows). Welchen Editor verwendest du?

Der jeweils benutzte Editor ist nicht von Bedeutung. Er ist für die leichtere Bearbeitung des Quelltextes durch den Autor gemacht. Die Verarbeitung des Quelltextes erfolgt durch den Schriftsetzer (hier LuaLaTeX, pdfLaTeX oder XeLaTeX). Unabhängig vom verwendeten Editor ist ein Blick in die Protokoll-Datei (*.log) den Meldungen vom Editor über Fehler und Warnungen vorzuziehen.

Bezüglich der Einbindung von »morewrites« sollte unbedingt zumindest der Anfang von Abschnitt 1 (S. 2) seiner Anleitung beachtet werden. Insbesondere der Vorteil von LuaTeX ist hier relevant.


Antworten