PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lückentext



marxlechen
09-06-2013, 21:06
Hi.
Ich bin dabei ein Lückenskript zu schreiben. Dabei habe ich mir einen Befehl \luecke{...} geschrieben, der im groben nach einer ifthenelse Abfrage in der Studentenversion die Textfarbe auf weiß stellt.

Allerdings ist dies ja sehr leicht auszutricksen... man muss nur den inhalt des Pdf in einen anderen editor kopieren...

Fällt euch etwas ein, eine Lücke zu schreiben, deren inhalt man nicht mehr sichtbar machen kann.... ?

Hobbes
09-06-2013, 21:37
Das geht mit dem Befehl \phantom{unsichtbarerText}


\documentclass{article}
\begin{document}
Hier steht \phantom{unsichtbarer} Text
\end{document}

Wobei eine Linie evtl nicht schlecht ist, um optisch die Lücke hervorzuheben.


\documentclass{article}
\newlength{\strichlaenge}
\newcommand{\luecke}[1]{\settowidth{\strichlaenge}{#1}\rule{\strichlaenge }{0.4pt}}
\begin{document}
Hier steht \luecke{unsichtbarer} Text.

Dieser kann auch \luecke{kurz} sein.
\end{document}

marxlechen
09-06-2013, 23:39
habe mir mit \phantom etwas schönes zusammengebastelt... funktioniert auch recht schön. Weißt du zufällig wie \phantom funktioniert und kann man da den text wirklich nicht mehr sichbar machen?

Ich hatte mir auch noch eine andere variante überlegt. diese ist leider daran gescheitert, dass ich bei \makebox(breite,höhe){....} nur feste Größen und nicht etwas wie die eigene Länge \lueckenbreite eingeben kann. weiß jemand zufällig, wie man das ändern könnte?

EDIT: ich habe noch ein bisschen rum gespielt... und das, was mit \phantom unsichtbar gemacht wurde, kann leicht wieder sichtbar gemacht werden...

rais
10-06-2013, 00:24
Moin moin,


EDIT: ich habe noch ein bisschen rum gespielt... und das, was mit \phantom unsichtbar gemacht wurde, kann leicht wieder sichtbar gemacht werden...
oh? Wie hast Du das denn geschafft?
Ich dachte, \phantom packt dessen Inhalt in eine Box -- gibt diese aber nich aus, sondern überträgt Höhe und Breite auf eine leere Box.
Passiert Dir das auch mit \hphantom?
Und hast Du Hobbes zweites Beispiel getestet? (die Linie könntest Du unsichtbar machen, wenn Du 0pt statt 0.4pt für dessen Höhe nimmst -- oder gleich \hspace{\strichlaenge} statt \rule).

MfG

klops
10-06-2013, 06:31
EDIT: ich habe noch ein bisschen rum gespielt... und das, was mit \phantom unsichtbar gemacht wurde, kann leicht wieder sichtbar gemacht werden...
Das glaube ich nicht. Da die Zeichen definitiv nicht in die Datei geschrieben werden, kann da auch nichts sichtbar gemacht werden. Beweis:
\documentclass{article}
\pagestyle{empty}
\begin{document}
\phantom{Das glaube ich nicht.}
\end{document} mit latex bearbeitet und die dvi-Datei mit dvitype ausgegeben liefert:
This is DVItype, Version 3.6 (TeX Live 2012)
Options selected:
Starting page = *
Maximum number of pages = 1000000
Output level = 4 (the works)
Resolution = 300.00000000 pixels per inch
numerator/denominator=25400000/473628672
magnification=1000; 0.00006334 pixels per DVI unit
' TeX output 2013.06.10:0719'
Postamble starts at byte 105.
maxv=41484288, maxh=26673152, maxstackdepth=2, totalpages=1

42: beginning of page 1
87: down4 41484288 v:=0+41484288=41484288, vv:=2628
92: push
level 0:(h=0,v=41484288,w=0,x=0,y=0,z=0,hh=0,vv=2628)
93: down4 -39649280 v:=41484288-39649280=1835008, vv:=116
98: down4 37683200 v:=1835008+37683200=39518208, vv:=2503
103: pop
level 0:(h=0,v=41484288,w=0,x=0,y=0,z=0,hh=0,vv=2628)
104: eop

Demnach ist kein einziges charset in der Datei, also werden auch keine Zeichen geschrieben. Stattdessen sind nur Bewegungsanweisungen zu finden.

Ebenso, wenn ich mit pdflatex ein PDF erzeuge (wobei ich noch \pdfcompresslevel=0 und \pdfobjcompresslevel=0 eingefügt habe, damit die erzeugte PDF-Datei lesbar wird), wird
%PDF-1.5
%ÐÔÅØ
3 0 obj <<
/Length 0
>>
stream
endstream
endobj
2 0 obj <<
/Type /Page
/Contents 3 0 R
/Resources 1 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 4 0 R
>> endobj
1 0 obj <<
/ProcSet [ /PDF ]
>> endobj
4 0 obj <<
/Type /Pages
/Count 1
/Kids [2 0 R]
>> endobj
5 0 obj <<
/Type /Catalog
/Pages 4 0 R
>> endobj
6 0 obj <<
/Producer (pdfTeX-1.40.13)
/Creator (TeX)
/CreationDate (D:20130610072547+02'00')
/ModDate (D:20130610072547+02'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) kpathsea version 6.1.0)
>> endobj
xref
0 7
0000000000 65535 f
0000000183 00000 n
0000000072 00000 n
0000000015 00000 n
0000000222 00000 n
0000000279 00000 n
0000000328 00000 n
trailer
<< /Size 7
/Root 5 0 R
/Info 6 0 R
/ID [<0DECE968A4DB22E221F958A533CA8F92> <0DECE968A4DB22E221F958A533CA8F92>] >>
startxref
586
%%EOF erzeugt. Das ist also auch kein einziges Zeichen drin. Damit kann man auch keine Zeichen sichtbar machen.

marxlechen
10-06-2013, 12:41
Ups. da war ich wohl gestern zu müde... sorry. ihr habt recht. in \phantom ist nichts mehr sichtbar zu machen.... Vielen lieben dank

Nur so aus interesse... Hier wäre mein versuch es ohne \phantom zu machen. Im endeffekt was ähnliches, was Phantom macht. Allerdings scheitere ich daran, die Höhe der Box anzupassen, da ich bei \makebox nur die Breite optional angeben kann. Wenn ich es mit \makebox(breite, höhe){inhalt} versuche, funktioniert es nicht mehr...




\newlength{\lueckenbreitetemp}
\newlength{\lueckenhoehetemp}
\newcommand{\lueckentest}[1]{
\setlength{\fboxrule}{1pt}
\setlength{\fboxsep}{2pt}
\ifthenelse{\equal{\smodus}{student}}
{
\ifmmode
\settowidth{\lueckenbreitetemp}{\Large $#1$}
\settototalheight{\lueckenhoehetemp}{\Large $#1$}
\fcolorbox{black}{black}{\makebox[\lueckenbreitetemp]{~}}
\else
\settowidth{\lueckenbreitetemp}{\Large #1}
\settototalheight{\lueckenhoehetemp}{\Large #1}
\fcolorbox{black}{black}{\makebox[\lueckenbreitetemp]{~}}
\fi
}
{\ifthenelse{\equal{\smodus}{dozent}}
{
\ifmmode
\fcolorbox{black}{lightgray}{\mbox{\Large$#1$}}
\else
\fcolorbox{black}{lightgray}{\mbox{\Large#1}}
\fi
}
{
#1
}
}
}

ElGato
10-06-2013, 21:16
Wäre ein spezielles Paket nicht einfacher als \phantom ?

Es gibt Pakete für Klausuren in denen Text aus- und bei Bedarf eingeblendet werden kann, hier ein Thread (http://www.mrunix.de/forums/showthread.php?t=70305) dazu