Benötigt wird ein Befehl oder eine Umgebung, die alle Leerzeichen in einem Text durch ein anderes Zeichen, z. B. „/“, ersetzt und diesen ansonsten unverändert wiedergibt.

Die Eingabe soll beispielsweise so aussehen:

Open in Online-Editor
\documentclass{article}
\newcommand{\MeinBefehl}[1]{#1} % bitte anpassen

\begin{document}
\MeinBefehl{Fest gemauert in der Erden steht die Form aus Lehm gebrannt}
\end{document}

Die gewünschte Ausgabe wäre hier „Fest/gemauert/in/der/Erden/steht/die/Form/aus/Lehm/gebrannt“.

gefragt 29 Dez '15, 11:04

Cletus's gravatar image

Cletus
995226
Akzeptiert: 71%


Das Paket stringstrings hilft:

Open in Online-Editor
\documentclass{article}
\usepackage{stringstrings}

% Ersetzung des Leerzeichens durch den Schrägstrich:
\newcommand{\MeinBefehl}[1]{\convertchar{#1}{ }{/}}

\begin{document}
\MeinBefehl{Fest gemauert in der Erden steht die Form aus Lehm gebrannt}
\end{document}
Permanenter link

beantwortet 29 Dez '15, 15:11

Cletus's gravatar image

Cletus
995226

Das stand hier.

alt text

Open in Online-Editor
\documentclass{article}

\newcommand*{\strC}{\begingroup
  \obeyspaces
  \begingroup\lccode`~=`\ %
  \lowercase{\endgroup\let~}\vsp
  \dostrC}
\newcommand{\dostrC}[1]{\textnormal{{\slshape\ttfamily#1}}\endgroup} % string constant
\newcommand*{\vsp}{\allowbreak\textvisiblespace\allowbreak} % visible space

\begin{document}
\strC{Hallo Welt:  x  und  y  sind die Variablen.~Neuer Satz...}
\end{document}
Permanenter link

beantwortet 29 Dez '15, 12:04

cis's gravatar image

cis
5.4k860169

bearbeitet 29 Dez '15, 12:04

Diese Lösung ist für mich schwer durchschaubar. Der Link auf Stackexchange ist allerdings hilfreich und hat zu einer Lösung geführt, die ich in einer Alternativantwort vorstelle.

(29 Dez '15, 15:09) Cletus
1

@Cletus: Das Zeichen, das da als Ersatz der Leerzeichen (und nur dieser) verwendet wird, ist in \vsp definiert. Man kann da auch ein / einsetzen. \textnormal, \slshape, \ttfamily sind für die Lösung unerheblich. Lässt man diese weg, wird die Lösung ein wenig durchschaubarer. Es ist dann eigentlich ein Standard-\lowercase-Trick. Diese Lösung hat den Vorteil, dass mehrere Leerzeichen hintereinander erkannt werden. Dafür muss man ggf. Zeilenumbrüche noch extra behandeln.

(30 Dez '15, 08:09) saputello

Mit xstring ist das ebenfalls möglich:

Open in Online-Editor
\documentclass{article}
\usepackage{xstring}

% Ersetzung des Leerzeichens durch den Schrägstrich:
\newcommand{\MeinBefehl}[1]{\StrSubstitute{#1}{ }{/}}

\begin{document}
\MeinBefehl{Fest gemauert in der Erden steht die Form aus Lehm gebrannt}
\end{document}

Dabei werden mehrere Leerzeichen übrigens im Gegensatz zur Lösung von @cis nur durch ein Zeichen ersetzt und auch Zeilenumbrüche werden als Leerzeichen behandelt.

Permanenter link

beantwortet 30 Dez '15, 08:04

saputello's gravatar image

saputello
18.4k22352

expl3 stellt mit \tl_replace_all:Nnn genau das Werkzeug zur Verfügung. Hier ist eine Idee, wie man das in der Praxis anwenden könnte:

Open in Online-Editor
\documentclass{article}

\usepackage{expl3,xparse}
\ExplSyntaxOn
% #1: tokenlist
% #2: search
% #3: replace
\cs_new_protected:Npn \cletus_replace:nnn #1#2#3
  {
    \tl_set:Nn \l_tmpa_tl {#1}
    \tl_replace_all:Nnn \l_tmpa_tl {#2} {#3}
    \tl_use:N \l_tmpa_tl
  }

\NewDocumentCommand \MeinBefehl {m}
  { \cletus_replace:nnn {#1} {~} {/} }
\ExplSyntaxOff

\begin{document}

\MeinBefehl{Fest gemauert in der Erden steht die Form aus Lehm gebrannt}

% optional Zeichen aussuchen, das an Stelle des Leerzeichens verwendet wird:
\ExplSyntaxOn
\RenewDocumentCommand \MeinBefehl {O{/}m}
  { \cletus_replace:nnn {#2} {~} {#1} }
\ExplSyntaxOff

\MeinBefehl[+]{Fest gemauert in der Erden steht die Form aus Lehm gebrannt}

\end{document}
Permanenter link

beantwortet 02 Jan, 10:54

Clemens's gravatar image

Clemens
19.0k113060

@Clemens: Mich hat diese Lösung übrigens erst abgeschreckt, bis ich entdeckt habe, dass sie vor allem deshalb so lang ist, weil Du als Alternative noch eine Variante mit optionalem Argument eingebaut für das Ersatzzeichen eingebaut hast. Ja, ich hatte erst nicht gelesen, sondern nur einen Blick darauf geworfen. Am Smartphone liest sich TeXwelt nicht so gut.

(04 Jan, 07:15) saputello

@saputello stimmt, ich versuche auch, TeXwelt nicht am Smartphone zu nutzen (und strafe mich mit diesem Kommentar Lügen ;)). Frohes neues Jahr!

(04 Jan, 07:21) Clemens
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×11
×2

Frage gestellt: 29 Dez '15, 11:04

Frage wurde angeschaut: 839 Mal

Zuletzt aktualisiert: 04 Jan, 07:37