jpicedt v1.6-pre1, user...

62
jPicEdt v1.6-pre1, user manual jPicEdt, a vector drawing graphic editor for L A T E X Sylvain Reynal

Upload: others

Post on 09-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

jPicEdt v1.6-pre1, user manualjPicEdt, a vector drawing graphic editor for LATEX

Sylvain Reynal

Page 2: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

This manual is for jPicEdt 1.6-pre1, manual version is $Id: en.texi,v 1.19 2013/09/10 05:09:07vincentb1 Exp $.

Copyright c© 2006/2012 Sylvain Reynal, Vincent Belaıche.

Permission is granted to copy this manual et use this software jPicEdt underthe conditions defined by CeCiLL v2 license (see Chapter 11 [license], page 49).

Published by ...

Page 3: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

i

Table of Contents

1 Command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Importing, exporting and saving drawing files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 Parsing input files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 User preamble and postamble in the save format . . . . . . . . . . . . . . . . 3

3 Drawing objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1 Draw-tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Editing shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.1 Multiple selections and groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2 Editing arcs angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3 Context menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.4 Changing attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.5 Filling shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5 Extensible Bezier Curves . . . . . . . . . . . . . . . . . . . . . 215.1 Straight segments and how-to-unstraighten-them ? . . . . . . . . . . . . . 225.2 Smooth Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.3 Using the Edit Bezier Points tool to add, remove and edit points

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6 Convex zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256.1 Convex zone selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266.2 Editing Convex zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266.3 Negating a Convex zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.4 Convex zone Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.4.1 Convexe zone tool pannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

7 Grid-zoom toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347.1 Toolkit panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347.2 Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

8 Setting preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

8.1.1 LATEX, eepic and PSTricks tab panes . . . . . . . . . . . . . . . . . . . . . . 418.1.1.1 Picture scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418.1.1.2 Scale up/down a drawing by a given factor . . . . . . . . . . . 418.1.1.3 Change the drawing unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 4: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

ii

8.1.1.4 Scale a drawing upto/downto a given width . . . . . . . . . . 428.1.1.5 Bounding box related issues . . . . . . . . . . . . . . . . . . . . . . . . . 428.1.1.6 LATEX picture environment specific parameters . . . . . . . 438.1.1.7 eepic package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438.1.1.8 PSTricks package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

8.1.2 External commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.1.2.1 How does it work? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.1.2.2 Loading predefined configurations . . . . . . . . . . . . . . . . . . . . 45

8.1.3 Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.1.4 Page format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

9 Using and writing BeanShell scripts . . . . . . . . . 469.1 OK, where do I put my scripts ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

10 Useful links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

11 CeCILL free software license agreement . . . . 49Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Article 1 — Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Article 2 — Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Article 3 — Acceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Article 4 — Effective date and term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.1 Effective date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2 Term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Article 5 — Scope of rights granted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.1 Right of use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.2 Entitlement to make contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.3 Right of distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.3.1 Distribution of software without modification . . . . . . . . . . . 525.3.2 Distribution of modified software . . . . . . . . . . . . . . . . . . . . . . . . 535.3.3 Distribution of external modules . . . . . . . . . . . . . . . . . . . . . . . . 535.3.4 Compatibility with the GNU GPL . . . . . . . . . . . . . . . . . . . . . . . 53

Article 6 — Intellectual property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.1 Over the initial software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.2 Over the contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.3 Over the external modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.4 Joint provisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Article 7 — Related services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Article 8 — Liability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Article 9 — Warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Page 5: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

iii

9.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Article 10 — Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5610.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5610.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Article 11 — Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5611.1 Excusable events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5611.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5611.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5611.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5611.5 Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Article 12 — New versions of the agreement . . . . . . . . . . . . . . . . . . . . . . . . 5712.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5712.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5712.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Article 13 — Governing law and jurisdiction . . . . . . . . . . . . . . . . . . . . . . . . 5713.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5713.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Page 6: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 1: Command line 1

1 Command line

The command line accepts the following arguments:

• -h or --help: list options.

• -d or --debug: redirect standard error stream (System.err) to the console fordebugging purpose.

• By default, the standard error stream is redirected to a file callederror.log and located in jPicEdt’s user-settings directory, for instance/home/user/.jpicedt/error.log on Unix. You can view this file by clicking onView error log in the Help menu.

• A list of space-separated file names to be loaded on start-up. In the absence of such alist, a "No name" board is open.

Example of use:jpicedt -debug picture1.tex picture2.tex

(where jpicedt denotes the name of the start-up script).

Page 7: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 2: Importing, exporting and saving drawing files 2

2 Importing, exporting and saving drawing files

2.1 Parsing input files

When you save a drawing to disk, jPicEdt writes the drawing content twice,

• first in a special format called JPIC-XML (JPIC-XML is a an XML format speciallytailored for jPicEdt; it strongly mimicks the well-known SVG format, yet has extra tagsdedicated to jPicEdt’s own graphic primitives, which SVG obviously doesn’t know of),

• then again in the LATEX format of your choice (i.e. picture env, eepic or pstricks).

Since both the XML code and the LATEX code reside in the same file, the whole block ofXML code is commented out by a percent symbol so that the file can be properly compiledby LATEX. The XML code allows jPicEdt to reload the drawing without losing even thetiniest piece of information, a feature which the PSTricks format alone (not to speak aboutthe eepic format) would not guarantee.

Therefore, when parsing input files, jPicEdt first tries to look for a JPIC-XML preamble.If it’s there, then the drawing is rebuilt solely by parsing the XML code (this means that anychanges made to other parts of the file have no effect). Otherwise (which is the case if you’reloading a picture written by hand or by another LATEX-capable software like GnuPlot, or ifyou deleted the XML code), jPicEdt delegates to an embedded LATEX parser which currentlysupports three LATEX formats, namely the standard picture environment, the eepic package,and the PSTricks package (all three can be combined into a single file, for that matter,except that only the first begin{(ps)picture}. . .end{(ps)picture} declaration is considered).The LATEX parser can handle a variety of, say, syntax deviations, and you needn’t worry toomuch about whether your syntax is perfectly LATEX-, eepic- or PSTricks- compliant or not,since the parser will issue a pretty informative message as soon as it finds a syntax error, anincorrect format number, etc. . . However, we strongly encourage you to follow these rules:

• jPicEdt expects to find a \unitlength or a \psset{unit=xxx} (or xunit, yunit, runit)command at the very beginning of your file, or at least before the first command youwant to be processed ; it not, default unitlength will be assumed, e.g. 1cm for PSTricksuntil one of these commands are found.

• jPicEdt accepts almost every command of the LATEX picture environment, the epic/eepicpackages, and the PSTricks base-package, though for the later add-ons packages are notsupported yet, e.g. pst-nodes.sty or pst-coils.sty. \multiput (and its PSTricks

equivalent) are not handled yet. I know there’s been steady pressure toward supportingadd-ons, but it’s tricky, i tell you. . .

• It is perfectly possible to mix LATEX, eepic and Pstricks commands in the same file.PSTricks default parameters (those set by \psset commands) won’t interfere withLATEX or eepic ones (e.g. linethickness).

• As of LATEX boxes (e.g. framebox,. . . ), don’t expect true WYSIWYG behaviour! JPic-Edt doesn’t embed any TeX compiler, hence only a limited set of LR-commands ishandled (specifically: only those very commands related to the picture environment,see LATEX, a documentation preparation system, Leslie Lamport, p.97 and p.108 ).

• The parsing process ends if, either an End-of-file is encountered, or an \end{picture}

(or its equivalent for PSTricks) is found.

Page 8: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 2: Importing, exporting and saving drawing files 3

• Sure, the old-style format from jPicEdt 1.3.2 (that is, with tons of special comments)is still understood!

2.2 User preamble and postamble in the save format� �Using user preamble and postamble means that you will moidfy “manually” the content ofthe save file without damaging it. This is for users with enough expertize. Moreover, thismanipulation needs all the more care that the current version of jPicEdt does not detectfile modification outside of jPicEdt, and will not invite you to reload a file that is morerecent than your latest modification through jPicEdt, neither will it warn against overwritea drawing save file that you modified outside jPicEdt.

Although basically a drawing save file can be directly included into a LATEX file witha \input{nom_du_fichier_jpicedt} command, it is also possible to insert into it a userpreamble and postamble, so that to make a master LATEX file out of it.

The use preamble and postamble are not interpreted by jPicEdt, so they can be any text.In particular the user preamble can be a classical LATEX document preamble, that is to saythe code section that goes from \documentclass up-to \begin{document}, and a classicalLATEX postamble, that is to say the code section that comprises \end{document}. Thisway, the save file can be compiled directly with LATEX like any master file.

The figure below will be used to examplify what a jPicEdt save file consists in:

The content of the jPicEdt file corresponding to this figure can be downloaded from here :help.RedStar.jpe.pstricks.

It is depicted hereinafter:

Page 9: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 2: Importing, exporting and saving drawing files 4

This file comprises seven consecutive parts:

1. First of all a user preamble. This pramble is empty by default, and the only way to fillit is to edit the save file with a text editer software, like EMACS for instance. You canplace whatever valid LATEX code into this preamble, jPicEdt anyway does not interpreteit. However, the two typical usage are these ones hereinafter :

• Add a comment with a key that a file version control system can interprete andupdate to tag the file by its archive version. In the example this comment is asfollows:

% Version: $Id: help.RedStar.jpe.pstricks,v 1.1 2013/02/26 22:16:59 vincentb1 Exp $

• Add a classical LATEX preamble, so as to allow direct compilation of the file toproduce a picture this way:

latex -jobname=RedStar help.RedStar.jpe.pstricks

dvips -E RedStar.dvi -o RedStar.eps

Please note that:

• The -jobname=RedStar option passed to the latex command is necessaryonly for renaming the file basename, there would be no use for it if the filewas directly named RedStar.tex, which jPicEdt does not prevent.

• The LATEX preamble is encapsulated into:\ifx\JPicIsIncluded\undefined

... ... ... ... ...

\fi

so that the file can be not only directly compiled as a master file, but alsoincluded through a \input{...} command into another master file, providedthat its preamble contains this declaration:

\newcommand*\JPicIsIncluded{}

• The second part is a mark-up that allows jPicEdt to detect the file format and andthe beginning of the embedded JPIC-XML code this way:

Page 10: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 2: Importing, exporting and saving drawing files 5

%%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format

%%Mon Feb 25 21:15:38 CET 2013

%%Begin JPIC-XML

• The third part is the embedded JPIC-XML code itself.

• The fourth part is a mark-up that separate the embedded JPIC-XML from theexported LATEX code this way:

%%End JPIC-XML

• The fifth part is the exported LATEX code, this part is waht LATEX will compile toproduce the picture corresponding to your drawing.

• The sixth and seventh part are optional, the sixth part is a mark-up that separatesthe exported LATEX code from the user postamble like this:

%%User Data

• The seventh part is the use postamble, you need that the markup that is the sixthpart be present for jPicEdt to keep this postamble. The typical usage of the userpreabmle is for instance:

• A LATEX classical postamble that matches the LATEX preamble within the firstpart if any. In this example that is the following:

\ifx\JPicIsIncluded\undefined

\end{preview}

\end{document}

\fi

Please note that — for the sake of consistency — we used the same\ifx\JPicIsIncluded\undefined ... \fi encapsulation trick for thisLATEX postamble as in the LATEX preamble.

• Special comments that can be interpreted by your text editor software, in thisexample these are EMACS “File Varaibles”:

%%% Local Variables:

%%% mode: latex

%%% eval: (TeX-PDF-mode 0)

%%% End:

Page 11: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 6

3 Drawing objects

To draw a new object, first select a shape by clicking on one of the drawing-tools buttons

in the toolkit palette (if the palette is hidden, first make it visible by clicking on in themain toolbar). Alternatively, you may prefer to leave the palette hidden and rather select adrawing-tool from the Toolkit menu; associated keyboard shortcuts may be modified from

the Shortcuts subpane in the Preferences... tabpane (click in the main toolbar)

Each button can display a tooltip if the mouse hovers around it more than two seconds.Once a drawing-tool has been selected, click with the mouse’s left button anywhere on thecanvas to set the object’s first point, then move the mouse to choose the second point.When you are done, simply left-click again.

Objects defined by more than two control points, e.g. polygons, parallelograms, slantedellipses or splines, work the same way, except that you will have to "move’n click" as manytimes as there are control points, then RIGHT-CLICK to complete the drawing process.

Splines are somewhat special, in that:

• Tangents are set by DRAGGING the mouse, whereas MOVING the mouse allows youto set control points;

• a RIGHT-CLICK, instead of simply signaling the end of the drawing process, actuallylet you proceed through an additional step, namely setting the termination tangent.In this case, a further click in effect completes the drawing process.

Following is a list of all available drawing tools as well as their associated icon on thetoolbar. Some drawing tools support a set of alternate functions: these are triggered by

Page 12: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 7

a specific combination of modifiers (Control+Shift, Control+Alt or Control+Alt+Shift,as indicated), and allows you to release or enforce one or more geometrical constraints(the same combinations are used as in SELECT mode, except for the CTRL modifier whichmakes no sense here). Modifiers may be pressed or released at any time during the drawingprocess.

3.1 Draw-tools

Icon Tool Numberofcontrolpoints

Drawing sequence Alternate functions

Lines 2 First end-point,second end-point.

N/A

Rectangles. 2 First corner, oppos-ite corner. Sides arekept parallel to thegrid axes.

CTRL+ALT: nailthe center of therectangle to itscurrent position.CTRL+ALT+SHIFT:release the constrainton sides. Hold themodifiers wheneveryou want to alter theside’s orientation,then release it andmove the mouse toscale the rectangle).

Page 13: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 8

Parallelograms. 3 Lower-left corner,upper-left corner,opposite side.

CTRL+ALT: nailthe center of theparallelogram to itscurrent position.CTRL+ALT+SHIFT:force the shape tobe a square. Notethat holding thesemodifiers whilemoving the secondcontrol-point isallowed, yet justmakes no sense sincethere is still a thirdcontrol point to beset !

Circle or ellipsecontroled by arectangle.

2 First corner,opposite corner.The sides of thecontrolling rectangleare kept parallel tothe grid axes.

CTRL+ALT: nailthe center of theellipse to its currentposition.CTRL+ALT+SHIFT:release the constrainton the sides of thecontrolling rectangle(see Rectanglesabove).

Arc controled by arectangle.

RIGHT-CLICKcycles throughavailable arc types.

4 First corner, oppos-ite corner, arc start,arc end.

Slanted ellipse. 3 Lower-left corner,upper-left corner,opposite side ofthe controllingparallelogram.

CTRL+ALT: nailthe center of theellipse to its currentposition.CTRL+ALT+SHIFT:force the ellipse tobe a circle.

Page 14: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 9

Slanted arc.

RIGHT-CLICKcycles throughavailable arc types.

5 Lower-left corner,upper-left corner,opposite side ofthe controllingparallelogram, arcstart, arc end.

Circle controled by 3points.

3 First, second andthird point.

N/A.

Arc controled by 3points.

RIGHT-CLICKcycles throughavailable arc types.

Page 15: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 10

Open Bezier splines,polygons, or acombination thereof.Control points andtangents are setby moving (forcontrol points) ordragging the mouse(for tangents). Aright-click sets thecurve’s end-point,and move thetermination tangentif the last segment iscurved (otherwisethe drawing processends up here). Afurther left-clicksignals the end ofthe drawing process.

Note that severalBezier splinescan be joined byselecting them,right-clicking toopen a popup-menu,and selectingJoin selected

curves. Chapter 5[multicurve],page 21.

Variable• first point

(press)

• first tangent(drag)*

• second point(move)

• second tangent(drag)*

• etc. . .

• last point (right-click)

• last tangent(move andclick)*

*: splines specificoperations.

No modifier:enforce smoothnessand symmetry overalternate tangents.CTRL+SHIFT: enforcesmoothness only.CTRL+ALT: enforcesymmetry only.CTRL+ALT+SHIFT:move tangents freely(no constraint at all)

Closed Beziersplines, closedpolygons, or acombination thereof:same as above, butwith the curve beingclosed. Chapter 5[multicurve],page 21.

Page 16: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 11

Smooth Polygon:this is a Bezierspline controled by apolygon. Chapter 5[multicurve], page 21

Variable First, second, thirdpoint. . . Right-clickto complete.

N/A

Closed Smooth Pol-ygon: same as ab-ove, yet the curve isclosed. Chapter 5[multicurve], page 21

Interpolating curve(aka \psecurve

in the PSTrickspackage): thisis a spline thatinterpolates anopen curve throughthe control pointsgiven by the user.The curvatureis controlled bythree parameterswhich can be setby right-clickingon the curve orpressing F2 while itis selected (pleaserefer to the PSTricksdocumentation, p.14, for more onthe role of eachparameter).

Variable First, second, thirdpoint. . . Right-clickto complete.

N/A

Closed interpolatingcurve: same asabove, yet thecurve is closed (aka\psccurve).

Text (possiblyboxed).

1 Anchor point N/A

Page 17: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 3: Drawing objects 12

For all objects, pressing F2 once the drawing process has completed opens a properties-panel. This in particular allows you to edit points coordinates by hand.

Elliptical arcs: recent releases of PSTricks now support elliptical arcs natively: newcommands are called \psellipticarc and \psellipticarcn. Unfortunately, LATEX andeepic don’t support these objects; hence these are emulated and cannot be filled.

Page 18: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 13

4 Editing shapes

To edit an object, first click on its stroke path to select it.

If the button is inactive (LOCAL mode, see also [globalLocalMode], page 36),the selected element is highlighted in green, with its anchor points transforming intosmall squares (except for groups, where the policy may be altered from group to group,and may be changed by right-clicking on a group, and selecting the Toggle group editMode action).

If the mode is set to GLOBAL (ie has been activated), the selection is highlightedglobally in red. Eight end-points are displayed, which allows you to scale the entireselection content.

•The floating attribute-editor gets updated according to the selected object properties(e.g. fill-colour, stroke thickness, arrows. . . ).

You can move a particular anchor point by clicking on it and dragging the mouse, or youcan translate the whole selection by clicking somewhere on a stroke path. When moving agroup of object, the clicked object serves as a reference for alignment on the grid.

If you want precise control over the object location, pressing F2 directly pops up aproperties panel that lets you alter the object shape using numerical entries rather than themouse

Tip: clicking on a selected object with SHIFT pressed let you deselect it.

4.1 Multiple selections and groups

You can afford multiple selections either by holding the SHIFT key pressed during theselect operation or by "wrapping" objects you want to select in a selection rectangle thatyou create by dragging the mouse from anywhere on the sheet. Translation and scalingoperations are then available using the same rules as in the previous paragraph. You canalso group selected objects so that they get linked one to each other, by right-clicking andselecting Group selected objects item in the popup menu; besides, groups are nestables.To ungroup previously grouped objects, click with the right mouse button somewhere ona selected group to raise the popup menu, then select the Ungroup operation.

4.2 Editing arcs angles

You can add or remove geometrical constraints on the editing operation, by holding somemodifiers during the mouse displacement. In addition to the combination of modifiersalready used by Chapter 3 [drawingCap], page 6, there is an additional modifier, namelyCTRL, which allows you to move the two points controlling the angle start and end in thecase they should be at the same position as a point controlling the ellipse shape (by default,these last points have a higher priority and are moved first; hence holding CTRL in effectreverses the priority).

Page 19: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 14

4.3 Context menu

Right-clicking on an object raises a popup menu which lets you apply various operationson that object, eg conversion to other shapes, grouping/ungrouping, etc.

The picture below sketches a typical popup menu for a Bezier curve. This menu getsalso displayed in combination with the following objects:

• Lines

• Closed Bezier-curve/Polygon

There are another four popup menus, which are shown in the table below along withtheir associated objects.

Page 20: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 15

• smooth Polygon

• closed smooth Polygon

• interpolating curve

• closed interpolating curve

Page 21: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 16

• rectangle

• parallelogramm

• ellipse

• pie

• arc

• chord

• sheared ellipse

• sheared pie

• sheared arc

• sheared chord

These items have the following meaning (depending on the context and the currentselection, some items may be grayed, i.e., inactive):

Edit geometry. . .Displays the geometrical properties of the corresponding object in a popup-window

Page 22: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 17

Close pathturns the shape into a closed one

Convert to Bezier curveturns the object into a Bezier curve being as close as possible to the originalobject

Make all points smoothsee [multicurveStraight], page 21

Make all points symmetricsee [multicurveStraight], page 21

Make all segments straightsee [multicurveStraight], page 21

Straighten this segmentsee [multicurveStraight], page 21

to back Since pictures are built up in a sequential way, recently drawn objects may hideprevious ones (in other words, objects are drawn on the canvas in ascendingz-axis order). This item allows you to move the selected object to the lowestz-axis plane, thereby making it possible for ALL other objects to hide it.

backward move the selected object one step down the z-axis, so that it may now be hiddenby the object it was previously hiding.

forward move the selected object one step up the z-axis, so that it may now sit on topof the object that was previously hiding it.

to front move the selected object to the highest z-axis plane

View LATEX filedisplays the LATEX-formatted file generated from the whole drawing (not theselected object).

Edit Bounding BoxThis item makes it possible to edit the actual bounding box by hand. Availableentries are the lowest and highest x-coordinate (resp. y-coordinate). Thisproves especially useful whenever one or more objects (in particular, text boxes)happen to stick out of the automatically computed bounding box.

4.4 Changing attributes

Graphical attributes, e.g. line thickness, fill colour, etc. . . can be changed by first selectingobjects of interest, then changing fields values in the floating Attribute Editor palette. Theset of available attributes is tightly related to PSTrick parameters, since this LATEX packageoffers the widest range of possilibites. Refer to the PSTricks documentation for furtherdetails.

Page 23: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 18

As a result, depending on the current content-type, some attributes aren’t displayed,though they can be changed in the Attribute Editor. In particular, the LATEX pictureenvironment content-type supports only a very limited subset of all the attributes availablein the palette (e.g. no colour, no texture, only simple arrows, no shadow,. . . ). If you’d liketo use the whole range of graphical attributes offered by the palette, including shadows,texture and colour filling (Section 4.5 [filling], page 18), or fine-grained dashing, you shouldreally think of switching to the PSTricks content-type, and add an \usepackage{pstricks}in your LATEX files. You won’t regret it !

4.5 Filling shapes

Any shape may be filled with a colored pattern (including the uniform pattern) by firstselecting the shape and then choosing the appropriate pattern in the “Fill” tabpane of theAttributes Editor.

The following patterns are available when exporting to PSTricks:

• no filling

• Uniform filling with a color that can be chosen, either amongst the available colorsin the predefined pane (these are actually predefined PSTricks colors) or the Swatches

Page 24: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 19

pane, or by altering color components separately in the RGB (red-green-blue) or HSB(hue-saturation-brightness) panes.

• Filling with vertical lines; default angle is 45 degrees CCW. Color is to be selectedfrom the color-chooser of the Hatches tabpane.

• Filling with vertical lines and a colored background; the background color is to beselected from the Fill tabpane.

• Filling with horizontal lines; default angle is 45 degrees CCW. Color is to be selectedfrom the color-chooser of the Hatches tabpane.

• Filling with horizontal lines and a colored background; the background color is tobe selected from the Fill tabpane.

• Filling with crosshatches; default angle is 45 degrees CCW. Color is to be selectedfrom the color-chooser of the Hatches tabpane.

• Filling with crosshatches and a colored background; the background color is to beselected from the Fill tabpane.

Other tips that may prove useful:

1.

You can also fill an OPEN polygon like

which results in:

2. A triangle made up of three independant lines is not a closed polygon, so that it cannotbe filled as is; the workaround consists in selecting the three lines, right-clicking to openthe context popup menu, and selecting Join selected curves. Now the three linesform a single path that can be filled like any other path.

3. A ring section can be filled the same way: simply draw the cor-responding arcs, select them, and then select Join selected curves (arcs are thenconverted to Bezier curves on-the-fly).

Page 25: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 4: Editing shapes 20

4. A ring can be filled by drawing to circles, making sure that theinnermost circle sits on top (by invoking Forward in the popup-menu), and then fillingthe outermost circle in whatever color you may wish, and finally the innermost one inwhite.

Page 26: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 5: Extensible Bezier Curves 21

5 Extensible Bezier Curves

An extensible Bezier curve is a concatenation of either straight segments or cubic Beziercurves. For each subdivision point (ie a point joining two Bezier curves, like A,B,C,D,Ein the picture above), one can impose two properties on the associated tangents, namelysmoothness and/or symmetry. Smoothness means that the tangents around the subdivisionpoint are required to be parallel (for instance, BB’ is parallel to BB” in the figure above).More precisely, if smoothness is required at B, and if you move B’ with the mouse, then B”will move accordingly as to preserve smoothness. To make an angle (like at point C), thesmoothness must NOT enforced. Symmetry at B means that the length of BB’ and BB”are the same. Symmetry is enforced at all points on the picture above. If both Symmetryand Smoothness are required at B say, then B’ and B” will be symmetric with respect toB. Symmetry and Smoothness have no effect at the endpoints A and E.

When drawing or editing a curve, symmetry and smoothness are enforced by default,yet using modifiers (alternate functions) allows you to alter this behaviour:

• CTRL: move tangents with smoothness and symmetry enforced;

• CTRL+SHIFT: enforce smoothness only.

• CTRL+ALT: enforce symmetry only.

• CTRL+ALT+SHIFT: move tangents freely (no constraint at all)

Note that these combinations and their associated meaning are also reminded in thestatus bar.

You may also change these properties for all points at once, or only for a specific point,by selecting a curve, right-clicking, and selecting the corresponding action in the popupmenu. Alternatively, the properties panel (press F2) allows you to carry out the same kindof operations, yet in a more precise way since you may also want to enter new coordi-nates numerically. It is important to notice that some changes are irreversible (unless you

Page 27: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 5: Extensible Bezier Curves 22

explicitely call undo), since enforcing one of these properties MIGHT change the positionof some control points, and the current policy is to NOT remember their previous position;hence Smoothness and Symmetry checkboxes in the properties panel are actually "one-way"streets.

5.1 Straight segments and how-to-unstraighten-them ?

To straighten a Bezier curve, just move the appropriate tangents until they reduce to a point.To unstraighten a segment, press the CTRL, CTRL+SHIFT, CTRL+ALT or CTRL+ALT+SHIFT

modifiers, click on each segment’s end-point and drag the tangents. Forgetting to pressthese modifiers before clicking will result in a translation of the segment end-points, not ina modification of their associated tangents.

Here again, the popup menu allows you to straighten all points at once, or only a specificpoint. To reverse the change, simply invoke Undo.

5.2 Smooth Polygons

A Smooth Polygon is a smooth curve controled by a polygon. For example, the smoothpolygon in the picture above is controled by the polygon ABCDE (in green on the picture).The curve is always smooth, and does not usually go through the control points. Butthe curve goes through the midpoints of all the segments of the polygon (except the twoextremal ones). In the example above, the curve goes through P and Q which are themidpoints of [BC] and [CD].

To each point of the smooth polygon is attached a coefficient which controls how closeto the polygon the curve should go. The greater the coefficient of a point, and the more thecurve will stick to the polygon along the sides of the corner corresponding to this point. Thedefault value is 70, and useful values are generally in the interval 50-100. This coefficientcan be set as follows: select the smooth polygon and press F2 to make the properties panelappear; if you don’t want to adjust the coefficient of all points, unckeck some boxes in the

Page 28: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 5: Extensible Bezier Curves 23

adjust column; then use the slider to adjust the coefficient. The picture below shows theeffect of changing the value of the coefficients of all points to 50.

For an alternate way of editing smoothness coefficients, see the section [editPoints],page 23 below.

More precisely, the smooth polygon is a concatenation of cubic bezier curves whosecontrol points lie on the control polygon (on the picture above, the control points of thebezier curves are represented by the endpoints of the bold dotted lines). Denote by c thecoefficient at B. Then P ′ is such that the vector PP ′ is c times the vector PB. Similarly,the point A′ is such that the vector AA′ is c times the vector AB.

5.3 Using the Edit Bezier Points tool to add, remove andedit points

There is a specific tool dedicated to adding and removing points to/from Bezier curves andsmooth polygons, and additionally to parallelograms and ellipses by converting them to

Bezier curves on-the-fly. It is accessible through the icon in the toolkit palette or thetoolkit menu (see also [toolKit], page 34). At any time, a right-click brings you back to the

standard SELECT mode [ ].

Selecting the target element: Once the tool has been activated in the toolbar, the firststep must be to select a single target object, eg a smooth polygon or a Bezier curve. If thetarget is a parallelogram or an ellipse, it is converted to a Bezier curve on-the-fly (this maybe reversed by a call to undo).

Selecting points: before removing points, you must select the points to be removed. Justclick on each point to be selected for removal, holding the SHIFT modifier for incrementalselection/deselection. Alternatively, you may wrap a lasso around every point to be selected,by dragging a rectangular selection area. Selected points are highlighted in blue.

Page 29: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 5: Extensible Bezier Curves 24

Removing points: simply click on either one of the points selected above (the cursortransforms into a minus sign). As regards Bezier curves, removing a point controlling atangent straighten the corresponding segment, whereas removing a point joining two Beziercurves removes this point as well as the associated tangent-controls.

Adding points: Hold the CONTROL key while the mouse hovers around a segment(however curved or straight it is), then press the mouse to add and drag a new point.A subsequent mouse-release let you edit the associated tangent if applicable. For smoothpolygons, you must click when the mouse hovers on a segment of the controlling polygon,not on the curve itself.

Adjusting the coefficients of a smooth polygon: For each point of the polygon controlingthe curve, there is a coefficient telling how close to the corners of the polygon the curveshould go (more details here). To edit these coefficients, select the points you want toalter, then hold the CTRL+ALT modifiers, move the mouse over one of the selected points(the cursor transforms into a north-south arrow), and drag the mouse up- or down- wards.This will increase (resp. decrease) the coefficients by an amount proportional to the mousedisplacement. Note that the tool will not work if no point is selected!

Page 30: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 25

6 Convex zones� �“Convex zones” are an experimental feature. This documentation in somehow incompleteand erroneous.

Convex zones are not drawing elements, they are just part of a set of tools used to modifydrawing elements and for which you need to focus only on those control points or this partof the drawing that are within some bounded area defined as a union of convex zones. Forinstance, convex zones can be used to move around some of the control points of drawingelements, or to trim a drawing element.

Convex zones can be defined for each drawing separately, however they are not part ofthe drawing document, and as such, they are lost when you close a drawing board.

As far as extensible Bezier curves are concerned, a simpler and less powerful alternativeto convex zones, when you want to act on several control points at a time, is to use theGLOBAL/LOCAL edit point mode (see [globalLocalMode], page 36).

Convex zones are visible and can be used only when the convex zone palette is visible,and are hidden otherwise. To use convex zones, first make the convex zone pallette visible

by clicking on in the main toolbar).

A convex zone is defined as the intersection of one or more half-planes, each half planeis in turn defined by two control points:

1. A point P1 on its boundary line.

2. A point P2 such that its boundary line is orthogonal to vector P1 P2 and that half-plane contains P2.

Each half-plane that compose a convex zone is viewed with its border line and with ahalf-plane sign like this:

The convex zone border is viewed in blue. When the convex zone is selected the firstand second control point are viewed as the half-plane sign and as a small square in magentacolor. When the convex zone is not selected, only the half-plane sign is visible, and it isviewed in grey colour.

When you edit convex zones, there is a number of things that jPicEdt prevents you fromdoing:

•You cannot create or move P2 too close to P1, because this would cause undetermi-nation of the half-plane.

• You cannot move a half-plane to a position where it would be useless, that is to sayto a position where the convex zone defined by the other half-planes would be entirelycontained in this half-plane. If you don’t want this half-plane any longer suppress itwith the convex zone edit tool (see Convex zone edition)

Page 31: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 26

• Finally, you are also prevented to move half-planes in a way that would result in anempty convex zone, as such a convex zone would be of no use.

Each button can display a tooltip if the mouse hovers around it more than two seconds.

6.1 Convex zone selection

Convex zone selection is possible with the convexe-zone select tool (see [CZSelect], page 26).The convexe-zone-selection and the selection (of drawing elements) are two different select-ions.

Menu commands, or keyboard shortcuts such as "Select all", "Suppress", "F2" andsuchlikes selection-dependent actions, may act either on the drawing element selection, oron the convexe-zone selection, but never on both of them.

The following rules apply:

• All drawing tools act only on the drawing element selection.

• All convexe-zone tools act only on the convexe-zone selection.

• Ambiguous selection dependent actions act on the drawing elements selection when theconvexe-zone palette is not visible.

• When the convexe-zone palette is visible then what happens depends on the[useCZSelectionTool], page 33 tool state:

• If the tool is active, then ambiguous selection dependent actions act on the convexe-zone selection.

• Otherwise, they act on the drawing elements selection.

An alternative to the "Use convexe-zone selection" tool is to use the same shortcuts withCTRL-U prefix. For instance the sequence CTRL-u CTRL-C will copy a control zone, CTRL-UCTRL-X will cut it, CTRL-U CTRL-V will paste it, CTRL-U CTRL-A will select all control zones,etc. . . . The sequence CTRL-U CTRL-G has no effect, it just relaxes the CTRL-U prefix.

6.2 Editing Convex zone

When the Convex zone selection tool is active you can edit convex zones as follows:

Page 32: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 27

• Convex zone translation: When the mouse is in the vicinity of the boundary of aselected convex zone it shows as a spider , if you click and keep mouse click buttondown while move the mouse (which is known as dragging), you can translate this convexzone. With the CTRL modifier you translate all the selected convex zones, and not onlythe one for which the mouse is in the vicinity of a boundary line. With the CTRL+ALT

modifier you translate all the existing convexe-zones. Note that translating convexzone(s) does not have any effect on the underlying drawing.

• Translating a half-plane: When the mouse is in the vicinity of the first control point ofa half-plane that is part of a convexe-zone, then mouse shows as a small arrow. If youclick and keep mouse button down then you can translate the half plane (that it to sayboth control points are translated together). With the CTRL modifier, the first controlpoint is constrained to move along the half plane boundary line, this has no effect onthe half-plane itself, but it is useful if you want to rotate the half-plane around the firstcontrol point in the aftermath.

• Rotating a half-plane: When the mouse is in the vicinity of the second control pointof a half-plane that is part of a convexe-zone, then mouse shows as a small arrow.If you click and keep mouse button down then you translate only the second controlpoint, which has the effect of rotating the half-plane around the first control point.Remember that you cannot bring the second control point too close to the first one toprevent half-plane undetermination.

When the convex zone edition tool

is active you can add or remove half-planes to a convex zone as follows:

• Selecting target convex zone: Once the convexe-zone edition tool has been activated inthe convexe-zone palette, the first step is to select a single target convex zone to actupon. To select the target convex zone click on its boundary or on any of the half-planesigns. This step is not needed if the target convex zone zone is already selected andthere are no other selected convex zones.

• Select half-planes for removal : Once a convex zone is selected you can remove half-planes: just click on one of the control point of the half-plane to be selected for removal:the half-plane sign will appear in green. SHIFT+click on a control point of the samehalf-plane point will unselect it. SHIFT+click on a control point of another half-planewill add it to the seleciton for removal. You may also select several half-planes forremoval by dragging a lasso around every convex zone control point whose owner half-plane is to be selected.

• Removing half-planes: Simply click on any of half-planes that have been selected in tobe removed to remove all of them from the selected convex zone.

• Adding half-planes: Hold the CTRL modifier, then add a plane by click a first time to setthe first control point, and a second time to set the second control point. Click-Rightto cancel. Remember you cannot add a half-plane that would make the convex zoneempty.

Page 33: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 28

6.3 Negating a Convex zone

If you select a convex zone then click-right and choose Negate in the context menu, theconvex zone, that is an intersection of half-planes, is transformed to the union of complem-entary half-planes.

Negation can be applied to a selection of several convex zones, so that it is reversible bynegating a second time. In other words negating twice has almost no effect. almost is therejust because, if in the process of negation some empty convex zones are created, they aresuppressed. For instance if you select two convexes zones, with the first one containing thesecond one, negating twice will suppress the inner convex zone.

6.4 Convex zone Tools

When using any of the convex zone edition tools, you can go by at any time to the standard

convex zone SELECT tool ( ), by a single right-click.

Following is a list of all available convexe-zone tools as well as their associated iconon the convex zone palette. Some convexe-zone tools support a set of alternate functions:these are triggered by a specific combination of modifiers (Control+Shift, Control+Altor Control+Alt+Shift, as indicated), and allows you to release or enforce one or moregeometrical constraints (the same combinations are used as in SELECT mode, except forthe CTRL modifier which makes no sense here). Modifiers may be pressed or released at anytime during the convexe-zone tool process.

6.4.1 Convexe zone tool pannel

Icon Tool Numberofcontrolpoints

Editing sequence Alternate functions

Convex zoneSelection

N/A Click on any con-vex zone boundaryor half-plane signs,to select the wholeconvex zone. (See[CZSelect], page 26for details).

SHIFT: the samesequence as forselecting a convexzone can be used tounselect it, or to addanother convex zoneto the convexe-zone-selection

Page 34: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 29

Convex zone Edition N/A Click on any convexzone boundaryor half-planesigns to selectthe whole convexzone. Remove anyhalf-plane fromthe convex zoneby clicking onthe correspondinghalf-plane sign. (See[CZEdit], page 27 fordetails).

CTRL modifier to addhalf-planes to theconvex zone.

Rectangular convexzone.

2 First corner, oppos-ite corner. Sides arekept parallel to thegrid axes.

CTRL: nail the centerof the rectangleto its first pointposition.CTRL+ALT: releasethe constraint onsides. (Hold themodifiers wheneveryou want to alter theside’s orientation,then release it andmove the mouse toscale the rectangle).SHIFT: rectangleis negated. (seeNegation).CTRL+SHIFT: nailcenter and negate.CTRL+ALT+SHIFT:releasing theconstaint on sideorientation andnegate.

Page 35: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 30

Extensible convexzone.

Variable First control pointof first half-plane,second control pointof first half-plane,first control point ofsecond half-plane,and so one.Terminate with aright-click.

N/A

Band-shaped convexzone.

2 First side, Secondside. Sides are keptparallel to the gridaxes. Band directionis orthogonal to theline passing throughfirst and secondpoints.

CTRL: nail the centerof the band the firstpoint position.CTRL+ALT: releasethe constraint onsides parallel to gridaxes.SHIFT: negate (seeNegation)CTRL+SHIFT: nailcenter and negate.CTRL+ALT+SHIFT:release the constainton sides orientationand negate.

U-shaped convexzone.

3 First corner, Secondcorner, Top ofU. Sides are keptparallel to the gridaxes.

CTRL: nail the centerof the bottom side ofU to the first pointposition.CTRL+ALT: releasethe constraint onsides parallel to gridaxes.SHIFT: negate (seeNegation)CTRL+SHIFT: nailcenter and negate.CTRL+ALT+SHIFT:release the constainton sides orientationand negate.

Page 36: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 31

Half-plane convexzone.

2 First control-pointSecond controlpoint. Sides are keptparallel to the gridaxes.

CTRL+ALT: releasethe constraint onsides parallel togrid axes. Hold themodifiers wheneveryou want to alter theside’s orientation,then release it andmove the mouse toscale the rectangle).SHIFT: negate (seeNegation)CTRL+ALT+SHIFT:release the constainton sides orientationand negate.

Page 37: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 32

Translate all drawingelements controlpoints within theselected convex zone.

N/A Click at one of theconvex zone (byclicking on its borderline, or on one of itscontrol point), anddrag the mouse, i.e.keep click buttondown as movingthe mouse. All thedrawing elementcontrol pointsthat are withinthe consideredconvex zone zonewill be translatedaccordingly as wellas the consideredconvex zone. Notethat for extensibleBezier curve controlpoints that arenot subdivisionpoints; but for whichthe correspondingsubdivision point iswithin the selectedconvex zone are alsotranslated.

With CTRL modifier,all selected convexzone, instead of justthe one that you dragupon are used fortranslation.With the CTRL+ALT

modifier all the exist-ing convex zones areconsidered.

Trim all drawingelements.

N/A The intersectionof the union of allexisting convexzones, and of of allthe seelcted drawingelements is erased.This can involveconversion of someelement types (forinstance rectangle)to extensible Beziercurves.

N/A

Page 38: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 6: Convex zones 33

Use convex zoneselection.

N/A Toggling this buttonon and off allows youto decide selectiondependent actionlike "Cut&Paste",or "Select all" acton the drawingelement selection, oron the convexe-zoneselection. (See[useCZSelection],page 26 for details)

N/A

For all convex zones, when the "Convex zone Select" tool state is active, pressing F2

will open a properties-panel for the first convex zone in the convexe-zone selection. This inparticular allows you to edit convexe-zone control points coordinates by hand, or to changethe angle of the vector P1 P2 w.r.t. horizontal by hand.

Page 39: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 34

7 Grid-zoom toolbar

Grid and snap steps are in mm, and can be set independently. The zoom factor is in percent:you can also type your own value, it will be recorded in the popup list for the current session.

The button in the upper-left corner moves the scrollbars so that the point (0,0) lies atthe center of the scrollpane (this is especially useful for large zoom factors).

7.1 Toolkit panel

Page 40: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 35

Note: draw-tools (ie greyed icons in the picture above) are explained in details in theChapter 3 [drawingCap], page 6 section.

Select mode Select and edit mode: see the Chapter 4 [editing], page 13section for further details.Important note: in every other mode/tool, including

drawing-tools, a RIGHT-CLICK brings you back to thisSELECT mode as soon as the editing process for the parti-cular mode/tool has completed (eg for a drawing-tool, thismeans you have just really finished drawing an object).

Zoom mode Click to zoom in; shift-click to zoom out

Edit Bezierpoints

This tool is mostly dedicated to adding/removing pointsto/from Bezier curves, polygons and smooth polygons, aswell as to/from ellipses and parallelograms (by convertingthem to Bezier curves on-the-fly). Additionally, it allows youto alter the coefficients of smooth-polygon points. See the[editPoints], page 23 section for further details.

Translate tool Translates a selection by a given vector. Click to set the firstvector point, then drag the second vector point to translatethe whole selection.

Scale tool Scales a selection by a given scale factor. Press the left-buttonto set the invariant point, then drag the mouse to set theoriginal (blue) rectangle, finally release and move the mouseto alter the scale factor (a red rectangle is displayed whichallows you to monitor both x- and y- scaling coefficients).

Rotate tool Rotates a selection by a given angle. Press the left-button toset the invariant point, then drag the mouse to set the originalvector (this will act as the reference for angle-measurement),finally release and move the mouse to alter the rotation angle.

Page 41: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 36

Global/localedit-pointmode

Toggling this button on and off allows you to switch bet-ween GLOBAL (aka Scale- and Translate-tool, dual-in-one)vs LOCAL (single-point-editing) mode, either for single- ormultiple-selection editing.In GLOBAL mode, the selection is highlighted as a single

(red-stroked) rectangle, which allows you to move and rescalethe entire selection content as a whole.In LOCAL mode, each element in the selection is highlighted

instead, its end-points being displayed as green barbells; thisallows you to edit each element separately without having tobreak the selection.Whenever a single element is selected, toggling between

these two modes also proves useful: for Bezier curves, forinstance, setting the mode to GLOBAL allows you to res-cale the curve globally, whereas setting the mode to LOCALenables control-points and tangents editing.Note, however, that you may as well want to stick to

LOCAL mode and never use the GLOBAL mode, and usethe Translate- and Scale-tools for altering a selection globally.This is rather a question of personal taste, since both ap-proaches lead to the same result, though with a slightly dist-inct user-interface.

7.2 Menus

Some of the following menu-items are also available as buttons in the main toolbar.

File menuNew create a new drawing sheet.

Open. . . load an existing file from disk.

Reload reload current drawing from disk

Save. . . save current file in LATEX, epic or PSTricksformat, depending on the current content-type; default directories can be specified inthe preferences tabsheet.

Save as. . . let you choose another file name.

Save All save all currently open sheets.

Page 42: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 37

Save selection as. . . let you save only selected (namely: hig-hlighted) parts of your drawing ; useful tocreate fragments ; the user’s fragment di-rectory is automatically pre-selected in thefile-chooser, but you can save fragments inother places. . .

Insert Fragment. . . insert a prerecorded fragment into the cur-rent active sheet (the topmost internalframe), placing it in the bottom-left cornerof the frame ; by default, the filechooserpoints to the user’s fragment directory, butyou can obviously insert fragments fromother places. . . See also the [fragments],page 39 menu below.

Recent Files this mutable menu keeps track of the lastfour loaded or updated files, and let youquickly load one of them.

Close Close active frame

Exit Save every open sheet to disk, then quit.

Edit menuUndo/Redo undo/redo last change (the number of un-

doable steps is specified in the preferencesmenu).

Cut cut current selection and send it to clip-board.

Copy copy selection to clipboard.

Paste paste selection from JPicEdt graphic clip-board, starting from bottom-left corner.

Page 43: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 38

Paste special paste selection by trying to parse the cont-ent of the system clipboard. For example,you may first copy a LATEX string to thesystem clipboard from your favorite editor,then paste it to jPicEdt using PasteSpecial.This can obviously lead to a parser-error ifthe text content is not syntaxically correct.

Under Linux, use xclipboard to copy apiece of text to the primary selection. . .Direct data transfer b/w the jEdit editorand jPicEdt works flawlessly however.

Select All select every object in the current board.

Page format set the page format of the current drawingboard, if any. If there’s no open board,set the default page format for new boards(this is identical as setting the page formatfrom the Preferences).

Content Type. . . set the content-type of the current drawingboard, if any. This sets the formatter usedto format the current drawing to LATEX(i.e. LATEX picture env, epic or PSTricks),and also affects the way elements are dis-played (for example, colour is supported byPSTricks only, filling ellipses by PSTricksand eepic only,. . . ).

Preferences. . . opens the “set preference” tab pane. SeeChapter 8 [preferences], page 41.

Toolkit menu See Chapter 3 [drawingCap],page 6 and Chapter 4 [editing], page 13 fora detailed description of the tools available inthis menu.

Commands menu

Page 44: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 39

LaTeX run LATEX on the current drawing; to sumup: jPicEdt creates a temporary LATEXfile on-the-fly, containing all the neces-sary stuff (see how to set the prolog andepilog in the preferences tabpane), in thetemporary directory of the underlying plat-form (e.g. /tmp under Unix and MacOS-X,c:\windows\temp under Win9x, . . . ) thenrun LATEX on it.

Contrary to previous releases, you don’tneed to save your picture anymore beforerunning the LATEX/DVI/etc. . . commands.

DVI Viewer same thing, but run a dvi viewer on thesame file (actually the one with a .dvi ext-ension, which then assume you ran LATEXbefore).

Dvips run the referenced Dvips program.

Ghostview run the referenced Ghostview program.

External program path and names (as well astheir calling syntax) can be specified in thepreferences.

Fragments menu

List of fragments Depending on fragments found inthe system-wide’s and the user’sfragments directory, you may see zero,one or more items here. Click toinsert. User-saved fragments go intothe "fragments" subdirectory of theuser-settings directory (for instance :/home/user/.jpicedt/fragments onUnix).

Rescan fragments Rescan the list of fragments.

Scripts menuBSH Console. . . Open a BSH Console for interacting on-

the-fly with jPicEdt, or for debugging yourscripts.

Page 45: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 7: Grid-zoom toolbar 40

List of scripts Depending on scripts installed in thesystem-wide’s and the user’s script di-rectory, you may see zero, one or moreitems here. Click to run.

Rescan scripts Rescan the list of installed scripts from thescript directory.

Window menuCascade Cascade all internal windows.

Tile Horizontal Tile windows horizontally, creating as newrows as necessary.

Tile Vertical Tile windows vertically, creating as new col-umns as necessary.

Show/hide attributes panel Toggle the visibility of the floating"Attributes Editor" pannel. This can beuseful on laptops, because this palette takesup a significant amount of the screen ;-).

Show/hide toolkit panel Toggle the visibility of the floating "ToolkitPalette" pannel.

Show/hide convex zone panel Toggle the visibility of the floating pannel� Convex Zones �.

List of windows The Window menu also maintains a listof currently open sheets so that youcan quickly switch between them (Note:keyboard shortcuts may not work on Linux

and MacOS platforms).

Page 46: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 8: Setting preferences 41

8 Setting preferences

8.1 General

• Multiple Document Interface: let you choose the way windows (i.e. drawing sheets andpalettes) are managed within jPicEdt. In Child-frames mode, all windows are actuallyJava internal-frames components that are contained in a single application window,whereas in the new Gimp-like mode, all windows are native and are directly laid outon your desktop.

• Look’n Feel (LAF): let you choose your favorite Look’n Feel ; defaults to metal (a SUNlook’n feel) on startup.

• Language: English, French,. . . You must restart jPicEdt if you want a new languagechoice to take effect.

• Max undoable steps: let you specify the number of undoable steps; 0 means that undois deactivated.

• Default formatter: this is the default formatter used when creating a new drawing. Thepreferred way is to use PSTricks, because then you get a real high quality rendering(colours, textures, shadows,. . . ), but if you don’t want to rely on add-ons packages,simply choose the Emulated LATEX content-type (then you’ll get only a minimal subsetof those graphical attributes, i.e. no-filling, no colours,. . . ). The epic/eepic choice is areasonable choice for those who don’t need colours and textures, but are willing to drawellipses, arcs, polygons,. . . with a satisfying rendering quality. Note also that PSTricksuses PostScript in the background so if your DVI Viewer dooesn’t handle PostScriptspecial, use dvips first to convert your DVI file to a PS file, then run ghostscript todisplay it.

8.1.1 LATEX, eepic and PSTricks tab panes

Let you set a variety of package-specific parameters. One thing common to all formats isthe prolog/epilog string, which is used when running LATEX on the active picture (the onecorresponding to the highlighted inner frame) from within jPicEdt.

These strings get prepended/appended to the text generated by the formatter (i.e. thetext starting with \begin{picture}) so that the resulting text is a "stand-alone" LATEX file,and can be directly compiled by LATEX. The default prolog/epilog simply include necessarypackages, but you can add your own macro definition here, so that, for example, argumentsof text-boxes which use macros of your own are compiled properly.

8.1.1.1 Picture scale

8.1.1.2 Scale up/down a drawing by a given factor

By default, unitlength is set to 1mm in the saved file. This definition is to be found that thebeginning or the part encoded in export format (just after the embedded JPIC-XML code).However, it is often convenient to change the unit to rescale the figure. There is a convenientway to do this from the main tex file using by defining the command \JPicScale. Here isan example rescaling the picture at 80%:

Page 47: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 8: Setting preferences 42

\def\JPicScale{0.8}

\input{figure.tex}

One can alternatively use \newcommand{\JPicScale}{0.8} or \renewcommand{\JPicScale}{0.8}according to whether \JPicScale is already defined or not (the use of the TeX primitive\def allows you not to bother about this, with the acceptable risk of including a packagewhose author had the strange idea of usig the same \JPicScale name for one of his/hermacros).

8.1.1.3 Change the drawing unit

To change the drawing unit from 1mm to, say, 1point, insert the following code before thepicture:

\def\JPicScale#1#2{0.00625\textwidth}

\input{figure.tex}

The two arguments #1#2 of \JPicScale are just intended to gobble the default mm unit.

8.1.1.4 Scale a drawing upto/downto a given width

If you want now that, say, 160 units on the picture correspond to a width of \textwidthinsert the following code before the figure:

\def\JPicScale#1#2{0.00625\textwidth}

\input{figure.tex}

The working principle is similar to a change of drawing unit: 0.00625 is the inverse of160, the width expressed in drawing units that you want to scale to \textwidth.

8.1.1.5 Bounding box related issues

Please also remember that jPicEdt does not embed any LATEX compiler. As a result if youplace a text element that is aligned left on the righmost border of the picture, the textcontent will extend beyond the picture bounding box computed by jPicEdt and on whichpicture centering by LATEX is based. The figure may then be incorrectly centered.A simple technique to account for the room needed by this text element it to place a textelement aligned right and containing just a blank space

("\ ") on the desired righmost border. A similar trick may be used for leftmost border,topmost border and bottommost border, as illustrated below:

Page 48: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 8: Setting preferences 43

See also [EditBoundingBox], page 17.

8.1.1.6 LATEX picture environment specific parameters

• Max LaTeX Circle Diameter/Max Latex Disk Diameter: this depends on your ownLATEX installation. You’ll have to set it to the biggest circle/disk diameter containedin your LATEX font (actually, 14mm for circles, and 5.4mm for disks, which incidentallyare the default values, match almost every TeX distribution).

LATEX picture environment only allows for a small number of line slopes ; in emulatedmode, jPicEdt use the \multiput command to emulate lines of any slope, using a set ofvery closed and tiny horizontal or vertical segments. As a result, lines of any thickness cannow be drawn (FYI, the \thickness command doesn’t work with standard slanted lines).

• Emulated line length: this is the length of the small segments that compose emulatedlines.

• Emulated lines max. slope: when do we have to switch between an almost (henceemulated) vertical emulated line and a TRUE vertical line ?

• Emulated circle segment length: this is the length of the small segments that composeemulated circles (that is, circles having a radius greater than Max-LaTeX-Circle-Diameter). Note: big disk can’t be emulated using LATEX picture environmentcommands, but they can if you decide to use the eepic package.

8.1.1.7 eepic package

• Maximum width for thinlines/thicklines: eepic supports three line-thickness values,which correspond to the commands \thinlines, \thicklines and \Thicklines. The

Page 49: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 8: Setting preferences 44

default values should work (e.g. any line smaller than 0.15mm will be considered asthin, and any line larger than 0.3mm will be formatted as Thick), yet if you exper-ience discrepancies between what is displayed on the screen and what you get aftercompilation, you may want to alter these values to improve the WYSIWYG behaviour.

8.1.1.8 PSTricks package

No alterable parameter.

8.1.2 External commands

8.1.2.1 How does it work?

When running LATEX/DVI/. . . from within jPicEdt, a LATEX file is created on the fly byjPicEdt in the standard temp’ directory of the OS you’re using (e.g. c:\windows\temp),or another temp’ dir if you changed it (see Directories panel). The variety of operatingsystems and LATEX distributions made it impossible to design a scheme for running externalcommands that wouldn’t rely on scripts (e.g. batches on DOS, AppleScript on MacOS).

So the best thing to do is (as for me) to use external scripts which call the adequateprograms (latex, dviwin32.exe/xdvi,. . . ). You can pass argument to this script by usingthe predefinite symbols "{p}" and "{f}".

• {p} gets replaced by your temp. directory (this is where the LATEX file gets created),e.g. /tmp/ on Linux, c:\windows\temp on Win9x, etc. . .

•{f} gets replaced by the name of the temp. file (usually jpicedt with a randomnumber appended to it, e.g. jpicedt542163), w/o any tex extension.

• {i} gets replaced by the location of the "add-ons" directory where some scripts alreadyreside for some LATEX distributions.

• {u} gets replaced by you .jpicedt directory — that which contains user preferences,you can store under it your own scripts.

For a complete list of other {x} keys, please see documentation of thejpicedt.ui.util.CommandLineBuilder class in the API documentation.

Here’s an example of an external batch that will work with Linux’s bash-shell:

#!/bin/sh

cd $1

$2 $3

Suppose this script was saved in the add-ons directory, then the command line whichappears under the Commands’s tab in the Preferences... tabsheet will be typeset as follows:

{i}/ext_proc {p} latex {f}

(where "latex" can be replaced by any appropriate name, e.g. xdvi, kghostview,kdvi,. . . ).

This will lead, once {p} and {f} have been replaced, to:

ext_proc /tmp latex jpicedt46858

which finally yields:

cd /tmp

latex jpicedt46858

Page 50: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 8: Setting preferences 45

(latex accept a file w/o extension on the command line, otherwise simply add .tex

manually in your script).

8.1.2.2 Loading predefined configurations

Currently, there are scripts and predefined configurations for the following LATEX distribut-ion:

• Unix: TeTeX

• Windows: MikTeX, WinGUT, and ScientificWorkplace.

These scripts reside in the add-ons subdirectory of where jPicEdt got installed (you needto have installed the add-ons package during jPicEdt’s installation).

To load a predefined configuration file, go to the Preferences...->Commands pane,press the Load predefined config button, and browse the directory tree until you find a filematching your LATEX distribution.

8.1.3 Shortcuts

Shortcuts tab allows you to change keyboard-shortcuts binding for every menu item (in-cluding tools from the toolkit palette). To add, modify or remove a shortcut, double-clickon the appropriate cell in the right column, directly type the shortcut, and click OK (todelete a shortcut, just click the eraser).

8.1.4 Page format

Page format pane allows you to set the default page format when creating a new drawingfrom scratch (this has no effect on drawings loaded from disk).

Page 51: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 9: Using and writing BeanShell scripts 46

9 Using and writing BeanShell scripts

jPicEdt now supports scripting (aka macros) through an embedded BeanShell interpreter.BeanShell is a lightweight, extensible and embedable scripting extension to Java, written byPat Niemeyer ([email protected]). It follows the Java grammar (though with higher tolerancetowards syntax errors; in particular it has weak typing capabilities), hence anyone havinga smattering of Java can write BeanShell scripts.

A comprehensive documentation about BeanShell can be found at: www.beanshell.org.Yet scrutinizing into the scripts shipped with jPicEdt is a good starting point. You willalso need jPicEdt’s API documentation (in case you haven’t installed it yet, you canreinstall it from jPicEdt’s installer), especially should you need to write scripts involvingcomplex operations. The jpicedt.JPicEdt class offers a variety of static methods (e.g.JPicEdt.newBoard()) that might fullfill basic needs. Other classes of importance are:

• jpicedt.ui.MDIManager for managing drawing-boards (creating a new board, movingit, cascading boards,. . . )

• jpicedt.ui.PEDrawingBoard and jpicedt.graphic.PECanvas (PEDrawingBoardcomprises a PECanvas and a PEScrollPane) for interacting with selected objects,zooming, performing I/O operations, or even fiddling about with the UndoManager:-), . . .

• jpicedt.graphic.model.Drawing for adding objects to a drawing-board;

• jpicedt.graphic.model.Element and concrete implementations (ellipses,rectangles,. . . ) for altering objects shape and attributes;

• jpicedt.graphic.view.View and concrete implementations (ellipses, rectangles,. . . )for changing how object LOOK on the screen (but not how they’re formatted to aLATEX string);

• jpicedt.graphic.toolkit.EditorKit for changing the way objects are edited withthe mouse (that is, either altering existing behaviours, or adding new ones).

• Classes in the jpicedt.format.* package, for interacting with content-types, i.e.changing the way objects are formatted to LATEX and/or TeX-file are parsed for agiven format (LATEX, eepic,. . . ).

All those classes are easily extensible, and can be plugged to each other (well, theso famous View-Model-Controller scheme, like. . . ). Besides, jpicedt.JPicEdt andjpicedt.graphic.toolkit.EditorKit contains a variety of Actions (implemented asstatic classes) that you can subclass, then add to your own graphical interface. Look atthe documentation in jpicedt.graphic.toolkit.PEAction to know what is an Actionand how you may use it into your own code.

For convenience, some useful variables and methods have been predefined, and are avail-able on start-up both in the BSH Console, and from scripts being run from the script-menu.These are:

• board(): return the currently selected PEDrawingBoard, or null if there’s no openboard;

• canvas(): return a reference to the active PECanvas, i.e. being hosted by the currentlyselected PEDrawingBoard;

Page 52: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 9: Using and writing BeanShell scripts 47

• drawing(): return a reference to the Drawing (aka MODEL) attached to the activePECanvas;

• editorkit(): return a reference to the EditorKit (aka CONTROLER) attached tothe active PECanvas;

• mdimgr: predefined variable referencing the current MDIManager.

• clipboard: predefined variable referencing the local clipboard shared across all drawingboards (as opposed to the system’s clipboard, which you can access from jPicEdt usingthe Paste Special menu item, yet which doesn’t accept anything else but text data);needed for copying and pasting things from/into a PECanvas.

• preferences: predefined variable referencing a Properties object holding user’s prefs.

9.1 OK, where do I put my scripts ?

User’s scripts must reside in the macros subdirectory of the user-settings directory (forinstance, /home/user/.jpicedt/macros on Unix). Scripts must have a .bsh extension.Names having underscores will have these replaced by white-spaces in the script-menu (e.g.Repeat_copy.bsh will show up as Repeat copy). You can call other scripts from insidea script by using the BSH source(path_to_other_script) command, and even add yourown classes by using the addClassPath() command.

Use the BSH console to test your script, then put them in the script-directory and they’llshow up!

Page 53: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 10: Useful links 48

10 Useful links

Links to similar tools :

• TpX

• TeXCAD

• JpgfDraw

Page 54: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 49

11 CeCILL free software license agreement

Notice

This Agreement is a free software license agreement that is the result of discussions betweenits authors in order to ensure compliance with the two main principles guiding its drafting:

• firstly, compliance with the principles governing the distribution of Free Software: acc-ess to source code, broad rights granted to users,

• secondly, the election of a governing law, French law, with which it is conformant, bothas regards the law of torts and intellectual property law, and the protection that itoffers to both authors and holders of the economic rights over software.

The authors of the CeCILL1 license are:

Commissariat a l’Energie Atomique — CEA, a public scientific, technical and industrialresearch establishment, having its principal place of business at 25 rue Leblanc, immeubleLe Ponant D, 75015 Paris, France.

Centre National de la Recherche Scientifique — CNRS, a public scientific and technolog-ical establishment, having its principal place of business at 3 rue Michel-Ange, 75794 Pariscedex 16, France.

Institut National de Recherche en Informatique et en Automatique — INRIA, a publicscientific and technological establishment, having its principal place of business at Domainede Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex, France.

Preamble

The Purpose of this free software license agreement is to grant users the right to modify andredistribute the software governed by this license within the framework of an open sourcedistribution model.

The exercising of these rights is conditional upon certain obligations for users so as topreserve this status for all subsequent redistributions.

In consideration of access to the source code and the rights to copy, modify and redis-tribute granted by the license, users are provided only with a limited warranty and thesoftware’s author, the holder of the economic rights, and the successive licensors only havelimited liability.

In this respect, the risks associated with loading, using, modifying and/or developingor reproducing the software by the user are brought to the user’s attention, given its FreeSoftware status, which may make it complicated to use, with the result that its use isreserved for developers and experienced professionals having in-depth computer knowledge.Users are therefore encouraged to load and test the suitability of the software as regardstheir requirements in conditions enabling the security of their systems and/or data to beensured and, more generally, to use and operate it in the same conditions of security. ThisAgreement may be freely reproduced and published, provided it is not altered, and that noprovisions are either added or removed herefrom.

This Agreement may apply to any or all software for which the holder of the economicrights decides to submit the use thereof to its provisions.

1 CeCILL stands for Ce(a) C(nrs) I(nria) L(ogiciel) L(ibre)

Page 55: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 50

Article 1 — Definitions

For the purpose of this Agreement, when the following expressions commence with a capitalletter, they shall have the following meaning:

Agreement:means this license agreement, and its possible subsequent versions and annexes.

Software:means the software in its Object Code and/or Source Code form and, where applicable, itsdocumentation, "as is" when the Licensee accepts the Agreement.

Initial Software:means the Software in its Source Code and possibly its Object Code form and, whereapplicable, its documentation, "as is" when it is first distributed under the terms andconditions of the Agreement.

Modified Software:means the Software modified by at least one Contribution.

Source Code:means all the Software’s instructions and program lines to which access is required so as tomodify the Software.

Object Code:means the binary files originating from the compilation of the Source Code.

Holder:means the holder(s) of the economic rights over the Initial Software.

Licensee:means the Software user(s) having accepted the Agreement.

Contributor:means a Licensee having made at least one Contribution.

Licensor:means the Holder, or any other individual or legal entity, who distributes the Software underthe Agreement.

Contribution:means any or all modifications, corrections, translations, adaptations and/or new functionsintegrated into the Software by any or all Contributors, as well as any or all InternalModules.

Module:means a set of sources files including their documentation that enables supplementary fun-ctions or services in addition to those offered by the Software.

External Module:means any or all Modules, not derived from the Software, so that this Module and theSoftware run in separate address spaces, with one calling the other when they are run.

Internal Module:means any or all Module, connected to the Software so that they both execute in the sameaddress space.

GNU GPL:means the GNU General Public License version 2 or any subsequent version, as publishedby the Free Software Foundation Inc.

Page 56: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 51

Parties:mean both the Licensee and the Licensor.

These expressions may be used both in singular and plural form.

Article 2 — Purpose

The purpose of the Agreement is the grant by the Licensor to the Licensee of a non-exclusive,transferable and worldwide license for the Software as set forth in Article [scope], page 51hereinafter for the whole term of the protection granted by the rights over said Software.

Article 3 — Acceptance

3.1

The Licensee shall be deemed as having accepted the terms and conditions of this Agreementupon the occurrence of the first of the following events:

• (i) loading the Software by any or all means, notably, by downloading from a remoteserver, or by loading from a physical medium;

• (ii) the first time the Licensee exercises any of the rights granted hereunder.

3.2

One copy of the Agreement, containing a notice relating to the characteristics of theSoftware, to the limited warranty, and to the fact that its use is restricted to experiencedusers has been provided to the Licensee prior to its acceptance as set forth in Article[accepting], page 51 hereinabove, and the Licensee hereby acknowledges that it has readand understood it.

Article 4 — Effective date and term

4.1 Effective date

The Agreement shall become effective on the date when it is accepted by the Licensee asset forth in Article [accepting], page 51.

4.2 Term

The Agreement shall remain in force for the entire legal term of protection of the economicrights over the Software.

Article 5 — Scope of rights granted

The Licensor hereby grants to the Licensee, who accepts, the following rights over theSoftware for any or all use, and for the term of the Agreement, on the basis of the termsand conditions set forth hereinafter.

Besides, if the Licensor owns or comes to own one or more patents protecting all orpart of the functions of the Software or of its components, the Licensor undertakes not toenforce the rights granted by these patents against successive Licensees using, exploiting ormodifying the Software. If these patents are transferred, the Licensor undertakes to havethe transferees subscribe to the obligations set forth in this paragraph.

Page 57: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 52

5.1 Right of use

The Licensee is authorized to use the Software, without any limitation as to its fields ofapplication, with it being hereinafter specified that this comprises:

1.

permanent or temporary reproduction of all or part of the Software by any or all meansand in any or all form.

2.

loading, displaying, running, or storing the Software on any or all medium.

3. entitlement to observe, study or test its operation so as to determine the ideas andprinciples behind any or all constituent elements of said Software. This shall applywhen the Licensee carries out any or all loading, displaying, running, transmission orstorage operation as regards the Software, that it is entitled to carry out hereunder.

5.2 Entitlement to make contributions

The right to make Contributions includes the right to translate, adapt, arrange, or makeany or all modifications to the Software, and the right to reproduce the resulting software.

The Licensee is authorized to make any or all Contributions to the Software providedthat it includes an explicit notice that it is the author of said Contribution and indicatesthe date of the creation thereof.

5.3 Right of distribution

In particular, the right of distribution includes the right to publish, transmit and commun-icate the Software to the general public on any or all medium, and by any or all means, andthe right to market, either in consideration of a fee, or free of charge, one or more copies ofthe Software by any means.

The Licensee is further authorized to distribute copies of the modified or unmodifiedSoftware to third parties according to the terms and conditions set forth hereinafter.

5.3.1 Distribution of software without modification

The Licensee is authorized to distribute true copies of the Software in Source Code orObject Code form, provided that said distribution complies with all the provisions of theAgreement and is accompanied by:

1. a copy of the Agreement,

2. a notice relating to the limitation of both the Licensor’s warranty and liability as setforth in Articles [cecill-art-8], page 54 and [cecill-art-9], page 55,

and that, in the event that only the Object Code of the Software is redistributed, theLicensee allows future Licensees unhindered access to the full Source Code of the Softwareby indicating how to access it, it being understood that the additional cost of acquiring theSource Code shall not exceed the cost of transferring the data.

5.3.2 Distribution of modified software

When the Licensee makes a Contribution to the Software, the terms and conditions for thedistribution of the resulting Modified Software become subject to all the provisions of thisAgreement.

Page 58: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 53

The Licensee is authorized to distribute the Modified Software, in source code or objectcode form, provided that said distribution complies with all the provisions of the Agreementand is accompanied by:

1. a copy of the Agreement,

2. a notice relating to the limitation of both the Licensor’s warranty and liability as setforth in Articles [cecill-art-8], page 54 and [cecill-art-9], page 55,

and that, in the event that only the object code of the Modified Software is redistributed,the Licensee allows future Licensees unhindered access to the full source code of the ModifiedSoftware by indicating how to access it, it being understood that the additional cost ofacquiring the source code shall not exceed the cost of transferring the data.

5.3.3 Distribution of external modules

When the Licensee has developed an External Module, the terms and conditions of thisAgreement do not apply to said External Module, that may be distributed under a separatelicense agreement.

5.3.4 Compatibility with the GNU GPL

The Licensee can include a code that is subject to the provisions of one of the versions ofthe GNU GPL in the Modified or unmodified Software, and distribute that entire code underthe terms of the same version of the GNU GPL.

The Licensee can include the Modified or unmodified Software in a code that is subjectto the provisions of one of the versions of the GNU GPL, and distribute that entire codeunder the terms of the same version of the GNU GPL.

Article 6 — Intellectual property

6.1 Over the initial software

The Holder owns the economic rights over the Initial Software. Any or all use of the InitialSoftware is subject to compliance with the terms and conditions under which the Holderhas elected to distribute its work and no one shall be entitled to modify the terms andconditions for the distribution of said Initial Software.

The Holder undertakes that the Initial Software will remain ruled at least by this Agreem-ent, for the duration set forth in Article [term], page 51.

6.2 Over the contributions

The Licensee who develops a Contribution is the owner of the intellectual property rightsover this Contribution as defined by applicable law.

6.3 Over the external modules

The Licensee who develops an External Module is the owner of the intellectual propertyrights over this External Module as defined by applicable law and is free to choose the typeof agreement that shall govern its distribution.

Page 59: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 54

6.4 Joint provisions

The Licensee expressly undertakes:

1. not to remove, or modify, in any manner, the intellectual property notices attached tothe Software;

2. to reproduce said notices, in an identical manner, in the copies of the Software modifiedor not.

The Licensee undertakes not to directly or indirectly infringe the intellectual propertyrights of the Holder and/or Contributors on the Software and to take, where applicable, vis-a-vis its staff, any and all measures required to ensure respect of said intellectual propertyrights of the Holder and/or Contributors.

Article 7 — Related services

7.1

Under no circumstances shall the Agreement oblige the Licensor to provide technicalassistance or maintenance services for the Software.

However, the Licensor is entitled to offer this type of services. The terms and conditionsof such technical assistance, and/or such maintenance, shall be set forth in a separateinstrument. Only the Licensor offering said maintenance and/or technical assistance servicesshall incur liability therefor.

7.2

Similarly, any Licensor is entitled to offer to its licensees, under its sole responsibility,a warranty, that shall only be binding upon itself, for the redistribution of the Softwareand/or the Modified Software, under terms and conditions that it is free to decide. Saidwarranty, and the financial terms and conditions of its application, shall be subject of aseparate instrument executed between the Licensor and the Licensee.

Article 8 — Liability

8.1

Subject to the provisions of Article [cecill-art-8.2], page 54, the Licensee shall be entitled toclaim compensation for any direct loss it may have suffered from the Software as a resultof a fault on the part of the relevant Licensor, subject to providing evidence thereof.

8.2

The Licensor’s liability is limited to the commitments made under this Agreement and shallnot be incurred as a result of in particular: (i) loss due the Licensee’s total or partial failureto fulfill its obligations, (ii) direct or consequential loss that is suffered by the Licenseedue to the use or performance of the Software, and (iii) more generally, any consequentialloss. In particular the Parties expressly agree that any or all pecuniary or business loss (i.e.loss of data, loss of profits, operating loss, loss of customers or orders, opportunity cost,any disturbance to business activities) or any or all legal proceedings instituted againstthe Licensee by a third party, shall constitute consequential loss and shall not provideentitlement to any or all compensation from the Licensor.

Page 60: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 55

Article 9 — Warranty

9.1

The Licensee acknowledges that the scientific and technical state-of-the-art when theSoftware was distributed did not enable all possible uses to be tested and verified, nor forthe presence of possible defects to be detected. In this respect, the Licensee’s attentionhas been drawn to the risks associated with loading, using, modifying and/or developingand reproducing the Software which are reserved for experienced users.

The Licensee shall be responsible for verifying, by any or all means, the suitability ofthe product for its requirements, its good working order, and for ensuring that it shall notcause damage to either persons or properties.

9.2

The Licensor hereby represents, in good faith, that it is entitled to grant all the rights overthe Software (including in particular the rights set forth in Article [scope], page 51).

9.3

The Licensee acknowledges that the Software is supplied "as is" by the Licensor withoutany other express or tacit warranty, other than that provided for in Article [good–faith],page 55 and, in particular, without any warranty as to its commercial value, its secured,safe, innovative or relevant nature.

Specifically, the Licensor does not warrant that the Software is free from any error, thatit will operate without interruption, that it will be compatible with the Licensee’s ownequipment and software configuration, nor that it will meet the Licensee’s requirements.

9.4

The Licensor does not either expressly or tacitly warrant that the Software does not in-fringe any third party intellectual property right relating to a patent, software or any otherproperty right. Therefore, the Licensor disclaims any and all liability towards the Licenseearising out of any or all proceedings for infringement that may be instituted in respect of theuse, modification and redistribution of the Software. Nevertheless, should such proceedingsbe instituted against the Licensee, the Licensor shall provide it with technical and legalassistance for its defense. Such technical and legal assistance shall be decided on a case-by-case basis between the relevant Licensor and the Licensee pursuant to a memorandum ofunderstanding. The Licensor disclaims any and all liability as regards the Licensee’s use ofthe name of the Software. No warranty is given as regards the existence of prior rights overthe name of the Software or as regards the existence of a trademark.

Article 10 — Termination

10.1

In the event of a breach by the Licensee of its obligations hereunder, the Licensor mayautomatically terminate this Agreement thirty (30) days after notice has been sent to theLicensee and has remained ineffective.

Page 61: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 56

10.2

A Licensee whose Agreement is terminated shall no longer be authorized to use, modify ordistribute the Software. However, any licenses that it may have granted prior to terminationof the Agreement shall remain valid subject to their having been granted in compliance withthe terms and conditions hereof.

Article 11 — Miscellaneous

11.1 Excusable events

Neither Party shall be liable for any or all delay, or failure to perform the Agreement, thatmay be attributable to an event of force majeure, an act of God or an outside cause, suchas defective functioning or interruptions of the electricity or telecommunications networks,network paralysis following a virus attack, intervention by government authorities, naturaldisasters, water damage, earthquakes, fire, explosions, strikes and labor unrest, war, etc.

11.2

Any failure by either Party, on one or more occasions, to invoke one or more of the provisionshereof, shall under no circumstances be interpreted as being a waiver by the interested Partyof its right to invoke said provision(s) subsequently.

11.3

The Agreement cancels and replaces any or all previous agreements, whether written ororal, between the Parties and having the same purpose, and constitutes the entirety of theagreement between said Parties concerning said purpose. No supplement or modification tothe terms and conditions hereof shall be effective as between the Parties unless it is madein writing and signed by their duly authorized representatives.

11.4

In the event that one or more of the provisions hereof were to conflict with a current orfuture applicable act or legislative text, said act or legislative text shall prevail, and theParties shall make the necessary amendments so as to comply with said act or legislativetext. All other provisions shall remain effective. Similarly, invalidity of a provision of theAgreement, for any reason whatsoever, shall not cause the Agreement as a whole to beinvalid.

11.5 Language

The Agreement is drafted in both French and English and both versions are deemedauthentic.

Article 12 — New versions of the agreement

12.1

Any person is authorized to duplicate and distribute copies of this Agreement.

Page 62: jPicEdt v1.6-pre1, user manualjpicedt.sourceforge.net/software/jpicedt-devel/manual/jpicedt-en/... · %%Created by jPicEdt 1.6-pre1: mixed JPIC-XML/LaTeX format %%Mon Feb 25 21:15:38

Chapter 11: CeCILL free software license agreement 57

12.2

So as to ensure coherence, the wording of this Agreement is protected and may only bemodified by the authors of the License, who reserve the right to periodically publish updatesor new versions of the Agreement, each with a separate number. These subsequent versionsmay address new issues encountered by Free Software.

12.3

Any Software distributed under a given version of the Agreement may only be subsequentlydistributed under the same version of the Agreement or a subsequent version, subject tothe provisions of Article [compatibility], page 53.

Article 13 — Governing law and jurisdiction

13.1

The Agreement is governed by French law. The Parties agree to endeavor to seek anamicable solution to any disagreements or disputes that may arise during the performanceof the Agreement.

13.2

Failing an amicable solution within two (2) months as from their occurrence, and unlessemergency proceedings are necessary, the disagreements or disputes shall be referred to theParis Courts having jurisdiction, by the more diligent Party.

Version 2.0 dated 2006-09-05.