bonjour um,
je cherche à créer des macros dans LaTex. Le problème c'est que je veux nommer ces macros avec des noms "lisibles", c'est à dire éviter de coller les mots entre eux, genre \def\masupermacropaslisible. J'avais donc dans l'idée d'écrire les espaces avec des _ (underscore). Le problème c'est qu'on dirait que seul le premier mot est pris en compte, par exemple si je définis :
\def\DEFAULT_FONT_SIZE{14}
\def\DEFAULT_AUTRE_TRUC{5}
j'obtiens ensuite à la compilation:
! Use of \DEFAULT doesn't match its definition.
Savez-vous si on peut changer ce comportement, dans un style par exemple ?
# catcode
Posté par HSimpson . Évalué à 5.
\catcode‘_=11
Par contre je pense que ça va mettre pas mal de bazar si tu utilise des mathèmatiques.
Sinon il faudrait que tu appelles tes macros en utilisant:
\catcode‘_=11
\DEFAULT_AUTRE_TRUC
\catcode‘_=8
Ce qui est mal pratique (c'est un doux euphémisme).
Je te conseilles la lecture du TeX by topic de VICTOR EIJKHOUT.
[^] # Re: catcode
Posté par B16F4RV4RD1N . Évalué à 2.
On dirait qu'il faut l'écrire plutôt :
\catcode`\_=11
mais une fois ceci fait, cela me fait des erreurs à chaque utilisation de _ dans une macro.
Je vais regarder de ce côté, qui devrait sans doute être la meilleure façon de procéder.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: catcode
Posté par HSimpson . Évalué à 1.
On dirait qu'il faut l'écrire plutôt :
\catcode`\_=11
C'est possible, ce n'est pas une manip que j'utilise souvent sauf via les appels \makeatletter et \makeatother qui font quasiment la même chose pour le symbol @.
mais une fois ceci fait, cela me fait des erreurs à chaque utilisation de _ dans une macro.
quels utilisation de _? Pour des maths? Pour appeler d'autres macro?
Je vais regarder de ce côté, qui devrait sans doute être la meilleure façon de procéder.
Je ne suis pas un TeXpert (loin de là) mais je ne pense sincèrement pas que ce soit une bonne idée de changer le catcode de _. Dès que tu vas utiliser des maths ça risque de partir en sucette.
Je pense par contre que tu devrais pouvoir faire quelque chose avec un autre caractère inutilisé (genre @ (dans ce cas attention, tu exposes toutes les «macros internes» des différents packages))
[^] # Re: catcode
Posté par B16F4RV4RD1N . Évalué à 2.
Après, s'il y a moyen d'écrire quelque chose dans le genre \def\"DEFAULT FONT SIZE"{14} à la place de \def\DEFAULT_FONT_SIZE{14} pourquoi pas...
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: catcode
Posté par HSimpson . Évalué à 2.
\configurateur{default font size = 12}
et ça te configure une macro avec la valeur que tu passe (tu peux faire plein d'autre choses avec).
[^] # Re: catcode
Posté par B16F4RV4RD1N . Évalué à 2.
A l'occasion je regarderai si j'ai un peu de temps, mais il faut déjà assimiler le truc (heureusement pgfkeys semble indépendant de pgf d'après la doc)
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# [HS] LaTeX ou Tex ?
Posté par nicolas . Évalué à 2.
« Define macros with \newcommand. Use \renewcommand sparingly if at all, and avoid \def completely unless you really know what you are doing
"\newcommand" is the Latex way of defining macros; "\def" is the old, plain TeX style, definition. Using "\newcommand" is far preferable, since \newcommand checks against existing definitions and generates an error message if a macro name is in use. By contrast, "\def" happily overwrites any existing definition; this may cause unexpected errors that are often hard to track down. »
http://www.math.uiuc.edu/~hildebr/tex/tips-macros.html
Question subsidiaire : où as-tu vu cette commande pour l’utiliser à ton tour ? Parce que pour le coup le old est un euphémisme de préhistorique…
[^] # Re: [HS] LaTeX ou Tex ?
Posté par HSimpson . Évalué à 2.
\newcommand est une macro LaTeX qui permet de faire des choses facilement (comme le test sur les macros déjà existantes ou bien de définir facilement un paramètre facultatif). Toutes ces choses sont faisable en TeX pur bien entendu mais demande plus de travail qu'avec leur version TeX \def.
Par contre \def est bien plus puissant, par exemple il est facile d'avoir une macro avec des appels de parametre bizarre genre:
\macro(param1)(param2,param3)=param4/param5;
Ce n'est qu'un exemple de la puissance de \def. Il y a beaucoup (trop) d'autres choses possibles (voir là aussi le "TeX by topic" par exemple).
En fait, en général \newcommand suffit, mais parfois il faut sortir \def, sans parler des cas ou les deux sont plus ou moins équivalents (dans ce cas là, la flemme me porte à utiliser \def, c'est plus court à écrire).
Et puis il faut se souvenir qu'il n'y a pas que LaTeX, mais aussi ConText et autres. Pour faire un package portable il faut éviter les LaTeXeries.
[^] # Re: [HS] LaTeX ou Tex ?
Posté par B16F4RV4RD1N . Évalué à 2.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.