Ein und Ausblenden von Textzeilen abhängig von Überschrift

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: Ein und Ausblenden von Textzeilen abhängig von Überschrift

von Bartman » Fr 8. Apr 2016, 19:49

Für den Befehl \ifthenelse des Pakets ifthen gibt es laut Abschnitt 3.6.5 der Dokumentation des Pakets etoolbox mehrere Ersatzbefehle.

von u_fischer » Fr 8. Apr 2016, 16:14

\; ist ein Befehl, der nur im Mathematikmodus erlaubt sind. Außerdem fehlen bei deinen \ifthenelse-Befehlen die else-Zweige.

Abgesehen davon: Eine Schachtelung von if-else mit 5-Ebenen ist fast immer falsch. Sowas bekommt man anders hin:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\makeatletter
\@namedef{titel1}{Übung}
\@namedef{titel2}{Tutorium}
\makeatother
\newcommand{\Blatt}[1]{\textbf{\csname titel#1\endcsname ...}}
    
%---------------------------------------------------------------------------------------------
\begin{document}
\Blatt{1}, \Blatt{2}
\end{document} 

Klasse oder Paket

von Stamm » Fr 8. Apr 2016, 14:55

Schau dir die Klasse »exam« oder das Paket »exercises« an und lies in deren Anleitung.

Ein und Ausblenden von Textzeilen abhängig von Überschrift

von SAW » Fr 8. Apr 2016, 14:42

Hallo allerseits,

ich bastel aktuell an einer Überschrift für Arbeitsblätter, derart, dass nach Auswahl gewisser Parameter die Lösungen ein- bzw. ausgeblendet werden.
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ifthen}
\usepackage{etoolbox}
%\input{../../Praeambel/Praeambel}

\newcommand{\version}{.}
 % Etoolbox  
\providebool{mybool}% erzeugt einen boolschen Wert mit Namen ``Mybool''
\boolfalse{mybool}% gibt ``Mybool'' den Wert ``falsch''

\newcommand{\Blatt}[3]{
  \textbf{
    \ifthenelse{\equal{#1}{1}}{Übung}{
      \ifthenelse{\equal{#1}{2}}{Tutorium}{
        \ifthenelse{\equal{#1}{3}}{Leistungskontrolle}{
          \ifthenelse{\equal{#1}{4}}{Kopfrechnen}{ 
          }
        }
      }
    }
    \;#3\;
  }
  \ifthenelse{\equal{#2}{1}}{Lösung \booltrue{mybool}}{}
}
%---------------------------------------------------------------------------------------------
\begin{document}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ % prüft mybool

\booltrue{mybool}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ 

\boolfalse{mybool}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ % setzt mybool wieder auf falsch
% bis jetzt nur Testlauf, ob der Wert von mybool in der document-Umgebung verändert werden kann.

%---------------------------------------------------------------------------------------------
\Blatt{1}{1}{1} \\% hier kommt es zu einer Fehlermeldung beim Kompilieren. Fehlendes $-Zeichen???
\ifbool{mybool}{\textbf{true}:\;\; \textit{hier soll jetzt die Lösung stehen}}{\textbf{false}}\\
\end{document}
Ich erhalte: false, true, false, true

Leider kommt es beim Kompilieren zu einer Fehlermeldung.
Dies liegt zum anderen am Befehl \booltrue{} innerhalb der Definition von \Blatt[] und dem Ausgeben des 3. Wertes. Weshalb kann ich leider nicht herausfinden.

Weiter ist der Wahrheitswert verloren, sobald sich eine Zeile Abstand zwischen dem Befehl \Blatt{1}{1}{1} und der Auswertung \ifbool befindet.

Siehe unten
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ifthen}
\usepackage{etoolbox}
%\input{../../Praeambel/Praeambel}

\newcommand{\version}{.}
 % Etoolbox  
\providebool{mybool}% erzeugt einen boolschen Wert mit Namen ``Mybool''
\boolfalse{mybool}% gibt ``Mybool'' den Wert ``falsch''

\newcommand{\Blatt}[3]{
  \textbf{...
    \ifthenelse{\equal{#1}{1}}{Übung}{
      \ifthenelse{\equal{#1}{2}}{Tutorium}{
        \ifthenelse{\equal{#1}{3}}{Leistungskontrolle}{
          \ifthenelse{\equal{#1}{4}}{Kopfrechnen}{ 
          }
        }
      }
    }
    \;#3\;
  }
  \ifthenelse{\equal{#2}{1}}{Lösung \booltrue{mybool}}{}
}
%---------------------------------------------------------------------------------------------
\begin{document}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ % prüft mybool

\booltrue{mybool}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ 

\boolfalse{mybool}
\ifbool{mybool}{\textbf{true}}{\textbf{false}}\\ % setzt mybool wieder auf falsch
% bis jetzt nur Testlauf, ob der Wert von mybool in der document-Umgebung verändert werden kann.

%---------------------------------------------------------------------------------------------
\Blatt{1}{1}{1} % hier kommt es zu einer Fehlermeldung beim Kompilieren. Fehlendes $-Zeichen???

\ifbool{mybool}{\textbf{true}:\;\; \textit{hier soll jetzt die Lösung stehen}}{\textbf{false}}

\end{document}
Ich erhalte : false, true, false, false

Woran kann das liegen?

Nach oben