Problem mit Befehlen! Leider einige feste Vorgaben ...

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


timmwerner
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Sa 11. Jan 2014, 21:39

Problem mit Befehlen! Leider einige feste Vorgaben ...

Beitrag von timmwerner »

Hallo,

beschäftige mich seit Kurzem mit LaTeX und leider stoße ich bei einigen Aufgaben auf Probleme. Es wäre super, wenn Ihr mir helfen könntet.

Es soll eine Layout-Datei (abgabe_layout) geschrieben werden, die immer geladen wird, wenn script1.tex gestartet wird. Einige Angaben sind dann variabel und werden im Script (script1.tex) angegeben. Dieses Script (script1) darf nicht verändert werden! In der Ausgabe sollen die Angaben in der Umgebung (environment) berücksichtigt werden.

abgabe_layout.tex
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}

% Hier soll dann auch die Umgebung (environment) angelegt werden.
script1.tex
\input{abgabe_layout}
\Dozent{xy}
\Institut{xy}

\begin{environment}

\end{environment}
So, Problem ist nun, dass ich nicht weiß, wie ich die Definitonen von \Dozent{xy} und \Institut{xy} in meine Umgebung reinbekomme. Angeblich soll das irgendwie über saveboxen gehen, aber da in script1.tex nichts verändert werden darf, weiß ich nicht wie ich diese abrufen/abspeichern kann.

Habt ihr eine Idee?

Vielen Dank
Timm

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Leider habe ich momentan nicht den geringsten Schimmer was du vor hast. Kannst du das eventuell näher erklären, idealerweise mit einem Minimalbeispiel?

Normalerweise ist die Datei, welche ein \documentclass{<klasse>} enthält die Hauptdatei, welche selbst alle anderen Dateien lädt. Ein »Layout« kann in einer Paketdaatei (.sty) abgelegt sein.

Was hast du denn mit deinen Makros \Dozent{xy} vor? Ohne das zu wissen ist es schwer eine mögliche Lösung zu nennen.

Wenn du Änderungen in script1 darstellen willst, ist das dann nicht widersprüclich mit dem Vorsatz des »es darf nichts geändert werden«?

Bester Anlaufpunkt wäre Übrigens der Autor/Maintainer der Ausgangsdateien, falls verfügbar.

Und zu gute letzt: Minimale Vorlage vs. maximale Probleme
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

timmwerner
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Sa 11. Jan 2014, 21:39

Beitrag von timmwerner »

Hallo,

ja, hab mir schon ein bisschen gedacht, dass es schwer ist, mein Anliegen zu verstehen. Ich versuchs nochmal:

Also:

Ziel ist es, dass eine Layout-Datei im *tex.-Format entwickelt wird, die für das Erstellen von z.B. Klausuren genutzt werden soll.

Somit soll bsp. aus der Datei Klausur1.tex ein vollwertiges, formatiertes Dokument entstehen. Hier sollen dann nur noch die individuellen Angaben (xy) angegeben werden und in den Umgebungen berücksichtigt werden.

Klausur1.tex
\input{abgabe_layout} % Hier eigene Layout-Datei einbinden!

\Dozent{xy}
\Institut{xy}

\begin{document}

\begin{Klausur}
\end{Klausur}

\end{document}

Durch \input{abgabe_layout} soll die Formatierung inkl. Umgebung geladen werden

abgabe_layout.tex
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}

\newenvironment{Klausur}[1][]{
\Institut vertreten durch {\Dozent} wird die Klausur stellen. ...
}{..}
So, jetzt muss ich natürlich die Befehle \Dozent und \Institut in abgabe_layout.tex durch \newcommand... oder halt über saveboxen definieren. Allerdings werden die Argumente der Befehle in Klausur1.tex definiert und sollen beim Aufruf von \begin{Klausur} berücksichtigt werden.


Die Datei Klausur1.tex soll nicht verändert werden.

Hilft das?

Besten Gruß
Timm

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Wenn in Klausur1.tex die Klausur erstellt wird, dann wird diese doch auch geändert?

Oder möchtest du vielmehr ausdrücken, dass die Layoutdatei implementiert wird, ohne Code in Klausir1.tex zu hinterlassen, welcher den Endnutzer verwirren könnte?

Übrigens, du musst das Rad nicht neu erfinden:
exsheets
exam
Topic exam bei CTAN

Da du neu bei (La)TeX bist, empfehle ich dir in aller Ruhe ein Einführung zu lesen. Du musst ein wenig Zeit investieren, sparst im nachhinein aber umso mehr.


Schau doch auch mal bei TeXWelt vorbei
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

timmwerner
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Sa 11. Jan 2014, 21:39

Beitrag von timmwerner »

Oder möchtest du vielmehr ausdrücken, dass die Layoutdatei implementiert wird, ohne Code in Klausir1.tex zu hinterlassen, welcher den Endnutzer verwirren könnte?
Genau!
Übrigens, du musst das Rad nicht neu erfinden:
Leider MUSS ich dies für die Uni machen ...

[/quote]

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Du kannst doch aber diese Pakete und Klassen nutzen, musst also keine Umgebung Klausur definieren.

Wenn sie unbedingt »Klausur« heißen soll, dann definiere eine Umgebung, welche im Hintergrund eine schon fertige aufruft.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Es wäre hilfreich, Du würdest uns sowohl gewünschten Output sowie den gewünschten Input erklären. Ich habe nach Deinen Posts immer noch keine Idee, wie die Dokumentendatei aussehen soll oder wie das fertige PDF nachher aussehen soll...

Wenn Du Befehle ähnlich wie \author oder \title haben möchtest, dann ist folgendes normalerweise das Grundprinzip:
\documentclass{article}
\usepackage[ngerman]{babel}

\makeatletter
\newcommand*\@Dozent{\@latex@warning@no@line{No \noexpand\Dozent given}}
\newcommand*\@Institut{\@latex@warning@no@line{No \noexpand\Institut given}}

\newcommand*\Dozent[1]{\gdef\@Dozent{#1}}
\newcommand*\Institut[1]{\gdef\@Institut{#1}}
% wenn man das in der Präambel setzen /soll/:
% \@onlypreamble\Dozent
% \@onlypreamble\Institut

\newenvironment{Klausur}
  {\@Institut\ vertreten durch \@Dozent\ wird die Klausur stellen.  \ldots}
  {%
    % die Bedeutung der internen Befehle löschen wenn gewünscht (kann auch am
    % Anfang der Umgebung nach Verwendung geschehen:
    \global\let\@Institut\relax
    \global\let\@Dozent\relax
  }
\makeatother

\Institut{Tardis}
\Dozent{Dr.~Who}

\begin{document}

\begin{Klausur}
  Bla Bla Blub
\end{Klausur}

\end{document}
Grüße
Clemens
Paketauthor

Antworten