Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

emacs+auctex; question de débutant

13 réponses
Avatar
Stéphane Dutailly
Bonjour à tous,

Je me lance (avec un peu d'appréhension) dans l'utilisation de
emacs+auctex pour Latex, sous Ubuntu 10.10.
Jusqu'à présent, je travaillais sous Windows XP avec TexnicCenter.
Je commence à peine et je rencontre un problème assez rédhibitoire pour
moi: j'utilise un fichier "preambule.tex" qui contient les différents
packages que j'utilise et mes macros. Ce fichier se trouve à la racine
de mon dossier de travail. Lorsque je travaille dans un dossier, mon
fichier .tex commence ainsi: \include{../preambule}
Sous Texnic Center, tout allait très bien, mais désormais ça ne
fonctionne pas.

Voici un ECM:
j'écris mon fichier test_emacs.tex qui contient

\documentclass[a4paper,11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[frenchb]{babel}
\begin{document}
Test
\end{document}

---> pas de problème

Si je fais un fichier Preambule_test.tex qui contient
\documentclass[a4paper,11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[frenchb]{babel}

puis que j'écris mon fichier test_emacs.tex qui contient:

\include{Preambule_test}
\begin{document}
Test
\end{document}

---> pas de problème (mon fichier Preambule_test.tex est alors placé
dans le même dossier que mon fichier test_emacs.tex)

Si je place mon fichier Preambule_test.tex dans un dossier immédiatement
supérieur au dossier qui contient mon fichier test_emacs.tex, où
test_emacs.tex est:

\include{../Preambule_test}
\begin{document}
Test
\end{document}

---> alors ça ne fonctionne pas et j'obtiens ce message d'erreur:

ERROR: I can't write on file `../Preambule_test.aux'.

--- TeX said ---
\@include ...\immediate \openout \@partaux #1.aux
\immediate \write
\@partau...
l.1 \include{../Preambule_test}

--- HELP ---
From the .log file...

(Press Enter to retry, or Control-D to exit; default file extension is
`.tex')
Please type another output file name
! Emergency stop.
\@include ...\immediate \openout \@partaux #1.aux
\immediate \write
\@partau...
l.1 \include{../Preambule_test}

*** (job aborted, file error in nonstop mode)


Je suppose que le problème ne doit pas être trop compliqué mais je ne
trouve pas de solution. Que faire?

Par avance, merci à tous (et merci d'avoir eu la patience de lire
jusqu'ici!!).

Stéphane Dutailly

10 réponses

1 2
Avatar
Denis Bitouzé
Le mardi 09/11/10 à 00h08,
Stéphane Dutailly a écrit :

Je suppose que le problème ne doit pas être trop compliqué mais je ne
trouve pas de solution.



Le problème est que la commande include nécessite que soit génér é un
fichier Preambule_test.aux dans le répertoire supérieur et, pour des
raisons de sécurité, l'écriture dans les répertoires parents est par
défaut désactivée dans le TeX Live. Cela peut être modifié mais le
plus simple serait ici de remplacer la commande include par input (au
passage bien plus appropriée pour ce genre de choses).

Où l'on voit qu'il n'y a rien à craindre de emacs + auctex puisque le
problème rencontré ne leur est lié en rien :)
--
Denis
Avatar
JJ. Rétorré
Stéphane Dutailly disait le 11/09/10 que :

[Snip]



include{../Preambule_test}
begin{document}
Test
end{document}

---> alors ça ne fonctionne pas et j'obtiens ce message d'erreur:



[Snip]

Je n'ai rien à ajouter à ce que dis D. Bitouzé sur le traitement de
l'erreur, mais si je peux me permettre, J'imagine que le fichier
Preambule_test.tex est à partager entre plusieurs fichiers.
Dans ce cas, il est peut-être judicieux de le placer dans un
sous-répertoire quelconque de
~/texmf/tex/
que l'on peut créer à cet usage.
Dans ce cas, input{Preambule_test} suffit, quelque soit le fichier .tex
qui l'appelle.

--
JJR.
Avatar
Denis Bitouzé
Le mardi 09/11/10 à 09h17,
JJ. Rétorré <jj.r&torr&@gmail.com> a écrit :

Je n'ai rien à ajouter à ce que dis D. Bitouzé sur le traitement de
l'erreur, mais si je peux me permettre, J'imagine que le fichier
Preambule_test.tex est à partager entre plusieurs fichiers.
Dans ce cas, il est peut-être judicieux de le placer dans un
sous-répertoire quelconque de
~/texmf/tex/
que l'on peut créer à cet usage.
Dans ce cas, input{Preambule_test} suffit, quelque soit le
fichier .tex qui l'appelle.



Je n'ai rien à ajouter à ce que dit JJ. Rétorré sur le placement du
fichier dans le TEXMFHOME mais, si je peux me permettre, je le
placerais plutôt dans (répertoires à créer au besoin) :

~/texmf/tex/latex/perso

;)
--
Denis
Avatar
JJ. Rétorré
Stéphane Dutailly disait le 11/09/10 que :


Merci beaucoup à tous les deux, ça marche super bien!!!
La mauvaise nouvelle pour vous tous c'est que maintenant que je peux
au moins compiler mes fichiers de boulot, je peux vraiment me lancer
sur emacs et je vais donc vous pourrir le forum avec
pleiiiiiiiiiiiiiiiiiinnnnnnnnnnnnssssssssssssssssssssss de questions
de débutants.



Il y a toujours à découvrir sur emacs+auctex, tant il existe de
contributeurs.

Personnellement, je trouve pratique d'utiliser l'extension templates.el,
ça permet de créer des gabarits ce création de fichiers.
Il suffit de placer un TEMPLATE.tex.tpl (ou autre extension) dans un
sous-répertoire Templates parent du répertoire courant pour être
sollicité d'utiliser ce gabarit à la création d'un nouveau document. On
peut ainsi créer des gabarits pour chaque classe de fichier .tex (ou
autre extension).
Ça évite de faire appel à un input et d'avoir à gérer un
répertoire d'inclusions. Pratique quand on veut traiter son document sur
une machine qui n'est pas sa machine usuelle, ou quand on veut diffuser
un document source LaTeX.

--
JJR.
Avatar
Stéphane Dutailly
Le 10/11/2010 09:23, JJ. Rétorré a écrit :
Stéphane Dutailly disait le 11/09/10 que :


Merci beaucoup à tous les deux, ça marche super bien!!!
La mauvaise nouvelle pour vous tous c'est que maintenant que je peux
au moins compiler mes fichiers de boulot, je peux vraiment me lancer
sur emacs et je vais donc vous pourrir le forum avec
pleiiiiiiiiiiiiiiiiiinnnnnnnnnnnnssssssssssssssssssssss de questions
de débutants.



Il y a toujours à découvrir sur emacs+auctex, tant il existe de
contributeurs.

Personnellement, je trouve pratique d'utiliser l'extension templates.el,
ça permet de créer des gabarits ce création de fichiers.
Il suffit de placer un TEMPLATE.tex.tpl (ou autre extension) dans un
sous-répertoire Templates parent du répertoire courant pour être
sollicité d'utiliser ce gabarit à la création d'un nouveau document. On
peut ainsi créer des gabarits pour chaque classe de fichier .tex (ou
autre extension).
Ça évite de faire appel à un input et d'avoir à gérer un
répertoire d'inclusions. Pratique quand on veut traiter son document sur
une machine qui n'est pas sa machine usuelle, ou quand on veut diffuser
un document source LaTeX.




Je vais regarder cela; pour l'instant je cherche plutôt des choses
basiques comme avoir un raccourci pour frac{}{} (avec éventuellement
possibilité de passer d'une accolade à l'autre), un raccourci pour
sauvegarder-compiler-visualiser directement, ou encore pouvoir faire de
l'autocomplétion sur une liste de commandes personnelles ou de mots
(j'ai trouvé une page auto-complete sur EmacsWiki, il faut que je
regarde de près)... Bref j'ai de quoi m'occuper... et revenir poser des
questions si je ne trouve pas...
Merci encore,
Stéphane
Avatar
Reboux Olivier
Le 10/11/2010 15:14, Stéphane Dutailly a écrit :
Le 10/11/2010 09:23, JJ. Rétorré a écrit :
Stéphane Dutailly disait le 11/09/10 que :




[SNIP]
Je vais regarder cela; pour l'instant je cherche plutôt des choses
basiques comme avoir un raccourci pour frac{}{}


Voilà ce que j'ai trouvé :
(defun my-footnote ()
"Ouvre une footnote"
(interactive)
(search-backward-regexp "[])».,[:alnum:]]")
(forward-char)
(insert "footnote{%n .}")
(newline-and-indent)
(beginning-of-line)
(backward-char 4))

(defun my-fraction ()
"Insère une fraction"
(interactive)
(insert "frac{}{}")
(backward-char 3))

(defun my-frac-or-foot ()
"Insère une fraction ou une footnote selon le contexte"
(interactive)
(if (texmathp)
(my-fraction)
(my-footnote)))
;; Fraction ou footnote
(global-set-key (kbd "C-c f") 'my-frac-or-foot)

En fait cela fait un peu mieux que d'insérer une fraction. Suivant le
mode math ou non, cela met frac{}{} ou footnote{} et cela se place
entre les accolades.
Le seul truc que je maîtrise dans emacs c'est la création de raccourcis
claviers. La dessus c'est quand même super.

(avec éventuellement
possibilité de passer d'une accolade à l'autre),


Ça je sais pas faire, mais je suis preneur.
un raccourci pour
sauvegarder-compiler-visualiser directement,


;; Compilation directe par une touche
(global-set-key [f5] 'compile)
Cela ne fait que la compilation et cela vérifie que les buffers sont
sauvés ou pas, mais bon l'ouverture de la visualisation on ne le fait
qu'une fois... Bon ça m'intéresse aussi de savoir ouvrir un doc foo.ps
dans un logiciel (disons okular ou Adobe reader).
Pour la sauvegarde C-x C-s ;-)
ou encore pouvoir faire de
l'autocomplétion sur une liste de commandes personnelles


Personnellement, je suis plutôt parti vers l'option raccourcis claviers.
D'ailleurs je viens de rendre récupérer M-TAB dans emacs et je dois dire
que je ne me sers pas assez des autocomplétions dans le texte.


ou de mots
(j'ai trouvé une page auto-complete sur EmacsWiki, il faut que je
regarde de près)... Bref j'ai de quoi m'occuper... et revenir poser des
questions si je ne trouve pas...
Merci encore,
Stéphane




Olivier Reboux
--
Si tu cherches d'autres arguments pour TeX, ecris moi, j'en ai plein
mes manches. Interessants, mais qui ne peuvent pas convaincre le
neuneu moyen.
-+- Benjamin in fr.comp.text.tex -+-
Avatar
Ph. Ivaldi
Je vais regarder cela; pour l'instant je cherche plutôt des choses
basiques comme avoir un raccourci pour frac{}{}


Voilà ce que j'ai trouvé :
(defun my-footnote ()
"Ouvre une footnote"
(interactive)
(search-backward-regexp "[])».,[:alnum:]]")
(forward-char)
(insert "footnote{%n .}")
(newline-and-indent)
(beginning-of-line)
(backward-char 4))



Une extension géniale pour ce genre de chose :
http://code.google.com/p/yasnippet/

> ou encore pouvoir faire de
l'autocomplétion sur une liste de commandes personnelles





On trouve ici un code pour utiliser auto-complete avec yasnippet :
http://emacswiki.org/AutoComplete
(chercher « Final version of auto-complete-yasnippet.el, tested in both
23.0 and 23.1 »)

--
Philippe Ivaldi.
http://www.piprime.fr/
Avatar
Stéphane Dutailly
Tout cela a vraiment l'air super :-) Je regarderai de près dans les
jours (semaines?) qui viennent.
Merci beaucoup à tous en tous les cas pour vos réponses si rapides. Je
ne vais pas abuser (quoique...) et vous poser encore d'autres questions
pour l'instant, j'ai déjà de quoi réfléchir.
Cordialement,
Stéphane
Avatar
JJ. Rétorré
Ph. Ivaldi disait le 11/10/10 que :



Une extension géniale pour ce genre de chose :
http://code.google.com/p/yasnippet/




Un bon moyen d'installer yasnippet-bundle est d'installer préalablement
package.el, puis M-x package-install RET yasnippet-bundle


package.el lui même s'installe très simplement avec l'installateur sur
le site elpa.

http://tromey.com/elpa/


--
JJR.
Avatar
Ph. Ivaldi
Le 11 novembre 2010, JJ. Rétorré écrivit :

Un bon moyen d'installer yasnippet-bundle est d'installer préalablement
package.el, puis M-x package-install RET yasnippet-bundle



Pour moi ce sera
apt-get install yasnippet
--
Philippe Ivaldi.
http://www.piprime.fr/
1 2