<![CDATA[Forum Ubuntu-fr.org / [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?id=1498341 Tue, 18 Feb 2014 19:02:17 +0000 FluxBB <![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16091861#p16091861 Bon! j'ai de quoi lire et de quoi faire.
Merci pour les toyaux!
Merci pour votre aide, cordialement

]]>
Tue, 18 Feb 2014 19:02:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16091861#p16091861
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16090791#p16090791 Le Goss a écrit :

Je découvre les possibilités du bash de façon empirique, et sans trop savoir où chercher... ni comprendre comment ça fonctionne.
(...)
Bon, je veux bien lire un manuel. Mais pour un boulet comme moi, je prends lequel?

Regarde ICI... cela pourrait te convenir smile

Guide Basch a écrit :

Ce tutoriel ne suppose aucune connaissance de la programmation de scripts, mais permet une progression rapide vers un niveau intermédiaire/avancé...

@+

]]>
Tue, 18 Feb 2014 17:23:38 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16090791#p16090791
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16089871#p16089871 Tu n'es pas obligé de le lire de façon linéaire, mais tout simplement le man de bash smile

man bash

Parcours-le et n'hésite pas à chercher avec « /mot » (appuie sur h pour avoir l'aide de la liseuse « less »).

]]>
Tue, 18 Feb 2014 15:36:38 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16089871#p16089871
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16086871#p16086871 nesthib a écrit :

Chez moi ça ne fonctionne pas super bien

C'est bien un problème récurrent chez moi que d'écrire des scripts bancals, sans pouvoir apporter une solution.

J'apprends "par hasard" aujourd'hui qu'on peut mettre des valeurs par défaut, qu'on peut se servir de variables au lieu de fichiers temporaires (j'avais fait ce choix faute de mieux).
Manquerait plus que bash fasse le café... big_smile
Je découvre les possibilités du bash de façon empirique, et sans trop savoir où chercher... ni comprendre comment ça fonctionne.
J'ai vraiment du mal à m'y retrouver avec toutes les commandes sed grep awk cat sort etc. sans compter les différentes options attachées à chacune d'elles, les subtilités des pipes et autres astuces.
Sans compter le temps que je perds à multiples essais, qui échouent en grande majorité.
Je finis parfois par croire que le terminal m'en veut.
Et lorsqu'enfin je viens honteusement demander de l'aide sur le forum, c'est parce que la calvitie menace.

Alors, je m'accroche. Mais c'est quand-même dur.

J'arrive pas à trouver un site, et/ou un bouquin, qui puissent m'enseigner progressivement le bash à partir de zéro, sans passer au bout de trois lignes à des trucs sophistiqués, qui me laissent sur place.
Je suis quand-même surpris qu'à une de mes questions, personne ne m'ait répondu, le très poétique RTFM, tellement j'ai l'impression que chez beaucoup (mais pas chez moi), tout vient comme une évidence.
Bon, je veux bien lire un manuel. Mais pour un boulet comme moi, je prends lequel?

]]>
Tue, 18 Feb 2014 07:33:28 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16086871#p16086871
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16086111#p16086111 Chez moi ça ne fonctionne pas super bien tongue
Avec les paramètres par défaut j'ai une erreur de compilation.

Sinon il serait sympa de pouvoir donner les options en ligne de commande plutôt qu'en interactif, exemple :

script --titre "Le Titre" --couplets 1 "|C!|!G7!|C!G7!|C" "|Au clair de la!|lu-!ne!|mon a-!mi Pier-!|rot" -o fichier.pdf

Évite si possible d'utiliser des fichiers temporaires pour stocker du texte, utilise des variables. Si tu dois utiliser des fichiers temporaires, utilise mktemp et crée un dossier temporaire où tu pourras mettre ce que tu veux.

Tu devrais aussi mettre des valeurs par défaut si un champ n'est pas renseigné.

]]>
Tue, 18 Feb 2014 00:47:51 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16086111#p16086111
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16083451#p16083451 Bon ben, voilà le script dont je compte me servir.
N'hésitez pas à y apporter vos corrections et votre touche. On peut certainement faire mieux lol
En espérant qu'il vous sera utile. Il peut bien sûr être utilisé à d'autre fins.
Merci pour les retours!

#!/bin/bash

clear
echo -e "Ce script a pour but de générer des pdf de type \"songbook\" à partir de fichiers LaTeX, générés et compilés automatiquement.
"
read -p "Appuyer sur <Entrée> pour commencer:
"

read -p "Nom du fichier (ex: fichier): " nomfichier
read -p "Titre: " titre
read -p "Format du papier (ex: a5): " papier
read -p "Marges en cm (ex: 1.5): " marge
clear
echo -e "Saisie des accords:
-------------------
8 pour dièse;
0 pour bémol;
| (AltGr+6) pour une barre de mesure;
! pour séparer les accords.
Deux ! peuvent se suivre. Aucune espace n'est nécessaire.
Ex: Au clair de la lune:
	|C!|!G7!|C!G7!|C
"
read -p "Accords: " accords
echo $accords >> accords
sed -i 's/!/\n/g' accords
sed -i 's/^/\\commande{\\underline{}}{/' accords
sed -i 's/8/$\\sharp$/' accords
sed -i 's/0/$\\flat$/' accords
sed -i 's/$/}/' accords

cat	accords >> accordscolonne
echo ""
read -p "Combien de couplets? " nombrecouplets

echo -e "\documentclass[$papier paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{color}
\usepackage{multicol}
\setlength{\\\columnseprule}{0.5pt}
\setlength{\\\columnsep}{30pt}
\usepackage{geometry}
\geometry{top=$marge cm, bottom=$marge cm, left=$marge cm, right=$marge cm}" >> $nomfichier.tex


function gen_latex {
PART1=$(for ((i=3; i<=$1+2; i++)) ; do echo -n "#$i" ; done)
PART2=$(for ((i=3; i<=$1+2; i++)) ; do echo -n "\\hbox{#$i}" ; done)
echo "\def\commande#1#2${PART1}{\quitvmode\vbox{\hbox{\scriptsize\bf\textcolor{red}{#1}}\hbox{\scriptsize\bf\textcolor{blue}{#2}}${PART2}}}"
}

gen_latex $nombrecouplets >> $nomfichier.tex

echo -e "
\\\begin{document}
\\\shorthandoff{:}

%\\\begin{multicols}{2}

\\\begin{spacing}{0.8}

\\\section*{$titre}

\\\begin{flushleft}

\\\noindent" >> $nomfichier.tex

echo -e "
Saisie des couplets:
--------------------
Ex: Au clair de la lune:
	Au clair de la!lu-!ne!mon a-!mi Pier-!rot
Possibilité d'insérer les barres de mesures (AltGr+6):
	|Au clair de la!|lu-!ne!|mon a-!mi Pier-!|rot

Dans l'idéal, le nombre de ! est identique pour les accords et les couplets...
"

x=i
for ((i=1;i<$nombrecouplets+1;i++))
do
	read -p "Couplet $x: " contenu
	echo $contenu >> couplet$x
	sed -i 's/!/\n/g' couplet$x
	sed -i 's/^/{/' couplet$x
	sed -i 's/$/}/' couplet$x
x="${x}i"
done

paste accordscolonne couplet* >> $nomfichier.tex
sed -i 's/\t//g' $nomfichier.tex

echo -e "
\\\end{flushleft}

\\\noindent
\\\dotfill

\\\end{spacing}

%\\\end{multicols}

\\\end{document}" >> $nomfichier.tex
pdflatex $nomfichier.tex
evince $nomfichier.pdf

x=i
for ((i=1;i<$nombrecouplets+1;i++))
do
	rm couplet$x
x="${x}i"
done

rm $nomfichier.log
rm $nomfichier.aux
rm accordscolonne
rm accords
]]>
Mon, 17 Feb 2014 18:53:55 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16083451#p16083451
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16082511#p16082511 nesthib a écrit :

Si tu veux changer ce comportement (avoir #3#4 avec 2 comme argument), remplace « $1 » par « $1+2 » dans les deux boucles for.

C'est fait. Des essais à 1 et 2 couplets sont bons.

]]>
Mon, 17 Feb 2014 17:29:21 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16082511#p16082511
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16082411#p16082411 Voici le cript.

#!/bin/bash

read -p "Nom du fichier (ex: fichier.tex): " nomfichier
read -p "Titre: " titre
read -p "Format du papier (ex: a5): " papier
read -p "Marges en cm (ex: 1.5): " marge
read -p "Accords: " accords
echo $accords >> accords
sed -i 's/!/\n/g' accords
sed -i 's/^/\\commande{\\underline{}}{/' accords
sed -i 's/$/}/' accords
cat	accords >> accordscolonne

read -p "Combien de couplets? " nombrecouplets

echo -e "\documentclass[$papier paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{color}
\usepackage{multicol}
\setlength{\\\columnseprule}{0.5pt}
\setlength{\\\columnsep}{30pt}
\usepackage{geometry}
\geometry{top=$marge cm, bottom=$marge cm, left=$marge cm, right=$marge cm}" >> $nomfichier


function gen_latex {
PART1=$(for ((i=3; i<=$1; i++)) ; do echo -n "#$i" ; done)
PART2=$(for ((i=3; i<=$1; i++)) ; do echo -n "\\hbox{#$i}" ; done)
echo "\def\commande#1#2${PART1}{\quitvmode\vbox{\hbox{\scriptsize\bf\textcolor{red}{#1}}\hbox{\scriptsize\bf\textcolor{blue}{#2}}${PART2}}}"
}

gen_latex $nombrecouplets >> $nomfichier

echo -e "\\\begin{document}
\\\shorthandoff{:}

%\\\begin{multicols}{2}

\\\begin{spacing}{0.8}

\\\section*{$titre}
\\\begin{flushleft} 
\\\noindent" >> $nomfichier

x=i
for ((i=1;i<$nombrecouplets+1;i++))
do
	read -p "Refrain $x: " contenu
	echo $contenu >> refrain$x
	sed -i 's/!/\n/g' refrain$x
	sed -i 's/^/{/' refrain$x
	sed -i 's/$/}/' refrain$x
x="${x}i"
done

paste accordscolonne refrain* >> $nomfichier
sed -i 's/\t//g' $nomfichier

echo -e "\\\end{flushleft}
\\\dotfill
\\\end{spacing}
%\\\end{multicols}
\\\end{document}" >> $nomfichier
]]>
Mon, 17 Feb 2014 17:20:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16082411#p16082411
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16082091#p16082091 Dans ton cas, que vaut $nombrecouplets ? Si la valeur est 2 ou moins il n'y a rien de créé, pour avoir #3 il faut que $nombrecouplets vaille 3.
Si tu veux changer ce comportement (avoir #3#4 avec 2 comme argument), remplace « $1 » par « $1+2 » dans les deux boucles for.

NB. on a le droit de voir ton script ?

]]>
Mon, 17 Feb 2014 16:55:12 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16082091#p16082091
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16081831#p16081831 Y a un os...
Quand j’insère la formule dans mon script avec un

read -p "Nombre de couplets: " nombrecouplets

la commande

gen_latex $nombrecouplets >> fichier.tex

ne fonctionne pas; la commande latex crée est incomplète:

\def\commande#1#2{\quitvmode\vbox{\hbox{\scriptsize\bf\textcolor{red}{#1}}\hbox{\scriptsize\bf\textcolor{blue}{#2}}}
]]>
Mon, 17 Feb 2014 16:21:16 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16081831#p16081831
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16079141#p16079141 Ça marche poil !
Dans l'état actuel de mes connaissances en bash, je n'aurais pas pu trouver.
Merci encore !

]]>
Mon, 17 Feb 2014 10:57:27 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16079141#p16079141
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16066051#p16066051
function gen_latex {
PART1=$(for ((i=3; i<=$1; i++)) ; do echo -n "#$i" ; done)
PART2=$(for ((i=3; i<=$1; i++)) ; do echo -n "\\hbox{#$i}" ; done)
echo "\def\commande#1#2${PART1}{\quitvmode\vbox{\hbox{\scriptsize\bf\textcolor{red}{#1}}\hbox{\scriptsize\bf\textcolor{blue}{#2}}${PART2}}"
}
gen_latex 5
]]>
Sat, 15 Feb 2014 23:08:40 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16066051#p16066051
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16062571#p16062571 Mon niveau en latex ne va pas jusque là...
J'en suis à une utilisation basique, avec des commandes toutes simples.
La commande latex, je l'ai et elle fonctionne impec.
C'est sa "transcription" en bash qui me pose problème.

]]>
Sat, 15 Feb 2014 17:59:34 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16062571#p16062571
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16062421#p16062421 Bon là je sèche sad

Perso j'utiliserais directement Latex.
Regardes ICI, il me semble que cela répond  à ton problème

Des Macros plus compliquées... c'est pas ce qui manque comme exemples sous Latex (autre exemple)

Désolé si je suis hors sujet.

Bonne chance.

]]>
Sat, 15 Feb 2014 17:45:13 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16062421#p16062421
<![CDATA[Réponse à : [Résolu] Bash - création d'une commande latex]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=16062261#p16062261 C'est le numéro de la variable qu'on retrouve au début de la commande

\def\commande#1#2#3{\quitvmode\vbox{\hbox{\scriptsize\bf\textcolor{red}{#1}}\hbox{\scriptsize\bf\textcolor{blue}{#2}}\hbox{#3}}}

Dans le cas qui m'intéresse, la commande a au minimum 3 variables (s'il y a 1 couplet): #1 #2 et #3

]]>
Sat, 15 Feb 2014 17:28:39 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=16062261#p16062261