LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Alles rund um das System für Windows.


Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

Vielen vielen Dank für Deine Hilfe. Das hat super geklappt.

Jetzt hätte ich noch ein Frage dazu. Könnte man auch selbst die Datei erzeugen? D.h. könnte das Programm, das die TeX Dateien schreibt auch einfach diese Datei generieren? Der Endanwender sollte dies wenn möglich nämlich nicht machen sollen.

Es werden in den TeX-Dateien auch sehr viele tikz-Koordinaten benutzt, da fast über jedem Bild etwas gezeichnet wird. Da es viele Bilder sind und oft auch viele "Zeichnung" in einem Bild, kann es gut sein, dass dies der Grund für den hohen Verbrauch ist. Und soweit ich es gesehen habe, kann man sie auch nicht "aufräumen".

KOMA (als gast)

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von KOMA (als gast) »

Permutation hat geschrieben:
Fr 14. Jan 2022, 09:05
Es werden in den TeX-Dateien auch sehr viele tikz-Koordinaten benutzt, da fast über jedem Bild etwas gezeichnet wird. Da es viele Bilder sind und oft auch viele "Zeichnung" in einem Bild, kann es gut sein, dass dies der Grund für den hohen Verbrauch ist. Und soweit ich es gesehen habe, kann man sie auch nicht "aufräumen".
Wenn tatsächlich viele TikZ-Abbildungen das Problem sind, kann man das mit Hilfe der Externalization Library durchaus aufräumen. Bei mehreren LaTeX-Läufen kann das im Endeffekt sogar eine Menge Zeit sparen. Siehe Kapitel 52 der TikZ-Anleitung.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

Vielen Dank für den Hinweis, aber leider scheint das nicht zu wirklich zu funktionieren:

Der Aufruf:
"lualatex.exe" --enable-write18 --halt-on-error --interaction=nonstopmode XXX.tex
\RequirePackage{tikz}
\usetikzlibrary{fit,calc,external}
\tikzexternalize[shell escape=-enable-write18]
\tikzset{
    hyperlink node/.style={
        alias=sourcenode,
        append after command={
            let \p1=(sourcenode.north west),
                \p2=(sourcenode.south east),
                \n1={\x2-\x1},
                \n2={\y1-\y2} in
				node[inner sep=0pt, outer sep=0pt, anchor=north west, at=(\p1)] {\hyperlink{#1}{\makebox(\n1,\n2){}}}
        }
    }
}
\tikzset{
    tooltip node/.style={
        alias=sourcenode,
        append after command={
            let \p1=(sourcenode.north west),
                \p2=(sourcenode.south east),
                \n1={\x2-\x1},
                \n2={\y1-\y2} in
				node[inner sep=0pt, outer sep=0pt, anchor=north west, at=(\p1)] {\pdftooltip{\makebox(\n1,\n2){}}{\lablname Description:\labldescription }}
        }
    }
}

...

\newsavebox{\imageBox}
\newcommand{\imagewithlinks}[3]{%
\sbox{\imageBox}{%
\noindent\begin{tikzpicture}%
  \node[anchor = south west,inner sep=0,outer sep=0] at (0, 0) (image) {\includegraphics{#1}};%
  \begin{scope}[x={(image.south east)},y={(image.north west)}]{#3}\end{scope}%
\end{tikzpicture}%
}%
\begin{figure}[H]%
\centering%
\ifdim\the\wd\imageBox>\textwidth%	
	\resizebox{\textwidth}{!}{\usebox{\imageBox}}%
\else%
    \ifdim\the\ht\imageBox>\textheight%
        \resizebox{!}{\textheight}{\usebox{\imageBox}}%
    \else%
        \usebox{\imageBox}%
    \fi%
\fi%
\caption{#2}%
\end{figure}%
}


\imagewithlinks{XXX/auto1.pdf}{main}{%
\node[inner sep=0pt, outer sep=0pt, fit={(0.427829560585885, 0.958356940509914) (0.614247669773635, 0.799716713881019)}, hyperlink node=HierPathLbl2] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.427829560585885, 0.760056657223795) (0.614247669773635, 0.6014164305949)}, hyperlink node=HierPathLbl3] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.427829560585885, 0.561756373937676) (0.614247669773635, 0.403116147308781)}, hyperlink node=HierPathLbl4] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.427829560585885, 0.363456090651557) (0.614247669773635, 0.204815864022662)}, hyperlink node=HierPathLbl5] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.427829560585885, 0.165155807365439) (0.614247669773635, 0.006515580736544)}, hyperlink node=HierPathLbl6] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.0596537949400799, 0.829461756373937) (0.0876165113182423, 0.809631728045325)}, hyperlink node=XXX] {\XXX};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.0177097203728362, 0.958356940509914) (0.129560585885486, 0.898866855524079)}, hyperlink node=XXX] {\XXX};%
}
Das ist die aux Datei:
XXX.aux.log
(844.8 KiB) 150-mal heruntergeladen
Und hier das Log vom Lauf:
XXX.log
(56.93 KiB) 149-mal heruntergeladen

KOMA (als gast)

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von KOMA (als gast) »

Sorry, aber mit Codeschnipsel beschäftige ich mich nicht, weil ich damit Probleme nicht zuverlässig nachvollziehen kann.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

Sorry, kann ich verstehen.

Ich versuche ein lauffähiges Beispiel zu bauen. Konnte jetzt auf die schnelle nur aus dem aktuellen Lauf Code kopieren. Ich versuche ein Beispiel zu bauen ohne Kundendaten.
Zuletzt geändert von Permutation am Fr 14. Jan 2022, 20:20, insgesamt 1-mal geändert.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

So jetzt habe ich es geschafft ein Beispiel zu bauen ohne "Daten"

Hier der Aufruf
lualatex.exe" --enable-write18 --halt-on-error --interaction=nonstopmode Test.tex
\documentclass[a4paper,oneside,10pt]{report}

\usepackage{here}
\usepackage{graphicx}
\usepackage{float}
\usepackage{tikz}


% Mit dieser Einstellung läuft es
%\usetikzlibrary{fit,calc}
% -----
% Mit dieser nicht
\usetikzlibrary{fit,calc,external}
\tikzexternalize[shell escape=-enable-write18]
%-------


\tikzset{
    hyperlink node/.style={
        alias=sourcenode,
        append after command={
            let \p1=(sourcenode.north west),
                \p2=(sourcenode.south east),
                \n1={\x2-\x1},
                \n2={\y1-\y2} in
				node[inner sep=0pt, outer sep=0pt, anchor=north west, at=(\p1)] {\hyperlink{#1}{\makebox(\n1,\n2){}}}
        }
    }
}


\newcommand{\imagewithlinks}[5]{
\begin{figure}[H]%
\centering%
\noindent\begin{tikzpicture}%
  \node[anchor = south west,inner sep=0,outer sep=0] at (0, 0) (image) {\includegraphics[width=#2,height=#3]{#1}};%
  \begin{scope}[x={(image.south east)},y={(image.north west)}]{#5}\end{scope}%
\end{tikzpicture}%
\caption{#4}%
\end{figure}%
}

\usepackage[%
	pdfpagemode = UseOutlines,
	colorlinks = True,
	linkcolor = blue,
	filecolor = blue,
	urlcolor = blue,
	citecolor = black,
	plainpages = False,
	hypertexnames = False,
	pdfpagelabels = True,
    pdfnewwindow = True,
	hyperindex = True]{hyperref}

\begin{document}


\imagewithlinks{auto0.pdf}{285.71pt}{82.86pt}{main}{%
\node[inner sep=0pt, outer sep=0pt, fit={(0.003521127, 0.9878049) (0.2852113, 0.01219512)}, hyperlink node=Link1] {};%
\node[inner sep=0pt, outer sep=0pt, fit={(0.6549296, 0.5609756) (0.7605634, 0.4390244)}, hyperlink node=Link2] {};%
}

\newpage

\hypertarget{Link1}{Link1}

\newpage

\hypertarget{Link2}{Link2}

\end{document}
Dieses Bild braucht man auch noch
auto0.pdf
(5.49 KiB) 157-mal heruntergeladen
.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von KOMA »

Kann ich nicht ganz nachvollziehen. Bei mir funktioniert das Beispiel unter einem aktuellen TeX Live. Nach zwei LaTeX-Läufen ist der Ergebnis:
test_20220115_104353.png
test_20220115_104353.png (8.83 KiB) 3592 mal betrachtet
Das optionale Arguments für \tikzexternalize ist übrigens überflüssig, da sowohl TeX Live als auch MiKTeX sowohl --shell-escape als auch --enable-write18 als Option verstehen (und AFAIK auch beide mit einem statt zwei -).

Oder meinst du die Links? Links in externalisierte Abbildungen können logischer Weise nicht funktionieren. Dabei werden ja externe PDFs eingebunden und (derzeit) können beim Einbinden von PDFs Links normalerweise nicht erhalten werden. (Mit Umwegen und zusätzlichem Aufwand ist es tatsächlich möglich und Ulrike arbeitet daran, die Situation zu verbessern, was AFAIK mit LuaLaTeX bereits recht gut funktioniert). Man kann aber problemlos Links vor die Abbildungen setzen.

Übrigens \noindent ist im Wirkbereich von \centering natürlich überflüssig bis unsinnig.

BTW: Ich empfehle die Seite https://sf.net/p/koma-script/wiki-de/HowTo_AvoidSpaces/ einmal genau durchzulesen. Es empfiehlt sich diese übrigens auch bei Verwendung von TikZ zu beachten. Zwar tut das Paket sein bestes, um unerwünschte Leerzeichen in bestimmten Situationen automatisch zu /vermeiden, aber das hat seine Grenzen und es ist besser, sich insgesamt eine konsequente Vermeidung derselben anzugewöhnen.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

Vielen Dank für Deine Hinweise. Ich werde mir die Seiten durchlesen.

Ich habe das Projekt übernommen und kämpfe grade mit den Altlasten und muss mich an vielen Stellen auch noch einarbeiten.

Leider bekomme ich es bei mir nicht zum Laufen. Ich bekomme immer diese Meldung:
LaTeX Info: Redefining \ref on input line 60.
LaTeX Info: Redefining \pageref on input line 60.
LaTeX Info: Redefining \nameref on input line 60.
(./Test.out) (./Test.out)
\@outlinefile=\write4

\openout4 = Test.out

\openout3 = Test.auxlock

===== 'mode=convert with system call': Invoking 'lualatex -enable-write18 -halt
-on-error -interaction=batchmode -jobname "Test-figure0" "\def\tikzexternalreal
job{Test}\input{Test}"' ========

\openout3 = Test.auxlock

! Package tikz Error: Sorry, the system call 'lualatex -enable-write18 -halt-on
-error -interaction=batchmode -jobname "Test-figure0" "\def\tikzexternalrealjob
{Test}\input{Test}"' did NOT result in a usable output file 'Test-figure0' (exp
ected one of .pdf:.jpg:.jpeg:.png:). Please verify that you have enabled system
calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also na
med 'write 18' or something like that. Or maybe the command simply failed? Erro
r messages can be found in 'Test-figure0.log'. If you continue now, I'll try to
typeset the picture.
Wenn ich "external" in
\usetikzlibrary{fit,calc,external}
entferne, läuft er normal durch.

Also in den PDFs die ich einbinde sind keine Links. Die Links werden über die PDFs geleget, die eingebunden werden. Habe schon was gelesen das einige Dinge nicht gehen wenn man externalisiert. Dachte aber gewisse "Links" würden gehen.

EDIT:
Wenn ich den hyperlink im node entferne läuft er auch mit "external" durch. D.h. ich kann dieses Feature erstmal nicht benutzen. Aber nochmals vielen Dank für die Hilfe und Hinweise. Werde versuchen diese so gut wie möglich umzusetzen.

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

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von u_fischer »

> Leider bekomme ich es bei mir nicht zum Laufen. Ich bekomme immer diese Meldung:

Kann ich auch nicht nachvollziehen. Schau mal in die Test-figure0.log ob sie irgendeinen Hinweis auf einen Fehler gibt.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: LuaLatex ! Fehler TeX capacity exceeded, sorry [number of strings=478531].

Beitrag von Permutation »

Es scheint wohl an der Zeile
\tikzexternalize[shell escape=-enable-write18]
zu liegen. Mit dieser Zeile läuft es nicht, ohne diese läuft es bei mir auch durch, sogar mit Links.

Ich hatte diese hinzugefügt, da in der Doku steht:
/tikz/external/shell escape={hcommand-line argi} (no default, initially -shell-escape)
Contains the command line option for latex which enables the \write18 feature. For TEX-Live, this is
-shell-escape. For MiKTEX, you should use \tikzexternalize[shell escape=-enable-write18].
Hier mein Lauf mit der problematischen Zeile:
Test.zip
(12.19 KiB) 150-mal heruntergeladen

Antworten