Automatiquement en majuscule la première lettre du premier mot d'une phrase au LaTeX
Je sais que l'un de LaTeX est de la vantardise points, c'est qu'il ne dispose pas de cette Microsoftish comportement. Néanmoins, il est parfois utile.
LaTeX déjà ajoute un espace supplémentaire après que vous tapez un (non-backslashed), il devrait donc être possible de le faire automatiquement en majuscule la lettre suivante.
Est-il un moyen évident d'écrire une macro qui fait cela, ou est-il un paquet LaTeX qui fait déjà?
vous voulez vous tex fichiers avec de petites lettres? pourquoi?
parce que souvent, je suis trop paresseux pour le type de bouchons.
l'endroit pour avoir votre paresse est livré dans votre éditeur de texte, je pense.
j'ai demandé à ce sujet. peut-être que je devrais laisser emacs prendre soin de cela pour moi...
parce que souvent, je suis trop paresseux pour le type de bouchons.
l'endroit pour avoir votre paresse est livré dans votre éditeur de texte, je pense.
j'ai demandé à ce sujet. peut-être que je devrais laisser emacs prendre soin de cela pour moi...
OriginalL'auteur memius | 2010-05-12
Vous devez vous connecter pour publier un commentaire.
Le code suivant permet de résoudre le problème.
\let\period.
enregistrer période\catcode\.\active
faire toutes les périodes à être actif symbole (comme macro).\def\uppercasesingleletter#1{\uppercase{#1}}
définit macro\uppercasesingleletter
faire automatiquement en majuscule la lettre suivante.\def.{\period\afterassignment\periodx\let\next= }
écrit enregistré période et checkes le prochain symbole.\def \periodx{\ifcat\space\next \next\expandafter\uppercasesingleletter \else\expandafter\next\fi}
Si la lettre suivante est un espace puis\uppercasesingleletter
est inséré.pourriez-vous ajouter quelques commentaires dans votre code, s'il vous plaît 🙂
Il vous manque un
\let\period=.
avant le catcode, je pense. Ce type de jeton munging fonctionnera seulement si vous êtes bien sages au sujet de la façon dont vous utilisez les périodes:{\em first.} second
ne fonctionne pas si bien. +1 ingénieux, bien que.La droite. J'ai Inséré.
j'ai juste ne peut pas obtenir la ligne \catcode`\.\active au travail. il produit 'undefined control sequence'.
OriginalL'auteur Alexey Malistov
il y a des siècles, on a discuté de cette idée sur comp.texte.tex, et la conclusion générale est que vous ne pouvez pas le faire de manière satisfaisante. satisfaisante, dans mon livre, n'implique pas de prise de caractères active, mais je ne vois pas comment cela pourrait fonctionner.
personnellement, j'ai envie de faire de la place active, et puis regardez \spacefactor et \MakeUppercase le caractère suivant si le facteur est de 3000.
quelque chose comme
ce n'est pas vraiment faire le travail -- il y a assez de bouts de tricoter un fairisle cavalier. par exemple, étant donné que nous ne pouvons pas compter sur \everypar en latex, comment avez-vous majuscule la première lettre d'un paragraphe?
pas ... cependant beaucoup ça fait mal (c'est pourquoi je éviter les opérations de la touche) nous avons besoin de type latex "correctement" 🙁
OriginalL'auteur Robin Fairbairns
J'ai décidé de le résoudre de la manière suivante:
Depuis j'ai toujours compiler le code LaTeX trois fois avant que je okular le résultat (pour obtenir de la pagination et des références à droite), j'ai décidé de construire la capitalisation des phrases dans ce processus.
Donc, j'ai maintenant un script shell qui appelle mon capitalisation script (écrit en CRM114) d'abord, puis pdflatex trois fois, et puis okular. De cette façon, toutes les choses qui se passe comme le résultat d'une commande unique.
OriginalL'auteur memius