gratifiant > comp.* > comp.text.tex

François Patte (16/08/2015, 11h44)
Bonjour,

Je me demande s'il est possible d'utiliser (de manière automatique) un
certain type de fontes chaque fois qu'une partie de texte se trouve
placée entre des crochets:

par exemple: texte normal [ texte en fontes spéciales ] texte normal

Merci
Le TeXnicien de surface (16/08/2015, 12h01)
Le dimanche 16 août 2015, François Patte a écrit :

> Bonjour, Bonjour


> Je me demande s'il est possible d'utiliser (de manière automatique) un
> certain type de fontes chaque fois qu'une partie de texte se trouve
> placée entre des crochets:


> par exemple: texte normal [ texte en fontes spéciales ] texte normal


y'a moyen, on pourrait rendre le crochet ouvrant actif et le définir
comme il faut mais le jeu en vaut-il la chandelle ?

> Merci


de rien
Le TeXnicien de surface (16/08/2015, 12h17)
Le dimanche 16 août 2015, Le TeXnicien de surface a écrit :

> Le dimanche 16 août 2015, François Patte a écrit :
> y'a moyen, on pourrait rendre le crochet ouvrant actif et le définir
> comme il faut mais le jeu en vaut-il la chandelle ?


voici un premier jet, faudra voir ce qu'en disent les TeXpert(e)s

%><------------------------------------------------------------------------
% Time-stamp: <2015-08-16 12:13:17 novatux>
% Création : 2015-08-16T12:04:30+0200
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{xspace}
\usepackage{lmodern}
\usepackage[main=french]{babel}
\usepackage[np,autolanguage]{numprint}

\let\moncrochetouvrant=[
\catcode`\[=13
\def[#1]{\moncrochetouvrant\textbf{#1}]}

\begin{document}

Un essai [pour voir] du bazar.

\end{document}

%%% Local Variables:
%%% coding: utf-8
%%% mode: latex
%%% TeX-master: t
%%% End:
%><-----------------------------------------------------------------------

j'ai remis le crochet dans le ``résultat'' de la macro mais, bien
entendu, on n'est pas obligé de.

jeqça
Jean-Côme Charpentier (16/08/2015, 16h55)
Le 16/08/2015 12:17, Le TeXnicien de surface a écrit :
> Le dimanche 16 août 2015, Le TeXnicien de surface a écrit :


Définitivement non ! Amha...

> voici un premier jet, faudra voir ce qu'en disent les TeXpert(e)s


\documentclass{article}

\let\moncrochetouvrant=[
\catcode`\[=13
\def[#1]{\moncrochetouvrant\textbf{#1}]}

\begin{document}

Un essai [pour voir] du bazar.
\begin{description}
\item[warning] Attention aux apprentis sorciers :-)
\end{description}
%\begin{minipage}[t]{1cm}
% bloup
%\end{minipage}
\end{document}

Maintenant, on peut prendre quelque chose de moins risqué que le
crochet mais, de façon fondamentale, rendre un caractère actif de façon
global c'est quand même jouer un peu avec le feu. Il n'y a que ~ (tilde)
qui ait ce droit parce que tout le monde sait que c'est un caractère
actif donc qu'il ne faut pas l'utiliser pour n'importe quoi.
Je sais que certains utilisent les guillemets «» pour construire
automatiquement le résultat de \og et \fg. À la limite, je prendrais
plus ces caractères comme délimiteurs (en plus c'est plutôt logique) et
pour les guillemets, il faudra faire comme tout le monde et utiliser \og
et \fg :-)

Jean-Côme Charpentier
bernard.alfonsi (17/08/2015, 00h22)
Le dimanche 16 août 2015 16:55:15 UTC+2, Jean-Côme Charpentier a écrit :
Je sais que certains utilisent les guillemets «» pour construire
> automatiquement le résultat de \og et \fg. À la limite, je prendrais
> plus ces caractères comme délimiteurs (en plus c'est plutôt logique) et
> pour les guillemets, il faudra faire comme tout le monde et utiliser \og
> et \fg :-)


Faire comme tout le monde ? C'est une des anomalies du monde TeX que pendant longtemps on n'ait pas pu entrer directement des guillemets, comme dans n'importe que logiciel, et il faudrait revenir au temps des dinosaures ? Etpourquoi pas écrire \`{e] et compagnie tant qu'on y est ?

Bernard
Daniel Flipo (17/08/2015, 11h38)
Le 17/08/2015 00:22, bernard.alfonsi a écrit :
> Le dimanche 16 août 2015 16:55:15 UTC+2, Jean-Côme Charpentier a écrit :
> Je sais que certains utilisent les guillemets «» pour construire
> Faire comme tout le monde ? C'est une des anomalies du monde TeX que pendant longtemps on n'ait pas pu entrer directement des guillemets, comme dans n'importe que logiciel, et il faudrait revenir au temps des dinosaures ? Et pourquoi pas écrire \`{e] et compagnie tant qu'on y est ?


Bonjour,

Je partage l'aversion de Jean-Côme pour les caractères actifs, je
proposerais plutôt une commande du genre
\newcommand\crochets[1]{[textbf{#1}]}

En ce qui concerne les guillemets chevrons, je ferais remarquer qu'avec
frenchb, ils ne sont plus actifs avec les moteurs modernes que sont
luatex et xetex, on a donc le beurre et l'argent du beurre.

Avec pdflatex, il faut choisir entre les chevrons actifs pour le confort
et les commandes \og et \fg pour la sécurité.
Jean-Côme Charpentier (18/08/2015, 13h21)
Le 17/08/2015 00:22, bernard.alfonsi a écrit :
> Le dimanche 16 août 2015 16:55:15 UTC+2, Jean-Côme Charpentier a écrit :
> Je sais que certains utilisent les guillemets «» pour construire
> Faire comme tout le monde ? C'est une des anomalies du monde TeX que
> pendant longtemps on n'ait pas pu entrer directement des guillemets,
> comme dans n'importe que logiciel, et il faudrait revenir au temps
> des dinosaures ? Et pourquoi pas écrire \`{e] et compagnie tant qu'on
> y est ?


Bon. D'abord, il y avait un smiley mais ce n'est pas grave. Ensuite,
j'indiquais surtout que l'emploi des crochets en tant que caractère
actif était à proscrire absolument : Murphy n'a même pas besoin de s'en
mêler, cela merdera forcément à un moment donné. Pour terminer, je ne
peux pas mettre l'emploi du \'{e} (plut\^ot \'e tant qu'\`a faire) au
même niveau que celui du \og \fg. Lors de mon premier mois d'utilisation
de (La)TeX, ce que je croyais être une obligation quant à la frappe des
\'e à la place de é a failli me faire abandonner prématurément
l'exploration de (La)TeX. Honnêtement, l'obligation d'utiliser \og et
\fg m'a à peine fait lever un sourcil : la fréquence d'utilisation est
sans commune mesure. À la limite, j'aimerais plus la possibilité
d'utiliser l'alphabet grec de façon directe avec un bon mappage du
clavier (ou deux claviers en parallèle ce serait mieux). Je suis certain
que j'utilise plus souvent le \alpha que le \og\fg. Ou, comme Knuth,
avoir un clavier avec certains symboles mathématico-logiques prêts à
l'emploi (\exists, \forall, \iff, et tout le tremblement).
Quant au « n'importe quel logiciel », il y a comme une certaine
triche : effectivement, on peut les entrer mais il faut prendre soi-même
la précaution de mettre des espaces insécables (quand ils ne les mettent
pas automatiquement) et on abandonne définitivement la prétention à des
espaces autres que la bête espace justifiante (insécable). Dans ces
conditions, pas de problème, je peux aussi employer directement les
guillemets avec LaTeX : ce seront des caractères comme les autres et ce
sera bien dommage.

Pour revenir dans le fil d'origine, le problème fondamental était de
se choisir des caractères qu'on allait rendre actifs. Tous les
caractères ayant un rôle syntaxique sont à exclure (point, virgule,
ponctuation de façon générale, caractères spéciaux de TeX (plain et
successeurs), parenthèses, crochets, opérateurs mathématiques simples,
et j'en oublie). Que reste-t-il qui soit en plus accessible au clavier ?
Pas grand chose : les guillemets pour qui ne les utilise pas, le pipe
(|), les caractères bizarres employés certes, mais sans doute par assez
peu de monde dans assez peu de documents (£, µ, §, @) le dernier de
cette liste n'ayant aucune signification particulière dans les zones
publiques (normalement). Chacun pourra compléter la liste comme il
l'entendra.

Comme Daniel l'a souligné, je suis en train de me faire l'avocat du
diable : jamais je n'emploierai une telle solution pour mes documents.
D'abord les caractères actifs sont des bombes à retardement ensuite
j'aime bien comprendre mon source et \crochet{...} ou, mieux,
\important{} ou \ATTENTION{...} me parle bien plus que [...] qui a une
myriade d'utilisations différentes.

Jean-Côme Charpentier
Daniel Flipo (18/08/2015, 20h05)
Le 18/08/2015 13:21, Jean-Côme Charpentier a écrit :
> Le 17/08/2015 00:22, bernard.alfonsi a écrit :
> Bon. D'abord, il y avait un smiley mais ce n'est pas grave. Ensuite,
> j'indiquais surtout que l'emploi des crochets en tant que caractère
> actif était à proscrire absolument : Murphy n'a même pas besoin de s'en
> mêler, cela merdera forcément à un moment donné.


Et faut pas chercher loin : $I=]a,b[$ suffit à planter la chose puisque
le crochet fermant attendu ne vient pas?
Lucas Levrel (18/08/2015, 21h33)
Le 18 août 2015, Jean-Côme Charpentier a écrit :
> j'aimerais plus la possibilité d'utiliser l'alphabet grec de façon directe
> avec un bon mappage du clavier (ou deux claviers en parallèle ce serait
> mieux). Je suis certain que j'utilise plus souvent le \alpha que le \og\fg.
> Ou, comme Knuth, avoir un clavier avec certains symboles mathématico-logiques
> prêts à l'emploi (\exists, \forall, \iff, et tout le tremblement).


Je m'y suis mis il y a quelques années. Côté LaTeX c'est avec
[utf8x]{inputenc}, facile. Côté clavier j'ai pas mal galéré pour trouver
comment faire proprement sous Linux, mais maintenant j'ai le grec sur
AltGr(+Maj)+lettres : ??????????. J'ai aussi associé quelques symboles
mathématiques ou physiques dans les places qui restaient libres :
???...

Si ça t'intéresse mon adresse est valide, si ça en intéresse plusieurs je
poste ici...
François Patte (18/08/2015, 22h23)
Le 18/08/2015 21:33, Lucas Levrel a écrit :
> Le 18 août 2015, Jean-Côme Charpentier a écrit :
> Je m'y suis mis il y a quelques années. Côté LaTeX c'est avec
> [utf8x]{inputenc}, facile.


Il y a aussi la solution xe(la)tex

> Côté clavier j'ai pas mal galéré pour trouver
> comment faire proprement sous Linux, mais maintenant j'ai le grec sur
> AltGr(+Maj)+lettres : ??????????. J'ai aussi associé quelques symboles
> mathématiques ou physiques dans les places qui restaient libres : ???...


Sous linux, ibus permet énormément de choses question saisie des
écritures "baroques"

? ? ? ? ? ?????

??????
François Patte (24/08/2015, 14h39)
Le 18/08/2015 20:05, Daniel Flipo a écrit :
> Le 18/08/2015 13:21, Jean-Côme Charpentier a écrit :
> Et faut pas chercher loin : $I=]a,b[$ suffit à planter la chose puisque
> le crochet fermant attendu ne vient pas?


Bon, je reviens sur le sujet. Je me doutais qu'il y aurait beaucoup
d'objections.... Mon but n'est pas de me servir de ça dans un texte
quelconque, mais de l'appliquer à des cas particuliers. Je récupère des
bouts de textes tout tapés à partir d'un dictionnaire au format dict que
j'appelle dans emacs avec dict-server, ce qui est assez pratique. Le
problème c'est que ce dico utilise une translittération obsolète assez
pénible à lire mais qui est placée entre crochets; exemple:

---> [ -kAla-nirNay^adhikAra ] m. [ -devatApUjA-vidhi ] m. N. of
wks.

Je ne peux donc pas changer les crochets en autre chose (à moins de
constructions extérieures à latex). Mon idée est de mettre cette
"propriété" des crochets dans un environnement d'où elle ne sortirait
pas.... Mais j'essaie, sans succès d'adapter la construction indiquée:

<-------------------------------------------------------
\documentclass{article}
\usepackage{fontspec}

\setmainfont{%
FreeSerif%
}%

\newenvironment{vocabulaire}{%
\let\moncrochetouvrant=[
\catcode`\[=13
\def[##1]{\moncrochetouvrant\textbf{##1}]}
}%
{}

\begin{document}

Un essai [pour voir] du bazar.

\begin{vocabulaire}

toto [tata]
\end{vocabulaire}

\end{document}
<----------------------------------------------------

Et là ça coince:

! Undefined control sequence.
l.40 toto [
tata]

Je ne sais pas faire! C'est le moins qu'on puisse dire. Est-ce possible?

PS. En ce qui concerne la transformation de la translittération, xelatex
possède tout ce qui faut avec teckit...

Merci pour toute aide au cas où mon cas ne serait pas désespéré.
Jean-Côme Charpentier (24/08/2015, 17h23)
Le 24/08/2015 14:39, François Patte a écrit :
[..]
> \let\moncrochetouvrant=[
> \catcode`\[=13
> \def[##1]{\moncrochetouvrant\textbf{##1}]}


Cela ne peut pas marcher car au moment où on essaie de définir [
celui-ci n'a pas son catcode à 13 (le fait de l'écrire avant ne suffit
pas ici car lorsque (X)(e)TeX lit la définition d'une commande (ou d'un
environnement), il lit des unités lexicales *et* leur catcode. Or, au
moment de la lecture, le [ qui suit \def a un catcode égal à 12
(\catcode`\[=13 a été lu mais n'a pas été exécuté) et la première erreur
n'est pas un ! Undefined control sequence sur la macro [ mais un !
Missing control sequence inserted sur la tentative de définition du crochet.
En plus, cela tombe plutôt bien que ce ne soit pas la bonne manière
sinon, à chaque appel de l'environnement vocabulaire, il y aurait des
redéfinitions de macros (\moncrochetouvrant et [) : c'est gâcher :-) !
En fait, la seule chose que doit faire l'environnement vocabulaire,
c'est d'activer le caractère [. Sa définition doit se faire à
l'extérieur (c'est plus simple et beaucoup plus économique).

\documentclass{article}
\usepackage{fontspec}

\setmainfont{%
FreeSerif%
}%

\let\moncrochetouvrant=[
\begingroup
\catcode`\[=13
% ici, au moment ou le \def est lu, [ a effectivement
% un catcode égal à 13
\gdef[#1]{\moncrochetouvrant\textbf{#1}]}
\endgroup

\newenvironment{vocabulaire}{%
\catcode`\[=13
}
{}
\begin{document}

Un essai [pour voir] du bazar.

\begin{vocabulaire}

toto [tata]
\end{vocabulaire}

\end{document}

> Merci pour toute aide au cas où mon cas ne serait pas désespéré.


C'est rarement désespéré avec TeX (encore moins avec XeTeX ;-) ?)

Jean-Côme Charpentier
François Patte (25/08/2015, 10h50)
Le 24/08/2015 17:23, Jean-Côme Charpentier a écrit :
[..]
> toto [tata]
> \end{vocabulaire}
> \end{document}


Merci! Je vais essayer d'en faire mes choux gras!
Discussions similaires