2.5 International Language Support
27
Since the turn of the Century most Operating Systems are based on
Unicode (Windows XP, MacOS X). Therefore it is recommended to useutf8
for any new project. Theutf8 encoding used by inputenc only defines the
characters that are actually provided by the fonts used. If you need more
(non-latin) characters have a look at X
E
LAT
E
Xin section4.8 a Unicode based
T
E
X-engine.
Font encoding is a different matter. It defines at which position inside a
T
E
X-font each letter is stored. Multiple input encodings could be mapped
into one font encoding, which reduces the number of required font sets. Font
encodings are handled through fontenc package:
\usepackage[encoding]{fontenc}
where encoding is font encoding. It is possible to load several encodings
simultaneously.
The default L
A
T
E
X font encoding isOT1, the encoding of the original
Computer Modern T
E
Xfont. It contains only the 128 characters of the 7-bit
ASCII character set. When accented characters are required, T
E
Xcreates
them by combining a normal character with an accent. While the resulting
output looks perfect, this approach stops the automatic hyphenation from
working inside words containing accented characters. Besides, some Latin
letters could not be created by combining a normal character with an accent,
to say nothing about letters of non-Latin alphabets, such as Greek or Cyrillic.
To overcome these shortcomings, several 8-bit CM-like font sets were
created. Extended Cork (EC) fonts in T1 encoding contains letters and
punctuation characters for most of the European languages using Latin
script. The LH font set contains letters necessary to typeset documents
in languages using Cyrillic script. Because of the large number of Cyrillic
glyphs, they are arranged into four font encodings—T2A,T2B,T2C, andX2.
5
The CB bundle contains fonts inLGR encoding for the composition of Greek
text.
Improve/enable hyphenation in non-English documents by using these
fonts. Another advantage of using new CM-like fonts is that they provide
fonts of CM families in all weights, shapes, and optically scaled font sizes.
2.5.1 Support for Portuguese
ByDemerson Andre Polli <polli@linux.ime.usp.br>
To enable hyphenation and change all automatic text to Portuguese, use the
5
Find a list of languages supported by each of these encodings in [11].
Convert pdf into html - control SDK system:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
Convert pdf into html - control SDK system:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
28
Typesetting Text
Table 2.3: Preamble for Portuguese documents.
\usepackage[portuguese]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
command:
\usepackage[portuguese]{babel}
Or if you are in Brazil, substitute brazilian as the language.
As there are a lot of accents in Portuguese you might want to use
\usepackage[latin1]{inputenc}
to be able to input them correctly as well as
\usepackage[T1]{fontenc}
to get the hyphenation right.
See table 2.3 for the preamble you need to write in the Portuguese
language. Note that the example is for the latin1 input encoding. Modern
systems might be using utf8 instead.
2.5.2 Support for French
ByDaniel Flipo <daniel.flipo@univ-lille1.fr>
Some hints for those creating French documents with L
A
T
E
X: load French
language support with the following command:
\usepackage[francais]{babel}
This enables French hyphenation, if you have configured your L
A
T
E
X
system accordingly. It also changes all automatic text into French: \chapter
prints Chapitre,\today prints the current date in French and so on. A set
of new commands also becomes available, which allows you to write French
input files more easily. Check out table2.4 for inspiration.
You will also notice that the layout of lists changes when switching to the
French language. For more information on what thefrancais option of babel
does and how to customize its behaviour, run L
A
T
E
Xon file frenchb.dtx
and read the produced file frenchb.dvi.
control SDK system:C# PDF insert text Library: insert text into PDF content in C#.net
Parameters: Name, Description, Valid Value. value, The char wil be added into PDF page, 0
www.rasteredge.com
control SDK system:C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
with specified zoom value and save it into stream The magnification of the original PDF page size Description: Convert to DOCX/TIFF with specified resolution and
www.rasteredge.com
2.5 International Language Support
29
Table 2.4: Special commands for French.
\og guillemets \fg{}
«guillemets »
M\up{me}, D\up{r}
M
me
,D
r
1\ier{}, 1\iere{}, 1\ieres{}
1
er
,1
re
,1
res
2\ieme{} 4\iemes{}
2
e
4
es
\No 1, \no 2
N
o
1, n
o
2
20~\degres C, 45\degres
20 °C, 45°
\bsc{M. Durand}
M. Durand
\nombre{1234,56789}
1234,567 89
Recent versions of frenchb rely on numprint to implement the\nombre
command.
2.5.3 Support for German
Some hints for those creating German documents with LAT
E
X: load German
language support with the following command:
\usepackage[german]{babel}
This enables German hyphenation, if you have configured your L
A
T
E
X
system accordingly. It also changes all automatic text into German. Eg.
“Chapter” becomes “Kapitel.” A set of new commands also becomes available,
which allows you to write German input files more quickly even when you
don’t use the inputenc package. Check out table2.5 for inspiration. With
inputenc, all this becomes moot, but your text also is locked in a particular
encoding world.
In German books you often find French quotation marks («guillemets»).
German typesetters, however, use them differently. A quote in a German
book would look like »this«. In the German speaking part of Switzerland,
typesetters use «guillemets» the same way the French do.
Amajor problem arises from the use of commands like\flq: If you use
the OT1 font (which is the default font) the guillemets will look like the math
symbol “”, which turns a typesetter’s stomach. T1 encoded fonts, on the
other hand, do contain the required symbols. So if you are using this type of
quote, make sure you use the T1 encoding. (\usepackage[T1]{fontenc})
control SDK system:C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
with specified zoom value and save it into stream The magnification of the original PDF page size Description: Convert to DOCX/TIFF with specified resolution and
www.rasteredge.com
control SDK system:C# PDF insert image Library: insert images into PDF in C#.net, ASP
Import graphic picture, digital photo, signature and logo into PDF document. Merge several images into PDF. Insert images into PDF form field.
www.rasteredge.com
30
Typesetting Text
Table 2.5: German Special Characters.
"a
ä
"s
ß
"‘
"’
"< or \flqq «
"> or \frqq »
\flq
\frq
\dq
"
2.5.4 Support for Korean
6
To process Hangul
7
characters or prepare a document written in Korean
using LAT
E
X, put the following code in the preamble of the document.
\usepackage{kotex}
Adocument containing the declaration above will have to be processed
by pdfLAT
E
X, X
E
LAT
E
X, or LuaLAT
E
X. Make sure that the input file written in
Hangul is encoded in Unicode UTF-8. The package called ko.T
E
X
8
is under
continuous development by the Korean T
E
XUsers Group9 and the Korean
T
E
XSociety.10 Many people use this package to create Korean documents
for their everyday needs. ko.T
E
Xhas been available on CTAN since 2014. It
is included T
E
XLive, MiKT
E
Xand other modern T
E
Xdistributions. So in
all likelyhood you can start working right away without installing any extra
packages.
ko.T
E
X does not use the babel package. Many functions related to
Korean can be activated using the options and configuration commands
provided by the kotex package. If you want to compose a real world Korean
document, you are advised to consult the package documentation (These
documents are written in Korean).
With ko.T
E
X, you also get oblivoir, a memoir-based document class,
tailored for Korean document preparation. So your Korean document would
6
Written by Karnes Kim<karnes@ktug.org> and Kihwang Lee<leekh@ktug.org> on
behalf of the Korean T
E
XUsers Group and the Korean T
E
XSociety.
7
Hangul is the name of the Korean writing system. Refer tohttp://en.wikipedia.
org/wiki/Hangulformoreinformation.
8
Reads “Korean T
E
X”. ko.T
E
Xis the name of a collection of packages includingcjk-ko,
kotex-utf, xetexko, and luatexko.
9
http://ktug.org
10
http://ktug.kr
control SDK system:Online Convert PDF to HTML5 files. Best free online PDF html
Download Free Trial. Convert a PDF file to HTML. Just upload your file by clicking on the blue button or drag-and-drop your pdf file into the drop area.
www.rasteredge.com
control SDK system:VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add file. Insert images into PDF form field in VB.NET. An
www.rasteredge.com
2.5 International Language Support
31
Table 2.6: Preamble for Greek documents.
\usepackage[english,greek]{babel}
\usepackage[iso-8859-7]{inputenc}
start like this:
\documentclass{oblivoir}
To generate an index for a Korean document, executekomkindex instead
ofmakeindex. It is a version of themakeindex utility modified for Korean
processing. For lexicographical sorting of the Korean index items, you can
use index style kotex.ist provided by ko.T
E
Xas follows:
komkindex -s kotex foo.idx
You can also usexindy for index generation as the Korean module for
xindy is included in T
E
XLive.
There is another Korean/Hangul typesetting package called CJK. As
the name of the package suggests, it has facilities for typesetting Chinese,
Japanese, and Korean characters. It supports multiple encodings of the CJK
characters. The following is a simple example of typesetting UTF-8 encoded
Hangul using CJK package. It is useful when you submit a manuscript
to some academic journals that allow typesetting author names in native
languages.
\usepackage{CJK}
\begin{CJK}{UTF8}{}
\CJKfamily{nanummj}
...
\end{CJK}
2.5.5 Writing in Greek
ByNikolaos Pothitos <pothitos@di.uoa.gr>
See table2.6 for the preamble you need to write in the Greek language. This
preamble enables hyphenation and changes all automatic text to Greek.
11
11
If you select theutf8x option for the packageinputenc, LAT
E
X will understand Greek
and polytonic Greek Unicode characters.
control SDK system:C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF File into Two Using C#. This is an C# example of splitting a PDF to two new PDF files. Split PDF Document into Multiple PDF Files in C#.
www.rasteredge.com
control SDK system:VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF file into two or multiple files in ASP.NET webpage online. Support to break a large PDF file into smaller files in .NET WinForms.
www.rasteredge.com
32
Typesetting Text
Aset of new commands also becomes available, which allows you to
write Greek input files more easily. In order to temporarily switch to
English and vice versa, one can use the commands\textlatin{english text}
and\textgreek{greek text} that both take one argument which is then
typeset using the requested font encoding. Otherwise use the command
\selectlanguage{...}describedinaprevioussection. Checkouttable2.7
for some Greek punctuation characters. Use \euro for the Euro symbol.
Table 2.7: Greek Special Characters.
;
·
?
;
((
«
))
»
‘‘
’’
2.5.6 Support for Cyrillic
ByMaksymPolyakov <polyama@myrealbox.com>
Version 3.7h of babel includes support for theT2* encodings and for typeset-
ting Bulgarian, Russian and Ukrainian texts using Cyrillic letters.
Support for Cyrillic is based on standard L
A
T
E
Xmechanisms plus the
fontenc and inputenc packages. But, if you are going to use Cyrillics in math
mode, you need to load mathtext package before fontenc:
12
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\usepackage[koi8-ru]{inputenc}
\usepackage[english,bulgarian,russian,ukranian]{babel}
Generally, babel will authomatically choose the default font encoding, for
the above three languages this isT2A. However, documents are not restricted
to a single font encoding. For multi-lingual documents using Cyrillic and
Latin-based languages it makes sense to include Latin font encoding explicitly.
babel will take care of switching to the appropriate font encoding when a
different language is selected within the document.
In addition to enabling hyphenations, translating automatically gener-
ated text strings, and activating some language specific typographic rules
(like\frenchspacing), babel provides some commands allowing typesetting
according to the standards of Bulgarian, Russian, or Ukrainian languages.
For all three languages, language specific punctuation is provided: The
Cyrillic dash for the text (it is little narrower than Latin dash and surrounded
12
If you use A
M
S-LAT
E
Xpackages, load them before fontenc and babel as well.
2.5 International Language Support
33
by tiny spaces), a dash for direct speech, quotes, and commands to facilitate
hyphenation, see Table2.8.
Table 2.8: The extra definitions made by Bulgarian, Russian, and Ukrainian
options of babel
"|
disable ligature at this position.
"-
an explicit hyphen sign, allowing hyphenation in the rest of the word.
"--- Cyrillic emdash in plain text.
"--~ Cyrillic emdash in compound names (surnames).
"--* Cyrillic emdash for denoting direct speech.
""
like"-, but producing no hyphen sign (for compound words with
hyphen, e.g. x-""y or some other signs as “disable/enable”).
"~
for a compound word mark without a breakpoint.
"=
for a compound word mark with a breakpoint, allowing hyphenation
in the composing words.
",
thinspace for initials with a breakpoint in following surname.
"‘
for German left double quotes (looks like ,,).
"’
for German right double quotes (looks like “).
"<
for French left double quotes (looks like <<).
">
for French right double quotes (looks like >>).
The Russian and Ukrainian options of babel define the commands\Asbuk
and\asbuk, which act like \Alph and\alph13, but produce capital and
small letters of Russian or Ukrainian alphabets (whichever is the active
language of the document). The Bulgarian option of babel provides the
commands\enumBul and \enumLat (\enumEng), which make \Alph and
\alphproducelettersofeitherBulgarianorLatin(English)alphabets.The
default behaviour of\Alph and\alph for the Bulgarian language option is
to produce letters from the Bulgarian alphabet.
2.5.7 Support for Mongolian
To use L
A
T
E
X for typesetting Mongolian you have a choice between two
packages: Multilingual Babel and MonT
E
Xby Oliver Corff.
MonT
E
Xincludes support for both Cyrillic and traditional Mongolian
Script. In order to access the commands of MonT
E
X, add:
\usepackage[language,encoding]{mls}
to the preamble. Choose the language option xalx to generate captions
and dates in Modern Mongolian. To write a complete document in the
13
the commands for turning counters into a, b, c, ...
34
Typesetting Text
traditional Mongolian script you have to choose bicig for the language option.
The document language option bicig enables the “Simplified Transliteration”
input method.
Enable and disable Latin Transliteration Mode with
\SetDocumentEncodingLMC
and
\SetDocumentEncodingNeutral
More information about MonT
E
Xis available fromCTAN://language/
mongolian/montex/doc.
Mongolian Cyrillic script is supported by babel. Activate Mongolian
language support with the following commands:
\usepackage[T2A]{fontenc}
\usepackage[mn]{inputenc}
\usepackage[mongolian]{babel}
wheremn is thecp1251 input encoding. For a more modern approach invoke
utf8 instead.
2.5.8 The Unicode option
ByAxel Kielhorn <A.Kielhorn@web.de>
Unicode is the way to go if you want to include several languages in one
document, especially when these languages are not using the latin script.
There are two T
E
X-engines that are capable of processing Unicode input:
X
E
T
E
wasdevelopedforMacOSXbutisnowavailableforallarchitectures.
It was first included into TexLive 2007.
LuaT
E
isthesuccessorofpdfT
E
X. It was first included into TexLive 2008.
The following describes X
E
L
A
T
E
Xas distributed with TexLive 2010.
Quickstart
To convert an existing LAT
E
Xfile to X
E
LAT
E
Xthe following needs to be done:
1. Save the file as UTF-8
2.5 International Language Support
35
2. Remove
\usepackage{inputenc}
\usepackage{fontenc}
\usepackage{textcomp}
from the preamble.
3. Change
\usepackage[languageA]{babel}
to
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands]{languageA}
4. Add
\usepackage[Ligatures=TeX]{fontspec}
to the preamble.
The package polyglossia[19] is a replacement for babel. It takes care of
the hyphenation patterns and automatically generated text strings. The
optionbabelshorthands enables babel compatible shorthands for german
and catalan.
The package fontspec[21] handles font loading for X
E
LAT
E
XandLuaT
E
X.
The default font is Latin Modern Roman. It is a little known fact that some
T
E
Xcommand are ligatures defined in the Computer Modern fonts. If you
want to use them with a non-T
E
Xfont, you have to fake them. The option
Ligatures=TeX defines the following ligatures:
--
--- —
’’
‘‘
!‘
¡
?‘
¿
,,
<<
«
>>
»
36
Typesetting Text
It’s all Γρκ to me
So far there has been no advantage to using a Unicode T
E
Xengine. This
changes when we leave the Latin script and move to a more interesting
language like Greek or Russian. With a Unicode based system, you can
simply
14
enter the characters in your editor and T
E
Xwill understand them.
Writing in different languages is easy, just specify the languages in the
preamble:
\setdefaultlanguage{english}
\setotherlanguage[babelshorthands]{german}
To write a paragraph in German, you can use the German environment:
English text.
\begin{german}
Deutscher Text.
\end{german}
More English text.
Ifyou justneed aword in a foreign language you can usethe\textlanguage
command:
Englisch text. \textgerman{Gesundheit} is actually a German word.
This may look unnecessary since the only advantage is a correct hyphen-
ation, but when the second language is a little bit more exotic it will be
worth the effort.
Sometimes the font used in the main document does not contain glyphs
that are required in the second language
15
.The solution is to define a font
that will be used for that language. Whenever a new language is activated,
polyglossia will first check whether a font has been defined for that language.
\newfontfamily\russianfont[Script=Cyrillic,(...)]{(font)}
Now you can write
\textrussian{Pravda} is a russian newspaper.
Since this document is written in Latin1-encoding, I cannot show the
actual Cyrillic letters.
The package xgreek[22] offers support for writing either ancient or modern
(monotonic or polytonic) greek.
14
For small values of simple.
15
Latin Modern does not contain Cyrillic letters
Documents you may be interested
Documents you may be interested