Au lieu de faire une macro pour chaque lettre, comme dans
\def\bA{\mathbf{A}} ... \def\bZ{\mathbf{Z}}
4 Réponses :
ne serait pas préférable de définir une commande et il peut être utilisé à la fois dans résultat: Dollars extérieurs sont là pour laisser le mode math (romain) parce que un autre avantage de Ce code teste de nouvelles commandes pour l'existence de J'espère que c'est ce que vous recherchez. P> p> texte code> mode et
math code> MODE.
Utilisation: p>
f (x) fort> = 'intégré delta strong> (x)
Où \ Boldmath La commande code> n'a aucun effet en mode mathématique. Les internes retournent en mathématiques (audacieuses). Bretelles supplémentaires (
$ {\ boldmath code>) garantit que la commande
\ boldmath code> fonctionne uniquement avec
# 1 code> p>
\ bb code> et
\ bg code>. Donc, vous ne pouvez pas utiliser facilement les latex makros. P>
Si vous souhaitez avoir une macro spécialement conçue pour les lettres grecques et une autre pour les lettres latines, vous pouvez ajouter \ newcommand \ bl [1] {\ ensuremath {\ mathbf {# 1}}} code> dans le préambule et utilisez-le . - Cela ne fonctionnera que pour les lettres latines.
+1 Je suppose que ma question est plus académique que pratique. Votre suggestion est totalement valide. Je suppose que l'écriture \ b x code> au lieu de
\ bx code> n'est pas une très grande distinction. Néanmoins, mon objectif initial est d'éviter l'espace. Votre point concernant la détention des macros existantes est particulièrement important. Il rendrait un code très confus à redéfinir
\ bf code> par exemple.
Je recommanderais de faire:
\documentclass{article} \usepackage{amssymb} \newcounter{char} \setcounter{char}{1} \loop\ifnum\value{char}<27 \edef\c{\Alph{char}} \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\csname\expandafter\expandafter\expandafter b\expandafter\c\expandafter\endcsname\expandafter{\expandafter\mathbb\expandafter{\c}} \addtocounter{char}{1} \repeat \begin{document} \(\bZ\) \end{document}
Cela affecterait-il aussi des lettres grecques? Et pourquoi utiliser \ bh ello \ bw orld code>, lorsque vous pouvez utiliser
\ b hello \ b world code>?
+1 solution cool. Je n'ai jamais su \ eXeafter code> ou
csname code>. Je pense que l'utilisation de ce dernier vous permettrait de couper un peu votre macro.
@Crowley: J'ai raté le peu de lettres grecques. On pourrait définir une version de \ Altern et \ Altern pour les lettres grecques. Overkill pour une application, mais pourrait être utile ailleurs. En ce qui concerne votre deuxième point: je suis tout à fait d'accord et je l'ai dit! Dans mes documents, j'utilise (une variante de) votre solution. Néanmoins, la question de pouvoir boucler sur l'alphabet était suffisamment intriguante que je pensais avoir une partie. J'ai essayé de frapper un ton qui montrait que je ne serais pas en fait i> faire cela dans la pratique. Après tout, 18 élargissements pouvaient être considérés comme un onglet excessif!
@Andrew: Nul doute que vous le savez maintenant, mais votre groupe de \ denpadifter peut être réduit un lot i>. \ EXELLEFTER \ EDEF \ CSNAME B \ ALPH {CHAR} \ endcsname {\ noexpand \ mathbb {\ altér {char}}} code> devrait faire.
\def\mydefgreek#1{\expandafter\def\csname b#1\endcsname{\text{\boldmath$\mathbf{\csname #1\endcsname}$}}} \def\mydefallgreek#1{\ifx\mydefallgreek#1\else\mydefgreek{#1}% \lowercase{\mydefgreek{#1}}\expandafter\mydefallgreek\fi} \mydefallgreek {beta}{Gamma}{Delta}{epsilon}{etaex}{Theta}{Iota}{Lambda}{kappa}{mu}{nu}{Xi}{Pi}{rho}\mydefallgreek $\bGamma\bDelta \bTheta \bLambda \bXi \bPi $ $\bbeta \bgamma\bdelta \bepsilon \betaex \btheta \biota \blambda \bkappa \bmu \bnu \bxi \bpi \brho$
C'est bien. La ligne 2 est donc essentiellement une boucle car elle se insère avant le caractère suivant, non? La ligne 1 pourrait être insérée dans la ligne 2, mais est séparée uniquement pour la lisibilité. Une solution à deux lignes! Le seul côté bas est de taper l'alphabet.
Que diriez-vous d'une liste de lettres grecques? ( {gamma} {mu} code> ou
\ gamma \ mu code> ou une autre liste raisonnable.)
Je ne comprends pas comment vous voulez écrire des lettres grecques. Vous écrivez \ ba, \ bb code>, etc pour
a, b, ... code>. Qu'est-ce qui concerne le grec?
\ bgamma code>?
\ bmmu code>? Je ne comprends pas.
Oui \ bgamma code> ou
\ bmu code> ou
\ blambda code> ou
\ blambda code>. Actuellement, j'ai juste une liste de ces commandes faites manuellement.
\ texte code> pour scripts:
2 ^ \ bgamma code> par exemple.
Élargir sur la réponse d'Andrew, voici une solution sans ceci définira \ eXeafter code>:
\ ba code>,
\ bb code>, et ainsi de suite, pour développer à
\ mathbb {a} code>,
\ mathbb {b} code>, etc. p> p>
Au fait, je cherche une réponse (LA) Tex. Actuellement, j'ai un script Bash, mais je veux une solution (LA) Tex Seule.
Je ne connais pas la latex, alors je vais simplement ajouter ceci comme un commentaire - y a-t-il une construction de script à l'intérieur de tout ce que vous utilisez pour générer les macros? Et si oui, a-t-il la capacité d'appeler quelque chose à l'effet de
echo -e -n '\ x41' code>. En incrémentant le nombre «41», vous passeriez à travers toutes les lettres ASCII de l'alphabet (en commençant par la capitale »).
@Aronchick - C'est l'idée. La réponse d'Andrews ci-dessous le fait (mais dans Tex, nous allons faire référence directement aux caractères alphabétiques, en évitant ASCII).