Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

09 Jan '16, 14:24

cgnieder's gravatar image

cgnieder
22.1k253463

`\tl_to_uppercase:n` und `\tl_to_lowercase:n` existieren zwar, sind aber nicht (mehr) dafür gedacht, Groß- und Kleinschreibung zu manipulieren, und werden gerüchteweise auch aus expl3 entfernt werden. Dafür gibt es - `\tl_upper_case:n`, - `\tl_lower_case:n` und - `\tl_mixed_case:n`. Beschrieben werden sie in [interface3][1] im Abschnitt **l3candidates**/Additions *l3candidates/Additions to l3tl. Wichtig l3tl*. **Wichtig zu wissen: sie expandieren ihr Argument! Argument!** \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:n { \l_tmpa_tl } } oder eventuell mit `V`-Argument (was ich persönlich bevorzugen würde): \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:V \l_tmpa_tl } \cs_generate_variant:Nn \tl_upper_case:n { V } Komplettes Beispiel: \documentclass{article} \usepackage[utf8]{inputenc} \usepackage{expl3,xparse,etoolbox} % es ist nötig, \linebreak robust zu machen, da \tl_upper_case:n sein Argument % expandiert: \robustify\linebreak \ExplSyntaxOn \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/\linebreak[1]} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:V \l_tmpa_tl } \cs_generate_variant:Nn \tl_upper_case:n { V } \NewDocumentCommand \MeinBefehl {m} { \cletus_replace:n {#1} } \ExplSyntaxOff \begin{document} \MeinBefehl{aus klein mach groß} \end{document} [1]: http://mirrors.ctan.org/macros/latex/contrib/l3kernel/interface3.pdf
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

09 Jan '16, 14:24

cgnieder's gravatar image

cgnieder
22.1k253463

`\tl_to_uppercase:n` und `\tl_to_lowercase:n` existieren zwar, sind aber nicht (mehr) dafür gedacht, Groß- und Kleinschreibung zu manipulieren, und werden gerüchteweise auch aus expl3 entfernt werden. Dafür gibt es - `\tl_upper_case:n`, - `\tl_lower_case:n` und - `\tl_mixed_case:n`. Beschrieben werden sie in [interface3][1] im Abschnitt **l3candidates**/Additions to l3tl. Wichtig zu wissen: sie expandieren ihr Argument! \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:n { \l_tmpa_tl } } oder eventuell mit `V`-Argument (was ich persönlich bevorzugen würde): \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:V \l_tmpa_tl } \cs_generate_variant:Nn \tl_upper_case:n { V } Komplettes Beispiel: \documentclass{article} \usepackage[utf8]{inputenc} \usepackage{expl3,xparse,etoolbox} % es ist nötig, \linebreak robust zu machen, da \tl_upper_case:n sein Argument % expandiert: \robustify\linebreak \ExplSyntaxOn \cs_new_protected:Npn \cletus_replace:n #1 { \tl_set:Nn \l_tmpa_tl {#1} \tl_replace_all:Nnn \l_tmpa_tl {ß} {ss} \tl_replace_all:Nnn \l_tmpa_tl {~} {/\linebreak[1]} % Hier muss jetzt jeder Klein- durch den entsprechenden Großbuchstaben ersetzt werden. \tl_upper_case:V \l_tmpa_tl } \cs_generate_variant:Nn \tl_upper_case:n { V } \NewDocumentCommand \MeinBefehl {m} { \cletus_replace:n {#1} } \ExplSyntaxOff \begin{document} \MeinBefehl{aus klein mach groß} \end{document} [1]: http://mirrors.ctan.org/macros/latex/contrib/l3kernel/interface3.pdf
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

08 Jan '16, 23:34

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

08 Jan '16, 23:33

cgnieder's gravatar image

cgnieder
22.1k253463