Hallo! Die Frage ist verwandt mit Wie arbeite ich mit dem greektext-Befehl? Es sollen mit der Eingabe Das muß doch ungefähr so gehen? Open in writeLaTeX
\documentclass[varwidth, margin=5mm]{standalone} %\documentclass{article} \usepackage[T1]{fontenc} \usepackage[greek,ngerman]{babel} \usepackage{pgffor} \foreach \GWord/\TransLetter in {alpha/a, beta/b, gamma/g}{ \newcommand*{\y\GWord}{\textsl{\greektext \TransLetter}} } \begin{document} \yalpha \end{document} |
Dein Problem ist weniger, dass Du Open in writeLaTeX
\newcommand*{\a}{b} \newcommand*{\y\a}{y\a} definiert eben kein Open in writeLaTeX
\newcommand*{\a}{b} \expandafter\newcommand\expandafter*\csname y\a\endcsname{y\a} Hier wird die Ausführung (eigentlich die Expansion) von Wenn man das auf Dein Beispiel anwendet: Open in writeLaTeX
\documentclass[varwidth, margin=5mm]{standalone} \usepackage[T1]{fontenc} \usepackage[greek,ngerman]{babel} \usepackage{pgffor} \foreach \GWord/\TransLetter in {alpha/a, beta/b, gamma/g}{% \expandafter\newcommand\expandafter*\csname y\GWord\endcsname{\textsl{\greektext \TransLetter}}% } \begin{document} \yalpha \end{document} ergibt sich ein weiteres Problem. Dieses zweite Problem lässt sich am einfachsten mit Open in writeLaTeX
\documentclass[varwidth, margin=5mm]{standalone} \usepackage[T1]{fontenc} \usepackage[greek,ngerman]{babel} \usepackage{pgffor} \foreach \GWord/\TransLetter in {alpha/a, beta/b, gamma/g}{% \expandafter\newcommand\expandafter*\csname y\GWord\endcsname{}% \expandafter\gdef\csname y\GWord\endcsname{\textsl{\greektext \TransLetter}}% } \begin{document} \yalpha \end{document}
Ich habe hier eine leere Definition mit Als letzter Fehler in Deinem Beispiel bleibt, dass Open in writeLaTeX
\documentclass[varwidth, margin=5mm]{standalone} \usepackage[T1]{fontenc} \usepackage[greek,ngerman]{babel} \usepackage{pgffor} \foreach \GWord/\TransLetter in {alpha/a, beta/b, gamma/g}{% \expandafter\newcommand\expandafter*\csname y\GWord\endcsname{}% \expandafter\xdef\csname y\GWord\endcsname{\noexpand\textsl{\noexpand\greektext \TransLetter}}% } \begin{document} \yalpha \end{document} Die Man kann sich aber auch einen Hilfs-Befehl definieren, und benötigt dann nur noch wenige Open in writeLaTeX
\documentclass[varwidth, margin=5mm]{standalone} \usepackage[T1]{fontenc} \usepackage[greek,ngerman]{babel} \usepackage{pgffor} \newcommand*{\gdefgreekletter}[2]{% \gdef#1{\textsl{\greektext #2}}% } \foreach \GWord/\TransLetter in {alpha/a, beta/b, gamma/g}{% \expandafter\newcommand\expandafter*\csname y\GWord\endcsname{}% \expandafter\gdefgreekletter\csname y\GWord\expandafter\endcsname\TransLetter } \begin{document} \yalpha \end{document} Wie hier die Fazit: Das ganze ist also weniger ein Problem der Schleife an sich als eine Frage, wie man einerseits bei der Bildung des Namens eines neuen Befehls diesen durch Expansion anderer Befehle bilden kann und andererseits den Inhalt des Makros bereits bei der Definition teilweise expandieren kann. Die Anwendung auf eine Schleife bringt dann nur einen kleinen, zusätzlichen Aspekt, nämlich, wie man innerhalb einer Gruppe eine Definition vornehmen kann, die sich außerhalb der Gruppe oder global auswirkt. Als letztes sei lediglich erwähnt, dass man auch die Ja, also danke erstmal. Daß der TransLetter nichts mit dem Problem zu tun hat, glaube ich Dir gern. Für mich mich ist dieses "a/b" nur eine Notation, die ich bei TikZ oft verwende, z.B. "1.57/pi/2" mit dem Ziel: Schreibe pi/2 an die Stelle von 1.57. Wenn das jetzt hier aus irgendeinem Grund nicht geht, bin offengestanden ratlos.
(23 Mai '14, 08:45)
cis
1
@cis Da war ich ein wenig zu schnell. Die Expansion von
(23 Mai '14, 08:50)
Bes
OK! Ich habe die Ergebnisse hier http://texwelt.de/wissen/fragen/5626/wie-schreibe-ich-serifenlos-im-mathemodus-und-im-textmodus eingearbeitet.
(23 Mai '14, 10:59)
cis
|