Minimalbeispiel

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Minimalbeispiel

Re: Minimalbeispiel

von u_fischer » Di 15. Dez 2020, 11:54

Natürlich kann ich dei Datei kopieren und dann langsam alles auskommentieren, aber das hätte in jeder möglichen Kombination Tage gedauert.

Nein, normalerweise nicht. Ich brauche auch bei vielen Hundert Seiten selten mehr als eine halbe Stunde, um ein Problem einzugrenzen. Du musst ja nicht jede mögliche Kombination ausprobieren. Du musst nur Dinge entfernen, die mit dem Fehler nichts zu tun haben. Wenn das "komische Verhalten" auf Seite 14 beginnt, kannst du meist einfach schon mal alles von den Seiten 1-12 kommentieren, testen und dann entfernen.

Um ein Minimalbeispiel schnell und effektiv zu erzeugen, braucht es etwas Übung. Aber die bekommst du nur, wenn du es einfach mal versuchst. Es kann ja nichts passieren, wenn du an einer Kopie arbeitest und Sicherheitskopien hast: Schlimmstenfalls kehrst du die Reste zusammen, schmeißt sie in die Tonne und holst dir eine neue Kopie.

Re: Minimalbeispiel

von MoeWe » Mo 14. Dez 2020, 22:14

Für klassische "welche Zeile produziert meine Fehlermeldung"-Probleme ist die in den einschlägigen Minimalbeispiel-Anleitung erklärte Binärsuchmethode (Hälfte der Datei Löschen - wenn Fehler nicht mehr reproduzierbar, andere Hälfte wieder herstellen - wiederholen) eine äußerst effiziente Methode, um das Problem einzugrenzen. Da Du den betrachteten Code in jedem Schritt halbierst, brauchst Du nur $O(\log n)$ Schritte. Es sind also selbst lange Dokumente mit tausenden Zeilen in 10 bis 15 Schritten verkleinert. Das macht man jetzt vielleicht nicht in fünf Minuten, aber in die Größenordnung Tage sollte man nicht vordringen müssen. Ich denke in den meisten Fällen ist es bei der mechanischen Methode sinnvoll, erst den Dokumentenkörper zwischen \begin{document}...\end{document} und dann auch die Präambel soweit wie möglich zu minimalisieren. Man würde die Prozedur also zwei mal durchführen.

Natürlich gibt es auch Möglichkeiten, mit Erfahrung oder ein Bisschen Glück, ein Minimalbeispiel schneller zusammen zu bekommen. So kann man manchmal sehen oder erraten, dass bestimmte Codeabschnitte oder Pakete mit dem Problem nichts zu tun haben, und die im ersten Schritt schon großzügig rausschneiden.

Auch bei anderen Problemen sollte die Binärsuchmethode prinzipiell zum Ziel führen. Ich kann aber verstehen, dass sie bei kontextabhängigen Dingen wie Zeilen- und Seitenumbrüche, Gleitumgebungspositionierung und andere generelle Satzfragen etwas schwieriger umzusetzen scheint und ist. Schließlich kann es dort passieren, dass das simple Löschen von Text/Codeblöcken den Kontext so ändert, dass die problematischen Effekte nicht mehr auftreten. Bei solchen Problemen kann es daher sinnvoll sein, etwas großzügiger vorzugehen und etwas weitere Netze auszulegen. Dennoch ist es so, dass auch hier viel Text/Code entfernt werden kann: Wie genau der Text zehn Seiten zuvor aussieht, wird für das tatsächliche Problem oftmals unerheblich sein, wichtig ist maximal, wie er die späteren Seitenumbrüche beeinflusst. Das kann aber oftmals mit einfachem Blindtext auf wesentlich weniger Seiten nachgebaut werden. Das geht vielleicht nicht so schnell wie die normale Binärsuche, aber auch hier musst Du nicht jede beliebige Kombination von Zeilen ausprobieren.

Bei vielen Problemen ist ein Minimalbeispiel leider fast unerlässlich, wenn Du eine sinnvolle Antwort erwartest. Es gibt sonst einfach zu viele Variablen, die wir nicht alle durch Raten abdecken können. Sieh daher die Aufforderung, ein Minimalbeispiel beizusteuern, nicht als herblassenden Versuch, Dich zu beschäftigen oder Dir Steine in den Weg zu legen, sondern als ersten und entscheidenden Schritt zur Lösung des Problems.

Re: Minimalbeispiel

von gast » Mo 14. Dez 2020, 18:49

Wenn man das mit dem Auskommentieren so macht, wie in der Anleitung angegeben, dann dauert es nicht Tage. Und wer seine Dokumentpräambel mit lauter Code vollgekleistert hat, von dem er keine Ahnung hat, wozu er gut ist, macht ohnehin etwas falsch und sollte dringen ausmisten! Das wiederum kann man genau so machen, wie in der Minimalbeispiel-Anleitung ausführlich erklärt.

Minimalbeispiel

von AndreaTh » Mo 14. Dez 2020, 11:52

Ich wurde aufgefordert, ein Minimalbeispiel zu erstellen, was mir schwerfiel. Das Problem entstand auf den letzten Seiten von insgesamt 18, und ich hab mich gescheut, da die volle Präämbel mit 18 Seiten Blindtext zusammen zu kleben.
Ich erhielt die Aufforderung, mir die Anleitung zum Minimalbeispiel noch mal genau durchzulesen. Das habe ich getan.
In der Anleitung steht:

dass ein Code-Ausschnitt niemals ein vollständiges Minimalbeispiel sein kann. Wie der Name schon sagt, muss ein ein VM immer den kompletten Code und alle Dateien enthalten, die für den LaTeX-Lauf notwendig sind, mit dem man das Problem reproduzieren kann.



Nun war aber genau das das Problem, daß ich ja nicht wußte, was genau dazu führt, daß diese vier Seiten von den anderen, korrekten, abweichen.
Natürlich kann ich dei Datei kopieren und dann langsam alles auskommentieren, aber das hätte in jeder möglichen Kombination Tage gedauert. Also meine Frage;:
wenn es wieder so ein undurchsichtiges Verhalten des compilers bei so einem umfangreichen Dokument gibt, wie kann ich dann ein Minimalbeispiel erstellen?
Danke.


Nach oben