Depuis la version SL de Calamus, il est possible d'ancrer un cadre dans du texte. Cette option, très puissante, permet à presque n'importe quoi de se comporter comme un espèce de caractère géant, qui suit tous les déplacements du texte. Le but de cette page est, après avoir rappelé comment se réalise l'ancrage (et son contraire), de présenter quelques méthodes pour obtenir des résultats divers grâce à cette option.

L'a b c de l'ancrage

L'ancrage se fait à l'aide de quatre icônes du module texte, ces quatre icônes possédant une ancre dans leur dessin. Une cinquième icône permet de modifier quelques paramètres associés à l'ancrage.

Comment ancrer un cadre ?

Pour ancrer un cadre, la méthode universelle est la suivante :

  1. Passer en mode texte
  2. Placer le curseur texte là où vous désirez ancrer un cadre
  3. Cliquer sur l'icône « ancrer un cadre » (soit directement - ancre + ciseaux -, soit en gardant une copie sur la page - ancre + appareil photo)
  4. Cliquer sur le (ou les) cadre à ancrer
  5. Cliquer de nouveau sur l'icône choisie. en

Il faut bien noter que n'importe quel cadre peut être ancré : images, dessins vectoriels, groupes de cadre (contenant par exemple un schéma et ses légendes),... y compris des textes contenant déjà des cadres ancrés.

Depuis la version SL98 de Calamus, il est possible d'ancrer un cadre depuis le presse-papier : il suffit de placer le cadre à ancrer dans le presse-papier, puis de passer en mode texte, de placer le curseur à l'endroit désiré et de demander à inclure le contenu du presse-papier.

Comportement d'un cadre ancré

Après ces opérations, le cadre choisi est devenu partie intégrante du texte. Tout se passe comme si le cadre ancré était devenu un caractère, un peu particulier puisqu'il représente tout et n'importe quoi, qu'il est insensible à tous les attributs de texte (taille, fonte,...) et que sa taille est tout à fait quelconque. Ce caractère est parfaitement rectangulaire ; suivant les cas, la base ou le sommet de ce rectangle est aligné sur la ligne de base du texte, conduisant à un interligne beaucoup plus important entre la ligne précédente et la ligne contenant l'ancrage (base du rectangle alignée sur la ligne de base) ou entre la ligne de l'ancrage et la ligne suivante (sommet du rectangle aligné sur la ligne de base).

Comme le cadre ancré est un caractère, il doit absolument tenir dans le cadre prévu pour recevoir le texte. S'il est trop large, l'affichage du texte s'arrête à la ligne précédent l'ancrage  s'il est trop haut pour tenir dans la fin du cadre, il est rejeté dans le cadre suivant du chaînage.

Soyez prudents lors des modifications du texte contenant un ancrage : il est très facile d'effacer malencontreusement un cadre ancré en appuyant une fois de trop sur les touches d'effacement, et il n'y a pas de recours possible...

En tant que « caractère », un cadre ancré peut très bien faire partie d'une macro de texte, y compris dans les fichiers de macros. La seule limitation introduite par les ancrages vient de PKS-Write, qui ne peut pas éditer un texte contenant des cadres ancrés (même si on veut se limiter à une région qui n'en contient pas) ; Eddie en revanche en est tout à fait capable.

Modifier les paramètres d'un cadre ancré

Chaque cadre ancré est caractérisé par sa direction (partie du rectangle qui est alignée sur la ligne de base), sa taille (initialement, celle du cadre ancré) et un nom. Ces paramètres peuvent être modifiés en plaçant le curseur juste avant l'ancrage et en cliquant sur l'icône représentant une ancre et une boîte de dialogue.

Attention, l'algorithme utilisé pour prendre en compte le changement de taille n'est pas très intuitif : l'opération est surtout intéressante pour changer légèrement la taille d'un cadre qui avait déjà presque les bonnes dimensions. De plus, le contenu du cadre est toujours mis à l'échelle, même dans le cas de textes.

Si vous travaillez avec Eddie et comptez utiliser les fonctions de recherche et remplacement sur les cadres ancrés, il est souvent utile de donner un noms aux cadres. En effet, Eddie ne connaît des cadres ancrés que leur nom, leur orientation et leurs dimensions. Deux cadres ancrés qui seraient sans nom et ne diffèreraient que par leur contenu différent ne seraient donc pas distingués.

Modifier le contenu d'un cadre ancré

Une fois le cadre ancré, il est impossible d'en modifier le contenu directement. Il faut d'abord le désancrer, ce qui le replace sur la page et le transforme en cadre habituel.

La façon la plus simple de procéder est de demander une copie virtuelle du cadre ancré sur la page, en cliquant sur l'icône réprésentant une ancre, un tube de colle et un appareil photo après avoir placé le curseur texte juste avant le cadre concerné. Une copie virtuelle du cadre ancré est alors placée sur la page (attention, sa position est celle du cadre avant ancrage, elle peut donc parfois être assez éloignée de la position actuelle de l'ancrage si le texte a été modifié entre temps) ; toute modification au contenu de cette copie sera répercutée au cadre ancré. Attention, lorsque l'on réalise une copie d'un ancrage dans Eddie, cette copie est toujours virtuelle. Tous les ancrages ainsi créés seront donc modifiés simultanément.

Si les modifications doivent s'accompagner d'une modification des tailles des cadres constituant l'ancrage (texte allongé, par exemple), la méthode ci-dessus n'est plus valable puisque les changements de dimension ne sont pas pris en compte par les copies virtuelles. Il est alors nécessaire de réancrer les cadres modifiés et d'éliminer les anciens ancrages.

Ancrages sur une ligne réservée

Ces exemples d'utilisation correspondent aux utilisations les plus simples des ancrages. En effet, lorsque l'ancrage se trouve sur une ligne qui ne contient que lui (il est alors généralement centré), il n'est pas nécessaire de se préoccuper des interlignes par rapport aux lignes précédentes et suivantes, ni de sa position verticale par rapport au texte.

De façon générale, dans ces cas-là, il faut insérer une ligne vide dans le texte à chaque endroit où un ancrage doit être inséré.

Un seul ancrage, centré

C'est l'exemple type. Une utilisation fréquente est l'insertion d'une formule mathématique un peu complexe ; l'ancrage est généralement introduit par une phrase du type « comme le montre la figure suivante : ».

La réalisation est assez aisée : dans le texte, laisser une ligne vide après la phrase d'introduction et appliquer une réglette centrée à cette ligne. Il suffit ensuite d'ancrer le cadre contenant la formule ou l'image dans cette ligne vide.

Deux ou plusieurs ancrages sur la même ligne, également répartis

image 1 image 2

C'est un peu raté ci-dessus, il faut imaginer que ces deux images sont équitablement réparties sur la largeur de votre écran.

La réalisation est un peu plus complexe. Le but est d'avoir deux (ou plus) images sur la même ligne, espacées de telle sorte qu'elles semblent harmonieusement disposées sur la largeur du texte (soit, dans le cas de deux images A et B et si _ représente un tiers de l'espace disponible sur la ligne une fois A et B insérées, une répartition de la forme _A_B_).

La façon la plus simple est de profiter des possibilités de justification de Calamus. Pour cela, il faut indiquer que la ligne contenant les ancrages doit être justifiée, elle doit donc se terminer par une fin de ligne (et non de paragraphe - le symbole dans Eddie est une flèche vers le bas). Toutefois, terminer par une fin de ligne gêne généralement la reprise de la mise en page normale du texte ensuite : il est donc nécessaire d'insérer une seconde ligne vide, terminée par une fin de paragraphe cette fois (le symbole dans Eddie est une flèche similaire à celle de la touche

Entrée
du clavier). Pour qu'il n'apparaisse pas de blanc dans le texte final, la première ligne doit être de hauteur nulle : on utilise donc une réglette avec un interligne absolu nul.

En résumé, le texte à entrer est le suivant :

(fin du texte avant les images)
[R1] [Ancrage 1] [Ancrage 2] 
[R2]
(reprise du texte normal)

où [R1] est une réglette justifiée, avec un interlignage absolu nul, et [R2] la réglette normale du texte. N'oubliez pas les espaces entre les ancrages, ainsi qu'aux deux extrémités de la ligne, ce sont eux qui permettent la justification de la ligne donc le positionnement équilibré des ancrages.

Le résultat ainsi obtenu n'est pas nécessairement parfait, surtout si les deux ancrages ont des hauteurs différentes : il faut remonter le plus petit des deux pour que les médiatrices soient alignées. Pour cela, la méthode la plus simple est d'utiliser les approches manuelles : comme les cadres ancrés sont des caractères, ils sont affectés par les approches manuelles.

Ancrages entourés de texte

Ancrage sur une ligne de texte, sans modification d'interligne

Ce cas se présente, par exemple, quand vous utilisez un ancrage pour représenter un caractère spécial (symbole mathématique rare, racine carrée - voir la page de mathématiques -, mais aussi logo,...). Même si l'ancrage est en réalité plus haut que l'interligne, il ne doit pas y avoir de modification de l'interligne, ce que provoque cependant l'insertion du cadre ancré.

Pour pallier ce problème, la seule solution est de travailler avec des interlignes absolus et des ancrages dirigés vers le bas : dans ce cas, la hauteur de l'interligne n'est jamais modifiée par l'insertion d'un cadre ancré (ni, d'ailleurs, par des changements de taille de la fonte). Attention cependant à bien vérifier qu'il n'y a pas de chevauchements des lignes de texte.

Ancrage sur une ligne de texte, avec interligne modifié

Cette jolie fleur de dahlia, , occupe un milieu de ligne... Ce qui oblige l'interligne a être modifié, pour que l'image tienne sans chevaucher le texte. Ici, il est aligné sur le bas du texte, comme le fait Calamus par défaut (l'autre possibilité simple étant l'alignement vers le haut).

Ce cas se présente, par exemple, dans une phrase du genre « On aboutit ainsi à l'expression y = (ax + b) / (cx + d), équation générale d'une fonction homographique », la fraction devant être composée comme une vraie fraction. Le plus simple est de créer deux cadres textes pour le numérateur et le dénominateur, un cadre ligne pour le trait de fraction et d'ancrer le groupe contenant ces trois cadres. Cependant, quelle que soit la direction donnée à l'ancrage, le trait de fraction ne sera pas placé correctement.

Pour obtenir le bon résultat, il est nécessaire de déplacer verticalement l'ancrage, grâce aux codes d'approche manuelle. Toutefois, une fois ces corrections faites, les interlignes autour de la ligne contenant l'ancrage sont incorrects. Il faut donc insérer des réglettes avant et après l'ancrage, de façon à indiquer les interlignes adéquats.

La difficulté vient de la façon dont Calamus gère les réglettes : si le code de réglette n'est pas en début de ligne, le changement de réglette s'applique à partir de la ligne suivante uniquement. Il faut donc placer un code de réglette au début de la ligne précédent l'ancrage (correction de l'interligne avant l'ancrage) et non juste avant l'ancrage ; pour la correction de l'interligne après l'ancrage, il faut pour la même raison placer la réglette au début de la ligne contenant l'ancrage (ou vers le milieu de la ligne précédente, pour diminuer les risques d'introduction d'erreur en modifiant le texte autour de l'ancrage). Il faut enfin placer une troisième réglette, indiquant le retour à la normale ; cette réglette peut être placée juste après l'ancrage (ou au début de la ligne suivant l'ancrage).

De façon générale, la correction des interlignes devra passer par l'utilisation d'interlignes absolus (ou d'interlignes relatifs négatifs).

Ancrage sur plusieurs lignes de texte

Ceci est un exemple de ce que pourrait donner un ancrage occupant plusieurs lignes de texte. Le texte est sur le côté de l'ancrage, tant que l'ancrage existe, il redevient normal après.

Ce type d'ancrage permet, par exemple, de placer un filet en regard d'un paragraphe, le filet se déplaçant quand le paragraphe est modifié.

La façon la plus simple de procéder est de créer une ligne vide, de hauteur nulle (interlignage absolu, interligne et blanc entre paragraphes nuls), contenant l'ancrage correspondant au filet (ou à l'image), juste avant le paragraphe concerné. L'ancrage doit absolument être dirigé vers le bas ; la taille verticale de l'ancrage doit être modifiée pour correspondre à la taille du paragraphe ; attention à la mise en page du paragraphe à côté du filet (de l'image) pour qu'il n'y ait pas de chevauchement avec le filet. Il est tout à fait possible de placer le filet dans la marge, en-dehors du cadre texte, en utilisant des codes d'approche manuelle horizontale négatifs.

Il faut bien noter que cette méthode ne permet pas de définir automatiquement la hauteur du filet en fonction de la taille du paragraphe - ou, réciproquement, de savoir automatiquement quand revenir à la mise en page normale à la fin de l'image - donc, en cas de modification importante du texte après l'ancrage, il peut être nécessaire de corriger manuellement la mise en page. De plus, cette méthode n'est pas utilisable pour faire des filets à cheval sur deux cadres textes (sur deux pages, par exemple) : l'ancrage étant un caractère, il doit obligatoirement tenir verticalement dans le cadre texte.

Cette méthode reste cependant très pratique pour faire des mises en page de ce genre, en particulier grâce aux possibilités d'automatisation de mise en place du filet (grâce aux macros texte). Elle est généralisable à des cas plus complexes, par exemple (très utilisé dans le livre Architecture de la matière) :

-> |    Attention ! - suit une remarque sur 2 ou 3 lignes, qui est précédée
   | d'une main sur la première ligne et d'un filet vertical sur toute la
   | hauteur de la remarque. La main (une flèche ici) est du texte normal, 
   | le filet est un cadre ligne ancré, le texte continue après.

J'espère que ces quelques idées d'utilisation des ancrages vous rendront service ; si vous avez d'autres astuces à ce sujet, elles sont les bienvenues : envoyez-moi un petit courrier.