Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Arabic languege #31

Open
Elfengour opened this issue Dec 30, 2017 · 106 comments
Open

Adding Arabic languege #31

Elfengour opened this issue Dec 30, 2017 · 106 comments

Comments

@Elfengour
Copy link

I will be happy to help you adding Arabic languge support to this package

@vincentb1
Copy link
Owner

Dear @Elfengour
You are most welcome for providing help. Unfortunately I can't speak a single word of arabic although my father's family, and my mother's mother were all arabic speaking people. Well, FYI, there are indeed quite plenty of French words originated from arabic, maybe even more than in Spanish.
I have several plain & naive questions to you:

  • do you intend to support only xelatex, lualatex, and UTF-8 encoding with pdflatex, or are there other encodings to be supported. In other words, do you think that the definition file can be ASCII only using macros for each letter, or do we need some encoding ?
  • How do you think that the numbers willbe passed to the macros, will \numberstringnum{123} format 123 or 321 ? I think that the former (123) is preferable.
  • I don't even know how arabic is written in LaTeX: are the macros still written Left to Right (L2R), ie you write \numberstringnum and not munginrtsrebmun\. In the former case, it means that the source code mixes L2R and R2L: how does the editor knows when you type in L2R direction, and in R2L direction?

@vincentb1
Copy link
Owner

One more question: what about the declension: are we going to have only singular and plural, as for number, and masculine, feminine and neutral as for gender. Or are there more declension cases like in Russian for instance (where « первый », « первого », and « первом » all mean « first » in different grammatical cases). That is why Russian would need quite some re-enginering of the way that fmtcount works.

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 6, 2018

Hello Dear Colleagues
I just found this link, and I think that it's a very good idea to try to add the arabic language to your very useful package, fmtcount. So I'll try to give some ideas and tracks... I give you the litteral counter what I use in my documents, written with polyglossia and compiled by xelatex:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MACRO FOR LITERAL NUMBERING %%

\newcommand\words[1]{\expandafter\xwords\csname c@#1\endcsname}
\def\xwords#1{\ifcase#1\or
الأول\or
الثاني\or
الثالث\or
الرابع\or
الخامس\or
السادس\or
السابع\or
الثامن\or
التاسع\or
العاشر\or
الحادي عشر\or
الثاني عشر\or
الثالث عشر\or
الرابع عشر\or
الخامس عشر\or
السادس عشر\or
السابع عشر\or
الثامن عشر\or
التاسع عشر\or
العشرون\or
\else
please add some words
\fi}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END MACRO FOR LITERAL NUMBERING %%

what I use for the chapters. The command \words{chapter} gives the entry number \value{chapter} in this list, until the value 20.

Note that the arabic counters depend on gender, and that the counter "\words" is a masculine one, as the word "chapter" in arabic is masculine. If you intend to finalize this, I can give the analogous counter in the feminine case.

With my many thanks. Cordially

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 6, 2018

Note that this enumeration is similar of the english one: "chapter one", "chapter two" etc...
The litteral numbering such that "There is one exercise", "There is two exercises"... is developped in my following post on stack exchange:

https://tex.stackexchange.com/questions/228782/customizing-pointpoints-in-exam-class-for-arabic-language

without using the arabic characters.. I can give you the arabic one that I use in my exam. Thank you

@vincentb1
Copy link
Owner

Dear @mfbellalouna,

Thank you for your input. I am trying to port this to fmtcount. I let you know as soon as I have something running…

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 7, 2018

Dear @vincentb1
Thank you for your quick reply. About the four cases of words, in my post,

I want to customize the command '\thepoints' for Arabic language, where we have four cases instead of two: The cases '@Points=1 or=1/2', '@Points=2', '3<=@Points<=10', and '@Points>10'.
Then, '@pointname' will have 4 different values-names, say {WORD_1, WORD_2, WORD_3, WORD_4}.

you can see as an example of EMW, what I use, in my exam macros, and try it for several values of numquestions. Many thanks.

\documentclass[12pt]{exam}

\newcommand\TheNumQuestions{\ifthenelse{\equal{\numquestions}{1}}{1 questionone}{\ifthenelse{\equal{\numquestions}{2}}{2 questiontwo}{\ifthenelse{\equal{\numquestions}{3}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{4}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{5}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{6}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{7}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{8}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{9}}{\numquestions\ questionthreetoten}{\ifthenelse{\equal{\numquestions}{10}}{\numquestions\ questionthreetoten}{\numquestions\ questiongreatten}}}}}}}}}}}

\begin{document}
This exam contains \TheNumQuestions
\begin{questions}
\question A question
\question A question
\question A question
\question A question
\end{questions}
\end{document}

@vincentb1
Copy link
Owner

Hello,
Let us go step by step, I have created arabic language experimental code to support 1 to 20 numbers based on your input. Please get & install the code as follows (if you are under a Linux/MAC OSX terminal) :

cd /tmp
mkdir arabic-experiment
cd arabic-experiment
git clone git://github.com/nlct/fmtcount.git
cd fmtcount/dist
export TEXMF_INSTALL_DIR=/path/to/your/texmf
make install
texhash

In the above, replace /path/to/your/texmf by the actual path of the TEXMF where you want the files installed.

@mfbellalouna
Copy link
Contributor

Good morning
Excuse me I'm not a linux' man ! I use miktex under windows, so I don't understand very well what you say. If I understand good, you created a code, so I do this by some commands, like putting it in some .sty file, say fmtcount_arabic.sty, and refresh miktex database after creating it... I can do all other thing if different.

@vincentb1
Copy link
Owner

No problem , I am under MSW+ MikTeX at my home too.
I caught a cold, and I feel fairly weak, so I come back to you later with guidance when I feel better.

@mfbellalouna
Copy link
Contributor

Ok Take care. Tell me at any time
Best

@vincentb1
Copy link
Owner

Hello,
I feel better now, although I am still coughing…
I was asking about Linux | MAC OSX because development tools like git or gnumake are there by default or very easy to insall. But it is OK to install them on MSW too, incidentally that is what I have.
I suggest that you install these tools because before we have a complete arabic supporting fmtcount we will have to do a number of iterations, and it will be easier for me if you can take the updates directy from the git repo without my packaging fmtcount.

  • git is a version control system. This is what allows SW developers to track any change, and to maintain easily different branches — for instance you have a master branch on which you develop the next release still not stable, and a release_1.0 branch where you maintain the release 1.0, just correcting bugs and not adding any new feature.
  • gnumake is a sw that allows to make scripts in which compilation steps are done only when necessary, which saves processing time.

So first install the git client from there. Frankly speaking git is not limited to SW development. As I write all my documents under LaTeX, for any document needing revisions, I maintain the LaTeX source versions under git. So as you are a LaTeX user, you may also become a git user for your own purpose of maintaining some documents.
git is easy to scale, you can use it for a local repository (ie repository is on your own PC, not on a remote server) where you are alone to write and modify the source code, or for huge projects with hundreds of developers.
Once you have installed git, come back to me, and I provide additional instruction to how proceed together.
So long…
BTW, my native language is French, so you can use this language too if easier than English for you.

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 12, 2018 via email

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 12, 2018 via email

@vincentb1
Copy link
Owner

Bonsoir,

Pas de souci, les options par défaut sont complètement convenables. À dire vrai la personnalisation permet surtout d'installer le client git ailleurs que sous C:\Program Files (x86)\ ou un truc de ce genre…

L'étape suivante est d'aller dans le menu Démarrer, et d'ouvrir une console Git bash. Alors vous aurez une fenêtre de console qui va s'ouvrir où vous pourrez taper des commandes en ligne, un peu comme avec une console MSDos ou avec une console PowerShell, sauf que l'interpreteur de commande est bash et non cmd ou powershell. Par défaut le répertoire courant à l'ouverture de la console est, sous MSWindows10 par exemple C:\Users\Vincent chez moi, parce que mon identifiant d'utilisateur est Vincent, mais chez vous ça fera peut-être C:\Users\Mohamed. À dire vrai ça dépend un peu de la configuration de votre PC.

Vous pouvez savoir le nom MSWindows du répertoire courant en tapant la commande pwd -W. Bon supposons que c'est C:\Users\Mohamed. Taper ensuite les commandes suivantes :

mkdir -p Projects
cd Projects
git clone git://github.com/nlct/fmtcount.git
cd fmtcount/dist
export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9"
make install

Je vais commenter ce qui précède :

  1. mkdir -p Projects crée un répertoire nommé Projects sous le répertoire d'accueil du client git, si par ex. le répertoire d'accueil est c:\Users\Mohamed, cela va créer le répertoire c:\Users\Mohamed\Projects
  2. cd Projects change le réprtoire courant, pour que cela devienne celui que vous avez crée en 1.
  3. git clone git://github.com/nlct/fmtcount.git va recréer une copie locale du dépôt distant git où fmtcount est versionné sous le répertoire Projects
  4. cd fmtcount/dist change le répertoire courant pour se mettre la où se trouve le scipt gnumake d'installation de fmtcount — un tel script s'appelle un makefile
  5. export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9" configure une variable d'environnement nommée TEXMF_INSTALL_DIR utilisée par le makefile d'installation de fmtcount pour savoir où installer fmtcount. À noter, il faut mettre le bon chemin correspondant à la TEXMF par défaut de MiKTeX ou à l'une des TEXMF de MiKTeX que vous utilisez. Pour configurer cela, comme on est sous bash il faut d'une part remplacer c: par /c dans le chemin, et d'eautre part utiliser des obliques à la place des contr'obliques.
  6. make install, va exécuter le makefile d'installation de fmtcount, ça suppose que vous avec gnumake d'installé sur votre machine.
  7. Après la 1re installation, rafraichir la FNDB de MiKTEX de sorte que le nouveau fichier fc-arabic.defsoit référencé. Pour les mises à jour suivantes, ça ne sera plus nécessaire

@vincentb1
Copy link
Owner

Si vous n'avez pas gnumake, vous pouvez récuper un binaire .

Le plus simple est de mettre tout le contenu de l'archive sous c:/Program Files (x86)/Git à supposer que ce soit le répertoire par défaut d'installation du client git que vous venez d'installer. Après cela, lorsque vous ouvrez une console git bash et que vous tapez

make --version

Cela doit répondre à peu près la même chose que cela :

GNU Make 4.2.1
Built for x86_64-pc-msys
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 13, 2018 via email

@vincentb1
Copy link
Owner

OK, pas de souci. N'hésitez pas à m'envoyer une trace de ce qui s'est passé. Je me tiens à votre disposition pour vous aider.

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 21, 2018 via email

@vincentb1
Copy link
Owner

Juste un petit commentaire à propos de la commande pwd. Pour info la commande pwd donne le chemin du répertoire courant. C'est l'équivalent de echo %CD% sous MSDos.

Ce que je préconisais c'était pwd -W et non pwd -d, donc pas étonnant que pwd -d n'a pas marché.
L'option -W n'existe que sur les portages MSWindows de bash de type MSYS, on ne peut pas faire pwd -W sous Linux. Ce que ça fait c'est que ça donne le chemin du répertoire courant en notation MSWindows, et non le chemin du répertoire courant en notation MSYS.

@vincentb1
Copy link
Owner

Concernant le problème avec git, est-ce que — toujours dans la console Git Bash — vous pouvez taper la commande suivante : git --version. Chez moi ça fait cela :

Vincent@AIGLEROYAL ~
$ git --version
git version 1.9.4.msysgit.2

Vincent est mon nom d'utilisateur, et AIGLEROYAL le nom de ma machine (qui ne le mérite pas vraiment, parce que c'est un vieux PC pourri).

@vincentb1
Copy link
Owner

Petite question : est-ce que vous êtes derrière un proxy dans une université ou chez vous. Quand c'est derrière un proxy, le fait d'utiliser une URL en git: peut poser des problème si le port git (9418) est bloqué. On peut alors essayer de passer par le protocole http (c'est plus lent que le protocole git, mais c'est pour ne pas s'embêter, et pleurer auprès de l'administrateur de votre université). Pour utiliser le protocole http au lieu du protocole git il suffit de taper la commande :

git clone http://github.com/nlct/fmtcount.git

Voir ce blog, toutefois je viens d'essayer chez moi, et ça ne marche pas, alors qu'avec le protocole git si…

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 22, 2018 via email

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 22, 2018 via email

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 22, 2018 via email

@vincentb1
Copy link
Owner

vincentb1 commented Mar 22, 2018

OK, bon maintenant que le git clone a marché — aux histoires de proxy près, il faudra peut-être qu'on trouve comment passer en HTTP pour ne pas être em***dés par le proxy — on peut passer à la suite que je rappelle ici :

cd fmtcount/dist
export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9"
make install

À noter que "/c/Program Files/MiKTeX 2.9" est à remplacer par la racine de MiKTeX sur votre PC où C: est remplacé par /c pour être conforme à la notation MSYS. Vous pouvez metttre autre chose que ça, si par exemple sous l'onglet Roots défini par l'utilitaire MiKTeX Settings vous avez rajouté un chemin de TeXMF, ça peut être ce chemin là, juste mis en notation MSYS — il faut juste que le répertoire existe, et c'est d'ailleurs peut-être plus propre de faire cela dans un premier temps pour ne pas écraser le fmtcount officiel par le fmtcount expérimental.

À noter aussi que vous pouvez créer un fichier C:/Users/Mfaouzi/.profile dans lequel vous mettrez les commandes

export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9"
cd ~/Projects/fmtcount/dist

il faur alors que vous sortiez et reveniez sous Git Bash. L'avantage de faire ça, c'est que ça vous met au bon endroit avec le bon environnement dès que vous entrez sous Git Bash. Il n'y a alors plus qu'à taper make install.

À noter aussi, que la 1re fois après le make install il faut rafraichir la FNDB, par ex. en tapant la commande texhash sous la console Git Bash, ou bien en cliquant sur le bouton Refresh FNDB de l'utilitaire MiKTeX Settings comme pour une installation manuelle (ne passant pas par le gestionnaire de paquetage de MiKTeX). Ça ne sera plus à faire pour les mises à jours suivantes du fmtcount expérimental, puisque MiKTeX aura déjà référencé tous les nouveaux fichiers.

Si vous arrivez jusque là, alors vous pourrez faire des tests avec le code que vous avez fourni et que j'ai adapté à fmtcount, et nous pourrons allez plus loin.

@mfbellalouna
Copy link
Contributor

Bonjour
"Si vous arrivez jusque là,.." Je n'y arrive pas helas...

Je suis parti de 0, rentrant dans C/Users/Mfaouzi/Projects puis dans fmtcount/dist. Ensuite la commande export TEXMF_INSTALL_DIR="/c/ProgramData/Miktex/2.9" ne répond rien, et la commande make n'est pas reconnue. Le coupable est cette "commande Gunmake" dont vous parlez, et que je ne connais pas... Qu'en est-il?

ci-joint copie de ma console Git...
Merci

Mfaouzi@FanEnvy MINGW64 ~
$ cd Projects

Mfaouzi@FanEnvy MINGW64 ~/Projects
$ cd fmtcount/dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ export TEXMF_INSTALL_DIR="/c/ProgramData/Miktex/2.9"

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make install
bash: make: command not found

@vincentb1
Copy link
Owner

OK, c'est normal que le export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9" ne réponde rien, c'est que ça s'est bien passé.
Le souci c'est que vous n'avez pas installé GNUmake sur votre machine. Vous en trouverez un .

Pour son installation le plus simple c'est de décompresser le contenu dans le même répertoire où vous avez git, chez moi c'est C:\Program Files (x86)\Git, donc par exemple dans l'archive compressée de GNUMake vous avec bin\make.exe qui ira sous C:\Program Files (x86)\Git, et donc make.exe se trouvera sous C:\Program Files (x86)\Git\bin au même endroit que git.exe.

Après ça, ça devrait marcher, même sans sortir/re-entrer dans la console Git Bash.

@mfbellalouna
Copy link
Contributor

Bonjour
le plus simple ne marche pas chez moi ! J'ai suivi en effet les instructions et j'ai toujours ce message:

Mfaouzi@FanEnvy MINGW64 ~
$ make --version
bash: make: command not found

malgrè le fait que j'ai bien l'application make.exe dans le dossier C:\Program Files\Git\bin qui contient aussi les applications bash, git et sh.
Il se peut que le coupable soit la version de Miktex qui n'est pas la version "admin" mais "user" pour des motifs de légéreté...
Une solution serait peut-être d'installer GNUmake en suivant des instructions, comme dans ce lien que j'ai googlé, https://www.youtube.com/watch?v=T9yFxM19c2Q. Me le conseillerez-vous !?

@vincentb1
Copy link
Owner

C'est vraiment bizarre que ça ne fonctionne pas… que ce passe-t-il quand vous tapez which git, chez moi ça sort /bin/git.
Si ensuite je fais echo $PATH, alors ça sort une liste séparée par des :, et cette liste contient /bin, ce qui explique que git soit bien trouvé par le shell. Si maintenant je fais pushd /bin, et ensuite pwd -W j'ai C:/Program Files (x86)/Git/bin, et si là je fais ls, alors ça me donne une liste contenant git.exe — et chez vous il devrait y avoir aussi make.exe.
Juste pour info, pushd, c'est pareil que cd, sauf que derrière on peut faire un popd pour revenir à l'endroit d'où on était parti.
Pourriez vous faire tous ces tests pour voir ce que ça donne chez vous…

@mfbellalouna
Copy link
Contributor

re-bonjour
Bon... j'ai installé GNUmake en suivant le lien, et ça a failli ne pas marcher !... Il a fallu que j'ajoute, après installation (sans que ce soit mentionné nulle part !) dans le path le chemin C:\gnuwin32\bin\, et j'ai alors reçu le message suivant:

Mfaouzi@FanEnvy MINGW64 ~
$ make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
Ceci est un logiciel libre ; voir le source pour les conditions de copie.
Il n'y a PAS de garantie ; tant pour une utilisation COMMERCIALE que pour
R▒PONDRE ▒ UN BESOIN PARTICULIER.

Ce logiciel est construit pour i386-pc-mingw32

je vais reprendre maintenant mon make install et je vous tiens au courant

@mfbellalouna
Copy link
Contributor

Si je comprends bien, il faut que je remplace dans mon ~/.profile le chemin export PATH="/mingw64/bin:$PATH" par le chemin export PATH="/Program Files/Git/usr/bin:$PATH", c'est bien cela ?... après avoir copié dedans le make obtenu de 7zip ?

@vincentb1
Copy link
Owner

Non, ça serait export PATH="/c/Program Files/Git/usr/bin:$PATH", avec un /cdevant. Mais il suffit d'écrire : export PATH="/usr/bin:$PATH" puisque MSYS2 de Git Bash rend /usr/bin équivalent à C:\Program Files\Git\usr\bin.

À partir du echo $PATH que vous m'avez donné tantôt, on pourrait aussi donner le PATH en entier sans que ce soit un ajout ainsi :

export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl"

@mfbellalouna
Copy link
Contributor

Bonsoir
donc récapitulons:
en mettant votre ligne de commandes, où il n'y a effectivement pas make, j'ai la réponse suivante:

$ which make
which: no make in (/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl)

Peut-être que je dois faire quelque manipulation supplémentaire ?

@vincentb1
Copy link
Owner

La réponse de which make ne dépend pas du répertoire courant. which xxxx explore tous les répertoires du PATH et teste si l'un d'eux contient le programme xxxx, et si oui retourne le 1er trouvé.
La réponse de which make confirme que

  1. vous avez bien supprimé le chemin c:\gnuwin32 de votre PATH sous Git bash (en modifiant le fichier ~/.profile, et en le re-sourçant — c'est à dire avec la commande . ~/.profile — ou bien en sortant/re-rentrant de la console Git bash).
  2. vous avez aussi bien supprime le make d'EZWinports de /usr/bin de Git bash — c'est à dire du répertoire MSWindows C:\Program Files\Git\usr\bin.

Vous pouvez encore faire un test en tapant make --version dans la console Git bash, et normalement cela devrait faire une erreur en disant que la commande make n'est pas trouvée.

Si tout cela se passe comme prévu, alors la suite c'est de dézipper l'archive du make de MSYS2 (voir le point №3 de mon commentaire d'il y a 2 jours).

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 28, 2018

Bonsoir
En faisant ce que vous m'avez dit de faire (dézipper le make et récupérer make.exe pour le mettre dans
C:\Program Files\Git\usr\bin, j'obtiens en faisant les tests que vous préconisez:

$ which make
/usr/bin/make

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make --version
GNU Make 4.2.1
Built for x86_64-pc-msys
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Ma question est alors: c'est bon ? j'attaque make install? pas de problèmes pour cp?.. cp dont l'absence a fait "foirer le truc" à la première installation, rappelons-le !

@vincentb1
Copy link
Owner

Oui, oui, là je pense que c'est bon, on croise les doigts et on fait make install dans le répertoire ~/Projects/fmtcount/dist, et ça marchera peut-être… ;-)

Pour rappel, ce n'est pas l'absence de cp qui a posé problème, c'était un mauvais diagnostic de ma part. Le problème c'était que le makefile passe au shell une commande du type command … qui suppose que le shell est bash, or nous avions installé un make natif, donc ça ne pouvait marcher que si la variable d'environnement SHELL était réglée pour que make utilise bash, or un tel réglage est impossible, car la variable SHELL est réglée en dur dans le makefile, et le make natif n'est pas capable de l'exploiter car il ne comprends pas les chemins du genre /bin/bash qui ne sont pas des chemins MSWindows. Ce qui est vraiment dommage c'est qu'il n'ait pas sorti un message d'erreur plus explicite du genre « désolé, mais je ne trouve pas ce shell » au lieu de se rabattre sur la valeur par défaut — MSDos — en silence.

En fait, le shell par défaut des make sous les système d'exploitation *nix, c'est sh et non bash, comme le makefile utilise des commandes spécifiques à bash il règle la variable d'environnement SHELL pour demander bash et que ça marche quelque soit le shell d'où la commande make install est appelé. Mais bon, ça suppose qu'on est dans un système *nix au niveau des chemins du genre /bin/bash. Pour info sous les systèmes *nix le même noyeau peut être appelé par plusieurs shells différents (sh, ksh, csh, …, y en a toute une palanquée). Mais bon, bash est quand même le plus employé, et le seul qui a été porté sous MSWindows à ma connaissance.

@mfbellalouna
Copy link
Contributor

Bon..
malgrè tous nos talismans, j'ai une erreur.. d'un genre inédit ! je donne le rapport;

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make install
Makefile:18: warning: overriding recipe for target '/c/Program'
Makefile:15: warning: ignoring old recipe for target '/c/Program'
Makefile:18: warning: overriding recipe for target 'Files/MiKTeX'
Makefile:15: warning: ignoring old recipe for target 'Files/MiKTeX'
latex fmtcount.ins
make: "c:/Program: Command not found
make: *** [Makefile:43: fmtcount.sty] Error 127

Tout se passe comme si le blanc de Program Files n'est pas accepté !

@mfbellalouna
Copy link
Contributor

Je vous prie de noter que, désormais mon fichier ~/.profile est le suivant:

export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9"
cd ~/Projects/fmtcount/dist
export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl"
export SHELL='C:\Program Files\Git\usr\bin\bash.exe'

@vincentb1
Copy link
Owner

Juste pour info, vous pouvez virer la ligne export SHELL=… du ~/.profile. Ce n'est pas ça la cause de l'erreur, car comme je vous l'ai expliqué le makefile réglant en dur la variable SHELL, celle provenant de l'environnement est ignorée. Mais c'est juste que ce n'est jamais bon de garder dans le ~/.profile qq chose qui ne sert à rien…

Bon, voyons le côté positif des choses, on a quand même avancé, puisque maintenant on va plus loin que l'erreur sur command cp ….

On en est déjà à plus de 86 messages, le but initial était de développer fmtcount en arabe, mais la plupart des messages concerne l'installation d'outils pour pouvoir collaborer plus facilement… Je pense qu'il faut à un moment se poser la question si on suit la bonne voie. Il y a trois possibilités qui s'offrent à nous :

  1. on continue sur installer un make qui marche dans Git bash. Dans ce cas je vais desinstaller mon git et re-installer le dernier pour avoir la même config que vous et reproduire les pb que vous voyez chez moi , ça ira plus vite si je vous dis exactement quoi faire pour que ça marche plutôt que découvrir et résoudre les pb au fur et à mesure.
  2. on abandonne l'option avec Git bash, et vous installez MSYS2, après tout ce n'est pas si gros (le M de MSYS signifie « minimal »). C'est ce que j'utilise chez moi, donc on est à peu près assuré que ça aboutira dans un temps limité. Ceci dit l'installation ne sera pas immédiate, car après avoir fait tourner l'installateur, il faudra bien configurer le ~/.bashrc de MSYS2 qui contiendra à peu près la même chose que le ~/.profile de Git bash, mais qui ne sera pas au même endroit puisque le ~ de MSYS2 est typiquement un répertoire C:\Program Files\msys64\home\votre_nom qui ne correspond pas à celui de Git bash qui est typiquement un répertoire C:\Users\votre_nom.
  3. J'empaquette ce que je fais dans fmtcount et je vous l'envoie par mél. La il faudra l'installer manuellement, ça ne sera pas juste git pull suivi de make install.

Je suis désolé que ça prenne autant de temps. À dire vrai d'une part j'ai le travers d'être terriblement têtu, d'autre part je vous ai imposé une expérience d'installation un peu en free style, puisque ce n'est pas ce que j'utilise chez moi, à dire vrai je n'anticipais pas que cela serait aussi compliqué et ça partait de la bonne intention de vous proposer une installation plus légère en espace disque, et finalement en ce qui me concerne il est aussi motivant de comprendre ce qui n'a pas marché dans ce que nous avons fait, que de développer une nouvelle langue dans fmtcount — donc en bref j'ai un peu basculé sur autre chose sans tenir compte de ce qui était votre motivation initiale à savoir ajouter l'arabe.

En ce qui concerne le nouveau pb que vous avez rencontré, juste tant qu'on y est, est-ce que vous pouvez s'il vous plaît taper la commande :

pushd ../trunk
./cp2dist -f fmtcount.sty -f fcnumparser.sty -f fcprefix.sty README fmtcount-manual.tex ../dist
popd

@mfbellalouna
Copy link
Contributor

mfbellalouna commented Mar 29, 2018

Bonjour
Courage on s'en sortira !
Plus sérieusement, je suis plutôt enclin à la solution 1. ou à la solution 3, car je pense que j'aurais encore des pépins aux installations, pour l'option 2 !
Choisissez l'option qui vous convient le mieux.
En ce qui concerne vos recommandations de commandes, je vous envoie une copie de la console Git, où je ne vois pas d'effet "mesurable":

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ pushd ../trunk
~/Projects/fmtcount/trunk ~/Projects/fmtcount/dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/trunk (master)
$ ./cp2dist -f fmtcount.sty -f fcnumparser.sty -f fcprefix.sty README fmtcount-manual.tex ../dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/trunk (master)
$ popd
~/Projects/fmtcount/dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$

@vincentb1
Copy link
Owner

Je vous propose qu'on fasse temporairement 1 & 3, c'est à dire que pendant que je regarde de plus près comment débourrer cette installation on commence en parallèle à regarder ce que fait déjà fmtcount en arabe, c'est quand même le but de tout ça…

Je vous ai envoyé par mél. l'état courant des choses. Pour installer manuellement, le plus simple c'est de :

  1. dézipper le fmtcount.tds.zip qui est dans fmtcount.zip dans un répertoire de votre choix — par ex. un répertoire C:\Users\Mfaouzi\Projects\texmf à créer,
  2. de rajouter ce répertoire dans l'onglet Roots de l'outil MiKTeX settings
  3. de cliquer sur « Refresh FNDB » sous l'onglet General de l'outil MiKTeX settings

Est-ce que vous pouvez au passage taper sous ~/Projects/fmtcount/dist la commande suivante :

make -C ../trunk dist

@mfbellalouna
Copy link
Contributor

Bonjour
je viens de faire les étapes demandées en 1., 2. et 3. Que tester maintenant ?

D'autre part, pour ce que vous avez demandé, j'ai la réponse suivante:.. essayé pour -C et -c car je ne sais jamais !

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make -C --/trunk dist
make: *** --/trunk: No such file or directory. Stop.

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make -c --/trunk dist
make: invalid option -- c
make: unrecognized option '--/trunk'
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d Print lots of debugging information.
--debug[=FLAGS] Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
--eval=STRING Evaluate STRING as a makefile statement.
-f FILE, --file=FILE, --makefile=FILE
Read FILE as a makefile.
-h, --help Print this message and exit.
-i, --ignore-errors Ignore errors from recipes.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
-k, --keep-going Keep going when some targets can't be made.
-l [N], --load-average[=N], --max-load[=N]
Don't start multiple jobs unless load is below N.
-L, --check-symlink-times Use the latest mtime between symlinks and target.
-n, --just-print, --dry-run, --recon
Don't actually run any recipe; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-O[TYPE], --output-sync[=TYPE]
Synchronize output of parallel jobs by TYPE.
-p, --print-data-base Print make's internal database.
-q, --question Run no recipe; exit status says if up to date.
-r, --no-builtin-rules Disable the built-in implicit rules.
-R, --no-builtin-variables Disable the built-in variable settings.
-s, --silent, --quiet Don't echo recipes.
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch Touch targets instead of remaking them.
--trace Print tracing information.
-v, --version Print the version number of make and exit.
-w, --print-directory Print the current directory.
--no-print-directory Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables Warn when an undefined variable is referenced.

This program built for x86_64-pc-msys
Report bugs to bug-make@gnu.org

@vincentb1
Copy link
Owner

Pour votre dernière expérience c'est normal que ça n'ait pas marché, parce que vous avez tapé --/trunk au lieu de ../trunk (vous avez mis des signes moins au lieu des points). Et sinon c'est -C (capital), et non -c (bas de casse).

Mais, bon, laissez tomber, je verrai tout ça chez moi, lorsque j'aurai le temps…

Pour info, faire :

make -C «répertoire» «cible» 

est une option de make revenant à faire :

pushd «répertoire»
make «cible»
popd 

En d'autres termes on construit la cible «cible» en se plaçant temporairment dans le répertoire «répertoire».

En tapant --/trunk vous avez recherché un répertoire inexistant nommé -- sous le répertoire courant — à savoir C:\Users\Mfaouzi\Projects\fmtcount\dist — au lieu d'un répertoire nommé trunk sous le parent du répertoire courant — à savoir C:\Users\Mfaouzi\Projects\fmtcount.

@mfbellalouna
Copy link
Contributor

Bonjour
Je vous prie d'excuser mes étourderies. Cela fait si longtemps que je travaille pas sur console.. J'ai donc repris la bonne commande, qui donne toujours cette même erreur dûe à la non-prise en charge de l'espace, je pense:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make -C ../trunk dist
make: Entering directory '/c/Users/Mfaouzi/Projects/fmtcount/trunk'
command cp CHANGES ../dist
make: "c:/Program: Command not found
make: *** [Makefile:12: dist] Error 127
make: Leaving directory '/c/Users/Mfaouzi/Projects/fmtcount/trunk'

@mfbellalouna
Copy link
Contributor

D'autre part, je vous prie de m'indiquer comment procéder aux tests, sur le fichier fmtcount.tds.zip que vous m'avez envoyé

@vincentb1
Copy link
Owner

vincentb1 commented Mar 30, 2018

Pour les tests sur le fmtcount avec l'arabe, il suffit de créer un fichier en arabe comme vous faites d'habitude avec xelatex. Vous mettez dans le préambule

\usepackage[arabic]{fmtcount}

Et dans le corps du document vous essayez une commande, par exemple:

\numberstringnum{12}

@vincentb1
Copy link
Owner

Pour le problème avec Git bash, la solution devrait être la suivante :

  1. Ne retaper pas ce qui suit, faites des copier/coller pour éviter les erreurs de frappe. Pour info sous la console Git bash on peut faire clic droit + Paste, et ça fait un coller.

  2. Éditer le fichier C:\Program Files\Git\etc\fstab et ajouter dedans les deux lignes suivantes :

c:/Program\040Files/MiKTeX\0402.9/miktex/bin/x64 /miktex/bin ntfs binary,noacl 0 0
c:/Users/Mfaouzi/AppData/Local/Programs/MiKTeX\0402.9/miktex/bin/x64 /mfaouzi/miktex/bin ntfs binary,noacl 0 0
  1. Modifier votre fichier ~/.profile, et remplacer la ligne export PATH="…" par
export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/mfaouzi/miktex/bin:/usr/bin/vendor_perl:/usr/bin/core_perl"
  1. Renommer le fichier ~/.profile (c'est à dire C:\Users\Mfaouzi\.profile) en ~/.bashrc (C'est à dire C:\Users\Mfaouzi\.bashrc)

  2. Sortir et rerentrer dans la console Git bash

  3. Re essayer le make install.

@vincentb1
Copy link
Owner

Je commente la solution. Le fichier /etc/fstab permet de remplacer un chemin absolu MSWindows comme c:\Program Files\MiKTeX 2.9\miktex\bin\x64 par un chemin MSYS comme /miktex/bin (ou n'importe quoi qui vous plaît, mais sans espace).

La syntaxe du fichier fstab pour les chemin MSWindows c'est :

  1. Remplacer les séparateurs de fichiers \ par /
  2. Remplacer les caractères spéciaux comme l'espace, par la séquence d'échappement octale équivalente \nnn. Le code ASCII de l'espace est 32 en décimal, 20 en hexadécimal, et 40 en octal, donc on met \040 pour chaque espace.
  3. Après on utilise le nom MSYS à chaque fois que c'est nécessaire, notamment dans le PATH ce qui permet de se débarrasser des espaces.

@mfbellalouna
Copy link
Contributor

Bonsoir
j'ai bien reçu vos commentaires, et je crois que nous sommes près du but d'après ce que j'en lis. Je m'attelle à la tâche demain matin et vous tiens au courant

vincentb1 added a commit that referenced this issue Mar 31, 2018
* trunk/fc-arabic.def: Experimental creation of arabic defintions
based on
#31 (comment)

* trunk/fc-makedefinitions.mak (STYFILES): Added fc-arabic.def to
the list of files.

* trunk/fmtcount-manual.tex: Update checksum.

* trunk/fmtcount.sty (\fc@supported@language@list): Added arabic
to the list.

* trunk/test/Makefile (XELATEX_TESTS): Added sample-arabic test case.

* trunk/test/sample-arabic.tex: New file. Test case for Arabic.
@vincentb1
Copy link
Owner

Oui, j'ai oublié de vous dire un truc, il faudra refaire un git pull avant le make install — ou bien après, et refaire make install de nouveau.
En effet, j'avais bien commis les changements de fmtcount dans mon clone local de dépôt, mais j'avais oublié de les pousser dans le dépôt distant, c'est à dire sur GitHub, ce que je viens juste de faire, ce qui m'a permis au passage de voir que mon nouveau Git marche tout aussi bien que l'ancien… Vous pouvez voir la commission ici.

@mfbellalouna
Copy link
Contributor

Bonjour
Je vais commencer mon installation maintenant et j'ai une ou deux interrogations:

  • D'abord, est-ce que ces opérations vont rafraîchir mon fmtcount, car vous dites la chose suivante:

""dézipper le fmtcount.tds.zip qui est dans fmtcount.zip dans un répertoire de votre choix — par ex. un répertoire C:\Users\Mfaouzi\Projects\texmf à créer,
de rajouter ce répertoire dans l'onglet Roots de l'outil MiKTeX settings
de cliquer sur « Refresh FNDB » sous l'onglet General de l'outil MiKTeX settings""

Cette opération va-t-elle rafraichir l'ancienne version?
J'ai fait un premier test et j'ai eu le message: ! LaTeX Error: Unknown option arabic' for package fmtcount'.

  • Ensuite, vous dites refaire un git pull avant le make install. Par quelle commandes exactement? J'en ai fait tellement que que ne sais plus !

@mfbellalouna
Copy link
Contributor

Bonjour
Apres toutes ces manipulations, il n'y a pas eu de résultats tangibles, pour la prise en charge de l'espace:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ make install
Makefile:18: warning: overriding recipe for target '/c/Program'
Makefile:15: warning: ignoring old recipe for target '/c/Program'
Makefile:18: warning: overriding recipe for target 'Files/MiKTeX'
Makefile:15: warning: ignoring old recipe for target 'Files/MiKTeX'
latex fmtcount.ins
make: "c:/Program: Command not found
make: *** [Makefile:43: fmtcount.sty] Error 127

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)

@vincentb1
Copy link
Owner

Je réponds à votre 1er jeu de question. Il y a deux méthodes d'installation, la 1re, que nous avons considérée très récemment faute de pour faire marcher make install, à partir du zip, et la 2e, qui a concerné la plupart de nos échanges, à partir du dépôt git.

Dans les deux cas il faut faire un refresh FNDB au moins la 1re fois pour enregistrer les nouveaux fichiers et éventuellement la nouvelle racine de TEXMF si vous en créez une.
En effet si vous avez un fmtcount déjà installé, alors il faut bien faire attention à ce que la version expérimentale soit prioritaire par rapport à la version installée.

  1. Le plus bête c'est de ne pas créer de nouvelle racine de TEXMF et de réécrire la nouvelle version par dessus l'ancienne en l'écrasant, mais c'est un peu gênant parce que du coup vous perdez l'ancienne.
  2. Un truc simple à faire, c'est
    2.1 de ne pas créer de nouvelle racine de TEXMF, donc vous rester avec les racines par défaut, notamment la racine c:\Program Files\MiKTeX 2.9\ pour l'administrateur, et une autre racine pour l'utilisateur qui doit être c:\Users\Mfaouzi\AppData\Roaming\MiKTeX\2.9.
    2.2 Vous trouver les répertoires où est installé votre version courante de fmtcount, ça doit être T\doc\latex\fmtcount pour le manuel, et T\tex\latex\fmtcount pour le code, où T est soit la TEXMF administrateur, soit la TEXMF utilisateur, vous déplacez ces répertoires et les gardez bien au chaud ailleurs que sous la TEXMF où ils étaient, et vous mettez à la place les fichiers au même niveau pris de fmtcount.tds.zip — ce qui revient:
    2.2.1 dans le cas de la 1re méthode, à avoir export TEXMF_INSTALL_DIR=T, avec la bonne valeur à la place de T, c'est à dire soit c:\Program Files\MiKTeX 2.9\, soit c:\Users\Mfaouzi\AppData\Roaming\MiKTeX\2.9, ou
    2.2.2 dans le cas de la 2e méthode, à dézipper fmtcount.tds.zip sous T.
  3. Une alternative correspond à créer une TEXMF supplémentaire pour le test, et à mettre le fmtcount expérimental dessous, l'avantage c'est qu'on n'écrase rien, on ne déplace rien, votre installation courante reste la même, mais dans ce cas il faut
    3.1 Déclarer la TEXMF expérimentale dans la liste des racines de TEXMF (onglet Roots de l'outil MiKTeX Settings)
    3.2 être sûr que dans l'ordre des racines de TEXMF la TEXMF expérimentale vienne avant la TEXMF où le fmtcount déjà installé se trouve (cochez show MiKTeX maintained root directories dans onglet Roots de dans l'outil MiKTeX Settings pour voir cela)

@vincentb1
Copy link
Owner

Je continue ma réponse au 1er jeu de question

« Cette opération va-t-elle rafraichir l'ancienne version? »

Non, l'opération en question correpond à l'alternative № 3 de mon message précédent, c'est à dire l'utilisation d'une TEXMF expérimentale C:\Users\Mfaouzi\Projects\texmf, donc vous ne rafraichissez pas la version déjà installée, en fait vous n'impactez pas votre installation existante, juste vous rajoutez une surcharge par dessus qui la masquera. C'est à dire que n'importe quel \input, donc notamment celui que fait \usepackage, ira chercher la surcharge et non la version déjà installée.
mais il faut bien :

  1. la déclarer sous MiKTeX Settings/ onglet Roots
  2. faire Refresh FNDB pour que la modification soit prise en compte.

Après, si vous avez bien fait ça et qu'à la compilation ça ne se passe pas bien, notamment si comme c'est le cas ça vous dit que arabic n'est pas trouvé, cela signifie que MiKTeX va sans doute toujours prendre la version déjà installée.

Vous pouvez compiler avec l'option -recorder, ça vous créera un fichier .fls avec la listes des fichier inclus, à la ligne où se trouve fmtcount.sty vous pourrez vérifier si c'est le nouveau où l'ancien qui est pris.

@vincentb1
Copy link
Owner

Je commente maintenant vos observations concernant la dernière tentative de make install.

Histoire de vérifier que vous avez bien suivi toutes les instructions, pouvez vous faire ceci dans la console Git Bash (les #… sont des commentaires que vous pouvez ou non passer à bash, de toute façon il ignore ces lignes):

# Vérification de la configuration du PATH
echo $PATH
# Vérification que /miktex/bin a bien été configuré dans /etc/fstab:
pushd /miktex/bin && popd
# Vérification que /mfaouzi/miktex/bin a bien été configuré dans /etc/fstab:
pushd /mfaouzi/miktex/bin && popd

@mfbellalouna
Copy link
Contributor

Je vous donne les réponses des commandes que vous préconisez:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ echo $PATH
/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/mfaouzi/miktex/bin:/usr/bin/vendor_perl:/usr/bin/core_perl

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ pushd /miktex/bin && popd
bash: pushd: /miktex/bin: No such file or directory

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ pushd /mfaouzi/miktex/bin && popd
/mfaouzi/miktex/bin ~/Projects/fmtcount/dist
~/Projects/fmtcount/dist

@vincentb1
Copy link
Owner

OK, on progresse, on va y arriver…
Pouvez-vous faire ces commandes :

ls '/c/Program Files/MiKTeX 2.9/miktex/bin/x64'
ls '/c/Program Files (x86)/MiKTeX 2.9/miktex/bin'
ls '/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin'
ls '/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64'

et m'envoyer par mél votre fichier fstab — je vous le renverrai avec le contenu adéquat.

PS : Apparemment vous avez sur votre machine à la fois une version 32 bits et une version 64 bits de MiKTeX…

@mfbellalouna
Copy link
Contributor

Les commandes..

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ ls '/c/Program Files/MiKTeX 2.9/miktex/bin/x64'
ls: cannot access '/c/Program Files/MiKTeX 2.9/miktex/bin/x64': No such file or directory

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ ls '/c/Program Files (x86)/MiKTeX 2.9/miktex/bin'
ls: cannot access '/c/Program Files (x86)/MiKTeX 2.9/miktex/bin': No such file or directory

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ ls '/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin'
epstopdf.exe* MiKTeX209-md5.dll*

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)
$ ls '/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64'
a5toa4.exe* MiKTeX209-texmf.dll*
afm2afm.exe* MiKTeX209-trace.dll*
afm2tfm.exe* MiKTeX209-ui-MFC.dll*
amstex.exe* MiKTeX209-ui-Qt.dll*
api-ms-win-core-console-l1-1-0.dll* MiKTeX209-unxemu.dll*
api-ms-win-core-datetime-l1-1-0.dll* MiKTeX209-uriparser.dll*
api-ms-win-core-debug-l1-1-0.dll* MiKTeX209-utf8wrap.dll*
api-ms-win-core-errorhandling-l1-1-0.dll* MiKTeX209-util.dll*
api-ms-win-core-file-l1-1-0.dll* MiKTeX209-web2c.dll*
api-ms-win-core-file-l1-2-0.dll* MiKTeX209-zlib.dll*
api-ms-win-core-file-l2-1-0.dll* MiKTeX209-zzip.dll*
api-ms-win-core-handle-l1-1-0.dll* miktex-afm2tfm.exe*
api-ms-win-core-heap-l1-1-0.dll* miktex-asy.exe*
api-ms-win-core-interlocked-l1-1-0.dll* miktex-autosp.exe*
api-ms-win-core-libraryloader-l1-1-0.dll* miktex-axohelp.exe*
api-ms-win-core-localization-l1-2-0.dll* miktex-bg5conv.exe*
api-ms-win-core-memory-l1-1-0.dll* miktex-bibtex.exe*
api-ms-win-core-namedpipe-l1-1-0.dll* miktex-bibtex8.exe*
api-ms-win-core-processenvironment-l1-1-0.dll* miktex-bibtexu.exe*
api-ms-win-core-processthreads-l1-1-0.dll* miktex-cef5conv.exe*
api-ms-win-core-processthreads-l1-1-1.dll* miktex-cefconv.exe*
api-ms-win-core-profile-l1-1-0.dll* miktex-cefsconv.exe*
api-ms-win-core-rtlsupport-l1-1-0.dll* miktex-chktex.exe*
api-ms-win-core-string-l1-1-0.dll* miktex-ctangle.exe*
api-ms-win-core-synch-l1-1-0.dll* miktex-cweave.exe*
api-ms-win-core-synch-l1-2-0.dll* miktex-devnag.exe*
api-ms-win-core-sysinfo-l1-1-0.dll* miktex-dvicopy.exe*
api-ms-win-core-timezone-l1-1-0.dll* miktex-dvipdfmx.exe*
api-ms-win-core-util-l1-1-0.dll* miktex-dvipdft.exe*
api-ms-win-crt-conio-l1-1-0.dll* miktex-dvipng.exe*
api-ms-win-crt-convert-l1-1-0.dll* miktex-dvips.exe*
api-ms-win-crt-environment-l1-1-0.dll* miktex-dvisvgm.exe*
api-ms-win-crt-filesystem-l1-1-0.dll* miktex-dvitype.exe*
api-ms-win-crt-heap-l1-1-0.dll* miktex-epsffit.exe*
api-ms-win-crt-locale-l1-1-0.dll* miktex-epstopdf.exe*
api-ms-win-crt-math-l1-1-0.dll* miktex-extconv.exe*
api-ms-win-crt-multibyte-l1-1-0.dll* miktex-fribidixetex.exe*
api-ms-win-crt-private-l1-1-0.dll* miktex-gftodvi.exe*
api-ms-win-crt-process-l1-1-0.dll* miktex-gftopk.exe*
api-ms-win-crt-runtime-l1-1-0.dll* miktex-gftype.exe*
api-ms-win-crt-stdio-l1-1-0.dll* miktex-gregorio.exe*
api-ms-win-crt-string-l1-1-0.dll* miktex-hbf2gf.exe*
api-ms-win-crt-time-l1-1-0.dll* miktex-kpsewhich.exe*
api-ms-win-crt-utility-l1-1-0.dll* miktex-lacheck.exe*
arara.exe* miktex-latex.exe*
arctrl.exe* miktex-lua.exe*
arlatex.exe* miktex-luac.exe*
asy.exe* miktex-lualatex.exe*
authorindex.exe* miktex-luatex.exe*
autoinst.exe* miktex-makebase.exe*
autosp.exe* miktex-makefmt.exe*
axohelp.exe* miktex-makeindex.exe*
bagpipe.exe* miktex-makemf.exe*
bagpipex.exe* miktex-makepk.exe*
bg5conv.exe* miktex-maketfm.exe*
bg5latex.exe* miktex-mf.exe*
bg5pdflatex.exe* miktex-mft.exe*
bg5platex.exe* miktex-mkocp.exe*
bg5pluslatex.exe* miktex-mpost.exe*
bg5pluspdflatex.exe* miktex-odvicopy.exe*
bg5ppdflatex.exe* miktex-ofm2opl.exe*
bib2gls.exe* miktex-omega.exe*
'bib2gls.java.options[].exe'* miktex-opl2ofm.exe*
bib2xhtml.exe* miktex-otp2ocp.exe*
bibdoiadd.exe* miktex-outocp.exe*
biber.exe* miktex-ovf2ovp.exe*
bibhtml.exe* miktex-ovp2ovf.exe*
bibsort.exe* miktex-pdfdetach.exe*
bibtex.exe* miktex-pdffonts.exe*
bibtex8.exe* miktex-pdfimages.exe*
bibtexu.exe* miktex-pdfinfo.exe*
bibzbladd.exe* miktex-pdflatex.exe*
biokey2html.exe* miktex-pdfseparate.exe*
biokey2html1.exe* miktex-pdftex.exe*
biokey2html2.exe* miktex-pdftocairo.exe*
biokey2html3.exe* miktex-pdftohtml.exe*
birm.exe* miktex-pdftoppm.exe*
bmeditor.exe* miktex-pdftops.exe*
bplain.exe* miktex-pdftosrc.exe*
bundledoc.exe* miktex-pdftotext.exe*
cef5conv.exe* miktex-pdfunite.exe*
cef5latex.exe* miktex-pk2bm.exe*
cef5pdflatex.exe* miktex-pltotf.exe*
cefconv.exe* miktex-pmxab.exe*
ceflatex.exe* miktex-pooltype.exe*
cefpdflatex.exe* miktex-prepmx.exe*
cefsconv.exe* miktex-ps2pk.exe*
cefslatex.exe* miktex-psbook.exe*
cefspdflatex.exe* miktex-psnup.exe*
checkcites.exe* miktex-psresize.exe*
chktex.exe* miktex-psselect.exe*
cjk-gs-integrate.exe* miktex-pstops.exe*
cjklatex.exe* miktex-rebar.exe*
concrt140.dll* miktex-scor2prt.exe*
convertgls2bib.exe* miktex-sjisconv.exe*
creatdtx.exe* miktex-t4ht.exe*
cslatex.exe* miktex-tangle.exe*
csplain.exe* miktex-taskbar-icon.exe*
csvtools.exe* miktex-tex.exe*
ctangle.exe* miktex-tex4ht.exe*
ctanify.exe* miktex-texlua.exe*
ctanupload.exe* miktex-texluac.exe*
cweave.exe* miktex-texworks.exe*
dad-to-utf8.exe* miktex-tftopl.exe*
depythontex.exe* miktex-ttf2afm.exe*
devnag.exe* miktex-ttf2pk.exe*
dosepsbin.exe* miktex-ttf2tfm.exe*
dumphint.exe* miktex-update.exe*
dvicopy.exe* miktex-update_admin.exe*
dviinfox.exe* miktex-vftovp.exe*
dvilollipop.exe* miktex-vptovf.exe*
dvilualatex.exe* miktex-weave.exe*
dvilualollipop.exe* miktex-xdvipdfmx.exe*
dviluatex.exe* miktex-xelatex.exe*
dvipdfm.exe* miktex-xetex.exe*
dvipdfmx.exe* miktex-zip.exe*
dvipdft.exe* mk4ht.exe*
dvipng.exe* mkcharacters.exe*
dvips.exe* mkfntmap.exe*
dvisvgm.exe* mkglyphlist.exe*
dvitomp.exe* mkjobtexmf.exe*
dvitype.exe* mkluatexfontdb.exe*
ebb.exe* mkocp.exe*
eps2eps.exe* mkt1font.exe*
epsffit.exe* mktexlsr.exe*
epspdf.exe* mllatex.exe*
epstopdf.exe* mltex.exe*
etex.exe* mo.exe*
etexdef.exe* mo_admin.exe*
exceltex.exe* mpm.exe*
extconv.exe* mpm_mfc.exe*
extractbb.exe* mpm_mfc_admin.exe*
extractres.exe* mpm_qt.exe*
fc-cache.exe* mpm_qt_admin.exe*
fc-cat.exe* mpost.exe*
fc-list.exe* mptopdf.exe*
fc-match.exe* msvcp140.dll*
fc-pattern.exe* mthelp.exe*
fc-query.exe* mtprint.exe*
fc-scan.exe* m-tx.exe*
fc-validate.exe* musixflx.exe*
feynmf.exe* musixtex.exe*
fig4latex.exe* odvicopy.exe*
findhyph.exe* ofm2opl.exe*
findtexmf.exe* omega.exe*
font2c.exe* OOopict.exe*
fribidixetex.exe* opl2ofm.exe*
fullref.exe* orderrefs.exe*
gbklatex.exe* ot2kpx.exe*
gbkpdflatex.exe* otp2ocp.exe*
getmapdl.exe* outocp.exe*
gfi-run.exe* ovf2ovp.exe*
gftodvi.exe* ovp2ovf.exe*
gftopk.exe* pdf2dsc.exe*
gftype.exe* pdf2ps.exe*
gregorio.exe* pdfatfi.exe*
gsbj.exe* pdfclose.exe*
gsdj.exe* pdfcrop.exe*
gsdj500.exe* pdfcslatex.exe*
gsf2pk.exe* pdfcsplain.exe*
gslj.exe* pdfdde.exe*
gslp.exe* pdfdetach.exe*
gsnd.exe* pdfetex.exe*
gsndt.exe* pdffonts.exe*
gssetgs.exe* pdfimages.exe*
gst.exe* pdfinfo.exe*
gstt.exe* pdfjadetex.exe*
hbf2gf.exe* pdflatex.exe*
ht.exe* pdflatexdef.exe*
htcontext.exe* pdflatexpicscale.exe*
htcopy.exe* pdfmex.exe*
htlatex.exe* pdfopen.exe*
htmex.exe* pdfopt.exe*
htmove.exe* pdfseparate.exe*
httex.exe* pdftex.exe*
httexi.exe* pdftexdef.exe*
htxelatex.exe* pdftocairo.exe*
htxetex.exe* pdftohtml.exe*
ibyhyph.exe* pdftoppm.exe*
icudt60.dll* pdftops.exe*
icuin60.dll* pdftosrc.exe*
icuuc60.dll* pdftotext.exe*
inimf.exe* pdfunite.exe*
initex.exe* pdfxmltex.exe*
initexmf.exe* pedigree.exe*
internal/ perltex.exe*
isi2bibtex.exe* pf2afm.exe*
jadetex.exe* pfarrei.exe*
jamo-normalize.exe* pfbtopfa.exe*
jfmutil.exe* pftogsf.exe*
komkindex.exe* pgfplots.exe*
kpsewhich.exe* pk2bm.exe*
lacheck.exe* pkfix.exe*
lambda.exe* pkfix-helper.exe*
latex.exe* platforms/
latex2man.exe* pltotf.exe*
latex2nemeth.exe* pmxab.exe*
latexdef.exe* pn2pdf.exe*
latexdiff.exe* pooltype.exe*
latexdiff-fast.exe* prepmx.exe*
latexdiff-so.exe* ps2ascii.exe*
latexdiff-vc.exe* ps2epsi.exe*
latex-git-log.exe* ps2pdf.exe*
latexindent.exe* ps2pdf12.exe*
latexmk.exe* ps2pdf13.exe*
latexpand.exe* ps2pdf14.exe*
latex-papersize.exe* ps2pdfxx.exe*
latexrevise.exe* ps2pk.exe*
libGLESv2.dll* ps2ps.exe*
lollipop.exe* ps2ps2.exe*
lp386.exe* ps4pdf.exe*
lp386r2.exe* psbook.exe*
lpgs.exe* psjoin.exe*
lpr2.exe* psnup.exe*
ltx2crossrefxml.exe* psresize.exe*
ltximg.exe* psselect.exe*
lualatex.exe* pst2pdf.exe*
lualatexdef.exe* pstops.exe*
lualollipop.exe* pythontex.exe*
luamesh.exe* Qt5Concurrent.dll*
luaotfload-tool.exe* Qt5Core.dll*
luatex.exe* Qt5Gui.dll*
luatexdef.exe* Qt5PrintSupport.dll*
lwarpmk.exe* Qt5Script.dll*
make4ht.exe* Qt5ScriptTools.dll*
makebase.exe* Qt5Widgets.dll*
makedtx.exe* Qt5WinExtras.dll*
makefmt.exe* Qt5Xml.dll*
makeglossaries.exe* rcsinfo.exe*
makeindex.exe* rebar.exe*
makejmlrbook.exe* rubikrotation.exe*
makepk.exe* scor2prt.exe*
maketfm.exe* sjisconv.exe*
mathspic.exe* sjislatex.exe*
mathspic113.exe* sjispdflatex.exe*
mex.exe* songidx.exe*
mf.exe* splitindex.exe*
mf2pt1.exe* srcredact.exe*
mfc140.dll* sty2dtx.exe*
mfc140chs.dll* svn-multi.exe*
mfc140cht.dll* t4ht.exe*
mfc140deu.dll* tangle.exe*
mfc140enu.dll* tdsutil.exe*
mfc140esn.dll* tex.exe*
mfc140fra.dll* tex4ebook.exe*
mfc140ita.dll* tex4ht.exe*
mfc140jpn.dll* texcount.exe*
mfc140kor.dll* texdef.exe*
mfc140rus.dll* texdiff.exe*
mfc140u.dll* texdirflatten.exe*
mfcm140u.dll* texdoc.exe*
mfirstuc.exe* texfot.exe*
mft.exe* texhash.exe*
mgs.exe* texify.exe*
mgsdll64.dll* texindy.exe*
MiKTeX209-app.dll* texlinks.exe*
MiKTeX209-apr.dll* texlua.exe*
MiKTeX209-aprutil.dll* texluac.exe*
MiKTeX209-bzip2.dll* texosquery.exe*
MiKTeX209-cairo.dll* texosquery-jre5.exe*
MiKTeX209-core.dll* texosquery-jre8.exe*
MiKTeX209-core-PS.dll* texworks.exe*
MiKTeX209-curl.dll* tftopl.exe*
MiKTeX209-dib.dll* thumbpdf.exe*
MiKTeX209-dvi.dll* ttf2afm.exe*
MiKTeX209-expat.dll* ttf2kotexfont.exe*
MiKTeX209-extractor.dll* ttf2pk.exe*
MiKTeX209-fontconfig.dll* ttf2tfm.exe*
MiKTeX209-freetype2.dll* ucrtbase.dll*
MiKTeX209-gd.dll* updmap.exe*
MiKTeX209-getopt.dll* urlbst.exe*
MiKTeX209-graphite2.dll* utf8mex.exe*
MiKTeX209-harfbuzz.dll* utf8-to-dad.exe*
MiKTeX209-hunspell.dll* vccorlib140.dll*
MiKTeX209-jpeg.dll* vcruntime140.dll*
MiKTeX209-kpathsea.dll* vftovp.exe*
MiKTeX209-libressl-crypto.dll* virmf.exe*
MiKTeX209-log4cxx.dll* virtex.exe*
MiKTeX209-lua52.dll* vpe.exe*
MiKTeX209-lzma2.dll* vpl2ovp.exe*
MiKTeX209-md5.dll* vpl2vpl.exe*
MiKTeX209-metapost.dll* vptovf.exe*
MiKTeX209-mpfr.dll* weave.exe*
MiKTeX209-mspack.dll* wmakebat.exe*
MiKTeX209-packagemanager.dll* xbb.exe*
MiKTeX209-packagemanager-PS.dll* xdv2pdf_mergemarks.exe*
MiKTeX209-pixman.dll* xdvipdfmx.exe*
MiKTeX209-png.dll* xelatex.exe*
MiKTeX209-poppler.dll* xelatexdef.exe*
MiKTeX209-poppler-Qt.dll* xetex.exe*
MiKTeX209-popt.dll* xetexdef.exe*
MiKTeX209-potrace.dll* xindy.exe*
MiKTeX209-regex.dll* xmltex.exe*
MiKTeX209-teckit.dll* yap.exe*

Je cherche le fichier fstab et vous l'envoie. Ce que vous dites a propos de deux versions 32 et 64 sur ma bécane est assez étonnant. Par quel moyen puis-je remédier à cela, pensez-vous !?

vincentb1 added a commit that referenced this issue Jun 9, 2020
* trunk/fc-arabic.def: Experimental creation of arabic defintions
based on
#31 (comment)

* trunk/fc-makedefinitions.mak (STYFILES): Added fc-arabic.def to
the list of files.

* trunk/fmtcount-manual.tex: Update checksum.

* trunk/fmtcount.sty (\fc@supported@language@list): Added arabic
to the list.

* trunk/test/Makefile (XELATEX_TESTS): Added sample-arabic test case.

* trunk/test/sample-arabic.tex: New file. Test case for Arabic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants