Bestimmte Abschnitte wahlweise ignorieren

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Keba
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Do 18. Nov 2010, 19:57

Bestimmte Abschnitte wahlweise ignorieren

Beitrag von Keba »

Hallo,

In der Uni kriegen wir wöchentlich (Mathe-) Aufgaben, die wir lösen sollen. Dazu verwende ich natürlich LaTeX :)

Um nur noch \newproblem statt \section*{Aufgabe XY} tippen zu müssen, habe ich einen entsprechenden Befehl erstellt:
% Counter for problems
\newcounter{problem}
\setcounter{problem}{0}
\newcommand{\newproblem}{\section*{Aufgabe \refstepcounter{problem}\arabic{problem}}}
Das funktioniert so weit, allerdings habe ich das Problem, dass wir für die Uni nur zwei der vier Aufgaben zur Korrektur abgeben dürfen. Um diese zu drucken, kommentiere ich derzeit die anderen Aufgaben aus und setze den Counter manuell neu.

Lässt sich das automatisieren? Ein Befehl ala
\ignore{section}{1,2}
… oder so wäre toll. Falls man daran rumfuckeln kann, wäre es optimal wenn ich eine Pdflatex-Compiler-Option setzen könnte. Dann ließe sich sowas wie pdflatex solution.tex && pdflatex -problems 3,4 solution.tex > solution-corr.pdf oder sowas in der Art machen.

Aber eine Erweiterung meines Kommandos um Abschnitte zu ignorieren reicht eigentlich auch… Wie geht das?

Grüße und vielen Dank schonmal, Keba.

schmendrich
Forum-Century
Forum-Century
Beiträge: 136
Registriert: Mo 2. Mär 2009, 19:18

Beitrag von schmendrich »

Du könntest jede Aufgabe in ein eigenes File schreiben und dann mit
\includeonly
arbeiten. Das wäre die einfache Variante. Allerdings beeinflußt Du damit auch den Aufgabenzähler.

Willst Du weitergehen, lohnt sich für Dich sicher ein Blick in das Buch "LaTeX Hacks".

LuPi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 96
Registriert: Do 18. Feb 2010, 08:27
Wohnort: Bayern

Beitrag von LuPi »

Hilft Dir comment.sty?

Keba
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Do 18. Nov 2010, 19:57

Beitrag von Keba »

Hallo,
schmendrich hat geschrieben:Du könntest jede Aufgabe in ein eigenes File schreiben und dann mit
\includeonly
arbeiten. Das wäre die einfache Variante. Allerdings beeinflußt Du damit auch den Aufgabenzähler.
Das wäre tatsächlich relativ einfach, aber auch recht unschön. Die einzelnen Aufgaben in gesonderte Dateien auszugliedern ist aber vermutlich generell keine schlechte Idee…
Willst Du weitergehen, lohnt sich für Dich sicher ein Blick in das Buch "LaTeX Hacks".
Das Buch macht einen netten Eindruck, hab mal das was Google Books öffentlich anzeigt überflogen. Danke für den Tipp.
LuPi hat geschrieben: Hilft Dir comment.sty?
Ja, daran habe ich auch schon gedacht. Das könnte funktionieren, wenn ich eine neue Umgebung definiere…

Kann ich in LaTeX eigene Listen definieren und dann überprüfen ob ein Element in dieser Liste ist? Ala \if \number \inliste{excludes}\then …? Falls nicht: Wie kontrolliere ich am einfachsten, dass die Abschnitte 1, 2 und Foo ausgeschlossen werden sollte? Klar, kann ich einen Parameter definieren, aber damit würde ich keine Arbeit sparen…

Grüße, Keba.

leonidas
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 1. Dez 2009, 12:14
Wohnort: münchen

Beitrag von leonidas »

Hi,

hab mal für einen Lebenslauf sowas gemacht (englisch/deutsch, lange/kurze Version).
Dafür habe ich einen einen Counter eingeführt, über den ich steuern kann, ob etwas ausgegeben wird oder nicht.

\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{ifthen}

\newcounter{Strg1}		%neue Variable
\setcounter{Strg1}{1}       %hier setzt Du zB 0 fuer 
                                        %nicht drucken und 1 fuer drucken

\newcommand{\verstecken}[4]{%
\ifthenelse{#1 = #2}{#3}{#4}
}

\begin{document}

\verstecken{\value{Strg1}}
		 {1}
		 {Schreib was Du willst.}
		 {Oder nix.}

\end{document}
Wenn Du in die vierte Klammer nix reinschreibst, dann wird eben nichts ausgegeben. Du mußt halt nun alles in diese Klammern fassen - ist aber schnell angepasst. Wenn Du die Anweisung "verstecken" bei jeder Aufgabe verwendest, kannst Du mit der Zahl, die Du in der zweiten geschweiften Klammer übergibst ein/ausschalten.
Viel Spaß beim Rumprobieren!
leo ;-)

schmendrich
Forum-Century
Forum-Century
Beiträge: 136
Registriert: Mo 2. Mär 2009, 19:18

Beitrag von schmendrich »

Hi,

wie es der Zufall will, bin ich auf etwas ähnliches gestoßen.

Hier wird versucht, bestimmte items in itemize-Umgebungen zu unterdrücken:
http://tex.stackexchange.com/questions/ ... -item-list

Vielleicht kannst Du die Vorschläge an Dein Problem anpassen.

Grüße
schmendrich

Antworten