Wie nutzt man \BeforeFile

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: Wie nutzt man \BeforeFile

von en.ko » So 11. Okt 2015, 12:09

Das stimmt, aber so war es von mir nicht gemeint. ICH verwende ein Corporate Design für MEINE Arbeiten.

In diesem speziellen Fall schreibe ich ein Skript für mich. Auch wenn ich es in Betracht ziehe dieses in einer angepassten Version zu veröffentlichen, ist DIESES Skript in erster Linie für mich und so, dass ich damit arbeiten kann.

Wenn ein Anfänger ein ungeeignetes Skript als Vorlage verwendet ist das nicht unbedingt die Schuld des Publizisten. Wenn du das Thema vertiefen willst habe ich eine Diskussion auf
http://golatex.de/diskussion-allgemeine ... 16147.html
losgetreten.

von Johannes_B » So 11. Okt 2015, 11:28

Rettungssanitäter und Assistenten werden entsprechend ausgebildet, sie wissen was und wo es im RTW (NEF etc.) zu finden ist.

Du sprachst von Corporate Design, das impliziert, dass auch andere Leute es nutzen werden. Damit sind wir dann beim Ottonormalverbraucher, der einfach in den RTW gesetzt wird und weder weiß, wo das Material zu finden ist, noch wie man den Funk bedient, noch nie mit Sondersignal gefahren ist, die rechtliche Situation nicht kennt ... Das führt zu verletzten, und die landen dann früher oder später in Supportforen.

https://github.com/johannesbottcher/templateConfusion

Wenn du deinen eigenen Rucksack packst, und genau weißt was drin ist und wo, habe ich damit absolut kein Problem. Erst wenn du diesen vorgepackten Rucksack an andere weiter gibst, dann wird es stressig für alle.

von en.ko » So 11. Okt 2015, 11:15

Das ist ein interessantes Thema, das wir aber besser in ein eigenes Thema verschieben. Ich bezweifle, dass es hierfür ein abschließendes Ergebnis gibt. Es wird dabei bleiben, dass es jeder etwas anders sieht.

Deine Metapher mit dem Großunternehmen der Bauindustrie ist zwar insofern richtig, dass damit ein überdimensioniertes Skript geladen wird. Es wird aber impliziert, dass hier ein enormer Aufwand getrieben wird. Das ist nur hinsichtlich der vorhandenen Rechenleistung korrekt. Und Rechenleistung steht in der Regel ausreichend zur Verfügung. Für den Benutzer ist es schneller ein vollständiges Skript zu laden und sofort anfangen zu können ohne sich vorher Gedanken darüber machen zu müssen welche Pakete er im Laufe seiner Arbeit brauchen wird. Denn häufig weiß man das nicht oder es kommen Pakete hinzu, die man vorher nicht erwartet hatte.

Eine passendere Metapher wäre also: ein Sanitäter überlegt sich auch nicht vorher welche Ausrüstung er zu einem Unfallort mitnimmt. Er setzt sich in den Krankenwagen und kann dann damit rechnen, dass er alles dabei hat. Wenn er glaubt, dass doch etwas fehlt, dann kann er es noch dazu packen. Und die wenigsten Patienten werden sagen: "Das meiste davon brauchen Sie doch gar nicht, warum haben sie das mitgenommen?".

Hinzu kommt der Faktor Übersichtlichkeit. Ich arbeite sehr viel mit Kommentaren. Mein derzeitiges, unfertiges Optionen-Skript hat bereits über 1200 Zeilen, auch wenn für die tatsächliche Arbeit vieles wieder rausfallen wird. Ich schreibe mir zu vielen Funktionen kommentierte Alternativen auf. Dadurch kann man sehr schnell Änderungen vornehmen und wird an die Alternativen erinnert.

Wenn ich also eine neue Arbeit beginne, dann habe ich nur ein paar Zeilen bis zum \begin{document} und habe trotzdem alle Pakete und Optionen, mit denen ich es gewohnt bin zu arbeiten.

Und wenn ich zu einem späteren Zeitpunkt eine alte Arbeit bearbeiten will, weiß ich auch, dass mir alle gewohnten Befehle zur Verfügung stehen. Ich habe hier noch nie Kompatibilitätsprobleme gehabt.

von Johannes_B » So 11. Okt 2015, 09:59

Bei manchen Paketen muss du dich beim Laden entscheiden, was du haben willst. Ein Beispiel: biblatex; je nachdem, welche Option angegeben wird, wird im Hintergrund ein spezielles Paket geladen.


Momentan klingt das für mich als würdest du ein Großunternehmen der Bauindustrie bestellen. Erst mal alle ran, 70 m hohe Kräne, Betonmischer für den Bau von Schwimmbädern, etc. Dann kannst du für jedes Projekt einzeln entscheiden, ob der 70 m Kran für die Gartenhütte nötig ist.

Das Projekt entscheidet, welche Resourcen aufgebracht werden, niemals andersrum. Also teil dein Paket lieber in verwandte Einzelgebiete auf. Funktionalität zu teilen ist eine Sache, aber nicht jeder braucht alles. CDs geben oft Farbschemas und Schriften vor, das wird wohl bei allen der gemeinsame Nenner sein, egal ob Jahresbericht, Geschäftsbrief oder Präsentation.

von en.ko » Sa 10. Okt 2015, 20:55

OK, dann ist der Befehl einfach nicht so wie ich es gehofft habe. Ich dachte ich könnte damit die zeilenweise Abarbeitung überlisten.

Es war auch eher die Überlegung Optionen nachträglich zu ändern, wie bei \KOMAoptions um die Einstellung an einer (nahezu) beliebigen Stelle definieren zu können.

Zum Aufdröseln: als ich mit LaTeX angefangen habe hatte ich auch für jedes Dokument eine komplett eigene Datei. Wenn man aber während des Lernvorgangs mehrere Dokumente parallel bearbeitet kommt es vor, dass man Funktionen, die man in einer Datei verwendet hat in einer anderen Datei noch nicht eingefügt hat, und dann auf Fehlersuche gehen muss. Daher die Lösung allgemeine Pakete in einem zentralen Paket einzubinden und Dokumentenspezifische Einstellungen in ein anderes Skript zu verpacken. Auch für ein "Corporate Design" eignet sich eine solche Vorgehensweise hervorragend. Für mich hat das mehr Vorteile als Nachteile, aber das muss jeder für sich selbst entscheiden.

von Besserwisser » Sa 10. Okt 2015, 14:05

Zunächst einmal lädst du nicht Kopf.tex, sondern Kopf. Dass dann das darunter liegende TeX-System auf Implementierungsebene daraus Kopf.text macht, ändert daran nichts. Daher ist es besser, bei \input die Dateiendung mit anzugeben (im Unterschied zu \include, dort fügt LaTeX die Endung hinzu).

Desweiteren lädst Du erst die Datei und rufst dann \BeforeFile auf. Wenn die Datei bereits geladen ist, wird die Anweisung auch nicht mehr ausgeführt. Also ein Fall von: Wer zu spät kommt …

Das ist letztlich nichts anderes, als wenn du zu jemandem, der gerade dein Zimmer betreten hat, sagst: Bevor Sie hereinkommen …

Du musst also \BeforeFile{Kopf.tex}{…} vor \input{Kopf.tex} aufrufen.

von Johannes_B » Sa 10. Okt 2015, 12:16

en.ko hat geschrieben:Jetzt die Frage: Wie schaffe ich es, dass ich die Datei mit den Paketen einbinden kann und später erst die Optionen ändern kann.
Das geht nur bei vergleichweise wenigen Paketen. Optionen an Pakete werden vor dem Laden festgelegt (\PassOptionsToPackage) oder direkt beim Laden.

Den Befehl \BeforeFile hast du schon richtig verstanden, aber in deinem Beispiel wird das erst ausgeführt, als die Datei schon längst gelesen ist, Herr Müller also schon auf seinem Platz sitzt. Das gilt für den aktuellen LaTeX-Lauf. Willst du etwas für das nächste Konzert hinterlegen, dann musst du die Info am Eingang abgeben. Ist aber viel leichter dem Platzanweiser hinreichend zeitig Bescheid zu geben.


Das Aufdröseln deiner Datei halte ich im übrigen für Zeitverschwendung. Es bringt einfach nicht genügend Nutzen das zu tun.
Schlimmer noch, solch verworrener Spaghetticode findet sich zu oft im Internet als Vorlage für Anfänger wieder. Du bist keiner und verwirrt, für Anfänger ist so eine einfache und verständliche Vorlage wie ein Schlag ins Gesicht (mit nem immateriellen Backstein).

von en.ko » Sa 10. Okt 2015, 11:57

Ich bin kein LaTeX-Neuling, aber ich habe vor kurzem angefangen mein Basisskript komplett neu aufzusetzen auf Grundlage von KOMA-Skript. Da die Anleitung aber 481 Seiten stark ist bin ich erst bei Seite 245 angekommen.

Wahrscheinlich bin ich über einen internen Querverweis über den Befehl auf Seite 295 gestolpert, jedenfalls stand im scrguide, dass \BeforeFile eine Anweisung vor dem nächsten Laden der Datei ausführt. Habe ich das falsch interpretiert?

Mein Ziel ist es ein allgemeines Skript mit allen Paketen und ein spezielles Skript mit allen Optionen und dem eigentlichen Text zu haben. Da Beispielsweise das Paket graphicx (scheinbar) keine nachträglichen Optionen erlaubt, musste ich das so machen.

Jetzt die Frage: Wie schaffe ich es, dass ich die Datei mit den Paketen einbinden kann und später erst die Optionen ändern kann.

von Johannes_B » Sa 10. Okt 2015, 10:46

Bevor du anfängst dich auf Autorebene zu begeben, solltest du einiges an Zeit investieren und sowohl usrguide und besonders auch clsguide gelesen und verstanden haben.

Dann weißt du auch, wie man korrekt Optionen an andere Pakete übergibt.

von Johannes_B » Sa 10. Okt 2015, 10:41

Wenn du zwei Minuten vor Konzertbeginn zum Platzanweiser gehst und sagst: Pass auf, für xyz liegt eine Nachricht von seiner Frau da, bevor du ihn rein lässt, gib ihm die Nachricht.

Was denkst du wie der dich anschaut? Es sitzen doch alle schon.


Ähnliches Scenario, aber eine halbe Stunde vor Einlassbeginn. Antwort des Platzanweisers: Alles klar Chef, mach ich.

Nach oben