Je voudrais créer un ensemble de 'fonts' ensuite en utilisant la
commande \DeclareFixedFont , faire appel aux éléments de cet
ensemble.
Voici le code que j'ai fait qui ne fonctionne pas :
\documentclass[12pt]{article}
\usepackage{arrayjob}
\makeatletter
\newcommand{\TexteChoix}[2]{%
% #1 le font
% #2 le texte
\DeclareFixedFont{\MMFont}{T1}{#1}{m}{n}{12pt}
{\MMFont #2} }
\makeatother
\begin{document}
\newarray\MesFonts % création de l'ensemlble
\readarray{MesFonts}{pag& pbk& pcr & phv& pnc & ppl & psy & ptm & pzcm
& pzdr}
\expandarrayelementtrue
\TexteChoix{\MesFonts(2)}{LaTeX}
\end{document}
Est-ce que quelqu'un a une idée pour résoudre ce problème ?
Merci
Toufan
Le \DeclareFixedFont ne sert à rien et par ailleurs on peut faire
beaucoup plus simple (je ne sais pas pourquoi cela ne fonctionne pas
avec arrayjob).
\documentclass[12pt]{article}
\makeatletter
\newcommand*{\namedef}{\@namedef}
\newcommand*{\MesFonts}[1]{\@nameuse{MesFonts#1}}
\makeatother
\newcommand{\TexteChoix}[2]%
{{\fontsize{12pt}{12pt}\usefont{T1}{#1}{m}{n}#2}}
\begin{document}
\namedef{MesFonts1}{pag}
\namedef{MesFonts2}{pbk}
\namedef{MesFonts3}{pcr}
\namedef{MesFonts4}{phv}
\namedef{MesFonts5}{pnc}
\namedef{MesFonts6}{ppl}
\namedef{MesFonts7}{psy}
\namedef{MesFonts8}{ptm}
\namedef{MesFonts9}{pzcm}
\namedef{MesFonts10}{pzdr}
\TexteChoix{\MesFonts{1}}{LaTeX}
\TexteChoix{\MesFonts{2}}{LaTeX}
\TexteChoix{\MesFonts{3}}{LaTeX}
\TexteChoix{\MesFonts{4}}{LaTeX}
\end{document}
--
Joss
> "Toufan" wrote in message
> <1166615584.8...@t46g2000cwa.googlegroups.com>:
> > Est-ce que quelqu'un a une idée pour résoudre ce problème ?
>
> Le \DeclareFixedFont ne sert à rien et par ailleurs on peut faire
> beaucoup plus simple (je ne sais pas pourquoi cela ne fonctionne pas
> avec arrayjob).
>
Merci Joss
En fait, j'aurais siuhaité que le code fonctionne avec 'arrayjob'.
Alors j'ai modifié le précédent code (en prenant une partie de votre
code), ça fonctionne à 80% , en fait il y a un problème
d'affichage. (il affiche le nom du fichier du font.fd)
Voici le code :
\documentclass[12pt]{article}
\usepackage{arrayjob}
\usepackage{fp}
\begin{document}
\newarray\MesFonts % création de l'ensemlble
\readarray{MesFonts}{pag& pbk& pcr & phv& pnc & ppl & psy & ptm & pzcm
& pzdr}
\expandarrayelementtrue
\makeatletter
\newcommand{\TexteChoix}[2]{%
% #1 N° du font dans la liste
% #2 le texte
\checkMesFonts(#1)
{\fontsize{12pt}{12pt}\usefont{T1}{\cachedata}{m}{n} #2} }
\makeatother
\TexteChoix{4}{LaTeX}
\end{document}
%%%%%%%%%%%%%%%%%
Comment éviter cet affichage?
Merci
Toufan
Pourquoi ?
--
Joss
Puisque on pourra avoir un ensemble contenant plus de fonts que dans
cette exemple.
Et d'autre part, ça évite de faire :
\namedef{MesFonts 1}{...}
..........................
..........................
..........................
\namedef{MesFonts n}{....}
Toufan
Puisque on pourra avoir un ensemble contenant plus de fonts que dans
Je tiens toujours à mon code avec 'arrayjob'.
Joss, pourriez me dire pourquoi le code suivant ne produit rien ?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[12pt]{article}
\usepackage{arrayjob}
\newarray\MesFonts % création de l'ensemlble
\readarray{MesFonts}{pag& pbk& pcr & phv& pnc & ppl & psy & ptm & pzcm
& pzdr}
\expandarrayelementtrue
\makeatletter
\newcommand*{\TexteChoix}[2]{%
% #1 N° du font dans la liste
% #2 le texte
\def\AAA\MesFonts(#1)
{\fontsize{12pt}{12pt}\usefont{T1}{\AAA}{m}{n} #2} }
\makeatother
\begin{document}
\TexteChoix{4}{LaTeX}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Merci
Toufan
Non.
> Et d'autre part, ça évite de faire :
>
> \namedef{MesFonts 1}{...}
> ..........................
> ..........................
> ..........................
> \namedef{MesFonts n}{....}
Ce n'est certainement pas une qualité exclusive d'arrayjob que de
pouvoir déclarer des éléments en une ligne. Et entre nous, cela m'a
pris trois secondes probablement à écrire avec la fonction de
remplacement d'Emacs.
--
Joss
Parce que tu es en train d'essayer de produire du code fonctionnel en
tapant au hasard sur ton clavier. Au demeurant, je ne connais pas
arrayjob et n'ai pas envie de le connaître mais \MesFonts(...) n'est
visiblement pas une commande développable, elle ne fonctionnera donc pas
ainsi - sauf si l'on patche ou sauf si j'ai loupé quelque chose [ce qui
est possible étant donné que j'ai regardé très très succinctement].
--
Joss, la syntaxe du « & » comme séparateur est particulièrement tordue.
Merci Joss
> Joss, la syntaxe du « & » comme séparateur est particulièrement tordue.
Joss
Vous avez une idée de comment créer un ensemble avec le sytaxe ','
comme sépateur des éléments?
Toufan
\documentclass[12pt]{article}
\newcommand{\TexteChoix}[2]%
{{\fontsize{12pt}{12pt}\usefont{T1}{#1}{m}{n}#2}}
\newcounter{tempcnta}
\makeatletter
\newcommand*{\MesFonts}[1]{\@nameuse{MesFonts#1}}
\newcommand*{\setlist}[2]{%
\setcounter{tempcnta}{0}%
\@for \@tempa :=#2\do {%
\stepcounter{tempcnta}%
\expandafter \def \csname #1\arabic{tempcnta}\expandafter \endcsname
\expandafter {\@tempa}%
}%
}
\makeatother
\begin{document}
\setlist{MesFonts}{pag,pbk,pcr,phv,pnc,ppl,psy,ptm,pzcm,pzdr}
> "Toufan" wrote in message
> <1166632631.3...@f1g2000cwa.googlegroups.com>:
> >
> > Josselin Noirel a écrit :
> >
> >> Joss, la syntaxe du « & » comme séparateur est particulièrement tordue.
> >
Merci Joss
Avec LaTeX seul l'impossible est 'impossible'
Toufan