Ziel: ein Lückentext, der mit dem Package Version zusammenarbeitet. Mein MWE: Öffne in Overleaf
\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[german]{babel} \usepackage[T1]{fontenc} \usepackage{version} \usepackage{setspace} \newlength{\diebox} \newcommand{\luecke}[1]{ \settowidth{\diebox}{#1} \if\includeversion{lehrer}{\textbf{#1}} \fi \if\includeversion{schueler}{\parbox{2.3\diebox}{\hrulefill}} \fi} \includeversion{lehrer}\excludeversion{schueler} %\includeversion{schueler}\excludeversion{lehrer} \begin{document} Warum? \luecke{Darum!} \end{document} Problem: er zeigt mir immer beide Versionen an, ich hätte erwartet, dass er mit der Zeile Öffne in Overleaf
\includeversion{lehrer}\excludeversion{schueler} nur den Inhalt, also Darum! anzeigt, und mit der umgekehrten, jetzt auskommentierten include/exclude Zeile nur den Strich. |
Du kannst nicht mit Öffne in Overleaf
\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel}% die nicht mehr ganz so neue Rechtschreibung \usepackage[T1]{fontenc} \usepackage{version} \usepackage{setspace} \newlength{\diebox} \newcommand{\luecke}[1]{% \settowidth{\diebox}{#1}% \begin{lehrer}\textbf{#1}\end{lehrer}% \begin{schueler}\rule{2.3\diebox}{1pt}\end{schueler}% } % \includeversion{lehrer}\excludeversion{schueler} \includeversion{schueler}\excludeversion{lehrer} \begin{document} Warum? \luecke{Darum!} \end{document} Allerdings reicht für das Beispiel ein klassischer Öffne in Overleaf
\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel}% die nicht mehr ganz so neue Rechtschreibung \usepackage[T1]{fontenc} \usepackage{setspace} \newif\ifloesung \newlength{\diebox} \newcommand{\luecke}[1]{% \settowidth{\diebox}{#1}% \ifloesung \textbf{#1}% \else \rule{2.3\diebox}{1pt}% \fi } % \loesungtrue \begin{document} Warum? \luecke{Darum!} \end{document} beantwortet 20 Mai '17, 10:22 cgnieder 2
Sowohl
(20 Mai '17, 10:28)
cgnieder
Danke Clemens, drei Vorschläge, alle super! Deine erste Lösung hatte ich schon, allerdings hat er mir da immer neue Absätze bei neuen Lücken erzeugt. Leider hab ich meine Version schon überschrieben, sonst könnte ich jetzt vergleichen, was ich da anders gemacht habe... schade. Die zweite Lösung mit dem Schalter ist sehr schlank, ich möchte aber nicht noch mehr Schalter in meinem Dokument haben, und das version-package benutze ich sehr ausgiebig. Exsheets und xsim möchte ich nicht benutzen.
(20 Mai '17, 11:10)
Astrina
»allerdings hat er mir da immer neue Absätze bei neuen Lücken erzeugt.« – dann hast Du „ihn“ vermutlich mit Leerzeilen gefüttert
(20 Mai '17, 11:11)
cgnieder
»ich möchte aber nicht noch mehr Schalter in meinem Dokument haben« – verstehe ich nicht. Im Dokument hast Du doch nur den Befehl
(20 Mai '17, 11:12)
cgnieder
Ich dachte, ich hätte alle Leerzeilen rausgenommen, aber ja, vermutlich ;). Und zu den Schaltern: Mein Dokument ist viiiiiel größer und hat ja schon die Schalter includeversion{lehrer} exclude{schueler}. das Ganze noch mal andersrum, wenn ich meine Schülervariante möchte. Und nachdem alle meine Befehle ausgelagert sind, und ich das in viiiiiielen Dokumenten verwende, möchte ich es nicht immer wieder ändern, bzw. in einem halben Jahr überlegen, warum DIESES Dokument, das ich jetzt das erstemal seit der Änderung öffne, nicht mehr funktioniert.
(20 Mai '17, 11:41)
Astrina
|
In ConTeXt MKIV kann man dafür Modes verwenden. Da sich Öffne in Overleaf
\define[1]\luecke{% \setbox\scratchbox=\hbox{\bold{#1}}% \doifmode{lehrer}{\bold{#1}}% \doifnotmode{lehrer}{\blackrule[height=1pt,width=\wd\scratchbox]}% } \starttext Warum? \luecke{Darum!} \enablemode[lehrer] Warum? \luecke{Darum!} \stoptext beantwortet 22 Mai '17, 04:02 Henri |