PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersetzen von Text durch Punkte



olfab
22-04-2013, 23:50
Hallo Forum,

ich möchte Text, auch mehrzeiligen Text, durch Punkte ersetzen, welche den gleichen horizontale Ausdehnung haben wie der Text. Zum Beispiel:
"Das ist ein Test."
"......................"

Ich erreiche das mit:
\newlength{\bla}
\newcommand{\leer}[1]{\settowidth{\bla}{#1}\makebox[\bla][s]{\dotfill}}

Das funktionier aber leider nur, wenn im Originaltext kein Zeilenumbruch ist. Bei einem Zeilenumbruch des Originaltextes, ragen die Punkte über den Rand hinaus.

Hat jemand von Euch eine Idee,
wie das richtig geht?

Dank und Gruß,
Oliver

rais
23-04-2013, 07:01
Moin moin,


ich möchte Text, auch mehrzeiligen Text, durch Punkte ersetzen, welche den gleichen horizontale Ausdehnung haben wie der Text. Zum Beispiel:
"Das ist ein Test."
"......................"

Ich erreiche das mit:
\newlength{\bla}
\newcommand{\leer}[1]{\settowidth{\bla}{#1}\makebox[\bla][s]{\dotfill}}

Das funktionier aber leider nur, wenn im Originaltext kein Zeilenumbruch ist. Bei einem Zeilenumbruch des Originaltextes, ragen die Punkte über den Rand hinaus.

Du könntest mit \ifdim schauen, ob \bla größer als \linewidth ist und dann entsprechend per \setlength \bla auf \linewidth begrenzen.

MfG

rstuby
23-04-2013, 07:06
Rainer, damit kann aber immer noch kein mehrzeiliger Text durch Punkte ersetzt werden.

rais
23-04-2013, 09:24
Rainer, damit kann aber immer noch kein mehrzeiliger Text durch Punkte ersetzt werden.
er sprach ja auch nur von `horizontaler Ausdehnung'.

MfG

olfab
23-04-2013, 09:58
Ich meine tatsächlich das Ersetzen von mehrzeiligen Text durch Punkte, die aneinandergereiht die gleiche horizontale Ausdehnung haben wie der Text.

Oliver

u_fischer
23-04-2013, 12:45
Linien wäre nicht so schwer, das ginge relativ einfach mit soul. Aber die Punkte sollten ja gleichmäßige Abstände haben, also kann man nicht einfach einen Buchstaben durch 1 oder 2 Punkte ersetzen. Da musst du wahrscheinlich zusätzlich tikz-einsetzen.

http://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex

olfab
23-04-2013, 22:23
Ulrike, ich bekomme das leider mit den Infos leider nicht hin. Wie würde denn die Lösung mit einer Linie aussehen?

ctansearch
24-04-2013, 22:23
Habe mich mit dem Problem befasst, aber letztlich bleibt doch die Frage, wozu das Ganze dienen soll.

Die Ersetzung des Textes durch Punkte ist doch offensichtlich eine Auslassung, für die keine Dimensionen benötigt werden. Man schreibt einfach ... ... und gut. Alles andere ist Platzverschwendung.

Falls ein Platzhalter für den gesamten Text benötigt wird, also ein Raum, der den Platz des Textes einnimmt, ohne ihn auszugeben, genügt es, den Abschnitt per \textcolor(white}{text} auszublenden.

Ansonsten könnte man einen Fontdesigner ansprechen, der einen "Dotfont" entwickelt, der alle Buchstaben durch Punkte ersetzt.

cgnieder
25-04-2013, 10:06
Wie wär's hiermit:


\documentclass{article}
\usepackage{exsheets}
\SetupExSheets{blank/style=dotted}
\begin{document}

\blank{Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.}

\end{document}

Grüße

u_fischer
25-04-2013, 13:40
Nett. Wie misst oder ersetzt du denn den Text? (Grob)

cgnieder
25-04-2013, 14:55
Die Grundidee hab ich mal bei einem Post von Heiko Oberdiek in d.c.t.t. aufgeschnappt (ich finde den Originalpost gerade nicht, aber ich habe den Code):


\makeatletter
\newcommand*{\luecke}{%
\begingroup
\setlength{\dimen@}{6cm}%
\ifdim\dimen@>2em %
\underline{\hspace{1em}}%
\advance\dimen@ by -2em\relax
\@whiledim\dimen@>0pt\do{%
\penalty\hyphenpenalty
\ifdim\dimen@<1pt %
\underline{\hspace{\dimen@}}%
\else
\underline{\hspace{1pt}}%
\fi
\advance\dimen@ by -1pt %
}%
\underline{\hspace{1em}}%
\else
\underline{\hspace{\dimen@}}%
\fi
\endgroup
}
\makeatother

Gruß

olfab
25-04-2013, 21:49
Die Kompilation des Beispielquelltextes bricht mit der Fehlermeldung "Support package expl3 too old" ab.
Ich arbeite mit einer recht alten MikTex 2.9-Version. Wenn ich mir die zu aktualisierenden Pakete anschaue, soll amslatex gelöscht werden. Ohne amlatex funktioniert jedoch mein Quelltext nicht mehr. Wie kann ich trotzdem die Fehlermeldung abstellen? Ich finde das Paket expl3 nicht.

Oliver

u_fischer
26-04-2013, 09:58
amsmath kannst du später wieder installieren. Das Paket wurde nur umsortiert/umbenannt. Also mache die Updates (im User + Adminmodus). Starte danach den Paketmanager und synchronisiere das Repository. Anschließend können fehlende Pakete per on-the-fly neu installiert werden.