diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/xlatex |
Initial commit
Diffstat (limited to 'support/xlatex')
-rw-r--r-- | support/xlatex/Imakefile | 39 | ||||
-rw-r--r-- | support/xlatex/Imakefile.irix | 38 | ||||
-rw-r--r-- | support/xlatex/Imakefile.ok | 39 | ||||
-rw-r--r-- | support/xlatex/NOUVEAUTES | 25 | ||||
-rw-r--r-- | support/xlatex/README | 53 | ||||
-rw-r--r-- | support/xlatex/Xlatex.ad | 185 | ||||
-rw-r--r-- | support/xlatex/Xlatex.ad.english | 184 | ||||
-rw-r--r-- | support/xlatex/Xlatex.ad.french | 185 | ||||
-rw-r--r-- | support/xlatex/icone.h | 51 | ||||
-rw-r--r-- | support/xlatex/patchlevel.h | 1 | ||||
-rw-r--r-- | support/xlatex/xlatex.c | 1935 | ||||
-rw-r--r-- | support/xlatex/xlatex.dessiner | 20 | ||||
-rw-r--r-- | support/xlatex/xlatex.dvips | 20 | ||||
-rw-r--r-- | support/xlatex/xlatex.editer | 20 | ||||
-rw-r--r-- | support/xlatex/xlatex.faconner | 17 | ||||
-rw-r--r-- | support/xlatex/xlatex.imprimer | 21 | ||||
-rw-r--r-- | support/xlatex/xlatex.man | 480 | ||||
-rw-r--r-- | support/xlatex/xlatex.man.english | 364 | ||||
-rw-r--r-- | support/xlatex/xlatex.man.french | 480 | ||||
-rw-r--r-- | support/xlatex/xlatex.quitter | 19 | ||||
-rw-r--r-- | support/xlatex/xlatex.statut | 20 | ||||
-rw-r--r-- | support/xlatex/xlatex.visionner | 20 |
22 files changed, 4216 insertions, 0 deletions
diff --git a/support/xlatex/Imakefile b/support/xlatex/Imakefile new file mode 100644 index 0000000000..768736d796 --- /dev/null +++ b/support/xlatex/Imakefile @@ -0,0 +1,39 @@ +# +# Imakefile for xlatex +# + +#ifdef BandAidCompiler +#include BandAidCompiler +#endif + +# Problem with the test below : +# The DEFINES= -DIRIX must be set manually in the Makefile for IRIX +# #if (OSName == IRIX) +# DEFINES= -DIRIX +# #endif + +#ifdef HPArchitecture +DEFINES= -DHPUX +#endif + +#if OSMajorVersion == 5 +CC=gcc +DEFINES= -DBSD_COMP +#endif + +DEPLIBS = XawClientDepLibs +LOCAL_LIBRARIES = XawClientLibs + +SRCS = xlatex.c +OBJS = xlatex.o + +XLATEX_BITMAPS = xlatex.editer xlatex.visionner xlatex.faconner \ + xlatex.imprimer xlatex.statut xlatex.quitter \ + xlatex.dvips xlatex.dessiner + +ComplexProgramTarget(xlatex) +BuildIncludes($(XLATEX_BITMAPS),bitmaps,..) +InstallAppDefaults(Xlatex) +INSTALLFLAGS = $(INSTINCFLAGS) +InstallMultiple($(XLATEX_BITMAPS),$(INCDIR)/bitmaps) + diff --git a/support/xlatex/Imakefile.irix b/support/xlatex/Imakefile.irix new file mode 100644 index 0000000000..5f64cbae9b --- /dev/null +++ b/support/xlatex/Imakefile.irix @@ -0,0 +1,38 @@ +# +# Imakefile for xlatex +# + +#ifdef BandAidCompiler +#include BandAidCompiler +#endif + +# Problem with the test below : +# The DEFINES= -DIRIX must be set manually in the Makefile for IRIX +# #if (OSName == IRIX) +DEFINES= -DIRIX +# #endif + +#ifdef HPArchitecture +DEFINES= -DHPUX +#endif + +#if OSMajorVersion == 5 +DEFINES= -D BSD_COMP +#endif + +DEPLIBS = XawClientDepLibs +LOCAL_LIBRARIES = XawClientLibs + +SRCS = xlatex.c +OBJS = xlatex.o + +XLATEX_BITMAPS = xlatex.editer xlatex.visionner xlatex.faconner \ + xlatex.imprimer xlatex.statut xlatex.quitter \ + xlatex.dvips xlatex.dessiner + +ComplexProgramTarget(xlatex) +BuildIncludes($(XLATEX_BITMAPS),bitmaps,..) +InstallAppDefaults(Xlatex) +INSTALLFLAGS = $(INSTINCFLAGS) +InstallMultiple($(XLATEX_BITMAPS),$(INCDIR)/bitmaps) + diff --git a/support/xlatex/Imakefile.ok b/support/xlatex/Imakefile.ok new file mode 100644 index 0000000000..768736d796 --- /dev/null +++ b/support/xlatex/Imakefile.ok @@ -0,0 +1,39 @@ +# +# Imakefile for xlatex +# + +#ifdef BandAidCompiler +#include BandAidCompiler +#endif + +# Problem with the test below : +# The DEFINES= -DIRIX must be set manually in the Makefile for IRIX +# #if (OSName == IRIX) +# DEFINES= -DIRIX +# #endif + +#ifdef HPArchitecture +DEFINES= -DHPUX +#endif + +#if OSMajorVersion == 5 +CC=gcc +DEFINES= -DBSD_COMP +#endif + +DEPLIBS = XawClientDepLibs +LOCAL_LIBRARIES = XawClientLibs + +SRCS = xlatex.c +OBJS = xlatex.o + +XLATEX_BITMAPS = xlatex.editer xlatex.visionner xlatex.faconner \ + xlatex.imprimer xlatex.statut xlatex.quitter \ + xlatex.dvips xlatex.dessiner + +ComplexProgramTarget(xlatex) +BuildIncludes($(XLATEX_BITMAPS),bitmaps,..) +InstallAppDefaults(Xlatex) +INSTALLFLAGS = $(INSTINCFLAGS) +InstallMultiple($(XLATEX_BITMAPS),$(INCDIR)/bitmaps) + diff --git a/support/xlatex/NOUVEAUTES b/support/xlatex/NOUVEAUTES new file mode 100644 index 0000000000..f0061bd9c3 --- /dev/null +++ b/support/xlatex/NOUVEAUTES @@ -0,0 +1,25 @@ +24 aout 1994 +Xlatex 3.3c vient de sortir : + - un nouveau bouton pour modifier le nom du pilote est disponible, + la valeur par defaut en est dvips (pour autoriser l'appel de dvips2e) + - remplacement de texx par xdvi2e dans les ressources + - nouveau bouton dans le formulaire d'impression pour le nombre de copies + +17 mai 1994 +Xlatex 3.3b vient de sortir : + - simplifications et adaptations mineures + - adaptations pour differentes plateformes ; test positifs sur : + Sun3, Sun4 sous Solaris 2 et SunOS4.1, HP 7xx, IBM RS 6000 , + SGI, DEC-alpha sous OSF/1, DEC Stations sous Ultrix + contributions de B. Decouty (IRISA), E. Picheral (CRI U. Rennes 1) + +3 decembre 1992 +Xlatex 3.3a vient de sortir : + + - suppression des ressources inputFont, outputFont, commandFont, labelFont + et genericFont + - ajout du bouton DESSINER + - selection visionneur par defaut (dans les ressources visionneurs + ou visionneursPS, preceder le visionneur choisi par '*' + - anomalies mineures + - adaptation HP-UX par Pierre DAVID (Jussieu) diff --git a/support/xlatex/README b/support/xlatex/README new file mode 100644 index 0000000000..9169ab7561 --- /dev/null +++ b/support/xlatex/README @@ -0,0 +1,53 @@ +*** Xlatex 3.3c INSTALLATION NOTES *** + + Xlatex is intended to facilitate the use of text processing commands + around TeX : + - entering text editor session + - submitting a '.tex' document to LaTeX or TeX processor + - previewing the 'dvi' or 'ps' file + - printing document to PostScript printer (after converting it from + dvi to postscript) + - examining printer queue + - calling a graphic editor + + Most of Xlatex environment is customizable (see manual) except for printing + the document which uses the dvips arguments. + +1. French and English customizations are available. If you choose english: + cp Xlatex.ad.english Xlatex.ad + cp xlatex.man.english xlatex.man + +2. Check Xlatex.ad and decide wether or not you want bitmap images + for command buttons. The default is to have bitmaps. + +3. If you don't have xmkmf, we provide the Makefile.sun template file + for sun 4 sunos 4.1.1 X11R6. It can be edited and changed for your own + environment. In particular, check for the make variables : + PROJECTROOT + USRLIBDIR + BINDIR + INCROOT + MANPATH + MANSUFFIX + +4. If xmkmf is available, generate the Makefile: + xmkmf + +5. Compile and install : + make + make install + make install.man + + +Please send bugs and comments to: + + dragone@iu-vannes.fr + + Dragone Mario + IUT Vannes + rue Montaigne + BP 1104 + 56014 Vannes + France + + 97.46.31.06 diff --git a/support/xlatex/Xlatex.ad b/support/xlatex/Xlatex.ad new file mode 100644 index 0000000000..22ad5e2971 --- /dev/null +++ b/support/xlatex/Xlatex.ad @@ -0,0 +1,185 @@ +! Polices de caracteres +! --------------------- +Xlatex*Text*Font: -adobe-courier-bold-r-normal--12-* +Xlatex*interaction*Font: 9x15bold +Xlatex*interaction.height: 300 +Xlatex*Command*Font: -adobe-helvetica-bold-r-normal--14-* +Xlatex*Label*Font: -adobe-courier-medium-o-normal--12-* +! +! Environnement de travail +! ------------------------ +Xlatex.visionneurs: *xdvi xdvi2e +Xlatex.visionneursPS: ghostview gs +! +! Specification de tous les libelles +! ---------------------------------- +! +Xlatex.form.Label.width: 100 +Xlatex*faconner.label: Façonner +Xlatex*visionner.label: Visionner +Xlatex*imprimer.label: Imprimer +Xlatex*postscript.label: PostScript +Xlatex*statut.label: Statut imp. +Xlatex*editer.label: Editer +Xlatex*quitter.label: Quitter +! +! Pour ne pas avoir de bitmap dans les boutons de commande, commenter +! les ressources qui suivent +! +Xlatex*faconner.bitmap: xlatex.faconner +Xlatex*visionner.bitmap: xlatex.visionner +Xlatex*dessiner.bitmap: xlatex.dessiner +Xlatex*postscript.bitmap: xlatex.dvips +Xlatex*imprimer.bitmap: xlatex.imprimer +Xlatex*editer.bitmap: xlatex.editer +Xlatex*statut.bitmap: xlatex.statut +Xlatex*quitter.bitmap: xlatex.quitter +! +! +Xlatex*repertoireLab.label: Répertoire: +Xlatex*dessinLab.label: Dessin: +Xlatex*documentLab.label: Document: +Xlatex*faconneurLab.label: Façonneur: +Xlatex*visionneursLab.label: Visionneur: +Xlatex*piloteLab.label: Pilote: +Xlatex*editeurLab.label: Éditeur: +Xlatex*impressionLab.label: Impression: +Xlatex*imprimanteLab.label: Imprimante: +Xlatex*toutesLab.label: toutes les pages +Xlatex*deLab.label: de la page +Xlatex*aLab.label: à +Xlatex*ok.label: Ok +Xlatex*annuler.label: Annuler +Xlatex*copiesLab.label: copies +! +! Contraintes de placement +! ------------------------ +! +Xlatex*repertoireLab.fromVert: faconner +Xlatex*repertoire.fromVert: faconner +Xlatex*repertoire.fromHoriz: repertoireLab + +Xlatex*dessinLab.fromHoriz: repertoire +Xlatex*dessinLab.fromVert: faconner +Xlatex*dessin.fromVert: faconner +Xlatex*dessin.fromHoriz: dessinLab + +Xlatex*documentLab.fromVert: repertoireLab +Xlatex*document.fromVert: repertoireLab +Xlatex*document.fromHoriz: documentLab + +Xlatex*visionneursLab.fromVert: repertoireLab +Xlatex*visionneursLab.fromHoriz:document +Xlatex*visionneurs.fromVert: repertoireLab +Xlatex*visionneurs.fromHoriz: visionneursLab + +Xlatex*faconneurLab.fromVert: documentLab +Xlatex*faconneur.fromVert: documentLab +Xlatex*faconneur.fromHoriz: faconneurLab + +Xlatex*editeurLab.fromVert: documentLab +Xlatex*editeurLab.fromHoriz: faconneur +Xlatex*editeur.fromVert: documentLab +Xlatex*editeur.fromHoriz: editeurLab + +Xlatex*piloteLab.fromVert: documentLab +Xlatex*piloteLab.fromHoriz: editeur +Xlatex*pilote.fromVert: documentLab +Xlatex*pilote.fromHoriz: piloteLab + +Xlatex*interaction.fromVert: editeurLab + +Xlatex*impression.fromHoriz: impressionLab +Xlatex*imprimanteLab.fromVert: impressionLab +Xlatex*imprimante.fromVert: impressionLab +Xlatex*imprimante.fromHoriz: imprimanteLab +Xlatex*toutesTog.fromVert: imprimanteLab +Xlatex*toutesLab.fromVert: imprimanteLab +Xlatex*toutesLab.fromHoriz: toutesTog +Xlatex*deTog.fromVert: toutesTog +Xlatex*deLab.fromVert: toutesTog +Xlatex*deLab.fromHoriz: deTog +Xlatex*de.fromVert: toutesTog +Xlatex*de.fromHoriz: deLab +Xlatex*aLab.fromVert: toutesTog +Xlatex*aLab.fromHoriz: de +Xlatex*a.fromVert: toutesTog +Xlatex*a.fromHoriz: aLab +Xlatex*ok.fromVert: deTog +Xlatex*annuler.fromVert: deTog +Xlatex*annuler.fromHoriz: ok +Xlatex*copiesLab.fromVert: deTog +Xlatex*copiesLab.fromHoriz: annuler +Xlatex*copies.fromVert: deTog +Xlatex*copies.fromHoriz: copiesLab +! +! Accelerateurs +! ------------- +Xlatex*input: true +Xlatex.accelerators: #override\n\ + Meta<Key>e: editer()\n\ + Meta<Key>f: faconner()\n\ + Meta<Key>d: dessiner()\n\ + Meta<Key>l: faconner()\n\ + Meta<Key>i: imprimer()\n\ + Meta<Key>p: postscript()\n\ + Meta<Key>q: quitter()\n\ + Meta<Key>s: statut()\n\ + Meta<Key>v: visionner() +! +! Autres ressources +! ----------------- +Xlatex*top: chaintop +Xlatex*right: chainleft +Xlatex*left: chainleft +Xlatex*bottom: chaintop + +Xlatex*pilote: dvips +Xlatex*editeurAvecXterm: true +Xlatex*editeur: emacs +Xlatex*visionneurs.borderWidth: 0 +Xlatex*visionneurs.justify: left +Xlatex*menuVisionneurs*justify: center +Xlatex*Text.borderWidth: 2 +Xlatex*repertoire.insertPosition: 999999 +Xlatex*interaction.borderWidth: 1 +Xlatex*Background: #a5c0f2 +Xlatex*Text*Background: #ffe8d7 +Xlatex*Command*Background: #c8ebde +Xlatex*interaction*Background: MintCream +Xlatex*resizable: true +Xlatex*Command.justify: center +Xlatex*Text.topMargin: 0 +Xlatex*Text.bottomMargin: 0 +Xlatex*Text.resize: width +Xlatex*Text*editType: edit +Xlatex*Text*useStringInPlace: true +Xlatex*Text*displayCaret: no +Xlatex*Label.borderWidth: 0 +Xlatex*Label.justify: right +Xlatex*Toggle.label: +Xlatex*Toggle.shapeStyle: ellipse +Xlatex*interaction.resize: never +Xlatex*Text.translations: #override\n\ + <FocusIn>: display-caret(on)\n\ + <FocusOut>: display-caret(off)\n\ + <EnterWindow>: Focaliser()\n\ + <Key>Tab: ChampSuivant()\n\ + <Key>Return: ChampSuivant() +Xlatex*Toggle.translations: #replace\n\ + <EnterWindow>: highlight(Always)\n\ + <LeaveWindow>: unhighlight()\n\ + <Btn1Down>,<Btn1Up>: set() notify() +Xlatex*interaction.translations: #override\n\ + <EnterWindow>: Focaliser(interaction)\n\ + Ctrl<Key>C: end-of-file() newline() Control()\n\ + Ctrl<Key>D: end-of-file() newline() Control()\n\ + <Key>Delete: end-of-file() delete-previous-character() Delete() \n\ + <Key>BackSpace: end-of-file() delete-previous-character() Delete() \n\ + <Key>Return: end-of-file() newline() Send()\n\ + <Key>: Insert() end-of-file() insert-char() +Xlatex*interaction.scrollHorizontal: never +Xlatex*interaction.scrollVertical: always +Xlatex*interaction.autoFill: true +Xlatex*interaction.wrap: never +Xlatex*interaction.displayCaret: true diff --git a/support/xlatex/Xlatex.ad.english b/support/xlatex/Xlatex.ad.english new file mode 100644 index 0000000000..b7bedbcaed --- /dev/null +++ b/support/xlatex/Xlatex.ad.english @@ -0,0 +1,184 @@ +!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +! Fonts +! ----- +Xlatex.inputFont: -adobe-courier-bold-r-normal--12-* +Xlatex.outputFont: 7x13 +Xlatex.commandFont: -adobe-helvetica-bold-r-normal--14-* +Xlatex.labelFont: -adobe-courier-medium-o-normal--12-* +! +! Working environment +! ------------------- +Xlatex.visionneurs: *xdvi xdvi2e +Xlatex.visionneursPS: ghostview gs +! +! Labels +! ------ +! +Xlatex*faconner.label: Process +Xlatex*visionner.label: View +Xlatex*dessiner.label: Draw +Xlatex*postscript.label: PostScript +Xlatex*imprimer.label: Print +Xlatex*statut.label: Status +Xlatex*editer.label: Edit +Xlatex*quitter.label: Quit +! +! To keep labels inside command buttons, comment the following resources +! +Xlatex*faconner.bitmap: xlatex.faconner +Xlatex*visionner.bitmap: xlatex.visionner +Xlatex*dessiner.bitmap: xlatex.dessiner +Xlatex*postscript.bitmap: xlatex.dvips +Xlatex*imprimer.bitmap: xlatex.imprimer +Xlatex*editer.bitmap: xlatex.editer +Xlatex*statut.bitmap: xlatex.statut +Xlatex*quitter.bitmap: xlatex.quitter +! +! +Xlatex*repertoireLab.label: Directory: +Xlatex*dessinLab.label: Draw Processor: +Xlatex*documentLab.label: Document: +Xlatex*faconneurLab.label: Text Processor: +Xlatex*visionneursLab.label: Previewer: +Xlatex*editeurLab.label: Editor: +Xlatex*piloteLab.label: Driver: +Xlatex*impressionLab.label: Printing Command: +Xlatex*imprimanteLab.label: Printer: +Xlatex*toutesLab.label: all pages +Xlatex*deLab.label: from page +Xlatex*aLab.label: to +Xlatex*ok.label: Ok +Xlatex*annuler.label: Cancel +Xlatex*copiesLab.label: copies +! +! Placement constraints +! ------------------------ +! +Xlatex*repertoireLab.fromVert: faconner +Xlatex*repertoire.fromVert: faconner +Xlatex*repertoire.fromHoriz: repertoireLab + +Xlatex*dessinLab.fromHoriz: repertoire +Xlatex*dessinLab.fromVert: faconner +Xlatex*dessin.fromVert: faconner +Xlatex*dessin.fromHoriz: dessinLab + +Xlatex*documentLab.fromVert: repertoireLab +Xlatex*document.fromVert: repertoireLab +Xlatex*document.fromHoriz: documentLab + +Xlatex*visionneursLab.fromVert: repertoireLab +Xlatex*visionneursLab.fromHoriz:document +Xlatex*visionneurs.fromVert: repertoireLab +Xlatex*visionneurs.fromHoriz: visionneursLab + +Xlatex*faconneurLab.fromVert: documentLab +Xlatex*faconneur.fromVert: documentLab +Xlatex*faconneur.fromHoriz: faconneurLab + +Xlatex*editeurLab.fromVert: documentLab +Xlatex*editeurLab.fromHoriz: faconneur +Xlatex*editeur.fromVert: documentLab +Xlatex*editeur.fromHoriz: editeurLab + +Xlatex*piloteLab.fromVert: documentLab +Xlatex*piloteLab.fromHoriz: editeur +Xlatex*pilote.fromVert: documentLab +Xlatex*pilote.fromHoriz: piloteLab + +Xlatex*interaction.fromVert: editeurLab + +Xlatex*impression.fromHoriz: impressionLab +Xlatex*imprimanteLab.fromVert: impressionLab +Xlatex*imprimante.fromVert: impressionLab +Xlatex*imprimante.fromHoriz: imprimanteLab +Xlatex*toutesTog.fromVert: imprimanteLab +Xlatex*toutesLab.fromVert: imprimanteLab +Xlatex*toutesLab.fromHoriz: toutesTog +Xlatex*deTog.fromVert: toutesTog +Xlatex*deLab.fromVert: toutesTog +Xlatex*deLab.fromHoriz: deTog +Xlatex*de.fromVert: toutesTog +Xlatex*de.fromHoriz: deLab +Xlatex*aLab.fromVert: toutesTog +Xlatex*aLab.fromHoriz: de +Xlatex*a.fromVert: toutesTog +Xlatex*a.fromHoriz: aLab +Xlatex*ok.fromVert: deTog +Xlatex*annuler.fromVert: deTog +Xlatex*annuler.fromHoriz: ok +Xlatex*copiesLab.fromVert: deTog +Xlatex*copiesLab.fromHoriz: annuler +Xlatex*copies.fromVert: deTog +Xlatex*copies.fromHoriz: copiesLab +! +! Accelerateurs +! ------------- +Xlatex*input: true +Xlatex.accelerators: #override\n\ + Meta<Key>e: editer()\n\ + Meta<Key>t: faconner()\n\ + Meta<Key>l: faconner()\n\ + Meta<Key>f: dessiner()\n\ + Meta<Key>d: postscript()\n\ + Meta<Key>p: imprimer()\n\ + Meta<Key>q: quitter()\n\ + Meta<Key>s: statut()\n\ + Meta<Key>v: visionner() +! +! Autres ressources +! ----------------- +Xlatex*top: chaintop +Xlatex*right: chainleft +Xlatex*left: chainleft +Xlatex*bottom: chaintop + +Xlatex*pilote: dvips +Xlatex*editeurAvecXterm: true +Xlatex*editeur: emacs +Xlatex*visionneurs.borderWidth: 0 +Xlatex*visionneurs.justify: left +Xlatex*menuVisionneurs*justify: center +Xlatex*Text.borderWidth: 2 +Xlatex*repertoire.insertPosition: 999999 +Xlatex*interaction.borderWidth: 1 +Xlatex*Background: #a5c0f2 +Xlatex*Text*Background: #ffe8d7 +Xlatex*Command*Background: #c8ebde +Xlatex*interaction*Background: MintCream +Xlatex*resizable: true +Xlatex*Command.justify: center +Xlatex*Text.topMargin: 0 +Xlatex*Text.bottomMargin: 0 +Xlatex*Text.resize: width +Xlatex*Text*editType: edit +Xlatex*Text*useStringInPlace: true +Xlatex*Text*displayCaret: no +Xlatex*Label.borderWidth: 0 +Xlatex*Label.justify: right +Xlatex*Toggle.label: +Xlatex*Toggle.shapeStyle: ellipse +Xlatex*interaction.resize: never +Xlatex*Text.translations: #override\n\ + <FocusIn>: display-caret(on)\n\ + <FocusOut>: display-caret(off)\n\ + <EnterWindow>: Focaliser()\n\ + <Key>Tab: ChampSuivant()\n\ + <Key>Return: ChampSuivant() +Xlatex*Toggle.translations: #replace\n\ + <EnterWindow>: highlight(Always)\n\ + <LeaveWindow>: unhighlight()\n\ + <Btn1Down>,<Btn1Up>: set() notify() +Xlatex*interaction.translations: #override\n\ + <EnterWindow>: Focaliser(interaction)\n\ + Ctrl<Key>C: end-of-file() newline() Control()\n\ + Ctrl<Key>D: end-of-file() newline() Control()\n\ + <Key>Delete: end-of-file() delete-previous-character() Delete() \n\ + <Key>BackSpace: end-of-file() delete-previous-character() Delete() \n\ + <Key>Return: end-of-file() newline() Send()\n\ + <Key>: Insert() end-of-file() insert-char() +Xlatex*interaction.scrollHorizontal: never +Xlatex*interaction.scrollVertical: always +Xlatex*interaction.autoFill: true +Xlatex*interaction.wrap: never +Xlatex*interaction.displayCaret: true diff --git a/support/xlatex/Xlatex.ad.french b/support/xlatex/Xlatex.ad.french new file mode 100644 index 0000000000..22ad5e2971 --- /dev/null +++ b/support/xlatex/Xlatex.ad.french @@ -0,0 +1,185 @@ +! Polices de caracteres +! --------------------- +Xlatex*Text*Font: -adobe-courier-bold-r-normal--12-* +Xlatex*interaction*Font: 9x15bold +Xlatex*interaction.height: 300 +Xlatex*Command*Font: -adobe-helvetica-bold-r-normal--14-* +Xlatex*Label*Font: -adobe-courier-medium-o-normal--12-* +! +! Environnement de travail +! ------------------------ +Xlatex.visionneurs: *xdvi xdvi2e +Xlatex.visionneursPS: ghostview gs +! +! Specification de tous les libelles +! ---------------------------------- +! +Xlatex.form.Label.width: 100 +Xlatex*faconner.label: Façonner +Xlatex*visionner.label: Visionner +Xlatex*imprimer.label: Imprimer +Xlatex*postscript.label: PostScript +Xlatex*statut.label: Statut imp. +Xlatex*editer.label: Editer +Xlatex*quitter.label: Quitter +! +! Pour ne pas avoir de bitmap dans les boutons de commande, commenter +! les ressources qui suivent +! +Xlatex*faconner.bitmap: xlatex.faconner +Xlatex*visionner.bitmap: xlatex.visionner +Xlatex*dessiner.bitmap: xlatex.dessiner +Xlatex*postscript.bitmap: xlatex.dvips +Xlatex*imprimer.bitmap: xlatex.imprimer +Xlatex*editer.bitmap: xlatex.editer +Xlatex*statut.bitmap: xlatex.statut +Xlatex*quitter.bitmap: xlatex.quitter +! +! +Xlatex*repertoireLab.label: Répertoire: +Xlatex*dessinLab.label: Dessin: +Xlatex*documentLab.label: Document: +Xlatex*faconneurLab.label: Façonneur: +Xlatex*visionneursLab.label: Visionneur: +Xlatex*piloteLab.label: Pilote: +Xlatex*editeurLab.label: Éditeur: +Xlatex*impressionLab.label: Impression: +Xlatex*imprimanteLab.label: Imprimante: +Xlatex*toutesLab.label: toutes les pages +Xlatex*deLab.label: de la page +Xlatex*aLab.label: à +Xlatex*ok.label: Ok +Xlatex*annuler.label: Annuler +Xlatex*copiesLab.label: copies +! +! Contraintes de placement +! ------------------------ +! +Xlatex*repertoireLab.fromVert: faconner +Xlatex*repertoire.fromVert: faconner +Xlatex*repertoire.fromHoriz: repertoireLab + +Xlatex*dessinLab.fromHoriz: repertoire +Xlatex*dessinLab.fromVert: faconner +Xlatex*dessin.fromVert: faconner +Xlatex*dessin.fromHoriz: dessinLab + +Xlatex*documentLab.fromVert: repertoireLab +Xlatex*document.fromVert: repertoireLab +Xlatex*document.fromHoriz: documentLab + +Xlatex*visionneursLab.fromVert: repertoireLab +Xlatex*visionneursLab.fromHoriz:document +Xlatex*visionneurs.fromVert: repertoireLab +Xlatex*visionneurs.fromHoriz: visionneursLab + +Xlatex*faconneurLab.fromVert: documentLab +Xlatex*faconneur.fromVert: documentLab +Xlatex*faconneur.fromHoriz: faconneurLab + +Xlatex*editeurLab.fromVert: documentLab +Xlatex*editeurLab.fromHoriz: faconneur +Xlatex*editeur.fromVert: documentLab +Xlatex*editeur.fromHoriz: editeurLab + +Xlatex*piloteLab.fromVert: documentLab +Xlatex*piloteLab.fromHoriz: editeur +Xlatex*pilote.fromVert: documentLab +Xlatex*pilote.fromHoriz: piloteLab + +Xlatex*interaction.fromVert: editeurLab + +Xlatex*impression.fromHoriz: impressionLab +Xlatex*imprimanteLab.fromVert: impressionLab +Xlatex*imprimante.fromVert: impressionLab +Xlatex*imprimante.fromHoriz: imprimanteLab +Xlatex*toutesTog.fromVert: imprimanteLab +Xlatex*toutesLab.fromVert: imprimanteLab +Xlatex*toutesLab.fromHoriz: toutesTog +Xlatex*deTog.fromVert: toutesTog +Xlatex*deLab.fromVert: toutesTog +Xlatex*deLab.fromHoriz: deTog +Xlatex*de.fromVert: toutesTog +Xlatex*de.fromHoriz: deLab +Xlatex*aLab.fromVert: toutesTog +Xlatex*aLab.fromHoriz: de +Xlatex*a.fromVert: toutesTog +Xlatex*a.fromHoriz: aLab +Xlatex*ok.fromVert: deTog +Xlatex*annuler.fromVert: deTog +Xlatex*annuler.fromHoriz: ok +Xlatex*copiesLab.fromVert: deTog +Xlatex*copiesLab.fromHoriz: annuler +Xlatex*copies.fromVert: deTog +Xlatex*copies.fromHoriz: copiesLab +! +! Accelerateurs +! ------------- +Xlatex*input: true +Xlatex.accelerators: #override\n\ + Meta<Key>e: editer()\n\ + Meta<Key>f: faconner()\n\ + Meta<Key>d: dessiner()\n\ + Meta<Key>l: faconner()\n\ + Meta<Key>i: imprimer()\n\ + Meta<Key>p: postscript()\n\ + Meta<Key>q: quitter()\n\ + Meta<Key>s: statut()\n\ + Meta<Key>v: visionner() +! +! Autres ressources +! ----------------- +Xlatex*top: chaintop +Xlatex*right: chainleft +Xlatex*left: chainleft +Xlatex*bottom: chaintop + +Xlatex*pilote: dvips +Xlatex*editeurAvecXterm: true +Xlatex*editeur: emacs +Xlatex*visionneurs.borderWidth: 0 +Xlatex*visionneurs.justify: left +Xlatex*menuVisionneurs*justify: center +Xlatex*Text.borderWidth: 2 +Xlatex*repertoire.insertPosition: 999999 +Xlatex*interaction.borderWidth: 1 +Xlatex*Background: #a5c0f2 +Xlatex*Text*Background: #ffe8d7 +Xlatex*Command*Background: #c8ebde +Xlatex*interaction*Background: MintCream +Xlatex*resizable: true +Xlatex*Command.justify: center +Xlatex*Text.topMargin: 0 +Xlatex*Text.bottomMargin: 0 +Xlatex*Text.resize: width +Xlatex*Text*editType: edit +Xlatex*Text*useStringInPlace: true +Xlatex*Text*displayCaret: no +Xlatex*Label.borderWidth: 0 +Xlatex*Label.justify: right +Xlatex*Toggle.label: +Xlatex*Toggle.shapeStyle: ellipse +Xlatex*interaction.resize: never +Xlatex*Text.translations: #override\n\ + <FocusIn>: display-caret(on)\n\ + <FocusOut>: display-caret(off)\n\ + <EnterWindow>: Focaliser()\n\ + <Key>Tab: ChampSuivant()\n\ + <Key>Return: ChampSuivant() +Xlatex*Toggle.translations: #replace\n\ + <EnterWindow>: highlight(Always)\n\ + <LeaveWindow>: unhighlight()\n\ + <Btn1Down>,<Btn1Up>: set() notify() +Xlatex*interaction.translations: #override\n\ + <EnterWindow>: Focaliser(interaction)\n\ + Ctrl<Key>C: end-of-file() newline() Control()\n\ + Ctrl<Key>D: end-of-file() newline() Control()\n\ + <Key>Delete: end-of-file() delete-previous-character() Delete() \n\ + <Key>BackSpace: end-of-file() delete-previous-character() Delete() \n\ + <Key>Return: end-of-file() newline() Send()\n\ + <Key>: Insert() end-of-file() insert-char() +Xlatex*interaction.scrollHorizontal: never +Xlatex*interaction.scrollVertical: always +Xlatex*interaction.autoFill: true +Xlatex*interaction.wrap: never +Xlatex*interaction.displayCaret: true diff --git a/support/xlatex/icone.h b/support/xlatex/icone.h new file mode 100644 index 0000000000..52a2ddb421 --- /dev/null +++ b/support/xlatex/icone.h @@ -0,0 +1,51 @@ +/* icone.h */ + +static Pixmap xlatex_bitmap; +#define xlatex_width 64 +#define xlatex_height 64 +static char xlatex_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x84, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x88, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x90, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x91, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x91, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x91, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x90, 0xe1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x88, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, + 0x01, 0x20, 0x00, 0x00, 0x1c, 0xf0, 0x00, 0x88, 0x01, 0x10, 0xc0, 0x1f, + 0xe3, 0x9d, 0x01, 0x84, 0x01, 0x10, 0x3c, 0xf0, 0x01, 0x00, 0x06, 0x84, + 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x08, 0xe0, 0x07, + 0x70, 0xf0, 0x03, 0x82, 0x01, 0x08, 0x9e, 0xec, 0xcb, 0x1f, 0x04, 0x82, + 0x01, 0x04, 0x00, 0x10, 0x04, 0x00, 0x00, 0x81, 0x01, 0x04, 0x70, 0x00, + 0x00, 0xd8, 0x01, 0x81, 0x01, 0x04, 0x9f, 0xfb, 0xc7, 0x27, 0x02, 0x81, + 0x01, 0x82, 0x00, 0x04, 0x38, 0x01, 0x80, 0x80, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x01, 0x41, 0x18, 0x08, 0x80, 0x13, 0x40, 0x80, + 0x01, 0x41, 0x67, 0xfd, 0xf3, 0xee, 0x40, 0x80, 0x81, 0x80, 0x80, 0x00, + 0x0e, 0x00, 0x20, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, + 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x80, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x80, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x05, 0x93, 0xc7, 0x61, 0x18, 0x00, 0x01, 0x80, + 0x05, 0x60, 0x24, 0x9e, 0x37, 0x04, 0x01, 0x80, 0x05, 0x00, 0x18, 0x0c, + 0xc0, 0x03, 0x01, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, + 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xc5, 0x42, 0x38, 0x00, + 0x00, 0x08, 0x01, 0x80, 0x05, 0xbc, 0x6f, 0xf8, 0x3c, 0x0c, 0xff, 0x8f, + 0x05, 0x08, 0x80, 0x07, 0xc3, 0x07, 0x81, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x41, 0xa0, 0x05, 0x40, 0x00, 0x00, 0x00, 0x00, 0x41, 0xa0, + 0x85, 0xe7, 0x7c, 0x10, 0x18, 0x04, 0x41, 0xa2, 0x85, 0x94, 0x83, 0x6e, + 0xae, 0x1f, 0x81, 0xa1, 0x09, 0x08, 0x00, 0x83, 0xe1, 0x10, 0x02, 0xa0, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x88, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + diff --git a/support/xlatex/patchlevel.h b/support/xlatex/patchlevel.h new file mode 100644 index 0000000000..2867bba9dd --- /dev/null +++ b/support/xlatex/patchlevel.h @@ -0,0 +1 @@ +#define PATCHLEVEL 0 diff --git a/support/xlatex/xlatex.c b/support/xlatex/xlatex.c new file mode 100644 index 0000000000..b42a0458c2 --- /dev/null +++ b/support/xlatex/xlatex.c @@ -0,0 +1,1935 @@ +/* xlatex.c + * + * xlatex est une application X facilitant l'utilisation des produits de + * composition de texte (tels que TeX et LaTeX) librement distribuable. + * Mario Dragone en a un Copyright (1990). Vous pouvez modifier et + * utiliser ce programme, a condition de lui envoyer les modifications. Il + * peut etre inclus dans toute distribution, commerciale ou non, a + * condition que cette notice et la banniere definie ci-dessous ne soient + * pas modifies (sauf pour le numero de version) et que cette banniere + * soit affichee a l'appel du programme. Toute contribution, correction + * de bogue et commentaires doivent etre envoyes a : + * + * Mario Dragone, IUT Vannes + * rue Montaigne + * BP 1104 + * 56014 Vannes - France + * Tel: 99.46.31.06 + * + * e-mail: dragone@iu-vannes.fr + * + * picheral@univ-rennes1.fr 11/06/93 modifie pour HP-UX + * picheral@univ-rennes1.fr 08/09/93 modifie pour IRIX + * message fin dvips + * decouty@irisa.fr 23/09/93 modifie pour Solaris 2 + * picheral@univ-rennes1.fr 11/08/94 ressource et widget => pilote + * picheral@univ-rennes1.fr 25/08/94 #define ALPR et ALPQ + * picheral@univ-rennes1.fr 08/09/94 waitpid sur tous les fils en Solaris 2 + * sinon la terminaison de "xterm emacs" + * terminait aussi xlatex ! + * picheral@univ-rennes1.fr 08/09/94 LG_NOM mis a 128 au lieu de 32 + * LG_PATH mis a MAXPATHLENGTH au lieu de 128 + */ + +#define VERSION "3.3c" +#define BANNER "xlatex, version %s -- Copyright(c) 1990-1994 CICB\n" + +/************************************************************************ + * Application X concue autour des Athena Widgets pour faciliter + * l'utilisation des commandes associees a TeX et LaTeX. Appel : + * + * xlatex [options] [document] [toolkit_options] + * + * + * L'utilisateur dispose des boutons de commandes: + * + * Faconner faconnage du document courant + * Visionner epreuvage sur ecran + * PostScript production d'un document PostScript + * Imprimer impression du document sur la station courante. Une + * fenetre ``popup'' apparait pour positionner les options + * telles que: + * - commande d'impression et ses arguments + * - station de sortie + * - pages a imprimer + * - nb. de copies + * File d'attente etat de l'imprimante + * Editer session edition de texte + * Quitter fin de l'application + * + * Les champs suivants sont egalement definis: + * + * visionneur utilitaire de visualisation sur ecran du document + * repertoire repertoire courant de travail + * document nom du document (correspond au nom du fichier sans + * suffixe 'tex' + * faconnage utilitaire de faconnage de documents + * editeur editeur de texte + * pilote pilote de conversion en PostScript + * interaction c'est une fenetre 'ascenseur' qui recoit toutes les + * sorties 'ecran' des commandes generees par selection + * des boutons de commande. Elle permet egalement a + * l'utilisateur d'introduire du texte pour notamment + * dialoguer avec la commande latex. + * + * Voici la correspondance 'shell-like' des actions realisees par les boutons de + * commande : + * + * faconner <faconnage> <document> & + * imprimer <pilote> [-p page -n nbpages] [-c copies] + * -o '!<impression> + * -P<imprimante>' <document> & (BSD) + * -d<imprimante>' <document> & (System V) + * visionner <visionneur> <document> & + * file attente lpq -P<imprimante> & (BSD) + * lpstat -o<imprimante> & (System V) + * editeur xterm -e <editeur> <document>.tex & + * + * *************************************************************************** + */ + +/* + * Notes : + * - xlatex est prevu pour utiliser les versions 5.4 et ulterieures de dvips + */ + +/* + * Versions : + * 3.0 03/06/91: premiere version a diffusion restreinte X11R4 + * 3.1 26/06/91: version diffusable + * 3.2 24/09/91: adaptation X11R5, meilleure designation des champs + * et possibilite de deplacement par tabulation + * 3.3 29/01/92: ajout du bouton PostScript et possibilite d'epreuver + * le PostScript si le mode choisi est PostScript + * 3.3a 03/12/92: ajout bouton xfig et amenagements mineurs + * 3.3b 10/12/93: adaptations pour differentes plate-formes + * 3.3c 11/08/94: ajout ressource et widget => pilote + */ + +#include <stdio.h> +#include <errno.h> +#include <signal.h> +#include <search.h> +#include <sys/types.h> +#include <sys/ioctl.h> +#include <sys/wait.h> +#include <sys/stat.h> +#include <sys/param.h> /* pour MAXPATHLEN */ + +#include <X11/Xos.h> +#include <X11/Intrinsic.h> +#include <X11/StringDefs.h> +#include <X11/Shell.h> +#include <X11/Xaw/Command.h> +#include <X11/Xaw/Form.h> +#include <X11/Xaw/AsciiText.h> +#include <X11/Xaw/Label.h> +#include <X11/Xaw/Toggle.h> +#include <X11/Xaw/Dialog.h> +#include <X11/Xaw/SimpleMenu.h> +#include <X11/Xaw/SmeBSB.h> +#include <X11/Xaw/SmeLine.h> +#include <X11/Xaw/MenuButton.h> + +#if (defined(SVR4) || defined(SYSV)) +#include <sys/types.h> +#include <fcntl.h> +#if ! defined(HPUX) && ! defined(AIXV3) && ! defined(IRIX) +#include <sys/filio.h> /* pour FIOREAD */ +#endif +#endif + +#include "icone.h" + +#define LG_NOM 128 +#define LG_FICH MAXPATHLEN +#define LG_CHEMIN MAXPATHLEN +#define DVIPS "dvips" +#if (defined(SVR4) || defined(SYSV)) && ! defined(BSD_COMP) +#define LPR "lp" +#define ALPR "-d" +#define ALPQ "-o" +#define LPQ "lpstat" +#else +#define LPR "lpr" +#define ALPR "-P" +#define ALPQ "-P" +#define LPQ "lpq" +#endif + +#define POINT_INSERTION 999999 + + +#if defined(SVR4) +char *sys_errlist[0230]; +#else +char *sys_errlist[]; +#endif +int errno; + +extern char +#ifndef AIXV3 + *strrchr (), +#endif +#if (defined(SVR4) || defined(SYSV)) && ! defined(IRIX) + *getcwd (), +#else + *getwd (), +#endif + *strtok (), + *getenv (); +extern ENTRY *hsearch (); + + +/* --- STATIQUES ---*/ + +/* + * References en avant + */ + +static XtInputCallbackProc + Procedure_entreeINP (); +static void FaconnerCB (), + VisionnerCB (), + DessinerCB (), + PostScriptCB (), + ImprimerCB (), + StatutCB (), + EditerCB (), + QuitterCB (), + MenuVisionneursCB (), + MenuVisionneursPSCB (), + Toutes_pagesCB (), + De_la_pageCB (), + OkCB (), + AnnulerCB (); +static XtActionProc + FocaliserACT (), + ChampSuivantACT (), + ControlACT (), + InsertACT (), + DeleteACT (), + SendACT (); +static void Connecter_pipes (), + Reinitialiser_fenetre_interaction (), + Supprimer_suffixe_tex (); + +/* + * Implementation des groupes de tabulation des champs de saisie + * Chaque entree du tableau designe un widget et son suivant (chainage boucle) + * Pour acceder a une entree par le nom d'un widget, on utilise la fonction + * de hash-coding hsearch + */ +typedef struct { + char *nom; + int suivant; + Widget wg; +} _groupeT; + +static _groupeT TabGroup[15]; +static int IGroup = 0; +static ENTRY TabElem; + +/* + * Tableau des widgets boutons de commande et leur fonction de CallBack + */ +typedef void (*fptr) (); +typedef struct { + char *nom; + fptr CB; + Widget wg; +} _commandesT; + +static _commandesT Commandes[] = { + {"editer", EditerCB}, + {"dessiner", DessinerCB}, + {"faconner", FaconnerCB}, + {"visionner", VisionnerCB}, + {"postscript", PostScriptCB}, + {"imprimer", ImprimerCB}, + {"statut", StatutCB}, + {"quitter", QuitterCB} +}; + + +/* + * Description des ressources de l'application Xlatex + */ + +typedef struct _AppRessources { + String repertoire_initial, + dessin, + faconneur, + visionneurs, + visionneursPS, + pilote, + impression, + editeur; + Boolean editeur_avec_xterm; + /* ressources maintenues pour compatibilite avec la version anterieure */ + String repertoire; +} RessourcesXlatex; + +static RessourcesXlatex Ressources_xlatex; + +static XtResource Ressources[] = { + {"repertoireInitial", "RepertoireInitial", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, repertoire_initial), XtRString, NULL}, + {"faconneur", "Faconneur", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, faconneur), XtRString, "latex"}, + {"dessin", "Dessin", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, dessin), XtRString, "xfig"}, + {"visionneurs", "Visionneurs", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, visionneurs), XtRString, "*xdvi texx"}, + {"visionneursPS", "VisionneursPS", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, visionneursPS), XtRString, "ghostview gs"}, + {"editeur", "Editeur", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, editeur), XtRString, NULL}, + {"pilote", "Pilote", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, pilote), XtRString, NULL}, + {"impression", "Impression", XtRString, sizeof (String), + XtOffset (RessourcesXlatex *, impression), XtRString, LPR}, + {"editeurAvecXterm", "EditeurAvecXterm", XtRBoolean, sizeof (Boolean), + XtOffset (RessourcesXlatex *, editeur_avec_xterm), XtRString, NULL}, +}; + +static String Ressources_defaut[] = { + NULL, +}; + + +/* + * Table des actions + */ +static XtActionsRec Table_actions[] = { + {"Focaliser", (XtActionProc) FocaliserACT}, + {"ChampSuivant", (XtActionProc) ChampSuivantACT}, + {"Control", (XtActionProc) ControlACT}, + {"Insert", (XtActionProc) InsertACT}, + {"Delete", (XtActionProc) DeleteACT}, + {"Send", (XtActionProc) SendACT}, + {"faconner", (XtActionProc) FaconnerCB}, + {"editer", (XtActionProc) EditerCB}, + {"dessiner", (XtActionProc) DessinerCB}, + {"visionner", (XtActionProc) VisionnerCB}, + {"postscript", (XtActionProc) PostScriptCB}, + {"imprimer", (XtActionProc) ImprimerCB}, + {"statut", (XtActionProc) StatutCB}, + {"quitter", (XtActionProc) QuitterCB}, + {NULL, NULL} +}; + +static Widget Toplevel, + Document_wg, + Imprimer_wg, + Form_wg, + Popup_wg, + Repertoire_wg, + Visionneurs_wg, + Faconneur_wg, + Editeur_wg, + Dessin_wg, + Interaction_wg, + Imprimante_wg, + Impression_wg, + Pilote_wg, + ToutesLab_wg, + DeLab_wg, + De_wg, + ALab_wg, + A_wg, + CopiesLab_wg, + Copies_wg; +Widget Focus = (Widget) NULL; + +XtAppContext Xlatex_app_con; +Display *Dpy; + +static int Pipe_entree[2], + Pipe_sortie[2]; + +static char Faconneur[LG_NOM] = "", + Editeur[LG_NOM] = "", + Dessin[LG_NOM] = "", + Impression[LG_NOM] = "", + Visionneur[LG_NOM] = "", + Document[LG_FICH] = "", + Repertoire[LG_CHEMIN] = "", + Pilote[LG_NOM] = "", + Imprimante[LG_NOM] = ""; +static Boolean PostScript = False; + +static int FaconneurPid = -9999; +static Boolean FaconneurActif = False; +static int ImpressionPid = -9999; +static Boolean ImpressionActive = False; +static int PostScriptPid = -9999; +static Boolean PostScriptActif = False; +static int Pgid; +static char TamponEntree[256] = ""; +static int TamponEntree_lg = 0; + +static Boolean ToutesPages = True, + DeLaPage = False; + +static char PageDebut[5] = "0", + PageFin[5] = "0", + Pages[5] = "0", + Copies[5] = "1"; + +static Pixel CouleurDeBordure, + CouleurDeFond; + +static char *TabArg[15]; + +static char *Visionneurs[10], + *VisionneursPS[10]; + +static char Programme[] = "Xlatex"; + + +/* --- INTERNES --- */ + +#if (defined(SVR4) || defined(SYSV)) + killpg(ProcessGroup, Signal) + int ProcessGroup; + int Signal; +{ +if (ProcessGroup < 0) + { + errno = ESRCH; + return (-1); + } + return (kill(-ProcessGroup, Signal)); + } +#endif + + /************************************************************ + Changer_Repertoire + + - modification de la variable d'environnement PATH + - changement de repertoire + ************************************************************/ + +static int Changer_repertoire (repertoire) +/****************************************/ + char *repertoire; +{ + extern char **environ; + static char **nouvelEnviron = NULL; + static char pwdEnv[256]; + static Boolean nouvelEnvCree = False; + int nbVarEnv; + char **newPtr, + **oldPtr; + + if (nouvelEnvCree == False) { + + /* Enumeration des variables d'environnement */ + for (oldPtr = environ; *oldPtr; oldPtr++); + nbVarEnv = (oldPtr - environ); + + nouvelEnviron = (char **) XtMalloc ((nbVarEnv + 2) * sizeof (char **)); + if (!nouvelEnviron) { + fprintf (stderr, + "%s: echec allocation de %d pointeurs de l'environnement\n", + Programme, nbVarEnv + 2); + exit (1); + } + /* placer PWD=repertoire en premiere position */ + strcpy (pwdEnv, "PWD="); + newPtr = nouvelEnviron; + *newPtr++ = pwdEnv; + + /* copie des autres variables de l'environnement */ + for (oldPtr = environ; *oldPtr; oldPtr++) { + if (strncmp (*oldPtr, "PWD=", 4) != 0) + *newPtr++ = *oldPtr; + } + *newPtr = NULL; + environ = nouvelEnviron; + nouvelEnvCree = True; + } + /* Changement de repertoire */ + strcpy (pwdEnv + 4, repertoire); + return (chdir (repertoire)); +} + + + /************************************************************ + Connecter_pipes + + On se situe dans le cadre d'un processus FILS. + Les organes d'E/S standard sont connectes aux pipes Pipe_entree + et Pipe_sortie : + + 0 recevra les caracteres en provenance du PERE + 1,2 enverront les caracteres au PERE qui activera la procedure + Procedure_entreeINP + + PERE FILS + [1] Pipe_entree [0] == 0 + Procedure_entreeINP [0] Pipe_sortie [1] == 1, 2 + + Ce processus est affilie au 'process group' de son pere ce qui + permet a ce dernier d'envoyer un signal de terminaison a + l'ensemble du groupe en fin d'application + ************************************************************/ + +static void Connecter_pipes () +/****************************************/ +{ + long arg; + char buf[32]; + int len; + + /* + On se situe ici dans le cadre d'un processus qui s'est cree mais avant + qu'il ne realise l'execvp. on connecte 0, 1 et 2 aux pipes d'E/S + */ + dup2 (Pipe_entree[0], 0); + dup2 (Pipe_sortie[1], 1); + dup2 (Pipe_sortie[1], 2); + + close (Pipe_entree[0]); + close (Pipe_entree[1]); + close (Pipe_sortie[0]); + close (Pipe_sortie[1]); + + /* Purge des entrees anticipees */ + ioctl (0, FIONREAD, &arg); +#ifndef IRIX + while (arg > 0) { + len = read (0, buf, sizeof (buf)); + ioctl (0, FIONREAD, &arg); + } +#endif +} + + + /************************************************************ + Afficher + + Affichage d'un message suivi d'un retour a la ligne + dans le widget Interaction. + ************************************************************/ + +static int Afficher (msg) +/****************************************/ + char *msg; +{ + char aLaLigne = '\n'; + XawTextBlock text; + + /* On affiche le message dans la fenetre d'interaction */ + text.firstPos = 0; + text.ptr = msg; + text.format = FMT8BIT; + text.length = strlen (msg); + + XawTextReplace (Interaction_wg, POINT_INSERTION, POINT_INSERTION, &text); + + text.ptr = &aLaLigne; + text.length = 1; + + XawTextReplace (Interaction_wg, POINT_INSERTION, POINT_INSERTION, &text); + XawTextSetInsertionPoint (Interaction_wg, POINT_INSERTION); + + XFlush (Dpy); +} + + + /************************************************************ + Reinitialiser_fenetre_interaction + + Effacement du contenu du widget Interaction, generalement + provoque a chaque faconnage + ************************************************************/ + +static void Reinitialiser_fenetre_interaction () +/****************************************/ +{ + XawTextBlock text; + char car = '\00'; + + text.firstPos = 0; + text.ptr = &car; + text.format = FMT8BIT; + text.length = 0; + + XawTextReplace (Interaction_wg, (XawTextPosition) 0, POINT_INSERTION, &text); + XawTextSetInsertionPoint (Interaction_wg, POINT_INSERTION); +} + + + /************************************************************ + Supprimer_suffixe_tex + + Suppression du suffixe .tex du champ Document. Un suffixe + approprie est ajoute ulterieurement. + ************************************************************/ + +static void Supprimer_suffixe_tex () +/****************************************/ +{ + char *ptex; + if ((ptex = rindex (Document, '.')) == NULL) + return; + if (strcmp (ptex, ".tex") == 0) { + *ptex = '\00'; + XtVaSetValues (Document_wg, XtNstring, Document, NULL); + } +} + + + /************************************************************ + Positionner_arguments + + Analyse une ligne de commande et positionne le tableau + d'arguments TabArg + ************************************************************/ + +static void Positionner_arguments (commande) +/****************************************/ + char *commande; +{ + int i = 0; + TabArg[i] = strtok (commande, " "); + while ((TabArg[++i] = strtok (NULL, " ")) != NULL); +} + + + /************************************************************ + Acquitter_processus + + Reaction au signal de terminaison SIGCHLD. + Dans le cas du processus de faconnage, d'impression et de + generation PoscScript, on memorise et signale + sa terminaison. + ************************************************************/ + +static void Acquitter_processus () +/****************************************/ +{ + int status; + int pid; + +#if defined(SVR4) + while ((pid = waitpid ((pid_t) -1, &status, WNOHANG)) > 0) { +#else +#if defined(SYSV) && ! defined(IRIX) + while ((pid = waitpid ((pid_t) 0, &status, WNOHANG)) > 0) { +#else + while ((pid = wait3 (&status, WNOHANG, 0)) > 0) { +#endif +#endif + if (pid == FaconneurPid) { + char msg[256]; + FaconneurActif = False; + sprintf (msg, "--- Exit %s ---", Faconneur); + Afficher (msg); + } + if (pid == ImpressionPid) { + char msg[256]; + ImpressionActive = False; + sprintf (msg, "--- Exit %s ---", Impression); + Afficher (msg); + } + if (pid == PostScriptPid) { + char msg[256]; + PostScriptActif = False; + sprintf (msg, "--- Exit %s ---", Pilote); + Afficher (msg); + } + } + signal (SIGCHLD, Acquitter_processus); +} + + + /************************************************************ + Initialiser_pipes + + Creation des pipes Pipe_entree et Pipe_sortie + ************************************************************/ + +static void Initialiser_pipes () +/****************************************/ +{ + pipe (Pipe_entree); + pipe (Pipe_sortie); +#if (defined(SVR4) || defined(SYSV)) + fcntl (Pipe_entree[1], F_SETFL, O_NDELAY); + fcntl (Pipe_sortie[0], F_SETFL, O_NDELAY); +#else + fcntl (Pipe_entree[1], F_SETFL, FNDELAY); + fcntl (Pipe_sortie[0], F_SETFL, FNDELAY); +#endif +} + + + /************************************************************ + Initialiser_Xt + + Creation de l'application Xlatex, traitement des ressources + et initialisation de l'environnement de travail + ************************************************************/ + +static void Initialiser_Xt (argc, argv) +/****************************************/ + int argc; + char *argv[]; +{ + char msg[256]; + char titre[256]; + char *rep, + *doc, + *imp, + *edi; + int iv; + char *vp; + + /* Initialisation du processus de hash-coding : on prevoit 15 entrees max */ + hcreate (15); + + /* + Interception du signal de changement d'etat (en l'occurence leur + terminaison) des processus fils pour eviter leur etat <defunct> + */ + signal (SIGCHLD, Acquitter_processus); + + + /* Demarrage de l'application X */ + Toplevel = XtAppInitialize (&Xlatex_app_con, Programme, NULL, + 0, &argc, argv, + Ressources_defaut, NULL, 0); + + Dpy = XtDisplay (Toplevel); + + XtAppAddActions (Xlatex_app_con, Table_actions, XtNumber (Table_actions)); + XtAppAddInput (Xlatex_app_con, Pipe_sortie[0], (XtPointer) XtInputReadMask, + (XtInputCallbackProc) Procedure_entreeINP, NULL); + + /* Obtention des ressources de l'application */ + XtGetApplicationResources (Toplevel, (XtPointer) & Ressources_xlatex, + Ressources, XtNumber (Ressources), NULL, 0); + + /* Fabrication des listes des visionneurs */ + Visionneur[0] = '\0'; + iv = 0; + vp = strtok (Ressources_xlatex.visionneurs, " ,"); + while (vp) { + if (*vp == '*') { + vp++; + strcpy (Visionneur, vp); + PostScript = False; + } + Visionneurs[iv++]=vp; + vp = strtok (NULL, " ,"); + } + iv = 0; + vp = strtok (Ressources_xlatex.visionneursPS, " ,"); + while (vp) { + if (*vp == '*') { + vp++; + strcpy (Visionneur, vp); + PostScript = True; + } + VisionneursPS[iv++]=vp; + vp = strtok (NULL, " ,"); + } + + if (! Visionneur[0]) { + strcpy (Visionneur, Visionneurs[0]); + PostScript = False; + } + + /* Prise en compte des anciens noms de ressources */ + if (Ressources_xlatex.repertoire != NULL) + Ressources_xlatex.repertoire_initial = Ressources_xlatex.repertoire; + + /* Fabrication de l'icone */ + xlatex_bitmap = XCreateBitmapFromData (Dpy, + RootWindow (Dpy, DefaultScreen (Dpy)), + xlatex_bits, xlatex_width, xlatex_height); + sprintf (titre, "%s %s", Programme, VERSION); + XtVaSetValues (Toplevel, + XtNiconPixmap, xlatex_bitmap, + XtNtitle, titre, + NULL); + + /* + Determination du nom du document. S'il est fourni en parametre : son + chemin d'acces est expanse et on en deduit le repertoire et son nom + sinon si la ressource repertoireInitial est positionnee : elle devient + le repertoire courant de travail sinon le repertoire courant est pris + */ + + if (argc > 1) { + doc = strrchr (argv[1], '/'); + if (doc == NULL) + strcpy (Document, argv[1]); + else { + strcpy (Document, doc + 1); + *doc = '\00'; + if (Changer_repertoire (argv[1]) == -1) { + sprintf (msg, "chdir %s", argv[1]); + perror (msg); + exit (1); + } + } + } else { + strcpy (Document, "document"); + if (Ressources_xlatex.repertoire_initial != NULL) { + if (Changer_repertoire (Ressources_xlatex.repertoire_initial) == -1) { + sprintf (msg, "chdir %s", Ressources_xlatex.repertoire_initial); + perror (msg); + exit (1); + } + } + }; +#if (defined(SVR4) ||defined(SYSV)) && ! defined(IRIX) + rep = getcwd (Repertoire, MAXPATHLEN); +#else + rep = getwd (Repertoire); +#endif + + /* + Obtention du nom de l'imprimante et de l'editeur par les variables + d'environnement. + */ +#if (defined(SVR4) || defined(SYSV)) && ! defined(BSD_COMP) + imp = getenv ("LPDEST"); +#else + imp = getenv ("PRINTER"); +#endif + if (imp != NULL) + strcpy (Imprimante, imp); + if (Ressources_xlatex.editeur == NULL) { + edi = getenv ("EDITOR"); + if (edi != NULL) + strcpy (Editeur, edi); + else + strcpy (Editeur, "emacs"); + } else + strcpy (Editeur, Ressources_xlatex.editeur); + if (Ressources_xlatex.pilote != NULL) + strcpy (Pilote, Ressources_xlatex.pilote); + else + strcpy (Pilote, DVIPS); + strcpy (Dessin, Ressources_xlatex.dessin); + strcpy (Faconneur, Ressources_xlatex.faconneur); + strcpy (Impression, Ressources_xlatex.impression); +} + + + + /************************************************************ + Creer_popup_imprimer + + Creation du formulaire d'impression + Creation du groupe secondaire de tabulation pour ce formulaire. + IGroup designe la derniere entree occupee dans TabGroup + ************************************************************/ + +static void Creer_popup_imprimer () +/****************************************/ +{ + Widget form_wg, + impressionLab_wg, + imprimanteLab_wg, + toutesTog_wg, + deTog_wg, + ok_wg, + annuler_wg; + Widget widgets[30]; + Cardinal nwg = 0; + int debut; + + Popup_wg = XtVaCreatePopupShell ("popup", transientShellWidgetClass, Form_wg, NULL); + form_wg = XtVaCreateManagedWidget ("form", formWidgetClass, Popup_wg, NULL); + + widgets[nwg++] = impressionLab_wg = XtVaCreateWidget ("impressionLab", labelWidgetClass, form_wg, + NULL); + + debut = ++IGroup; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "impression"; + TabGroup[IGroup].wg = widgets[nwg++] = Impression_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, form_wg, + XtNstring, Impression, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = imprimanteLab_wg = XtVaCreateWidget ("imprimanteLab", labelWidgetClass, form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "imprimante"; + TabGroup[IGroup].wg = widgets[nwg++] = Imprimante_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, form_wg, + XtNstring, Imprimante, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = toutesTog_wg = XtVaCreateWidget ("toutesTog", toggleWidgetClass, form_wg, + XtNstate, ToutesPages, + NULL); + XtAddCallback (toutesTog_wg, XtNcallback, Toutes_pagesCB, NULL); + + widgets[nwg++] = ToutesLab_wg = XtVaCreateWidget ("toutesLab", labelWidgetClass, form_wg, + XtNsensitive, ToutesPages, + NULL); + + widgets[nwg++] = deTog_wg = XtVaCreateWidget ("deTog", toggleWidgetClass, form_wg, + XtNradioGroup, toutesTog_wg, + XtNstate, DeLaPage, + NULL); + XtAddCallback (deTog_wg, XtNcallback, De_la_pageCB, NULL); + + widgets[nwg++] = DeLab_wg = XtVaCreateWidget ("deLab", labelWidgetClass, form_wg, + XtNsensitive, DeLaPage, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "de"; + TabGroup[IGroup].wg = widgets[nwg++] = De_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, form_wg, + XtNstring, PageDebut, + XtNlength, sizeof (PageDebut), + XtNwidth, 35, + XtNsensitive, DeLaPage, + XtNborderColor, CouleurDeFond, + NULL); + + + widgets[nwg++] = ALab_wg = XtVaCreateWidget ("aLab", labelWidgetClass, form_wg, + XtNsensitive, DeLaPage, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "a"; + TabGroup[IGroup].wg = widgets[nwg++] = A_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, form_wg, + XtNstring, PageFin, + XtNlength, sizeof (PageFin), + XtNwidth, 35, + XtNsensitive, DeLaPage, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = ok_wg = XtVaCreateWidget ("ok", commandWidgetClass, form_wg, + NULL); + + XtAddCallback (ok_wg, XtNcallback, OkCB, NULL); + + widgets[nwg++] = annuler_wg = XtVaCreateWidget ("annuler", commandWidgetClass, form_wg, + NULL); + XtAddCallback (annuler_wg, XtNcallback, AnnulerCB, NULL); + + widgets[nwg++] = CopiesLab_wg = XtVaCreateWidget ("copiesLab", labelWidgetClass, form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = debut; + TabGroup[IGroup].nom = "copies"; + TabGroup[IGroup].wg = widgets[nwg++] = Copies_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, form_wg, + XtNstring, Copies, + XtNlength, sizeof (Copies), + XtNwidth, 35, + XtNborderColor, CouleurDeFond, + NULL); + + XtManageChildren (widgets, nwg); + + + /* Hash-coding du groupe de tabulation cree */ + + { + int i; + for (i=debut; i<= IGroup; i++) { + TabElem.key = TabGroup[i].nom; + TabElem.data= (char *) &TabGroup[i].suivant; + hsearch (TabElem, ENTER); + } + } + +} + + + /************************************************************ + Creer_widgets + + Creation des widgets de l'application Xlatex + Creation du groupe principal de tabulation dans TabGroup + ************************************************************/ + +static void Creer_widgets () +/****************************************/ +{ + Widget repertoireLab_wg, + modeLab_wg, + documentLab_wg, + dessinLab_wg, + visionneursLab_wg, + menuVisionneurs_wg, + faconneurLab_wg, + piloteLab_wg, + editeurLab_wg; + Widget widgets[32]; + WidgetList bouttons; + Widget wg; + int iv, i; + Cardinal nwg = 0; + + Form_wg = XtVaCreateManagedWidget ("form", formWidgetClass, Toplevel, NULL); + + for (i = 0; i < XtNumber (Commandes); i++) { + widgets[nwg++] = Commandes[i].wg = XtVaCreateWidget ( + Commandes[i].nom, commandWidgetClass, Form_wg, + XtNfromHoriz, (i == 0 ? NULL : Commandes[i - 1].wg), + NULL); + XtAddCallback (Commandes[i].wg, XtNcallback, Commandes[i].CB, NULL); + } + widgets[nwg++] = repertoireLab_wg = XtVaCreateWidget ("repertoireLab", labelWidgetClass, Form_wg, + NULL); + IGroup = 0; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "repertoire"; + TabGroup[IGroup].wg = widgets[nwg++] = Repertoire_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Repertoire, + XtNlength, LG_CHEMIN, + NULL); + + XtVaGetValues (Repertoire_wg, + XtNbackground, &CouleurDeFond, + XtNborderColor, &CouleurDeBordure, + NULL); + XtVaSetValues (Repertoire_wg, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = dessinLab_wg = XtVaCreateWidget ("dessinLab", labelWidgetClass, Form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "dessin"; + TabGroup[IGroup].wg = widgets[nwg++] = Dessin_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Dessin, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = documentLab_wg = XtVaCreateWidget ("documentLab", labelWidgetClass, Form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "document"; + TabGroup[IGroup].wg = widgets[nwg++] = Document_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Document, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = visionneursLab_wg = XtVaCreateWidget ("visionneursLab", labelWidgetClass, Form_wg, + NULL); + + widgets[nwg++] = Visionneurs_wg = XtVaCreateManagedWidget ("visionneurs", menuButtonWidgetClass, Form_wg, + XtNmenuName, "menuVisionneurs", + XtNlabel, Visionneur, + NULL); + + menuVisionneurs_wg = XtVaCreatePopupShell ("menuVisionneurs", simpleMenuWidgetClass, Visionneurs_wg, NULL); + + iv = 0; + while (Visionneurs[iv]) { + wg = XtVaCreateManagedWidget (Visionneurs[iv], smeBSBObjectClass, menuVisionneurs_wg, + NULL); + XtAddCallback (wg, XtNcallback, MenuVisionneursCB, (XtPointer) iv); + iv++; + } + XtVaCreateManagedWidget ("separateur", smeLineObjectClass, menuVisionneurs_wg, NULL); + iv = 0; + while (VisionneursPS[iv]) { + wg = XtVaCreateManagedWidget (VisionneursPS[iv], smeBSBObjectClass, menuVisionneurs_wg, + NULL); + XtAddCallback (wg, XtNcallback, MenuVisionneursPSCB, (XtPointer) iv); + iv++; + } + + + widgets[nwg++] = faconneurLab_wg = XtVaCreateWidget ("faconneurLab", labelWidgetClass, Form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "faconneur"; + TabGroup[IGroup].wg = widgets[nwg++] = Faconneur_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Faconneur, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = editeurLab_wg = XtVaCreateWidget ("editeurLab", labelWidgetClass, Form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = IGroup + 1; + TabGroup[IGroup].nom = "editeur"; + TabGroup[IGroup].wg = widgets[nwg++] = Editeur_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Editeur, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = piloteLab_wg = XtVaCreateWidget ("piloteLab", labelWidgetClass, Form_wg, + NULL); + + IGroup++; + TabGroup[IGroup].suivant = 0; + TabGroup[IGroup].nom = "pilote"; + TabGroup[IGroup].wg = widgets[nwg++] = Pilote_wg = XtVaCreateWidget (TabGroup[IGroup].nom, asciiTextWidgetClass, Form_wg, + XtNstring, Pilote, + XtNlength, LG_NOM, + XtNborderColor, CouleurDeFond, + NULL); + + widgets[nwg++] = Interaction_wg = XtVaCreateWidget ("interaction", asciiTextWidgetClass, Form_wg, + XtNtop, XtChainTop, + XtNright, XtChainRight, + XtNleft, XtChainLeft, + XtNbottom, XtChainBottom, + XtNuseStringInPlace, False, + NULL); + + XtManageChildren (widgets, nwg); + + /* Ajustement de la taille de la fenetre d'interaction */ + + { + Dimension largeur; + XFontStruct *police; + XtVaGetValues (Interaction_wg, XtNfont, &police, NULL); + largeur = (police->max_bounds.width + police->min_bounds.width) / 2; + XtVaSetValues (Interaction_wg, XtNwidth, largeur * 80 + 05, + XtNheight, (police->max_bounds.ascent + police->max_bounds.descent) * 20 + 10, + NULL); + } + + Supprimer_suffixe_tex (); + + /* Hash-coding du groupe de tabulation */ + + { + int i; + for (i=0; i<= IGroup; i++) { + TabElem.key = TabGroup[i].nom; + TabElem.data= (char *) &TabGroup[i].suivant; + hsearch (TabElem, ENTER); + } + } + + Focus = Repertoire_wg; +} + + + /************************************************************ + Installer_accelerateurs + + Mise en place des accelerateurs + ************************************************************/ + +static void Installer_accelerateurs () +/****************************************/ +{ + XtInstallAllAccelerators (Toplevel, Toplevel); + XtInstallAllAccelerators (Repertoire_wg, Toplevel); + XtInstallAllAccelerators (Document_wg, Toplevel); + XtInstallAllAccelerators (Visionneurs_wg, Toplevel); + XtInstallAllAccelerators (Dessin_wg, Toplevel); + XtInstallAllAccelerators (Faconneur_wg, Toplevel); + XtInstallAllAccelerators (Pilote_wg, Toplevel); + XtInstallAllAccelerators (Editeur_wg, Toplevel); + XtInstallAllAccelerators (Interaction_wg, Toplevel); + XtInstallAllAccelerators (Imprimante_wg, Toplevel); + XtInstallAllAccelerators (Impression_wg, Toplevel); +} + + +/* --- INPUT READ PROCEDURE --- */ + + /************************************************************ + Procedure_entreeINP + + Procedure activee lors de la presence de caracteres dans le + pipe Pipe_sortie[0]. + ************************************************************/ + +static XtInputCallbackProc Procedure_entreeINP (cd, s, id) +/****************************************/ + caddr_t cd; + int *s; + XtInputId *id; +{ + char tamp[100]; + XawTextBlock text; + + text.firstPos = 0; + text.ptr = tamp; + text.format = FMT8BIT; + + /* Boucle de transfert */ + while ((text.length = read (*s, tamp, sizeof (tamp))) > 0) + XawTextReplace (Interaction_wg, POINT_INSERTION, POINT_INSERTION, &text); + + XawTextSetInsertionPoint (Interaction_wg, POINT_INSERTION); + + return (0); +} + + +/* --- CALLBACKS --- */ + + /************************************************************ + OkCB + + Confirmation de l'impression. La commande d'impression est + preparee puis executee. + ************************************************************/ + +static void OkCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + int pd; + int pf; + int cp; + int etat; + char msg[256]; + + /* Calcul du nombre de pages a sortir dans Pages */ + pd = atoi (PageDebut); + pf = atoi (PageFin); + + sprintf (Pages, "%d", (pf - pd) + 1); + + if (DeLaPage == True) + if (pd > pf) { + Afficher ("Mauvais parametres de pages. DEB > FIN !"); + return; + } + cp = atoi (Copies); + if (cp < 1) { + Afficher ("Nombre de copies errone !"); + return; + } + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + Reinitialiser_fenetre_interaction (); + Supprimer_suffixe_tex (); + if (DeLaPage == True) + if (cp > 1) + sprintf (msg, "%s -c %s -p %s -n %s -o '!%s %s%s' %s", Pilote, + Copies, PageDebut, Pages, Impression, ALPR, + Imprimante, Document); + else + sprintf (msg, "%s -p %s -n %s -o '!%s %s%s' %s", Pilote, PageDebut, + Pages, Impression, ALPR, Imprimante, Document); + else + if (cp > 1) + sprintf (msg, "%s -c %s -o '!%s %s%s' %s", Pilote, Copies, + Impression, ALPR, Imprimante, Document); + else + sprintf (msg, "%s -o '!%s %s%s' %s", Pilote, Impression, + ALPR, Imprimante, Document); + Afficher (msg); + ImpressionActive = True; + if ((ImpressionPid = fork ()) == 0) { + sprintf (msg, "!%s %s%s", Impression, ALPR, Imprimante); + Connecter_pipes (); + if (DeLaPage == True) + if (cp > 1) + etat = execlp (Pilote, Pilote, "-c", Copies, "-p", PageDebut, + "-n", Pages, "-o", msg, Document, '\00'); + else + etat = execlp (Pilote, Pilote, "-p", PageDebut, + "-n", Pages, "-o", msg, Document, '\00'); + else + if (cp > 1) + etat = execlp (Pilote, Pilote, "-c", Copies, "-o", msg, Document, + '\00'); + else + etat = execlp (Pilote, Pilote, "-o", msg, Document, '\00'); + if (etat == -1) { + printf ("%s est inaccessible.\n", Pilote); + exit (-1); + } + } + else if (ImpressionPid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + ImpressionActive = False; + } + XtPopdown (Popup_wg); +} + + + /************************************************************ + MenuVisionneursCB + + Selection d'un visionneur + ************************************************************/ + +static void MenuVisionneursCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + int iv = (int) client_data; + strcpy (Visionneur, Visionneurs[iv]); + PostScript = False; + XtVaSetValues (Visionneurs_wg, XtNlabel, Visionneur, NULL); +} + + + /************************************************************ + MenuVisionneursPSCB + + Selection d'un visionneur PostScript + ************************************************************/ + +static void MenuVisionneursPSCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + int iv = (int) client_data; + strcpy (Visionneur, VisionneursPS[iv]); + PostScript = True; + XtVaSetValues (Visionneurs_wg, XtNlabel, Visionneur, NULL); +} + + + /************************************************************ + AnnulerCB + + Abandon de l'impression + ************************************************************/ + +static void AnnulerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + XtPopdown (Popup_wg); +} + + + /************************************************************ + De_la_pageCB + + Selection de l'option 'de la page nn a mm', desensibilisation + de l'option 'toutes les pages' + ************************************************************/ + +static void De_la_pageCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + Boolean etat; + + XtVaGetValues (w, XtNstate, &etat, NULL); + if (etat == True) { + DeLaPage = True; + XtVaSetValues (DeLab_wg, XtNsensitive, True, NULL); + XtVaSetValues (De_wg, XtNsensitive, True, NULL); + XtVaSetValues (ALab_wg, XtNsensitive, True, NULL); + XtVaSetValues (A_wg, XtNsensitive, True, NULL); + } else { + DeLaPage = False; + XtVaSetValues (DeLab_wg, XtNsensitive, False, NULL); + XtVaSetValues (De_wg, XtNsensitive, False, NULL); + XtVaSetValues (ALab_wg, XtNsensitive, False, NULL); + XtVaSetValues (A_wg, XtNsensitive, False, NULL); + } +} + + + /************************************************************ + Toutes_pagesCB + + Selection de l'option 'toutes les pages' et desensibilisation + de l'option 'de la page nn a mm' + ************************************************************/ + +static void Toutes_pagesCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + Boolean etat; + + XtVaGetValues (w, XtNstate, &etat, NULL); + if (etat == True) { + ToutesPages = True; + XtVaSetValues (ToutesLab_wg, XtNsensitive, True, NULL); + } else { + ToutesPages = False; + XtVaSetValues (ToutesLab_wg, XtNsensitive, False, NULL); + } +} + + + /************************************************************ + ImprimerCB + + Apparition du formulaire d'impression + ************************************************************/ + +static void ImprimerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + Position x, + y; + Dimension largeur, + hauteur; + + /* Calcul des coordonnees en fonction de celles de l'application */ + XtVaGetValues (Toplevel, + XtNwidth, &largeur, + XtNheight, &hauteur, + NULL); + XtTranslateCoords (Form_wg, (Position) (largeur / 3), (Position) (hauteur / 3), &x, &y); + + XtVaSetValues (Popup_wg, + XtNx, x, + XtNy, y, + NULL); + + XtPopup (Popup_wg, XtGrabNone); + XRaiseWindow (Dpy, XtWindow (Popup_wg)); +} + + + /************************************************************ + VisionnerCB + + Execution de la commande de visionnage + ************************************************************/ + +static void VisionnerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + char msg[255]; + int pid; + + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + Supprimer_suffixe_tex (); + if (PostScript == True) { + struct stat dvi, + ps; + char fdvi[LG_CHEMIN], + fps[LG_CHEMIN]; + sprintf (fdvi, "%s.dvi", Document); + sprintf (fps , "%s.ps" , Document); + if (stat (fdvi, &dvi) == 0) { + if (stat (fps, &ps) == 0) { + if (dvi.st_mtime > ps.st_mtime) { + sprintf (msg, "PSST !! %s.ps n'est pas a jour ..."); + Afficher (msg); + } + } + } + sprintf (msg, "%s %s.ps", Visionneur, Document); + } + else + sprintf (msg, "%s %s.dvi", Visionneur, Document); + Afficher (msg); + Positionner_arguments (msg); + if ((pid = fork ()) == 0) { + Connecter_pipes (); + if (execvp (TabArg[0], TabArg) == -1) { + printf ("%s n'a pas marche.\n", msg); + exit (-1); + } + + } + else if (pid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + } +} + + + /************************************************************ + DessinerCB + + Execution de la commande de dessin + ************************************************************/ + +static void DessinerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + char msg[255]; + int pid; + + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + sprintf (msg, "%s", Dessin); + Afficher (msg); + Positionner_arguments (msg); + if ((pid = fork ()) == 0) { + Connecter_pipes (); + if (execvp (TabArg[0], TabArg) == -1) { + printf ("%s n'a pas marche.\n", msg); + exit (-1); + } + + } + else if (pid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + } +} + + + /************************************************************ + PostScriptCB + + Production d'un document PostScript + ************************************************************/ + +static void PostScriptCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + char msg[255]; + + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + if (PostScriptActif == True) { + sprintf (msg, "%s (PID=%d) encore actif !", Pilote, PostScriptPid); + Afficher (msg); + return; + } + Supprimer_suffixe_tex (); + sprintf (msg, "%s -o %s.ps %s", Pilote, Document, Document); + Afficher (msg); + Positionner_arguments (msg); + PostScriptActif = True; + if ((PostScriptPid = fork ()) == 0) { + Connecter_pipes (); + if (execvp (TabArg[0], TabArg) == -1) { + printf ("%s n'a pas marche.\n", msg); + exit (-1); + } + + } + else if (PostScriptPid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + PostScriptActif = False; + } +} + + + /************************************************************ + FaconnerCB + + Execution de la commande de faconnage. Plusieurs processus + pouvant etre lances, un groupe de processus est cree + permettant d'agir globalement avec les signaux + ************************************************************/ + +static void FaconnerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + char msg[255]; + + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + if (FaconneurActif == True) { + sprintf (msg, "%s (PID=%d) encore actif !", Faconneur, FaconneurPid); + Afficher (msg); + return; + } + Reinitialiser_fenetre_interaction (); + Supprimer_suffixe_tex (); + sprintf (msg, "%s %s", Faconneur, Document); + Afficher (msg); + Positionner_arguments (msg); + FaconneurActif = True; + if ((FaconneurPid = fork ()) == 0) { + Connecter_pipes (); + if (execvp (TabArg[0], TabArg) == -1) { + printf ("%s est inaccessible.\n", Faconneur); + exit (-1); + } + } + else if (FaconneurPid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + FaconneurActif = False; + } +} + + + /************************************************************ + StatutCB + + Interrogation de la file d'attente de l'imprimante + ************************************************************/ + +static void StatutCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + int pid; + char msg[255], + arg[255]; + + sprintf (msg, "%s %s%s", LPQ, ALPQ, Imprimante); + Afficher (msg); + + sprintf (arg, "%s%s", ALPQ, Imprimante); + + if ((pid = fork ()) == 0) { + Connecter_pipes (); + if (execlp (LPQ, LPQ, arg, '\00') == -1) { + printf ("%s: %s.\n", msg, sys_errlist[errno]); + exit (-1); + } + } + else if (pid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + } +} + + + /************************************************************ + EditerCB + + Execution de la commande d'edition de texte + ************************************************************/ + +static void EditerCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + char msg[255]; + int pid; + + if (Changer_repertoire (Repertoire) == -1) { + sprintf (msg, "%s: %s", Repertoire, sys_errlist[errno]); + Afficher (msg); + return; + } + Supprimer_suffixe_tex (); + if (Ressources_xlatex.editeur_avec_xterm == True) + sprintf (msg, "xterm -e %s %s.tex", Editeur, Document); + else + sprintf (msg, "%s %s.tex", Editeur, Document); + Afficher (msg); + Positionner_arguments (msg); + if ((pid = fork ()) == 0) { + Connecter_pipes (); + if (execvp (TabArg[0], TabArg) == -1) { + printf ("%s: %s.\n", msg, sys_errlist[errno]); + exit (-1); + } + } + else if (pid == -1) { + sprintf (msg, "fork: %s", sys_errlist[errno]); + Afficher (msg); + } +} + + + /************************************************************ + QuitterCB + + Fin de l'application Xlatex. + Tous les processus lances encore actifs sont termines. + ************************************************************/ + +static void QuitterCB (w, client_data, call_data) +/****************************************/ + Widget w; + XtPointer client_data, + call_data; +{ + signal (SIGTERM, SIG_IGN); + killpg (Pgid, SIGTERM); + XtDestroyWidget (Toplevel); + exit (0); +} + +/* --- ACTIONS --- */ + + /************************************************************ + FocaliserACT + + Entree de la souris dans un champ d'entree de texte. + Demarquage du pourtour du champ precedent + Marquage du pourtour du champ courant + Positionnement du focus + ************************************************************/ + +static XtActionProc FocaliserACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XEvent *event; + String *params; + Cardinal *num_params; +{ + if (XtIsSensitive(wg)) { + XtVaSetValues (Focus, XtNborderColor, CouleurDeFond, NULL); + if (*num_params == 0) { + XtVaSetValues (wg, XtNborderColor, CouleurDeBordure, NULL); + Focus = wg; + } + XtSetKeyboardFocus (XtParent (wg), wg); + } + else + ChampSuivantACT(wg, event, params, num_params); + + return (0); +} + + + /************************************************************ + ChampSuivantACT + + Recherche du champ suivant dans le groupe de tabulation + Une fois trouve, focalisation sur celui-ci + ************************************************************/ + +static XtActionProc ChampSuivantACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XEvent *event; + String *params; + Cardinal *num_params; +{ + ENTRY elem, + *elem_cherche; + char *nom; + int i; + + nom = XtName(wg); + elem.key=nom; + elem_cherche=hsearch(elem,FIND); + i = *(int *)elem_cherche->data; + FocaliserACT (TabGroup[i].wg,event,params,num_params); + return (0); +} + + + /*********************************************************** + ControlACT + + Entree d'une sequence d'interruption. + ^C -> envoi du signal SIGINT aux processus de faconnage + ^D -> envoi du signal SIGTERM aux processus de faconnage + ************************************************************/ + +static XtActionProc ControlACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XKeyEvent *event; + String *params; + Cardinal *num_params; +{ + char car; + int lg; + + /* Obtention du caractere frappe */ + lg = XLookupString (event, &car, 1, NULL, NULL); + + switch (car) { + case 3: /* Ctrl-C */ + kill (FaconneurPid, SIGINT); + break; + case 4: /* Ctrl-D */ + kill (FaconneurPid, SIGTERM); + break; + } + + TamponEntree_lg = 0; + XawTextSetInsertionPoint (Interaction_wg, POINT_INSERTION); + + return (0); +} + + + /************************************************************ + InsertACT + + Entree d'un caractere dans la fenetre d'interaction. + Le caractere est memorise dans le tampon TamponEntree + ************************************************************/ + +static XtActionProc InsertACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XKeyEvent *event; + String *params; + Cardinal *num_params; +{ + char str[32]; + int lg; + register int i; + + /* Obtention des caracteres frappes */ + lg = XLookupString (event, str, sizeof (str), NULL, NULL); + + strncat (TamponEntree, str, lg); + TamponEntree_lg += lg; + + XawTextSetInsertionPoint (Interaction_wg, POINT_INSERTION); + + return (0); +} + + + /************************************************************ + DeleteACT + + Correction de frappe dans la fenetre d'interaction. + Le tampon TamponEntree est mis a jour. + ************************************************************/ + +static XtActionProc DeleteACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XEvent *event; + String *params; + Cardinal *num_params; +{ + /* + On veille a ne pas corriger au dela des caracteres precedemment + introduits. + */ + if (TamponEntree_lg > 0) + TamponEntree[--TamponEntree_lg] = '\00'; + + return (0); +} + + + /************************************************************ + SendACT + + Frappe d'un retour a la ligne dans la fenetre d'interaction. + Le contenu du tampon TamponEntree est envoye dans le pipe + Pipe_entree[1]. + ************************************************************/ + +static XtActionProc SendACT (wg, event, params, num_params) +/****************************************/ + Widget wg; + XEvent *event; + String *params; + Cardinal *num_params; +{ + /* Envoi de la commande */ + strcat (TamponEntree, "\n"); + TamponEntree_lg++; + + (void) write (Pipe_entree[1], TamponEntree, TamponEntree_lg); + + /* + Reinitialisation de TamponEntree et mise a jour de la position dans la + fenetre d'interaction + */ + TamponEntree[0] = '\00'; + TamponEntree_lg = 0; + + return (0); +} + + +/* + * --------------------------------------------------------------------------- + * PROGRAMME PRINCIPAL + * --------------------------------------------------------------------------- + */ +main (argc, argv) +/****************************************/ + int argc; + char *argv[]; +{ +/* fprintf (stderr, BANNER, VERSION);*/ + + if ((Pgid = fork ())) + exit (0); + +/* + * La, c'est un peu galere ! Il faut assurer que ce processus est leader + * du groupe qu'il va dominer + * Sur Sun (SunOS 4.x), setsid() ou setpgrp(0,0) serait tout indique ... + */ + +#ifdef gould + setpgrp (0, Pgid); +#else + setsid (); +#endif /* gould */ + + Initialiser_pipes (); + Initialiser_Xt (argc, argv); + + Creer_widgets (); + Creer_popup_imprimer (); + + Installer_accelerateurs (); + + XtRealizeWidget (Toplevel); + + XtAppMainLoop (Xlatex_app_con); +} diff --git a/support/xlatex/xlatex.dessiner b/support/xlatex/xlatex.dessiner new file mode 100644 index 0000000000..b05adfab89 --- /dev/null +++ b/support/xlatex/xlatex.dessiner @@ -0,0 +1,20 @@ +#define xlatex_width 54 +#define xlatex_height 28 +static char xlatex_bits[] = { + 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x40, + 0x00, 0x10, 0x00, 0x10, 0x08, 0x00, 0x40, 0x00, 0x10, 0x00, 0x10, 0x08, + 0x00, 0x40, 0x00, 0x10, 0x00, 0x10, 0x08, 0x00, 0x40, 0x00, 0x10, 0x00, + 0x10, 0x08, 0x00, 0x40, 0x00, 0x10, 0x00, 0x10, 0x08, 0x00, 0x40, 0x00, + 0x10, 0x00, 0x10, 0x08, 0x02, 0x40, 0x00, 0x10, 0x00, 0x20, 0x08, 0x04, + 0x20, 0x00, 0x10, 0x00, 0x20, 0x08, 0x18, 0x20, 0x00, 0x10, 0x00, 0x40, + 0x08, 0x20, 0x10, 0x00, 0x10, 0x00, 0x40, 0x08, 0x40, 0x10, 0x00, 0x10, + 0x00, 0x80, 0x08, 0x80, 0x09, 0x00, 0x10, 0x00, 0x00, 0x09, 0x00, 0x06, + 0x00, 0x10, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x18, + 0xc0, 0x18, 0x00, 0x10, 0x00, 0x00, 0xe8, 0x3f, 0x20, 0x00, 0xf0, 0xff, + 0xff, 0x0f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20}; diff --git a/support/xlatex/xlatex.dvips b/support/xlatex/xlatex.dvips new file mode 100644 index 0000000000..28fca1db71 --- /dev/null +++ b/support/xlatex/xlatex.dvips @@ -0,0 +1,20 @@ +#define xlatex_width 54 +#define xlatex_height 28 +static char xlatex_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x8f, 0xc7, 0xbd, 0x3f, 0xbc, 0x00, 0xc0, 0x18, + 0x83, 0x18, 0x73, 0xc6, 0x00, 0xc0, 0x30, 0xc3, 0x18, 0x63, 0x86, 0x00, + 0xc0, 0x30, 0x46, 0x18, 0x63, 0x0e, 0x00, 0xc0, 0x30, 0x66, 0x18, 0x63, + 0x3c, 0x00, 0xc0, 0x30, 0x26, 0x18, 0x3f, 0x70, 0x00, 0xc0, 0x30, 0x2c, + 0x18, 0x03, 0xe0, 0x00, 0xc0, 0x30, 0x3c, 0x18, 0x03, 0xc2, 0x00, 0xc0, + 0x18, 0x18, 0x18, 0x03, 0xc6, 0x00, 0xe0, 0x0f, 0x18, 0xbc, 0x07, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/support/xlatex/xlatex.editer b/support/xlatex/xlatex.editer new file mode 100644 index 0000000000..c404dd1ae3 --- /dev/null +++ b/support/xlatex/xlatex.editer @@ -0,0 +1,20 @@ +#define editer_width 54 +#define editer_height 28 +static char editer_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe6, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x18, 0x81, 0x0f, 0x00, 0x00, 0x00, 0x1c, + 0x30, 0x04, 0xf0, 0x00, 0x00, 0x00, 0x1c, 0xd0, 0x38, 0x80, 0x01, 0x00, + 0x00, 0x08, 0x80, 0xc3, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x06, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xc0, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, 0x06, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x18, 0x02, 0x80, 0xff, 0x07, 0x00, 0xe0, 0x20, + 0x06, 0x00, 0x01, 0x02, 0x00, 0x00, 0x07, 0x06, 0x00, 0x01, 0x02, 0x00, + 0x00, 0xb8, 0x05, 0xf0, 0x00, 0x3c, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00}; diff --git a/support/xlatex/xlatex.faconner b/support/xlatex/xlatex.faconner new file mode 100644 index 0000000000..5b1edd5ce9 --- /dev/null +++ b/support/xlatex/xlatex.faconner @@ -0,0 +1,17 @@ +#define tex_width 54 +#define tex_height 28 +static char tex_bits[] = { + 0xff,0xff,0x07,0x00,0x7f,0x00,0xff,0xff,0xff,0x07,0x00,0x1c,0x00,0xcc,0x07, + 0x07,0x07,0x00,0x1c,0x00,0xc4,0x03,0x07,0x06,0x00,0x38,0x00,0xc6,0x01,0x07, + 0x04,0x00,0x70,0x00,0xc3,0x01,0x07,0x04,0x00,0x70,0x80,0xc1,0x00,0x07,0x00, + 0x00,0xe0,0x80,0xc0,0x00,0x07,0xfc,0xff,0xc1,0x61,0xc0,0x00,0x07,0x1c,0xc0, + 0x81,0x33,0xc0,0x00,0x07,0x1c,0x80,0x01,0x17,0xc0,0x00,0x07,0x1c,0x00,0x01, + 0x1f,0xc0,0x00,0x07,0x1c,0x00,0x01,0x0e,0xc0,0x00,0x07,0x1c,0x00,0x00,0x1e, + 0xc0,0x00,0x07,0x1c,0x00,0x00,0x1e,0xc0,0x00,0x07,0x1c,0x08,0x80,0x71,0xc0, + 0x00,0x07,0x1c,0x08,0xc0,0x70,0xc0,0x00,0x07,0xfc,0x0f,0x40,0xe0,0xc0,0x00, + 0x07,0xfc,0x0f,0x60,0xc0,0xc1,0x00,0x07,0x1c,0x08,0x30,0xc0,0xc1,0x00,0x07, + 0x1c,0x08,0x18,0x80,0xc3,0x00,0x07,0x1c,0x00,0x08,0x00,0xc7,0xc0,0x1f,0x1c, + 0x00,0x7f,0x80,0xff,0x00,0x00,0x1c,0x00,0x00,0x00,0xc0,0x00,0x00,0x1c,0x00, + 0x01,0x00,0xc0,0x00,0x00,0x1c,0x00,0x01,0x00,0xc0,0x00,0x00,0x1c,0x80,0x01, + 0x00,0xc0,0x00,0x00,0x1c,0xc0,0x01,0x00,0xc0,0x00,0x00,0xfc,0xff,0x01,0x00, + 0xc0}; diff --git a/support/xlatex/xlatex.imprimer b/support/xlatex/xlatex.imprimer new file mode 100644 index 0000000000..51ca8314fc --- /dev/null +++ b/support/xlatex/xlatex.imprimer @@ -0,0 +1,21 @@ +#define imprimer_width 54 +#define imprimer_height 28 +static char imprimer_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x00, 0x00, 0xf8, + 0x03, 0x00, 0x08, 0xa0, 0x00, 0x00, 0x08, 0x02, 0x00, 0x08, 0xa0, 0x00, + 0x00, 0xa8, 0x02, 0x00, 0x04, 0xa0, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x02, + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xfc, 0xf8, 0xff, + 0xff, 0xff, 0x9f, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x84, + 0xf8, 0xff, 0xff, 0xff, 0x9f, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x9f, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0xf8, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; + diff --git a/support/xlatex/xlatex.man b/support/xlatex/xlatex.man new file mode 100644 index 0000000000..50122d5ab4 --- /dev/null +++ b/support/xlatex/xlatex.man @@ -0,0 +1,480 @@ +.TH XLATEX 1 "24 aout 1994" "Xlatex Version 3.3c" +.\" so /usr/lib/ms/s.acc + +.\" @(#)ms.acc 1.1 86/07/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.\" modif accent aigu troff CICB, E. Picheral +.\" modif cedille et trema CICB, E. Picheral +.\" modif ^ et .. , accents majuscules, distinction italique CICB, E. Picheral +.bd S B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H (-(1u-(\\\\n(.fu%2u))*.13m) +. ds #J 0 +. ds #K (-(1u-(\\\\n(.fu%2u))*.08m) +. ds #L (-(1u-(\\\\n(.fu%2u))*.04m) +. ds #V .6m +. ds #W (-(1u-(\\\\n(.fu%2u))*.05m) +. ds #X (-(1u-(\\\\n(.fu%2u))*.03m) +. ds #Y -.25m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' " +. ds ` " +. ds ^ " +. ds , " +. ds ~ " +. ds ? ? +. ds ! ! +. ds / " +. ds : " +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*9/10-\*(#J)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#K)'\v'\*(#W'\`\v'-\*(#W'\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#L)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)'\(cd\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'\v'-.03m'~\v'.03m'\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +. ds : \\k:\h'-(\\n(.wu*9/10-\*(#K)'\(..\h'|\\n:u' +. ds G' \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'\'\v'-\*(#Y'\h'|\\n:u' +. ds G` \\k:\h'-(\\n(.wu*7/10-\*(#K)'\v'\*(#Y'\`\v'-\*(#Y'\h'|\\n:u' +. ds G^ \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'^\v'-\*(#Y'\h'|\\n:u' +. ds G: \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'\(..\v'-\*(#Y'\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +. \" .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : " +. ds 8 B +. ds v " +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C + +.SH SYNTAXE D'APPEL +.B xlatex +[\fIarguments\ \ Toolkit\fP]\ \ [\fIarguments\ de\ contro\*^le\fP]\ \ [\fBdocument\fP] + +.SH DESCRIPTION +.PP + +\fIXlatex\fP est une application X destine\*'e a\*` simplifier le fac\*,onnage +de documents TeX ou LaTeX, a\*` savoir l'exe\*'cution d'une session +d'e\*'dition de texte, la soumission d'un document \fI.tex\fP a\*` un +processeur de \fIfac\*,onnage\fP, l'e\*'preuvage sur e\*'cran par un +\fIvisionneur\fP, l'impression du \fI.dvi\fP par le pilote d'impression +Postscript \fBdvips\fP. La constitution du document \fI.tex\fP est de +l'entie\*`re responsabilite\*' de l'utilisateur. + +.SH ARGUMENT +.sp 1 +.TP 1c +\fBdocument\fP +chemin d'acce\*`s absolu ou relatif du document LaTeX. Si le suffixe \fI.tex\fP +est spe\*'cifie\*', il est automatiquement enleve\*'. Par de\*'faut, le +fichier \fBdocument.tex\fP est pris dans le re\*'pertoire courant. +.PP + +.SH ARGUMENTS DE CONTROLE +.sp 1 +.TP 1c +\fB-gfont\fP\ \ \fIfont\fP +police ge\*'ne\*'rique utilise\*'e dans la pre\*'sentation de l'application +\fIxlatex\fP. Se reporter a\*` la description de la ressource +\fBgenericFont\fP. +.PP + + +.SH ENVIRONNEMENT DE TRAVAIL PAR DEFAUT +.sp 1 +La plupart de ces valeurs peuvent e\*^tre change\*'es par les \fBressources\fP. + +.ta 3c +.sp 1 +re\*'pertoire re\*'pertoire de travail +.sp 0 +document \fBdocument.tex\fP +.sp 0 +fac\*,onneur \fBlatex\fP +.sp 0 +visionneur \fBxdvi\fP +.sp 0 +pilote \fBdvips\fP +.sp 0 +dessin \fBxfig\fP +.sp 0 +impression \fBlpr\fP +.sp 0 +imprimante de\*'finie par la variable d'environnement \fBPRINTER\fP +.sp 0 +e\*'diteur de\*'finie par la variable d'environnement \fBEDITOR\fP +.DT + +.SH LA FENETRE XLATEX + +La fene\*^tre \fIXlatex\fP est divise\*'e en trois parties : +.RS 1c +- les boutons de commande +.sp 0 +- les champs de\*'finissant l'environnement de travail +.sp 0 +- une fene\*^tre d'interaction +.RE + +.sp 1 +.B Les boutons de commande +.sp 1 + +.TP 2.5c +\fBFACONNER\fP +soumet le document courant au processeur de fac\*,onnage\ ; +.TP 2.5c +\fBDESSINER\fP +active un outil de dessin\ ; +.TP 2.5c +\fBVISIONNER\fP +e\*'preuve le document sur e\*'cran avec le visionneur courant\ ; +.TP 2.5c +\fBDVIPS\fP +ge\*'ne\*'ration du document PostScript\ ; +.TP 2.5c +\fBIMPRIMER\fP +fait apparai\*^tre un formulaire permettant de se\*'lectionner les pages +a\*` imprimer, le nombre de copies, la commande d'impression et ses arguments +optionnels ainsi que l'imprimante. +L'impression doit e\*^tre confirme\*'e en cliquant dans le +bouton de commande \fIOk\fP ou abandonne\*'e en cliquant dans +\fIAnnuler\fP\ ; +.TP 2.5c +\fBSTATUT IMPR\fP +e\*'tat de la file d'attente de l'imprimante se\*'lectionne\*'e\ ; +.TP 2.5c +\fBE\*'DITEUR\fP +session \fIxterm\fP exe\*'cutant un e\*'diteur de texte sur le document +courant\ ; +.TP 2.5c +\fBQUITTER\fP +sortie de l'application \fIxlatex\fP. +.PP + +.sp 2 +.B +Les champs de de\*'finition de l'environnement de travail +.sp 0 + +Les champs pouvant e\*^tre interactivement modifie\*'s sont : +.RS 1c +.TP 2.5c +\fBre\*'pertoire\fP +re\*'pertoire courant ou\*` se trouvent le ou les documents \fI.tex\fP +.TP 2.5c +\fBdocument\fP +nom du fichier TeX ou LaTeX de re\*'fe\*'rence (sans le suffixe \fI.tex\fP) +.TP 2.5c +\fBdessin\fP +outil de dessin +.TP 2.5c +\fBvisionneur\fP +commande d'e\*'preuvage sur e\*'cran du document. En cliquant dedans on fait +apparai\*^tre une double liste de visionneurs, la premie\*`re liste e\*'tant +relative aux visionneurs \fIDVI\fP a\*` partir du document \fB.dvi\fP +(ressource \fBvisionneurs\fP), la seconde +aux visionneurs \fIPostScript\fP a\*` partir du document \fB.ps\fP +(ressource \fBvisionneursPS\fP). +.TP 2.5c +\fBfac\*,onneur\fP +commande de fac\*,onnage du document \fI.tex\fP +.TP 2.5c +\fBe\*'diteur\fP +e\*'diteur de texte +.TP 2.5c +\fBpilote\fP +commande d'appel du pilote PostScript (boutons \fBDVIPS\fP et \fBIMPRIMER\fP) +.RE + +Le passage d'un champ a\*` l'autre est aussi possible par tabulation +ou par la touche retour a\*` la ligne. + +.PP + +.sp 2 +.B +La fene\*^tre d'interaction +.sp 0 + +La fene\*^tre d'interaction rec\*,oit tous les messages produits par +l'exe\*'cution des commandes telles ques \fIlatex, dvips, xdvi\fP et \fIlpq\fP. +Au besoin, l'utilisateur peut introduire du texte dans cette fene\*^tre pour +s'acquitter de certaines interventions. + +Les se\*'quences \fB^C\fP et \fP^D\fP ge\*'ne\*`rent le signal +\fPSIGINT\fP et \fPSIGTERM\fP au processus de \fIfac\*,onnage\fP. + + +.SH NOTES +.PP +Les commandes associe\*'es aux boutons sont directement exe\*'cute\*'es par +\fIexecv\fP (3) ou \fIexecl\fP (3). En conse\*'quence, ces commandes ne +peuvent e\*^tre des shell-scripts. + + +.SH ACCELERATEURS +.PP +Utilisables n'importe ou\*` dans la fene\*^tre \fIxlatex\fP, les +acce\*'le\*'rateurs re\*'alisent les me\*^mes actions que les boutons de +commande\ : +.sp 1 +.RS 1c +Meta-f fac\*,onner +.sp 0 +Meta-d dessiner +.sp 0 +Meta-i imprimer +.sp 0 +Meta-v visionner +.sp 0 +Meta-p postscript +.sp 0 +Meta-s statut d'impression +.sp 0 +Meta-e session d'e\*'dition de texte +.sp 0 +Meta-q quitter l'application +.RE + +.SH RESSOURCES +.PP +Les ressources peuvent figurer dans le fichier \fB~/.Xdefaults\fP sous la +forme\ : +.sp 1 + \fBXlatex.<ressource>: valeur\fP +.sp 1 +Les diffe\*'rentes \fB<ressources>\fP sont\ : +.TP 2.5c +\fBrepertoireInitial\fP +re\*'pertoire de travail +.TP 2.5c +\fBfaconneur\fP +commande de fac\*,onnage des documents (\fBlatex\fP par de\*'faut) +.TP 2.5c +\fBvisionneurs\fP +liste des visionneurs (se\*'pare\*'s par un espace ou une virgule) +travaillant a\*` partir du fichier \fB.dvi\fP. Un aste\*'risque pre\*'ce\*'dant +une entre\*'e de\*'signe le visionneur par de\*'faut. +.TP 2.5c +\fBediteur\fP +e\*'diteur de texte (celui de\*'fini dans la variable d'environnement +\fBEDITOR\fP par de\*'faut). Voir la ressource associe\*'e +\fBediteurAvecXterm\fP +.TP 2.5c +\fBpilote\fP +commande d'appel du pilote PostScript (\fBdvips\fP) par de\*'faut) +.TP 2.5c +\fBimpression\fP +commande d'impression du document PostScript (\fBlpr\fP par de\*'faut) +.TP 2.5c +\fBdessin\fP +commande de dessin (\fBxfig\fP par de\*'faut) +.TP 2.5c +\fBediteurAvecXterm\fP +indique s'il faut appeler l'e\*'diteur de texte sous le contro\*^le d'une +session \fBxterm\fP ou pas (\fBtrue\fP par de\*'faut, il en est ainsi pour tous +les e\*'diteurs qui ne sont pas une application X) + +.PP +.SH EXEMPLES DE RESSOURCES +.sp 1 +Xlatex.visionneurs: xdvi, texx +.sp 1 +Xlatex.visionneurPS: ghostview, *gs +.sp 1 +.DT + +Les ressources standard \fBbitmap\fP des boutons de commande peuvent e\*^tre +positionne\*'es\ : +.sp 1 +Xlatex*faconner.bitmap: xlatex.faconner +.sp 0 +Xlatex*visionner.bitmap: xlatex.visionner +.sp 0 +Xlatex*imprimer.bitmap: xlatex.imprimer +.sp 0 +Xlatex*dessiner.bitmap: xlatex.dessiner +.sp 0 +Xlatex*editer.bitmap: xlatex.editer +.sp 0 +Xlatex*statut.bitmap: xlatex.statut +.sp 0 +Xlatex*quitter.bitmap: xlatex.quitter +.sp 1 + +.PP +.SH HIERARCHIE DES WIDGETS +.sp 1 +.ta 2c 3c 4c 5c 6c 7c 8c 9c +.sp 0 +Xlatex xlatex +.sp 0 + Form form +.sp 0 + Command editer +.sp 0 + Command dessiner +.sp 0 + Command faconner +.sp 0 + Command visionner +.sp 0 + Command postscript +.sp 0 + Command imprimer +.sp 0 + Command statut +.sp 0 + Command quitter +.sp 0 + Label repertoireLab +.sp 0 + Text repertoire +.sp 0 + Label dessinLab +.sp 0 + Text dessin +.sp 0 + Label documentLab +.sp 0 + Text document +.sp 0 + Label visionneursLab +.sp 0 + MenuButton visionneurs +.sp 0 + SimpleMenu menuVisionneurs +.sp 0 + SmeBSB xdvi +.sp 0 + SmeBSB texx +.sp 0 + SmeLine separateur +.sp 0 + SmeBSB ghostview +.sp 0 + SmeBSB gs +.sp 0 + Label faconneurLab +.sp 0 + Text faconneur +.sp 0 + Label editeurLab +.sp 0 + Text editeur +.sp 0 + Label piloteLab +.sp 0 + Text pilote +.sp 0 + Text interaction +.sp 0 + TransientShell popup +.sp 0 + Form form +.sp 0 + Label impressionLab +.sp 0 + Text impression +.sp 0 + Label imprimanteLab +.sp 0 + Text imprimante +.sp 0 + Toggle toutesTog +.sp 0 + Label toutesLab +.sp 0 + Toggle deTog +.sp 0 + Label deLab +.sp 0 + Text de +.sp 0 + Label aLab +.sp 0 + Text a +.sp 0 + Command ok +.sp 0 + Command annuler +.sp 0 + Label copiesLab +.sp 0 + Text copies +.sp 0 +.PP +.SH FICHIERS +.sp 0 +/usr/lib/X11/app-defaults/Xlatex +.sp 0 +~/.Xdefaults + + +.SH PROBLEMES RECENCES +.sp 1 +Lorsque \fBXlatex\fP se termine, il envoie le signal de terminaison \fBSIGTERM\fP +au groupe de processus qu'il domine. Cependant si certains d'entre eux ont cre\*'e +un nouveau groupe ou une session, ce signal ne sera pas effectif. + +.SH AUTEUR +.PP +Mario Dragone +.br +IUP Vannes (France) +.br + +Envoyer commentaires et rapports d'anomalies a\*`\ : +.sp 1 + dragone@iu-vannes.fr diff --git a/support/xlatex/xlatex.man.english b/support/xlatex/xlatex.man.english new file mode 100644 index 0000000000..4ebd5066b1 --- /dev/null +++ b/support/xlatex/xlatex.man.english @@ -0,0 +1,364 @@ +.TH XLATEX 1 "august 24, 1994" "Xlatex Version 3.3c" + + +.SH SYNTAX +.B xlatex +[\fIToolkit args\fP] [\fIcontrol args\fP] [\fBdocument\fP] + +.SH DESCRIPTION +.PP +\fIXlatex\fP has been designed to simplify the use of text processing tools +relatives to \fITeX\fP or \fILaTeX\fP. It's a main board with \fBcommand +buttons\fP to initiate the work, \fPchangeable fields\fP representing the +working environment and a \fBscrollable input/output window\fP receiving +diagnostic messages. Xlatex is \fBNOT\fP a new previewer nor a \fIwysiwyg\fP +package: it's just a fast and practice commands sequencer. + +.SH ARGUMENTS +.sp 1 +.TP 1c +\fBdocument\fP +absolute or relative path to the \fILaTeX\fP document. The \fI.tex\fP suffix +may or may not be specified. By default \fBdocument.tex\fP is assumed. + +.PP + +.SH CONTROL ARGUMENT +.sp 1 +.TP 1c +\fB-gfont\fP \fIfont\fP +Generic font for the various fonts used in the design of \fIxlatex\fP. See \fB +font resources\fP below. + +.PP + +.SH DEFAULT XLATEX WORKING ENVIRONMENT + +Most of these defaults may be overriden by resources specification. +.ta 4c +.sp 1 +directory current working directory +.sp 0 +document \fBdocument.tex\fP +.sp 0 +text processor \fBlatex\fP +.sp 0 +previewer \fBxdvi\fP +.sp 0 +driver \fBdvips\fP +.sp 0 +drawing tool \fBxfig\fP +.sp 0 +printer command \fBlpr\fP +.sp 0 +printer station defined in the \fBPRINTER\fP environment variable +.sp 0 +text editor defined in the \fBEDITOR\fP environment variable +.DT + +.PP + +.SH THE XLATEX WINDOW + +The xlatex window is divided in three parts: +.RS 1c +- command buttons +.sp 0 +- fields defining the working environment +.sp 0 +- scrollable input/output window +.RE + +.sp 1 +.B command buttons +.sp 1 +.TP 2.5c +\fBPROCESS\fP +submit the document to the text processor +.TP 2.5c +\fBDRAW\fP +call a drawing tool +.TP 2.5c +\fBVIEW\fP +call the previewer +.TP 2.5c +\fBPOSTSCRIPT\fP +generate a PostScript document +.TP 2.5c +\fBPRINT\fP +popup a form which allow you to specify the printing command and its optional +arguments, the printer, the pages range and the number of copies. By clicking +in the \fBOK\fP button, the \fBdvips\fP command is executed in pipe with the +\fIprinter\fP command. +.TP 2.5c +\fBSTATUS\fP +show the printer queue. +.TP 2.5c +\fBEDIT\fP +invoke the text editor with the current document. If the \fBediteurAvecXterm\fP +resource has a \fBtrue\fP value, the editor is invoked inside an \fBxterm\fP +session. +.TP 2.5c +\fBQUIT\fP +quit the application. + +.PP + +.sp 1 +.B fields defining the working environment +.sp 1 +These fields can be modified at any time. +.RS 1c +.TP 2.5c +\fBdirectory\fP +current working directory +.TP 2.5c +\fBdocument\fP +current document (the \fI.tex\fP doesn't appear) +.TP 2.5c +\fBpreviewer\fP +current previewer. Cliking inside popups a menu showing a list of \fIdvi\fP +previewers (see \fBvisionneurs\fP resource) and next a list of \fIPostScript\fP +previewers (see \fBvisionneursPS\fP resource). +.TP 2.5c +\fBtext processor\fP +current text processor +.TP 2.5c +\fBdrawing tool\fP +current drawing tool. +.TP 2.5c +\fBeditor\fP +current text editor. +.RE +.PP +.sp 1 +.B scrolled input/output window +.sp 1 + +This window receives all the messages produced by the execution of +commands submited like \fIlatex\fP and so on. You can type +messages which are send to the current executing command. + +Note that the \fB^C\fP and \fP^D\fP sequences send the \fPSIGINT\fP and +\fPSIGTERM\fP respectively to the last submited text processor. + +.SH +NOTES +.PP +Commands linked with buttons are executed by \fIexecv\fP (3) or +\fIexecl\fP (3). Therefore, these commands can't be shell scripts. + + +.SH ACCELERATORS +.PP +Available everywhere in the xlatex window, accelerators have the same +effect as command buttons. Here are the relationships between +accelerators and the command buttons: +.sp 1 +.RS 1c +Meta-t PROCESS (\fBT\fPeX) +.sp 0 +Meta-f FIG +.sp 0 +Meta-p PRINT +.sp 0 +Meta-d DVIPS +.sp 0 +Meta-v VIEW +.sp 0 +Meta-s STATUS +.sp 0 +Meta-e EDIT +.sp 0 +Meta-q QUIT +.RE + +.SH RESSOURCES +.PP +Resources may figure in your X-defaults resources file, \fBXlatex\fP is +the application name. +.TP 2.5c +\fBrepertoireInitial\fP +initial directory. If not specified, it's the current working directory. +It may be usefull to specify this resource if you always invoke xlatex +from a menu. +.TP 2.5c +\fBfaconneur\fP +text processor (\fBlatex\fP by default) +.TP 2.5c +\fBvisionneurs\fP +list of device-independent previewers (separated by a space or comma). A default +previewer can be set by preceding its name by a wildcard character (*). +.TP 2.5c +\fBvisionneursPS\fP +list of PostScript previewers (separated by a space or comma). A default +previewer can be set by preceding its name by a wildcard character (*). +.TP 2.5c +\fBediteur\fP +text editor (issued by default from the \fBEDITOR\fP environment +variable) +.TP 2.5c +\fBpilote\fP +PostScript driver command (\fBdvips\fP) by default) +.TP 2.5c +\fBimpression\fP +Postscript printer command piped with dvips (\fBlpr\fP by default) +.TP 2.5c +\fBdessin\fP +drawing command (default \fBxfig\fP) +.TP 2.5c +\fBediteurAvecXterm\fP +If \fBTrue\fP (the default), the text editor session will be invoked +under an xterm session (\fIgnu-emacs\fP doesn't require this). + +.PP +.SH RESSOURCES EXAMPLES +.sp 1 +.ta +Xlatex.visionneurs: *xdvi, texx +.sp 0 +Xlatex.visionneursPS: ghostview, gs +.sp 1 +.DT + +\fBbitmap\fP standard resources can be applied to command buttons : +.sp 1 +Xlatex*faconner.bitmap: xlatex.faconner +.sp 0 +Xlatex*visionner.bitmap: xlatex.visionner +.sp 0 +Xlatex*dessiner.bitmap: xlatex.dessiner +.sp 0 +Xlatex*imprimer.bitmap: xlatex.imprimer +.sp 0 +Xlatex*editer.bitmap: xlatex.editer +.sp 0 +Xlatex*statut.bitmap: xlatex.statut +.sp 0 +Xlatex*quitter.bitmap: xlatex.quitter +.sp 1 + +.PP +.SH WIDGETS TREE +.sp 1 +.ta 2c 3c 4c 5c 6c 7c 8c 9c +p.sp 0 +Xlatex xlatex +.sp 0 + Form form +.sp 0 + Command editer +.sp 0 + Command dessiner +.sp 0 + Command faconner +.sp 0 + Command visionner +.sp 0 + Command postscript +.sp 0 + Command imprimer +.sp 0 + Command statut +.sp 0 + Command quitter +.sp 0 + Label repertoireLab +.sp 0 + Text repertoire +.sp 0 + Label dessinLab +.sp 0 + Text dessin +.sp 0 + Label documentLab +.sp 0 + Text document +.sp 0 + Label visionneursLab +.sp 0 + MenuButton visionneurs +.sp 0 + SimpleMenu menuVisionneurs +.sp 0 + SmeBSB xdvi +.sp 0 + SmeBSB texx +.sp 0 + SmeLine separateur +.sp 0 + SmeBSB ghostview +.sp 0 + SmeBSB gs +.sp 0 + Label faconneurLab +.sp 0 + Text faconneur +.sp 0 + Label editeurLab +.sp 0 + Text editeur +.sp 0 + Label piloteLab +.sp 0 + Text pilote +.sp 0 + Text interaction +.sp 0 + TransientShell popup +.sp 0 + Form form +.sp 0 + Label impressionLab +.sp 0 + Text impression +.sp 0 + Label imprimanteLab +.sp 0 + Text imprimante +.sp 0 + Toggle toutesTog +.sp 0 + Label toutesLab +.sp 0 + Toggle deTog +.sp 0 + Label deLab +.sp 0 + Text de +.sp 0 + Label aLab +.sp 0 + Text a +.sp 0 + Command ok +.sp 0 + Command annuler +.sp 0 + Label copiesLab +.sp 0 + Text copies +.sp 0 +.PP +.SH FILES +.sp 0 +/usr/lib/X11/app-defaults/Xlatex +.sp 0 +~/.Xdefaults + + +.SH BUGS +.sp 1 +When \fBXlatex\fP exits, it sends \fBSIGTERM\fP signal to the process group of +which it's the leader. However if some of these process create a new process group +or session, this signal will be ineffective. + +.SH AUTHOR +.PP +Mario Dragone +.br +IUP Vannes (France) + +Send bugs and comments to: +.sp 1 + dragone@iu-vannes.fr diff --git a/support/xlatex/xlatex.man.french b/support/xlatex/xlatex.man.french new file mode 100644 index 0000000000..50122d5ab4 --- /dev/null +++ b/support/xlatex/xlatex.man.french @@ -0,0 +1,480 @@ +.TH XLATEX 1 "24 aout 1994" "Xlatex Version 3.3c" +.\" so /usr/lib/ms/s.acc + +.\" @(#)ms.acc 1.1 86/07/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.\" modif accent aigu troff CICB, E. Picheral +.\" modif cedille et trema CICB, E. Picheral +.\" modif ^ et .. , accents majuscules, distinction italique CICB, E. Picheral +.bd S B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H (-(1u-(\\\\n(.fu%2u))*.13m) +. ds #J 0 +. ds #K (-(1u-(\\\\n(.fu%2u))*.08m) +. ds #L (-(1u-(\\\\n(.fu%2u))*.04m) +. ds #V .6m +. ds #W (-(1u-(\\\\n(.fu%2u))*.05m) +. ds #X (-(1u-(\\\\n(.fu%2u))*.03m) +. ds #Y -.25m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' " +. ds ` " +. ds ^ " +. ds , " +. ds ~ " +. ds ? ? +. ds ! ! +. ds / " +. ds : " +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*9/10-\*(#J)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#K)'\v'\*(#W'\`\v'-\*(#W'\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#L)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)'\(cd\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'\v'-.03m'~\v'.03m'\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +. ds : \\k:\h'-(\\n(.wu*9/10-\*(#K)'\(..\h'|\\n:u' +. ds G' \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'\'\v'-\*(#Y'\h'|\\n:u' +. ds G` \\k:\h'-(\\n(.wu*7/10-\*(#K)'\v'\*(#Y'\`\v'-\*(#Y'\h'|\\n:u' +. ds G^ \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'^\v'-\*(#Y'\h'|\\n:u' +. ds G: \\k:\h'-(\\n(.wu*8/10-\*(#J)'\v'\*(#Y'\(..\v'-\*(#Y'\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +. \" .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : " +. ds 8 B +. ds v " +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C + +.SH SYNTAXE D'APPEL +.B xlatex +[\fIarguments\ \ Toolkit\fP]\ \ [\fIarguments\ de\ contro\*^le\fP]\ \ [\fBdocument\fP] + +.SH DESCRIPTION +.PP + +\fIXlatex\fP est une application X destine\*'e a\*` simplifier le fac\*,onnage +de documents TeX ou LaTeX, a\*` savoir l'exe\*'cution d'une session +d'e\*'dition de texte, la soumission d'un document \fI.tex\fP a\*` un +processeur de \fIfac\*,onnage\fP, l'e\*'preuvage sur e\*'cran par un +\fIvisionneur\fP, l'impression du \fI.dvi\fP par le pilote d'impression +Postscript \fBdvips\fP. La constitution du document \fI.tex\fP est de +l'entie\*`re responsabilite\*' de l'utilisateur. + +.SH ARGUMENT +.sp 1 +.TP 1c +\fBdocument\fP +chemin d'acce\*`s absolu ou relatif du document LaTeX. Si le suffixe \fI.tex\fP +est spe\*'cifie\*', il est automatiquement enleve\*'. Par de\*'faut, le +fichier \fBdocument.tex\fP est pris dans le re\*'pertoire courant. +.PP + +.SH ARGUMENTS DE CONTROLE +.sp 1 +.TP 1c +\fB-gfont\fP\ \ \fIfont\fP +police ge\*'ne\*'rique utilise\*'e dans la pre\*'sentation de l'application +\fIxlatex\fP. Se reporter a\*` la description de la ressource +\fBgenericFont\fP. +.PP + + +.SH ENVIRONNEMENT DE TRAVAIL PAR DEFAUT +.sp 1 +La plupart de ces valeurs peuvent e\*^tre change\*'es par les \fBressources\fP. + +.ta 3c +.sp 1 +re\*'pertoire re\*'pertoire de travail +.sp 0 +document \fBdocument.tex\fP +.sp 0 +fac\*,onneur \fBlatex\fP +.sp 0 +visionneur \fBxdvi\fP +.sp 0 +pilote \fBdvips\fP +.sp 0 +dessin \fBxfig\fP +.sp 0 +impression \fBlpr\fP +.sp 0 +imprimante de\*'finie par la variable d'environnement \fBPRINTER\fP +.sp 0 +e\*'diteur de\*'finie par la variable d'environnement \fBEDITOR\fP +.DT + +.SH LA FENETRE XLATEX + +La fene\*^tre \fIXlatex\fP est divise\*'e en trois parties : +.RS 1c +- les boutons de commande +.sp 0 +- les champs de\*'finissant l'environnement de travail +.sp 0 +- une fene\*^tre d'interaction +.RE + +.sp 1 +.B Les boutons de commande +.sp 1 + +.TP 2.5c +\fBFACONNER\fP +soumet le document courant au processeur de fac\*,onnage\ ; +.TP 2.5c +\fBDESSINER\fP +active un outil de dessin\ ; +.TP 2.5c +\fBVISIONNER\fP +e\*'preuve le document sur e\*'cran avec le visionneur courant\ ; +.TP 2.5c +\fBDVIPS\fP +ge\*'ne\*'ration du document PostScript\ ; +.TP 2.5c +\fBIMPRIMER\fP +fait apparai\*^tre un formulaire permettant de se\*'lectionner les pages +a\*` imprimer, le nombre de copies, la commande d'impression et ses arguments +optionnels ainsi que l'imprimante. +L'impression doit e\*^tre confirme\*'e en cliquant dans le +bouton de commande \fIOk\fP ou abandonne\*'e en cliquant dans +\fIAnnuler\fP\ ; +.TP 2.5c +\fBSTATUT IMPR\fP +e\*'tat de la file d'attente de l'imprimante se\*'lectionne\*'e\ ; +.TP 2.5c +\fBE\*'DITEUR\fP +session \fIxterm\fP exe\*'cutant un e\*'diteur de texte sur le document +courant\ ; +.TP 2.5c +\fBQUITTER\fP +sortie de l'application \fIxlatex\fP. +.PP + +.sp 2 +.B +Les champs de de\*'finition de l'environnement de travail +.sp 0 + +Les champs pouvant e\*^tre interactivement modifie\*'s sont : +.RS 1c +.TP 2.5c +\fBre\*'pertoire\fP +re\*'pertoire courant ou\*` se trouvent le ou les documents \fI.tex\fP +.TP 2.5c +\fBdocument\fP +nom du fichier TeX ou LaTeX de re\*'fe\*'rence (sans le suffixe \fI.tex\fP) +.TP 2.5c +\fBdessin\fP +outil de dessin +.TP 2.5c +\fBvisionneur\fP +commande d'e\*'preuvage sur e\*'cran du document. En cliquant dedans on fait +apparai\*^tre une double liste de visionneurs, la premie\*`re liste e\*'tant +relative aux visionneurs \fIDVI\fP a\*` partir du document \fB.dvi\fP +(ressource \fBvisionneurs\fP), la seconde +aux visionneurs \fIPostScript\fP a\*` partir du document \fB.ps\fP +(ressource \fBvisionneursPS\fP). +.TP 2.5c +\fBfac\*,onneur\fP +commande de fac\*,onnage du document \fI.tex\fP +.TP 2.5c +\fBe\*'diteur\fP +e\*'diteur de texte +.TP 2.5c +\fBpilote\fP +commande d'appel du pilote PostScript (boutons \fBDVIPS\fP et \fBIMPRIMER\fP) +.RE + +Le passage d'un champ a\*` l'autre est aussi possible par tabulation +ou par la touche retour a\*` la ligne. + +.PP + +.sp 2 +.B +La fene\*^tre d'interaction +.sp 0 + +La fene\*^tre d'interaction rec\*,oit tous les messages produits par +l'exe\*'cution des commandes telles ques \fIlatex, dvips, xdvi\fP et \fIlpq\fP. +Au besoin, l'utilisateur peut introduire du texte dans cette fene\*^tre pour +s'acquitter de certaines interventions. + +Les se\*'quences \fB^C\fP et \fP^D\fP ge\*'ne\*`rent le signal +\fPSIGINT\fP et \fPSIGTERM\fP au processus de \fIfac\*,onnage\fP. + + +.SH NOTES +.PP +Les commandes associe\*'es aux boutons sont directement exe\*'cute\*'es par +\fIexecv\fP (3) ou \fIexecl\fP (3). En conse\*'quence, ces commandes ne +peuvent e\*^tre des shell-scripts. + + +.SH ACCELERATEURS +.PP +Utilisables n'importe ou\*` dans la fene\*^tre \fIxlatex\fP, les +acce\*'le\*'rateurs re\*'alisent les me\*^mes actions que les boutons de +commande\ : +.sp 1 +.RS 1c +Meta-f fac\*,onner +.sp 0 +Meta-d dessiner +.sp 0 +Meta-i imprimer +.sp 0 +Meta-v visionner +.sp 0 +Meta-p postscript +.sp 0 +Meta-s statut d'impression +.sp 0 +Meta-e session d'e\*'dition de texte +.sp 0 +Meta-q quitter l'application +.RE + +.SH RESSOURCES +.PP +Les ressources peuvent figurer dans le fichier \fB~/.Xdefaults\fP sous la +forme\ : +.sp 1 + \fBXlatex.<ressource>: valeur\fP +.sp 1 +Les diffe\*'rentes \fB<ressources>\fP sont\ : +.TP 2.5c +\fBrepertoireInitial\fP +re\*'pertoire de travail +.TP 2.5c +\fBfaconneur\fP +commande de fac\*,onnage des documents (\fBlatex\fP par de\*'faut) +.TP 2.5c +\fBvisionneurs\fP +liste des visionneurs (se\*'pare\*'s par un espace ou une virgule) +travaillant a\*` partir du fichier \fB.dvi\fP. Un aste\*'risque pre\*'ce\*'dant +une entre\*'e de\*'signe le visionneur par de\*'faut. +.TP 2.5c +\fBediteur\fP +e\*'diteur de texte (celui de\*'fini dans la variable d'environnement +\fBEDITOR\fP par de\*'faut). Voir la ressource associe\*'e +\fBediteurAvecXterm\fP +.TP 2.5c +\fBpilote\fP +commande d'appel du pilote PostScript (\fBdvips\fP) par de\*'faut) +.TP 2.5c +\fBimpression\fP +commande d'impression du document PostScript (\fBlpr\fP par de\*'faut) +.TP 2.5c +\fBdessin\fP +commande de dessin (\fBxfig\fP par de\*'faut) +.TP 2.5c +\fBediteurAvecXterm\fP +indique s'il faut appeler l'e\*'diteur de texte sous le contro\*^le d'une +session \fBxterm\fP ou pas (\fBtrue\fP par de\*'faut, il en est ainsi pour tous +les e\*'diteurs qui ne sont pas une application X) + +.PP +.SH EXEMPLES DE RESSOURCES +.sp 1 +Xlatex.visionneurs: xdvi, texx +.sp 1 +Xlatex.visionneurPS: ghostview, *gs +.sp 1 +.DT + +Les ressources standard \fBbitmap\fP des boutons de commande peuvent e\*^tre +positionne\*'es\ : +.sp 1 +Xlatex*faconner.bitmap: xlatex.faconner +.sp 0 +Xlatex*visionner.bitmap: xlatex.visionner +.sp 0 +Xlatex*imprimer.bitmap: xlatex.imprimer +.sp 0 +Xlatex*dessiner.bitmap: xlatex.dessiner +.sp 0 +Xlatex*editer.bitmap: xlatex.editer +.sp 0 +Xlatex*statut.bitmap: xlatex.statut +.sp 0 +Xlatex*quitter.bitmap: xlatex.quitter +.sp 1 + +.PP +.SH HIERARCHIE DES WIDGETS +.sp 1 +.ta 2c 3c 4c 5c 6c 7c 8c 9c +.sp 0 +Xlatex xlatex +.sp 0 + Form form +.sp 0 + Command editer +.sp 0 + Command dessiner +.sp 0 + Command faconner +.sp 0 + Command visionner +.sp 0 + Command postscript +.sp 0 + Command imprimer +.sp 0 + Command statut +.sp 0 + Command quitter +.sp 0 + Label repertoireLab +.sp 0 + Text repertoire +.sp 0 + Label dessinLab +.sp 0 + Text dessin +.sp 0 + Label documentLab +.sp 0 + Text document +.sp 0 + Label visionneursLab +.sp 0 + MenuButton visionneurs +.sp 0 + SimpleMenu menuVisionneurs +.sp 0 + SmeBSB xdvi +.sp 0 + SmeBSB texx +.sp 0 + SmeLine separateur +.sp 0 + SmeBSB ghostview +.sp 0 + SmeBSB gs +.sp 0 + Label faconneurLab +.sp 0 + Text faconneur +.sp 0 + Label editeurLab +.sp 0 + Text editeur +.sp 0 + Label piloteLab +.sp 0 + Text pilote +.sp 0 + Text interaction +.sp 0 + TransientShell popup +.sp 0 + Form form +.sp 0 + Label impressionLab +.sp 0 + Text impression +.sp 0 + Label imprimanteLab +.sp 0 + Text imprimante +.sp 0 + Toggle toutesTog +.sp 0 + Label toutesLab +.sp 0 + Toggle deTog +.sp 0 + Label deLab +.sp 0 + Text de +.sp 0 + Label aLab +.sp 0 + Text a +.sp 0 + Command ok +.sp 0 + Command annuler +.sp 0 + Label copiesLab +.sp 0 + Text copies +.sp 0 +.PP +.SH FICHIERS +.sp 0 +/usr/lib/X11/app-defaults/Xlatex +.sp 0 +~/.Xdefaults + + +.SH PROBLEMES RECENCES +.sp 1 +Lorsque \fBXlatex\fP se termine, il envoie le signal de terminaison \fBSIGTERM\fP +au groupe de processus qu'il domine. Cependant si certains d'entre eux ont cre\*'e +un nouveau groupe ou une session, ce signal ne sera pas effectif. + +.SH AUTEUR +.PP +Mario Dragone +.br +IUP Vannes (France) +.br + +Envoyer commentaires et rapports d'anomalies a\*`\ : +.sp 1 + dragone@iu-vannes.fr diff --git a/support/xlatex/xlatex.quitter b/support/xlatex/xlatex.quitter new file mode 100644 index 0000000000..d6794cbf79 --- /dev/null +++ b/support/xlatex/xlatex.quitter @@ -0,0 +1,19 @@ +#define quit_width 48 +#define quit_height 28 +static char quit_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xc3, 0x30, 0x3f, 0xff, 0x00, 0x60, 0xc6, 0x30, 0x0c, 0x99, 0x00, + 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, + 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, + 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, + 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, 0x30, 0xcc, 0x30, 0x0c, 0x18, 0x00, + 0x60, 0x86, 0x19, 0x0c, 0x18, 0x00, 0xc0, 0x03, 0x0f, 0x3f, 0x18, 0x01, + 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + diff --git a/support/xlatex/xlatex.statut b/support/xlatex/xlatex.statut new file mode 100644 index 0000000000..9354213dff --- /dev/null +++ b/support/xlatex/xlatex.statut @@ -0,0 +1,20 @@ +#define statut_width 54 +#define statut_height 28 +static char statut_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0xf8, 0x03, 0x20, 0x00, 0xf0, 0x01, + 0x40, 0x04, 0x04, 0x20, 0x00, 0x10, 0x01, 0x40, 0x04, 0x04, 0x20, 0x00, + 0xb0, 0x01, 0x20, 0x04, 0x04, 0x20, 0x00, 0xf0, 0x01, 0x10, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0xf0, 0xff, 0xff, 0xff, 0x0f, + 0x80, 0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0x3e, 0xff, 0xff, + 0xff, 0x09, 0x40, 0x00, 0x22, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0x22, + 0xff, 0xff, 0xff, 0x09, 0x40, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x08, 0x40, + 0x00, 0x30, 0xff, 0xff, 0xff, 0x09, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0x09, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x08, 0x40, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, + 0x80, 0x07, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/support/xlatex/xlatex.visionner b/support/xlatex/xlatex.visionner new file mode 100644 index 0000000000..06df9b968c --- /dev/null +++ b/support/xlatex/xlatex.visionner @@ -0,0 +1,20 @@ +#define visionner_width 54 +#define visionner_height 28 +static char visionner_bits[] = { + 0x00, 0x00, 0x58, 0x9a, 0x04, 0x00, 0xc0, 0x00, 0x00, 0x50, 0x8c, 0x04, + 0x00, 0xc0, 0x00, 0x44, 0x53, 0xcc, 0x24, 0x00, 0xc0, 0x00, 0x6c, 0x92, + 0x4c, 0x14, 0x09, 0xc0, 0x80, 0x48, 0xb2, 0x4e, 0x99, 0x0a, 0xc0, 0x28, + 0xb3, 0xb6, 0x7f, 0x99, 0x5a, 0xc0, 0x48, 0xfc, 0xff, 0xff, 0xbd, 0x2e, + 0xc0, 0x91, 0xfb, 0xff, 0xff, 0x7f, 0xc7, 0xc0, 0xfd, 0x0f, 0xf0, 0x73, + 0x08, 0x9e, 0xc2, 0xf9, 0x01, 0x58, 0x2d, 0x08, 0xf8, 0xd5, 0x3e, 0x00, + 0xf8, 0x1e, 0x0c, 0xe4, 0xca, 0x1a, 0x00, 0x5c, 0x0f, 0x1a, 0xc0, 0xd7, + 0x0c, 0x00, 0xdc, 0xff, 0x1e, 0x20, 0xc5, 0x14, 0x00, 0xac, 0xff, 0x1d, + 0x40, 0xcf, 0x08, 0x00, 0xdc, 0xff, 0x1a, 0x00, 0xcf, 0x38, 0x00, 0xac, + 0xff, 0x1d, 0xa0, 0xcf, 0x70, 0x00, 0xac, 0x7f, 0x1d, 0x80, 0xc7, 0xe0, + 0x01, 0x78, 0xbf, 0x0e, 0x20, 0xc7, 0x80, 0x0f, 0xb8, 0xd2, 0x0f, 0x80, + 0xc1, 0x00, 0x18, 0xf0, 0xaf, 0x06, 0xb8, 0xc0, 0x00, 0xf8, 0xc0, 0xff, + 0x01, 0x0a, 0xc0, 0x00, 0x80, 0x0f, 0x7f, 0xfc, 0x03, 0xc0, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0}; |