Seite 1 von 1

Unerwünschte zusätzliche Leerzeichen bei Tokenize

Verfasst: Mo 12. Jun 2017, 10:33
von Michael_Gast
Hallo zusammen

Ich habe das Problem, dass bei der Ausgabe von zerlegten Texten (mit Hilfe des Pakets tokenizer) zusätzliche Leerzeichen eingefügt werden.

Hat jemand von euch eine gute Idee oder einen Tipp?

Danke im Voraus!
\documentclass{scrartcl}

\usepackage[trim]{tokenizer} 
\setlength\parindent{0pt}

\begin{document}

\newcommand{\Source}{this,is,a,short,test}
The string \emph{\Source} contains the following tokens:
\whiledo{\not\equal{\Source}{}}
{
\GetTokens{TokenOne}{TokenTwo}{\Source}
\TokenOne
\let\Source\TokenTwo
}

\end{document}
Das tokenizer-Paket bietet noch eine Option Trim, die hat keinen Einfluss bei mir.

Ich habe versucht, Leerzeichen direkt bei der Ausgabe zu entferne. Folgender Code verkleinert mir die Leerzeichen, ganz eliminiert werden sie aber nicht.
\documentclass{scrartcl}

\usepackage[trim]{tokenizer} 
\setlength\parindent{0pt}

\begin{document}

\newcommand{\Source}{this,is,a,short,test}
The string \emph{\Source} contains the following tokens:
\whiledo{\not\equal{\Source}{}}
{
\GetTokens{TokenOne}{TokenTwo}{\Source}
\unskip\TokenOne\ignorespaces
\let\Source\TokenTwo
}

\end{document}

Verfasst: Mo 12. Jun 2017, 11:31
von u_fischer
Das Paket ist fehlerhaft, es hat um die 10 Stellen, wo es Leerzeichen nicht korrekt auskommentiert hat. (Und dein Code fügt ebenfalls welche ein.)

Ich würde Kommalisten mit expl3 bearbeiten:
\documentclass{scrartcl}
\usepackage{xparse}

\ExplSyntaxOn

\NewDocumentCommand\parsetokens { m }
{
 \clist_set:NV \l_tmpa_clist { #1 }
 \clist_map_inline:Nn \l_tmpa_clist{##1}
} 

\ExplSyntaxOff

\begin{document}

\newcommand{\Source}{this,is,a,short,test}
The string \emph{\Source} contains the following tokens:
\parsetokens {\Source}

\end{document} 


Verfasst: Mo 12. Jun 2017, 14:56
von Michael_Gast
Hallo Ulrike

Ich danke dir für die Hilfe.

Du hast mir das Tor aufgestossen zur neuen Latex3-Welt. Sieht spannend aus, ich muss mich da aber noch ein wenig einlesen und bei Adam und Eva (bzw. HelloWorld) anfangen.