Wie kann man in TikZ Zeichenketten auf bestimmte Strukturen untersuchen, um daraufhin bedingte Anweisungen ausführen lassen zu können; beispielsweise ist gegeben: Open in writeLaTeX
\def \a{CH_3-CH_2-OH} und nun soll von Links nach rechts der Inhalt von Open in writeLaTeX
\def \b1{CH} \def \z1{3} \def \b2{CH} \def \z2{2} \def \b3{OH} Wichtig wäre, dass irgendwie eine Zuordnung der Zahlen zu den jeweils zu vorigen Buchstaben erhalten bleibt. Wie bewerkstelligt man das in TikZ? Wäre für jede Hilfe sehr dankbar. |
TikZ ist zum Programmieren von Grafiken gedacht, nicht zur Zeichenkettenverarbeitung. Dennoch gibt es natürlich jede Menge Möglichkeiten:
Hier mal ein LaTeX3-Ansatz, was den Eingabetext mit l3regex zerlegt und mit neuen Befehlen zusammenfügt, was mit normalem aktuellen LaTeX läuft: Open in writeLaTeX
\documentclass{article} \usepackage{underscore} \usepackage{l3regex,xparse} \ExplSyntaxOn \seq_new:N \l_result_seq \NewDocumentCommand { \split } { m } { \regex_extract_all:nnN { [A-Z|a-z]+ | \d+ } {#1} \l_result_seq \seq_map_inline:Nn \l_result_seq { \item ##1 } } \ExplSyntaxOff \begin{document} \begin{itemize} \split{CH_3-CH_2-OH} \end{itemize} \end{document} beantwortet 06 Apr '14, 22:18 stefan ♦♦ |
Mir ist unklar, wo hier der Bezug zu TikZ ist... mir scheint, als wolltest Du die Formel von Ethanol zerlegen, um ... irgendwas zu erreichen?! Übrigens: Makronamen können keine Ziffern enthalten, siehe Was sind catcodes, lccodes und uccodes? und Warum verschwindet der Leerraum nach selbst definierten Befehlen?
Nur für den Fall, dass Du die Strukturformel von Ethanol zeichnen möchtest. kennst Du schon LaTeX und Chemie (3) – Strukturformeln: das „chemfig“ Paket und Can you make chemical structure diagrams in LaTeX?