This time, I will introduce you to the babel package, the modern way to use a language other than English in Latex documents. It is also the modern way to use more than one language in a document. It works with UTF-8 encoding for fonts, essential for many languages. In addition to loading the babel package, you will also need to load a font package that is appropriate for your language of choice. The babel documentation outlines the basics: • Tell babel what language or languages are required. • Select a suitable font or fonts if necessary. • In multilingual documents, switch the language in the text. For example \documentclass[french]{article} \usepackage{babel} \begin{document} Plus \c{c}a change, plus c'est la m\^{e}me chose. \end{document}
Cette fois-ci, je vais vous présenter le paquet babel, le moyen moderne d'utiliser une langue autre que l'anglais dans les documents LaTeX. C'est aussi le moyen moderne d'utiliser plus d'une langue dans un document. Il fonctionne avec l'encodage UTF-8 pour les polices, essentiel pour de nombreuses langues. Outre le chargement du paquet babel, vous devrez également charger un paquet de polices adapté à la langue de votre choix. La documentation babel décrit les principes de base : - Indiquez à babel la ou les langues requises. - Sélectionnez une ou plusieurs polices de caractères appropriées si nécessaire. - Dans les documents multilingues, changez la langue dans le texte.
Par exemple : \documentclass[french]{article}
\n-usepackage{babel}
\begin{document}
Plus \c{c}a change, plus c'est la m\^{e}me chose.
\end{document}
The [french] option in the document class informs Latex this document uses the French language and it is monolingual. To make a bilingual (or multilingual) document include two (or more) languages as options in the documentclass instruction. The last one will be the default language. To use French as the primary language and German as an occasional language, the option would be [german,french]. German comes in four variations: german, ngerman, austrian, naustrian. I do not know what the differences are, I assume the differences have to do with letter shapes and/or hyphenation and/or how dates are written and/or other factors important in localizing documents. There are four variations for English as well: English, USenglish, UKenglish, australian. Localization requires a lot more than simply spelling words correctly and using the correct letters. There is a 45-page chapter in volume 2 of The Latex Companion dedicated to this topic. There are more than sixty languages which can be produced with Latex. This includes many languages that use an alphabet and others which do not. Of course in order for a document to be produced, not only must a suitable font be used but the user must also know how to type that particular language. For example, unless you are familiar with typing French, would you have guessed what Latex command to use to generate ç or ê? If you work in two languages, how to switch from one language to another and back in one document? Babel uses the command \selectlanguage for large blocks of text like paragraphs and \foreignlanguage for small bits inside paragraphs. Here is the example used on p. 303 of vol. 2 of The Latex Companion . Because of some limitations in my system I had to use the csquotes package as well in order to generate the appropriate quotation marks..
L'option [french] dans la classe du document informe LaTeX que ce document utilise la langue française et qu'il est monolingue. Pour créer un document bilingue (ou multilingue), incluez deux langues (ou plus) comme options dans l'instruction documentclass. La dernière sera la langue par défaut. Pour utiliser le français comme langue principale et l'allemand comme langue occasionnelle, l'option serait [german,french]. L'allemand existe en quatre variantes : german, ngerman, austrian, naustrian. Je ne sais pas quelles sont les différences, je suppose que les différences ont à voir avec la forme des lettres et/ou la césure et/ou la façon dont les dates sont écrites et/ou d'autres facteurs importants dans la localisation des documents. Il existe également quatre variantes pour l'anglais : English, USenglish, UKenglish, australian.
La localisation nécessite bien plus que simplement épeler correctement les mots et utiliser les bonnes lettres. Il y a un chapitre de 45 pages dans le volume 2 de The LaTeX Companion consacré à ce sujet. Il existe plus de soixante langues qui peuvent être produites avec LaTeX. Cela inclut de nombreuses langues qui utilisent un alphabet et d'autres qui n'en utilisent pas. Bien sûr, pour qu'un document soit produit, il faut non seulement utiliser une police de caractères adaptée, mais aussi savoir taper dans cette langue particulière. Par exemple, à moins que vous ne soyez familier avec la frappe en français, auriez-vous deviné quelle commande LaTeX utilise pour générer ç ou ê ?
Si vous travaillez dans deux langues, comment passer d'une langue à l'autre et inversement dans un même document ? Babel utilise la commande \selectlanguage pour les gros blocs de texte comme les paragraphes et \foreignlanguage pour les petits morceaux à l'intérieur des paragraphes. Voici l'exemple utilisé à la p. 303 du vol. 2 de The LaTeX Companion . En raison de certaines limitations de mon système, j'ai dû également utiliser le paquet csquotes afin de générer les guillemets appropriés.
Typesetting a document in a foreign language is not as simple as changing the words. Many languages require accents. Most languages in the world do not use what is often called the Latin alphabet. So relevant fonts have to be developed and then the font package used in the preamble in the Latex document. Different languages may require different shapes than English for numbers. A very important part of typesetting a document is hyphenation. I do not use hyphenation when I write for FCM. I prefer ragged right margins to fully justified text so I do not need to be concerned about hyphenation. However many magazines, newspapers and journals use columns of text (like FCM) and set fully justified text to indicate the edges of columns. Without hyphenation, full justified text will make rivers of white in the text. Each language has its own rules for hyphenation and those rules are incorporated into the babel package as much as possible. Languages without alphabets like Chinese and Japanese also have rules which can dictate where breaks occur between characters. Punctuation marks differ between languages. The example in the graphic shows three different types of quotation marks. There are other ways quotations are indicated in other languages. Even the simple period is not always used between sentences. In Chinese an open circle is often (although not exclusively) used. Sometimes it appears in the centre of the line of text ◦◦,other times it is on the baseline ₒ. In English North America, the period is also used as the decimal point in currency for example. In Europe and French North America, the comma is often used as a decimal indicator. Instead of a comma to separate powers of ten in many cultures spaces are used to indicate thousands, millions, etc.
La composition d'un document dans une langue étrangère n'est pas aussi simple que de changer les mots. De nombreuses langues nécessitent des accents. La plupart des langues du monde n'utilisent pas ce que l'on appelle souvent l'alphabet latin. Il faut donc développer des polices appropriées, puis utiliser le paquet de polices dans le préambule du document LaTeX. Différentes langues peuvent nécessiter des formes différentes de celles de l'anglais pour les nombres.
Une partie très importante de la composition d'un document est la césure. Je n'utilise pas de césure lorsque j'écris pour le FCM. Je préfère les marges droites irrégulières au texte entièrement justifié, je n'ai donc pas à me soucier de la césure. Cependant, de nombreux magazines, journaux et revues utilisent des colonnes de texte (comme FCM) et définissent un texte entièrement justifié pour indiquer les bords des colonnes. Sans césure, le texte entièrement justifié produira des rivières blanches dans le texte. Chaque langue a ses propres règles de césure et ces règles sont intégrées autant que possible dans le paquet babel. Les langues sans alphabet comme le chinois et le japonais ont également des règles qui peuvent dicter l'endroit où se produisent les coupures entre les caractères.
Les signes de ponctuation diffèrent selon les langues. L'exemple illustré dans le graphique montre trois types différents de guillemets. Il existe d'autres façons d'indiquer les citations dans d'autres langues. Même le point simple n'est pas toujours utilisé entre les phrases. En chinois, un cercle ouvert est souvent (mais pas exclusivement) utilisé. Parfois, il apparaît au centre de la ligne de texte ◦◦, d'autres fois, il est sur la ligne de base ₒ. En Amérique du Nord anglaise, le point est également utilisé comme point décimal dans la monnaie par exemple. En Europe et en Amérique du Nord française, la virgule est souvent utilisée comme indicateur décimal. Au lieu d'une virgule pour séparer les puissances de dix dans de nombreuses cultures, des espaces sont utilisés pour indiquer les milliers, les millions, etc.
Babel provides translations for document element names Latex uses in its document classes. (This feature is not working on my machine.) Terms like chapter name, figure name, table name are called language dependent strings in babel and will be translated using commands like \figurename. Dates are formatted differently in different languages, some languages have more than one way to format dates. In Canada, we cannot decide which method to use. Many organizations use the international standard of largest to smallest: yyyy mm dd. Others reverse this international standard:: dd mm yyyy. Still others use the American standard: mm dd yyyy. Despite the complications which occurred before the year rolled to 2000, many continue to use a two-digit year. Of course there is no problem understanding dates so long as the name of the month is in letters. If in numbers, there can be confusion: is 9/12/2024 the ninth of December or the twelfth of September. Many languages have a standard format for dates. Perhaps the month name is always in letters. In Bulgarian, the month is indicated by upper case Roman numerals. In Greek, numbers can be written with letters (two different systems) or with numbers. Dates in Greek can be written with any of the three possible ways to represent numbers or by spelling the name of the month. Generally, numerical values are shown with the same Arabic numbers we all know. As mentioned in Bulgarian and Greek, numbers can be represented with letters. That is also true in a few other languages, although this usage seems to be slowly disappearing. According to The Latex Companion (vol 2, p. 319), Icelandic documents require special formatting for numbers and need the command \tala. In French, there are shorthand commands to generate the first four ordinal numbers \primo, \secundo, \tertia, \quattro.
Babel fournit des traductions pour les noms d'éléments de document que LaTeX utilise dans ses classes de documents. (Cette fonctionnalité ne fonctionne pas sur ma machine.) Des termes comme le nom du chapitre, le nom de la figure, le nom du tableau sont appelés chaînes dépendantes de la langue dans Babel et seront traduits à l'aide de commandes comme \figurename.
Les dates sont formatées différemment selon les langues, certaines langues ont plus d'une façon de formater les dates. Au Canada, nous ne pouvons pas décider quelle méthode utiliser. De nombreuses organisations utilisent la norme internationale du plus grand au plus petit : aaaa mm jj. D'autres inversent cette norme internationale : jj mm aaaa. D'autres encore utilisent la norme américaine : mm jj aaaa. Malgré les complications survenues avant le passage à l'an 2000, beaucoup continuent d'utiliser une année à deux chiffres. Bien sûr, il n'y a aucun problème de compréhension des dates tant que le nom du mois est en lettres. S'il est en chiffres, il peut y avoir confusion : le 12/09/2024 est-il le 9 décembre ou le 12 septembre ?
De nombreuses langues ont un format standard pour les dates. Il est possible que le nom du mois soit toujours en lettres. En bulgare, le mois est indiqué par des chiffres romains majuscules. En grec, les nombres peuvent être écrits avec des lettres (deux systèmes différents) ou avec des chiffres. Les dates en grec peuvent être écrites avec l'une des trois manières possibles de représenter les nombres ou en épelant le nom du mois.
En général, les valeurs numériques sont affichées avec les mêmes chiffres arabes que nous connaissons tous. Comme mentionné en bulgare et en grec, les nombres peuvent être représentés par des lettres. C'est également vrai dans quelques autres langues, bien que cet usage semble disparaître lentement. Selon The LaTeX Companion (vol 2, p. 319), les documents islandais nécessitent un formatage spécial pour les nombres et nécessitent la commande \tala. En français, il existe des commandes abrégées pour générer les quatre premiers nombres ordinaux \primo, \secundo, \tertio, \quattro.
If you typeset documents using either the Greek or one of the Cyrillic alphabets, you should read the documentation available in The Latex Companion and any other helpful documentation. The authors recommend using either XeTex or LuaTex instead of pdfTex for Greek. Typing in Chinese or Korean or Japanese requires additional support. It is necessary to be able to input the appropriate code for each character in these languages. In Chinese, the most common method to “spell” a Chinese character is pinyin. The input method accepts the keyboard input and presents a series of choices which match the pinyin which has been typed (something like a spell checker). The writer then picks the correct form and it displays on the screen. That is how I typed these four characters: 我是老师. Unlike Chinese and Japanese, Korean is written using an alphabet. However the letter forms change depending on which vowel is combined with which consonant and in what order. Each syllable is represented by one character, the same as Chinese and Japanese. To write in any of these three languages requires access to character sets which match the input method. The first and best set of packages to give access to the appropriate character sets is CJK. A recent approach is to make some versions of Tex compatible with the Unicode character sets. Unicode gives access to character sets so that almost all existing languages (many ancient ones and some imaginary ones) are available to the user. This is a much better solution than the one offered by CJK and similar packages. \documentclass[12pt]{article} \usepackage{CJKutf8} %Load UTF8 version of CJK \usepackage{noto-serif} %Load a font for this document. \begin{document}
Si vous composez des documents en utilisant l'alphabet grec ou l'un des alphabets cyrilliques, vous devriez lire la documentation disponible dans The LaTeX Companion et toute autre documentation utile. Les auteurs recommandent d'utiliser XeTex ou LuaTex au lieu de pdfTex pour le grec.
La saisie en chinois, en coréen ou en japonais nécessite une assistance supplémentaire. Il est nécessaire de pouvoir saisir le code approprié pour chaque caractère dans ces langues. En chinois, la méthode la plus courante pour « épeler » un caractère chinois est le pinyin. La méthode de saisie accepte la saisie au clavier et présente une série de choix qui correspondent au pinyin qui a été tapé (un peu comme un correcteur orthographique). L'écrivain choisit ensuite la forme correcte et elle s'affiche à l'écran. C'est ainsi que j'ai tapé ces quatre caractères : 我是老师. Contrairement au chinois et au japonais, le coréen s'écrit à l'aide d'un alphabet. Cependant, les formes des lettres changent en fonction de la voyelle combinée à la consonne et dans quel ordre. Chaque syllabe est représentée par un caractère, comme en chinois et en japonais.
Pour écrire dans l'une de ces trois langues, il faut avoir accès à des jeux de caractères correspondant à la méthode de saisie. Le premier et le meilleur ensemble de paquets permettant d'accéder aux jeux de caractères appropriés est CJK. Une approche récente consiste à rendre certaines versions de Tex compatibles avec les jeux de caractères Unicode. Unicode donne accès à des jeux de caractères de sorte que presque toutes les langues existantes (beaucoup de langues anciennes et certaines langues imaginaires) sont disponibles pour l'utilisateur. C'est une bien meilleure solution que celle offerte par CJK et des paquets similaires.
\documentclass[12pt]{article}
\usepackage{CJKutf8} %Charger la version UTF8 de CJK
\usepackage{noto-serif} %Charger une police pour ce document.
\begin{document}
While it is possible to write Chinese in columns starting in the top-right corner of the writing space, normally Chinese is written left-to-right top-down in rows the same as English. I can type pinyin to generate Chinese characters. In order to generate Chinese characters (or Japanese or Korean), I need to add a package to Latex. Either CJK or CTEX are recommended. See image below. As you may know Hebrew and Arabic are written right-to-left. The Hebrew and Arabic alphabets contain only consonants. Arabic consonants change shape depending on their position in a word: beginning, middle, end. The letters in a Mongolian word are written top-down. Words in a Mongolian sentence are written right-to-left. (Humans have used many variations in order to communicate using writing.) The problem of writing in other than left-to-right order requires at least one other package: bidi (for bidirectional). The difficulties caused by Mongolian text are overcome with Unicode. This excursion into the world of typesetting for more than one language points out a feature of Tex that is hidden from users who install a variant of Tex in one language. Some variants of Tex are fully compatible with Unicode, others are not. This is similar to issues between some variations of Linux. For example, to install krecipes on Linux that is not based in Ubuntu requires the addition of many packages because krecipes uses features of Ubuntu that are not normally installed with other variants of Linux. If you never want to use krecipes you never have to think about this situation.
Bien qu'il soit possible d'écrire le chinois en colonnes en commençant dans le coin supérieur droit de l'espace d'écriture, le chinois s'écrit normalement de gauche à droite et de haut en bas en lignes, comme l'anglais.
Je peux taper du pinyin pour générer des caractères chinois. Pour générer des caractères chinois (ou japonais ou coréens), je dois ajouter un paquet à LaTeX. Il est recommandé d'utiliser CJK ou CTEX. Voir l'image ci-dessous.
Comme vous le savez peut-être, l'hébreu et l'arabe s'écrivent de droite à gauche. Les alphabets hébreu et arabe ne contiennent que des consonnes. Les consonnes arabes changent de forme en fonction de leur position dans un mot : début, milieu, fin. Les lettres d'un mot mongol s'écrivent de haut en bas. Les mots d'une phrase mongole s'écrivent de droite à gauche. (Les humains ont utilisé de nombreuses variantes pour communiquer par écrit.) Le problème de l'écriture dans un ordre autre que de gauche à droite nécessite au moins un autre paquet : bidi (pour bidirectionnel). Les difficultés causées par le texte mongol sont surmontées avec Unicode.
Cette excursion dans le monde de la composition typographique pour plusieurs langues met en évidence une fonctionnalité de Tex qui est cachée aux utilisateurs qui installent une variante de Tex dans une langue. Certaines variantes de Tex sont entièrement compatibles avec Unicode, d'autres non. Cela ressemble aux problèmes rencontrés entre certaines variantes de Linux. Par exemple, pour installer krecipes sur un Linux qui n'est pas basé sur Ubuntu, il faut ajouter de nombreux paquets car krecipes utilise des fonctionnalités d'Ubuntu qui ne sont normalement pas installées avec d'autres variantes de Linux. Si vous ne voulez jamais utiliser krecipes, vous n'avez jamais à penser à cette situation.
I did find some workaround code that makes my plain vanilla Latex work with and produce characters I do not often use. The other choice would have been to install at least one other version of Tex, probably pdfTex or LuaTex. I chose not to add more files to my machine. This is in keeping with Knuth’s original design idea. Do not make the user install any more bits of software than they need. Unlike some other versions of Latex, mine does not automatically install any required packages. Instead, it generates an error which indicates it cannot find a particular package the user requires. One of the operations I will examine in the near future is the installation of new packages. Depending on when I get to that topic I may also look at updating Latex to a new version. This is the end for this time. Keep exploring Tex / Latex. Ask me any questions you have about it.
J'ai trouvé un code de contournement qui permet à mon LaTeX de fonctionner avec des caractères que je n'utilise pas souvent. L'autre choix aurait été d'installer au moins une autre version de Tex, probablement pdfTex ou LuaTex. J'ai choisi de ne pas ajouter plus de fichiers à ma machine. Cela est conforme à l'idée de conception originale de Knuth. Ne forcez pas l'utilisateur à installer plus de logiciels que nécessaire. Contrairement à d'autres versions de LaTeX, la mienne n'installe pas automatiquement les paquets requis. Au lieu de cela, elle génère une erreur qui indique qu'elle ne peut pas trouver un paquet particulier dont l'utilisateur a besoin.
L'une des opérations que j'examinerai dans un avenir proche est l'installation de nouveaux paquets. Selon le moment où j'aborderai ce sujet, je pourrais également envisager de mettre à jour LaTeX vers une nouvelle version.
C'est la fin pour cette fois. Continuez à explorer Tex/LaTeX. Posez-moi toutes les questions que vous avez à ce sujet.