Seite 1 von 1

Beamer /Pgfplots beschleunigen

Verfasst: Do 27. Mär 2014, 16:23
von obychef2
Hallo Texler,
Durch ein Programm lasse ich mir automatisert .tex-Dokumente erstellen, die dann automatisch kompiliert werden. Ich benutze dafür das Beamer-Paket und auf jeder Folie wird automatisch ein Diagramm mit pgfplots erstellt. Nun werden diese Dokumente teilweise 200 bis 300 Seiten lang und dann dauert das Kompilieren über eine Stunde (!). Nachdem das ganze sogar 3 mal Kompiliert werden muss (um Inhaltsverzeichnis einzubinden und alle Links richtig zu setzen), bedeutet das sehr lange Wartezeiten.
Bis her habe ich das Ganze beschleunigt, indem ich die ersten beiden Durchläufe im [draft] Modus erstelle und nur den letzten richtig. Etwas Zeit konnte ich auch dadurch gewinnen, die externalize-Funktion von pgfplots zu nutzen, dennoch dauert die Kompilierung ewig.
Deshalb: Kennt jemand Tipps oder Tricks, pgfplots und latex bei der Erstellung zu beschleunigen? Ich wäre froh, wenn man den ganzen Prozess zumindest auf 15 min für ein 200-seitiges Beamer-Dokument beschleunigen könnte.
Vielen Dank schon mal an alle!

Verfasst: Fr 28. Mär 2014, 08:25
von Johannes_B
Du könntest deine Präambel vorkompilieren, das würde allerdings nur wenige Sekunden sparen.

Tikz externalise hast du ja selbst schon erwähnt, was bleibt ist also nur Hardware mit \begin{HeimwerkerKing}mehr Power\end{HeimwerkerKing}.


Benötigst du alle Werte zum Plotten, oder würde beispielsweise nur jeder fünfte oder zehnte Wert ausreichen, um einen hinreichend detailierten Plot zu erstellen?

Verfasst: Fr 28. Mär 2014, 15:50
von obychef2
Hallo Johannes_B,
zunächst vielen Dank! Hmm, das mit der Präambel könnte immerhin eine Minute einsparen, ich werde das auf jeden Fall umsetzen. Bei den Plots filtere ich bereits, und benutze jeweils höchstens 200 Datenpunkte pro Plot.
Etwas anderes: In diesem Zusammenhang (wenn das Dokument auch mal 400 Seiten lang wird) habe ich auch immer mal wieder Memory-Probleme.
siehe meine Frage hier:
http://www.golatex.de/fuer-experten-pgf ... 11683.html

Vielleicht hättest du dazu noch eine Idee?
Wie kann ich die maximalen Memory (etc..) Werte einstellen, bzw. worin besteht der Nachteil, wenn ich diese zu hoch gesetzt habe?

Vielen Dank schon mal!

Verfasst: Fr 28. Mär 2014, 16:29
von Johannes_B
LuaTeX alloziert memory dynamisch. Aber LuaTeX ist langsamer. Wobei die neueste Version schneller sein soll, ich konnte das aber noch nicht ausprobieren.

Verfasst: Sa 29. Mär 2014, 11:56
von Studi
Den Tip von Johannes kann ich bestätigen: manchmal hatte ich Speicherprobleme mit pdfLaTeX, und das Wechseln auf LuaLaTeX hat sofort geholfen. Zum Beispiel das Herz in 3D - wie dort geschrieben, brachte es mir einen Speicherfehler, der mit LuaLaTeX weg war.

Studi

Verfasst: Mi 2. Apr 2014, 15:32
von obychef2
Vielen Dank, ich werde es ausprobieren!
PS: der Tipp mit der vorkompilierten Präambel spart mir insgesamt tatsächlich ca. 3 Minuten. Immerhin :)

Verfasst: Fr 4. Apr 2014, 16:11
von obychef2
Hallo nochmal,
Ich habe doch noch ein Problem mit der vorkompilierten Präambel entdeckt:
Als statischen Teil habe ich
\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{etex}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\parindent=0mm
\usetheme{Boadilla}
\usepackage{graphics}
\usepackage{amsmath}
\usepackage{sansmath}
\newcommand{\changefont}[3]{\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}
\setbeamercolor*{block title}{bg=gray}
\setbeamercolor*{block body}{bg=lightgray}
\setbeamerfont{MyMiniSize}{size*={2.00}{2.00}}
\setbeamerfont{MyMiniSizeForLargeLegends}{size*={3.00}{2.00}}
\setbeamerfont{MySmallerThanTinySize}{size*={4.00}{2.00}}
\setbeamerfont{frametitle}{family=\sffamily,series=\bfseries,size=\fontsize{12}{13}}}
\setbeamerfont{footnote}{family=\sffamily,series=\mdseries,size={\fontsize{5}{5}}}
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{epstopdf}
\setbeamertemplate{navigation symbols}{}
\hypersetup{bookmarks = true,bookmarksopen=false}
\pgfplotsset{width=7cm,compat=newest}
\usepgfplotslibrary{clickable}
und als dynamischen Teil je nach Anwendung (der Endanwender kann hier optional beliebige Eingaben machen) die Befehle
\date,\author,\title,\institute,\usecolortheme,\setbeamerfont,\phone,\email,\usefontheme,\setbeamertemplate, etc..
.
Mit \begin{document}\frame{\titlepage}\end{document} erstelle ich anschließend meine Titelseite.
Wenn ich nun an Stelle des statischen Teils mein vorkompiliertes .fmt einbinde, wird zwar alles ohne Fehler kompiliert, aber die Titelseite sieht nicht wie erwartet aus (Informationen wie Titel, Autor oder auch das \colortheme werden anscheinend ignoriert).

Weiß jemand, woran das liegen könnte, bzw. ob durch das Vorkompilieren die Makros für z.b. \titlepage nicht mehr durch den dynamischen Part geändert werden können? Das würde bedeuten, dass auch schon
die Zeile \documentclass{beamer} als "dynamisch" zu behandeln wäre? Mit \endofdump werde ich diesen Teil aber doch stets mitkompilieren müssen, oder?
Vielen Dank!

Verfasst: Fr 4. Apr 2014, 20:36
von Johannes_B
Das wäre eine tolle Archivfrage, denn viele Leute könnten sich mit der Erstellung eines eigenen Formats Zeit ersparen. Hast du Lust, diese Frage auf TeXwelt.de zu posten? Eine qualitativ hochwertige Antwort ist dir damit (fast) sicher.

Verfasst: Di 8. Apr 2014, 09:54
von obychef2
Vielen Dank, ich habe die Frage auf http://www.texwelt.de/wissen/fragen/428 ... mit-beamer gepostet.
Bin gespannt, ob man da was machen kann.. ;)