Y a-t-il des différences de fonctionnalité en utilisant une convention à deux espaces vs un espace à la fin d'une phrase?


9

Q: Quelles sont les raisons pratiques sont là pas de jeu sentence-end-double-spaceà nil?

Un fil récemment relancé sur la reconnaissance des phrases qui ne se terminent pas en deux espaces a inspiré cette question.

Le noeud manuel Emacs sur les phrases note que les commandes de phrase supposent que nous utilisons la convention de la dactylographie américaine de mettre deux espaces à la fin d'une phrase (par opposition à, disons, la convention française d'un espace). Les arguments pour / contre la convention des deux espaces deviennent apparemment assez polémiques (par exemple, cette pièce en ardoise ).

Je ne me soucie pas particulièrement de l'apparence dans la mesure où je laisse LaTeX gérer ma définition de type, mais la convention à deux espaces est inscrite dans la mémoire musculaire. Cependant, lorsque je colle du texte dans un tampon Emacs à partir d'autres sources (pages Web, etc.), il est presque toujours dans la convention à un espace. C'est un peu ennuyeux dans un how-dare-ils-diffèrent-de-moi sorte de chemin, et je suis tenté de laisser sentence-end-double-spaceà niltraiter avec la réalité. Je ne l'ai jamais fait, cependant, car j'ai toujours supposé que quelque chose se briserait si je le faisais. Je n'ai tout simplement aucune base solide pour cette hypothèse.

Donc: y at - il des conséquences pratiques en termes de perte de fonctionnalité pour la mise sentence-end-double-spaceà nil? Le seul changement significatif auquel je peux penser est que les fonctions de remplissage transformeront la convention à deux espaces en convention à un espace.


2
J'adore cette question, je comprends parfaitement ce que vous ressentez ...
mbork

Même l'article de Slate que vous citez affirme qu'en type monospace, une convention à double espace peut aider à identifier la fin des phrases.
alexurba

Réponses:


9

La seule conséquence que je vois, c'est la capacité de reconnaître les périodes d'abréviations.

Comme indiqué par gnu.org :

Si vous souhaitez utiliser un seul espace entre les phrases, vous pouvez définir la variable sentence-end-double-spacesur nil pour arrêter les commandes de phrase pour les espaces simples. Cependant, cela a un inconvénient: il n'y a aucun moyen de faire la distinction entre les périodes qui terminent des phrases et celles qui indiquent des abréviations .

Pour une édition pratique et fiable, nous vous recommandons donc de suivre la convention des deux espaces. La variable sentence-end-double-spaceaffecte également le remplissage .

Je n'ai jamais utilisé la convention à deux espaces, je pense, cela dépend de la façon dont vous éditez.


3

Ce n'est pas vraiment une réponse à la question posée ("qu'est-ce que je perds si je me mets sentence-end-double-spaceà nil"), mais plutôt quelque chose comme la troisième voie ;-). (En outre, il s'agit d'une copie (partielle) d'un article que je viens d'écrire sur mon blog ; si cela est inapproprié, quelqu'un doit le supprimer, mais j'espère que cela pourrait être utile.)

Donc, fondamentalement, pourquoi voulez-vous perdre quelque chose en mettant quelque chose contre votre goût? C'est Emacs, après tout!

(defvar sentence-end-double-space-threshold 2
  "How many occurrences of \".  \" per kilobyte should be enough
  to declare this file as using two spaces after sentences.")

(defun set-sentence-end-double-space ()
  "Set `sentence-end-double-space' according to how often the
  literal string \".  \" occurs in the current buffer."
  (make-local-variable 'sentence-end-double-space)
  (if (>= (* (count-matches "\\.  ") 1024)
      (* (buffer-size) sentence-end-double-space-threshold))
      (setq sentence-end-double-space t)
    (setq sentence-end-double-space nil)))

(add-hook 'find-file-hook 'set-sentence-end-double-space)     

Désormais, lorsque vous ouvrez un fichier, Emacs décide (en utilisant la valeur très conservatrice de sentence-end-double-space-threshold, que vous pouvez utiliser setqselon vos envies) de quel style il s'agit. (Évidemment, cela n'aide pas en cas de collage à partir du navigateur ou autre. Cela pourrait être fait, en conseillant yanket - si nécessaire - en remplaçant les espaces dans le texte tiré si nécessaire, mais bon, je n'avais que 15 minutes pour ça!)

PS. Bien sûr, il ne prend pas en compte les périodes aux EOL, etc.; mais encore une fois, le seuil est très bas.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.