1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
|
% vntex-@VERSION@
%
% Copyright 2003-2005 Han The Thanh <HanTheThanh@gmail.com>.
%
% Authors: Han The Thanh <HanTheThanh@gmx.net> and
% Reinhard Kotucha <Reinhard.Kotucha@web.de>
%
% This file is part of vntex.
%
% This work may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.3 of this
% license or (at your option) any later version.
%
% The latest version of this license is
%
% http://www.latex-project.org/lppl.txt
%
% The current maintainers are Werner Lemberg, Han The Thanh, and
% Reinhard Kotucha.
\documentclass[a4paper,11pt]{article}
% \InputIfFileExists{vntexdoc-conf.tex}{}{}
% \makeatletter
% \@ifundefined{vntexdoc-amsldoc-vi}
% {\message{***undef***}}
% {\message{***def***}}
% \stop
\usepackage{amsmath,amsfonts,amssymb}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A,T5]{fontenc}
\usepackage[russian,vietnam]{babel}
\usepackage{charter}
%\usepackage{tgpagella}
%\usepackage{mathpazo}\def\textsc#1{\bgroup\usefont{T5}{fpl}{m}{sc}#1\egroup}
\usepackage{textcomp}
\usepackage[scaled=.9]{helvet}
\usepackage{parskip}
\usepackage{upquote}
\usepackage{microtype}
\usepackage{url}
\usepackage{fancyvrb}\DefineShortVerb{\|}
%\usepackage{showframe}
%\usepackage{mparhack}
\RequirePackage[dvipsnames]{color}
\newif\ifprint
\ifdefined\printversion
\printtrue
\else
\printfalse
\fi
\def\arraystretch{1.25}
\raggedbottom
\def\vi#1{\foreignlanguage{vietnam}{#1}}
\makeatletter
\let\ifundefined\@ifundefined
\renewcommand\@seccntformat[1]{\llap{\@nameuse{the#1}\hspace{1em}}}
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{0.3ex \@plus.2ex}%
{\normalfont\Large\bfseries
\rightskip\z@ plus3em
\spaceskip.3333em
\xspaceskip.5em\color[named]{BrickRed}}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{.25ex\@plus -1ex \@minus -.2ex}%
{0.2ex \@plus .2ex}%
{\normalfont\large\bfseries
\rightskip\z@ plus3em
\spaceskip.3333em
\xspaceskip.5em\color[named]{BrickRed}}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{1.25ex\@plus -1ex \@minus -.2ex}%
{0.1ex}%
{\normalfont\normalsize\bfseries
\rightskip\z@ plus2em
\spaceskip.3333em
\xspaceskip.5em
\color[named]{BrickRed}}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{\parskip}%
{-1em}%
{\normalfont\normalsize\bfseries\color[named]{BrickRed}}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{\parskip}%
{-1em}%
{\normalfont\normalsize\bfseries\color[named]{BrickRed}}}
\makeatother
%%% Colors
\definecolor{labelitemicolor}{rgb}{0,.5,0}
\definecolor{labelitemiicolor}{rgb}{.75,0,0}
\definecolor{labelitemiiicolor}{rgb}{0,0,.6}
\def\labelitemi{\color{labelitemicolor}{$\blacktriangleright$}}
\def\labelitemii{\color{labelitemiicolor}{{\large$\bullet$}}}
\def\labelitemiii{\color{labelitemiiicolor}
{{\raisebox{.3ex}{\mbox{\scriptsize$\blacksquare$}}}}}
\def\bibcolor#1{{\color[named]{MidnightBlue}#1}}
%\def\bibcolor#1{{\color[cmyk]{.8,.8,0,.4}#1}}
\def\headcolor#1{{\color[named]{BrickRed}#1}}
\def\hrefcolor#1{{\color[named]{Fuchsia}#1}}
%\def\hrefcolor#1{{\color[cmyk]{.3,1,0,.6}#1}}
\def\xbibcolor#1{{\color[named]{Fuchsia}#1}}
%\def\xbibcolor#1{{\color[cmyk]{.3,1,0,.6}#1}}
%\def\codecolor{\color[named]{OliveGreen}}
\def\codecolor{\color[cmyk]{.65,0,.65,.7}}
\def\marginnote#1{\marginpar{\headcolor{\textit{#1}}}}
\def\marginnote#1{\vadjust{\llap{\smash{\headcolor{\textit{#1~~}}}}}}
\def\marginnote#1{\leavevmode\llap{\headcolor{\textit{\smash{\parbox[t]{2.5cm}{\raggedleft #1}~~}}}}}
\def\mailto#1{$\langle$\href{mailto:#1}{\texttt{\hrefcolor{#1}}}$\rangle$}
\def\pkg#1{{\sffamily#1}}
\def\URL#1{{\fontfamily{cmvtt}\selectfont{\xbibcolor{http://#1}}}}
\def\indenturl{\leavevmode\texttt{\phantom{xx}}}
\def\http#1{\ifvmode\leavevmode\texttt{\phantom{xx}}\fi\href{http://#1}{\URL{#1}}}
\def\ftp#1{\ifvmode\leavevmode\texttt{\phantom{xx}}\fi\href{ftp://#1}{\URL{#1}}}
%%% Internal/External Documentation
\def\texmfdocvi{../../../../texmf-doc/doc/vietnamese}
\def\CTANbase{ctan.org/tex-archive/info}
\def\bibfile#1#2#3{\textit{#1, }\href{file:#2}{\bibcolor{#3}}}
\def\bibfileprint#1{\ifx\printversion\undefined\hspace{\fill}\href{file:#1}{[\bibcolor{print~version}]}\fi}
\def\xbibfile#1#2#3{\textit{#1, }\href{http://#2}{\xbibcolor{#3}}}
\def\xbibfilenoauthor#1#2{\href{http://#1}{\xbibcolor{#2}}}
\def\extbibfile#1#2#3{\textit{#1}, #2,\\\href{http://#3}{\fontfamily{cmvtt}\selectfont{\xbibcolor{http://#3}}}}
\def\xbibfileprint#1{\hspace{\fill}\ifx\printversion\undefined\href{http://#1}{[\bibcolor{print~version}]}\fi}
%%%\reversemarginpar
\makeatletter
\let\docpath\@namedef
%\InputIfFileExists{vntexdoc-conf.tex}{}{}
\makeatletter
\let\docpath\@nameuse
\makeatother
%%% Verbatim
\newenvironment{code}{\codecolor}{}
\newenvironment{verbcode}{\codecolor\begin{verbatim}}{\end{verbatim}}
\def\code{\ifvmode~~~\fi\codecolor} %%% \setbox0 \wd0
\CustomVerbatimEnvironment{Code}{Verbatim}
{commandchars=\|\(\),formatcom=\codecolor}
\def\texcomment#1{\textrm{\textcolor{black}{#1}}}
\def\sometext#1{\textcolor{black}{\textrm
{$\langle$\ldots\textit{#1}\ldots$\rangle$}}}
\AtBeginDocument{\def\abstractname{\headcolor{\textbf{\normalsize
Abstract}}}}
\advance\oddsidemargin by -.5cm
%\advance\marginparwidth 1cm
\evensidemargin=\oddsidemargin
\advance\textwidth by 2cm
\advance\topmargin by -2cm
\advance\textheight by 4cm
\advance\textheight by 2pt
\usepackage[colorlinks, urlcolor=black, filecolor=black]{hyperref}
\hypersetup{pdfnewwindow=true}
\begin{document}
%\vrule
%\vspace*{0cm}
\leavevmode{\centering\Huge\textbf{\headcolor{Vn\TeX\ --- Typesetting
Vietnamese}}\par}
\vspace{3mm}
{\centering\Large Hàn Thế Thành~~~~Reinhard Kotucha\par}
\vspace{1cm}
\begin{abstract}
\parskip=1ex \parindent=0pt \noindent
Vn\TeX\ is an extension to Donald Knuth's \TeX\ typesetting system which
provides support for typesetting Vietnamese.
The primary site of Vn\TeX\ is {\normalsize\http{vntex.sf.net}}.
\end{abstract}
\section{Where to get Help}
The current maintainers of Vn\TeX\ are:
\begin{itemize}
\item Hàn Thế Thành \mailto{HanTheThanh@gmail.com}
\item Reinhard Kotucha \mailto{Reinhard.Kotucha@web.de}
\item Werner Lemberg \mailto{WL@gnu.org}
\end{itemize}
There is a mailing list (very low traffic) for questions about
Vn\TeX\ and typesetting Vietnamese. To subscribe to the list, visit
\http{lists.sourceforge.net/lists/listinfo/vntex-users}
\section{Related Documents}
The following files are part of the Vn\TeX\
distribution\ifx\printversion\undefined\footnote{The print versions
should be used with monochrome printers. A print version of this
file is \href{vntex-print.pdf}{\bibcolor{here}}.}\fi
\begin{itemize}
%\href{}{\bibcolor{here}}}
%%%%\item \href{file:vntex-man.pdf}{VnTeX Manual}
\item \bibfile{Hàn Thế Thành}{vntex-man.pdf}{Hỗ trợ tiếng Việt cho \TeX}
\ifx\printversion\undefined\bibfileprint{vntex-man-print.pdf}\fi
\item \bibfile{Hàn Thế Thành} {vn-min.pdf}{Minimal steps to typeset
Vietnamese} \bibfileprint{vn-min-print.pdf}
\item \bibfile{Hàn Thế Thành và Thái Phú Khánh Hòa} {vn-fonts.pdf}
{Dùng font với Vn\TeX} \bibfileprint{vn-fonts-print.pdf}
\end{itemize}
The following files are not part of Vn\TeX\ but might be part of the
\TeX\ distribution you are using.
% \begin{itemize}
% \item \ifundefined{vntexdoc-amsldoc-vi}
% {\xbibfile{The American Mathematical Society}{\CTANbase/amslatex/vietnamese/amsldoc-vi.pdf}
% {Hướng dẫn sử dụng gói \pkg{amsmath}}.}
% {\bibfile{The American Mathematical Society}{\docpath{vntexdoc-amsldoc-vi}}{Hướng dẫn sử dụng gói
% \pkg{amsmath}}}
% Translated by Huỳnh Kỳ Anh.
% \ifundefined{vntexdoc-amsldoc-vi}
% {\xbibfileprint{\CTANbase/amslatex/vietnamese/amsldoc-print-vi.pdf}}
% {\bibfileprint{\docpath{vntexdoc-amsldoc-print-vi}}}
% \item \ifundefined{vntexdoc-lshort-vi}
% {\xbibfile{H.~Partl, E.~Schlegl, I.~Hyna, T.~Oetiker}
% {\CTANbase/lshort/vietnamese/lshort-vi.pdf}{Một tài liệu ngắn gọn
% giới thiệu về \LaTeXe}.}
% {\bibfile{H.~Partl, E.~Schlegl, I.~Hyna, T.~Oetiker}
% {\docpath{vnzexdoc-lshort-vi}} {Một tài liệu ngắn gọn
% giới thiệu về \LaTeXe}.}
% Translated by Nguyễn Tân Khoa.
% \item \bibfile{Wolfgang May, Andreas
% Schlechte}{\texmfdocvi/ntheorem-vn/ntheorem-doc-vn.pdf} {Mở rộng
% môi trường định lý}. Translated by Huỳnh Kỳ Anh.
%\end{itemize}
\begin{itemize}
\item \textit{The American Mathematical Society}, Hướng dẫn sử dụng gói
\pkg{amsmath},\\
\URL{\CTANbase/amslatex/vietnamese/amsldoc-vi.pdf}\\
\URL{\CTANbase/amslatex/vietnamese/amsldoc-print-vi.pdf}
\item \textit{H.~Partl, E.~Schlegl, I.~Hyna, T.~Oetiker}, Một tài
liệu ngắn gọn giới thiệu về \LaTeXe, Translated by Nguyễn Tân Khoa.\\
\URL{\CTANbase/lshort/vietnamese/lshort-vi.pdf}
\item \textit{Wolfgang May, Andreas Schlechte}, Mở rộng
môi trường định lý. Translated by Huỳnh Kỳ Anh.\\
\URL{\CTANbase/translations/vn/ntheorem-doc-vn.pdf}
\end{itemize}
\section{Typesetting Vietnamese}
In order to typeset Vietnamese, you need a text editor which supports
Vietnamese. In particular, it should support an \emph{input encoding}
an an \emph{input method} suitable for Vietnamese.
If you are not familiar with encodings, here is a brief explanation:
Each key on your keyboard is assigned to a letter. Computers don't
understand letters, they only understand numbers. The table which
assigns letters to numbers is called \emph{input encoding}.
\marginnote{input encoding}A popular input encoding system used in
Vietnam is VISCII. The problem is that only 256 characters can be
used at the same time. It's sufficient for typesetting Vietnamese,
however, it's not well suited for multilingual texts. A better
approach had been provided by the Unicode Consortium: UTF-8. This is
a very efficient encoding system which supports all writing systems of
the world. You can have Vietnamese, Arabic, Korean, Ethiopian,
Hindi,\ldots characters in one and the same file. UTF-8 is the
encoding system of the future and it becomes even more popular in
Vietnam.
Vn\TeX\ supports many input encodings such as VISCII, TCVN, or UTF-8, but
there is no support for VNI (nor will there ever be).
You can use the input encoding of your choice, but you have tell \TeX\
which one you are using. How to do this is decribed below.
\marginnote{font encoding}There is a similar issue with fonts. A font
is a collection of \emph{glyphs}. A glyph is the graphical
representation of a character. Graphical representations of the
character \texttt{a} might be `a', `\textit{a}', or `\textbf{a}', for
example. Fonts never contain characters; they contain only glyphs,
sometimes more than a single glyph for a given character. A font
usually contains more than 256 glyphs, but \TeX\ can only access 256
characters at the same time. The table which maps characters to glyphs
is called a \emph{font encoding}.
However, if you are using \LaTeX, a name is assigned to each character
read from the keyboard. This way it can deal with an arbitrary number
of characters internally. You can specify more than one font encoding
and \LaTeX\ switches between them automatically. In most cases it's
sufficient to know that font encoding |T1| supports Western European
languages and |T5| supports Vientamese.
\marginnote{input method}But how to enter all the characters if you
have only an American keyboard? You have to select an \emph{input
method}. An input method allows you to access characters which are
not supported by your keyboard. If you select VIQR as an input
method, you can write ``\verb/Ha` No^.i/'' on your keyboard but you
see ``\texttt{H\`a N\d\ocircumflex i}'' on screen and you get ``H\`a
N\d\ocircumflex i'' in your typeset document.
However, input methods are quite system dependent. If your operating
system doesn't support anything appropriate, check
whether your editor or \TeX\ shell supports them.
\marginnote{editors}It's not easy to propose a particular editor. If
you are using a reasonably powerful editor for writing your own
programs, then use it for \TeX\ too.
Editors which are supposed to work on all operating systems are
\xbibfilenoauthor{www.vim.org}{\pkg{vim}},
\xbibfilenoauthor{gnu.org/software/emacs}{\pkg{Emacs}},
\xbibfilenoauthor{www.xm1math.net/texmaker}{\pkg{\TeX{}Maker}}, and
\xbibfilenoauthor{tug.org/texworks}{\pkg{\TeX{}works}}.
On Windows there are some alternatives, like
\xbibfilenoauthor{projectory.de/texshell}{\pkg{\TeX{}shell}},
\xbibfilenoauthor{www.winedt.com}{\pkg{WinEDT}}, and
\xbibfilenoauthor{www.texniccenter.org}{\pkg{\TeX{}nicCenter}}.
If you are on Mac\,OS\,X,
\xbibfilenoauthor{www.uoregon.edu/~koch/texshop}{\pkg{\TeX{}shop}} is
a good choice. \pkg{\TeX{}shop} is aimed at beginners but it is
extremely powerful though. It provides a very fast PDF viewer and if
you click on a particular word in the PDF file, the cursor moves to
this word in the text editor, and vice
versa. \xbibfilenoauthor{tug.org/texworks}{\pkg{\TeX{}works}} is
something very similar. But it is supposed to work on all operating
systems and will probably be the default editor in \TeX~Live and
Mik\TeX.
There are some different flavours of
\TeX, such as Plain \TeX, \LaTeX, and Context. \LaTeX\ is the most
popular one and there are many books available about it.
\subsection{Typesetting with \LaTeX}
The idea of \LaTeX\ is to treat content and layout separately. If you
never used \LaTeX\ before, please read {\xbibfilenoauthor
{\CTANbase/lshort/vietnamese/lshort-vi.pdf}{Một tài liệu ngắn gọn
giới thiệu về \LaTeXe}} first.
\subsubsection{Using \pkg{vietnam} or \pkg{vntex}}
There are two packages, \pkg{vietnam} and \pkg{vntex}. They are quite
similar, the only difference is that the default input encoding is VISCII
in \pkg{vietnam} and UTF-8 in \pkg{vntex}. However, both packages
allow you to specify any supported input encoding. The following
encoding systems are supported:
\begin{tabular}{ll}\hline
\code{|viscii|} & use VISCII input encoding\\
\code{|mviscii|} & use MVISCII input encoding\\
\code{|tcvn|} & use TCVN input encoding\\
\code{|vps|} & use VPS input encoding\\
\code{|utf8|} & use UTF-8 input encoding (\LaTeX)\\
\code{|utf8x|} & use UTF-8 input encoding (ucs package)\\
\code{|noinputenc|} & do not load the inputenc package (use of TCX is assumed)\\\hline
\end{tabular}
Examples: %\par\kern -2pt % avoid and unpleasant page break
\begin{Code}
\documentclass{report}
\usepackage{vietnam} % |texcomment(use VISCII input encoding)
\begin{document}
|sometext(text in VISCII encoding)
\end{document}
\end{Code}
\begin{Code}
\documentclass{report}
\usepackage{vntex} % |texcomment(use UTF-8 input encoding)
\begin{document}
|sometext(text in UTF-8 encoding)
\end{document}
\end{Code}
\begin{Code}
\documentclass{report}
\usepackage[tcvn]{vntex} % |texcomment(use TCVN input encoding)
\begin{document}
|sometext(text in TCVN encoding)
\end{document}
\end{Code}
Both packages, \pkg{vietnam} and \pkg{vntex}, have the following
additional options:
\begin{tabular}{ll}\hline
\code{|nocaptions|} & do not define Vietnamese captions\\
\code{|varioref|} & load the \pkg{varioref-vi} package\\
\code{|cmap|} & load the \pkg{cmap} package\\\hline
\end{tabular}
If the option {\code|nocaptions|} is set, then captions
are typeset in English. On the other hand, if you are using the
\pkg{varioref} package, you might want to set
the {\code|varioref|} option in order to get
``\h{\ohorn} trang li\`\ecircumflex{}n sau'' instead of ``on the
following page'', for example.
The \pkg{cmap} packages makes the PDF file searchable.
\newpage
\subsubsection{Using \pkg{babel} instead of
\pkg{vietnam}/\pkg{vntex}}
For multilingual documents it's better to use the \pkg{babel} package,
which is part of the \LaTeX\ core. Though the \pkg{inputenc} package
allows you to select the input encoding of your choice, UTF-8 is the
preferred encoding for multilingual documents.
\begin{Code}
\documentclass{report}
\usepackage[T2A,T5]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,vietnam]{babel}
\begin{document}
Tiếng Việt,
\selectlanguage{russian}%
|selectlanguage(russian)русский язык,
\selectlanguage{vietnam}%
|selectlanguage(vietnam)tiếng Việt.
\end{document}
\end{Code}
Note that last optional argument passed to \pkg{babel} is the language
which is active at the beginning of your document.
The result of the example above is:~~
{\fboxsep5pt
\fbox{\fontfamily{lmr}\large
Tiếng Việt,
\selectlanguage{russian}%
русский язык,
\selectlanguage{vietnam}%
tiếng Việt.}}
\subsubsection{Using \pkg{TCX} files}
\TeX\ itself can't use non-ASCII characters when writing error
messages to screen or to the log file. Instead, it prints non-ASCII
chacters in hexadecimal notation, like |^^DF|. But there is an
extension called \pkg{TCX}. If you activate \pkg{TCX}, a translation
table is loaded, and all files \TeX\ reads are translated before they
are processed. If you are using \pkg{TCX}, you can't use the
\pkg{inputenc} package because the translation can be done only once.
\pkg{TCX} and \pkg{inputenc} are more or less equivalent. The
advantage of \pkg{TCX} is that you get Vietnamese characters in
messages about overfull/underfull boxes and the like. The main
drawback is that it doesn't support UTF-8.
Vn\TeX\ provides two \pkg{TCX} tables, {\code|viscii-t5|}
and {\code|tcvn-t5|}. Here is an example:
\begin{Code}
%& -translate-file=viscii-t5
\documentclass{report}
\usepackage[noinputenc]{vietnam}
\begin{document}
|sometext(text in VISCII encoding)
\end{document}
\end{Code}
The very first line says that the option {\code|-translate-file=viscii-t5|}
is passed to \TeX\ when compiling the document. It has the same effect
as if you run
{\code|latex -translate-file=viscii-t5 foo.tex|}
on the command line. Using TCVN is similar.
%\newpage
\subsubsection{Creating HTML from \LaTeX\ sources}
In order to create HTML documents from La\TeX\ sources, run
{\code|tex4ht "html,uni-html4,charset=utf8"|} \textit{yourfile.tex}
on the command line. You can't use \pkg{TCX} with \pkg{tex4ht}.
\subsection{Typesetting with plain TeX}
Unfortunately, there is no package for UTF-8 input encoding in plain
TeX yet.
\subsubsection{\pkg{plainenc} and \pkg{plnfss}}
\pkg{plnfss} provides a \LaTeX-like interface for font selection.
\begin{Code}
\input t5code
\input plnfss
\input plainenc
\fontencoding{T5}
\inputencoding{viscii} % |texcomment(or any other encoding mentioned)
% |texcomment(above except |texttt(utf8))
\setfontencoding{T5}
\selectfont
|sometext(text in VISCII encoding)
\bye
\end{Code}
\pkg{plainenc} and \pkg{plnfss} are not part of the Vn\TeX\
distribution any more but it is very likely that they are part of the
\TeX\ system you are using.
If you have a version of \pkg{plnfss}\ which doesn't already support
Vietnamese, please install
\http{vntex.sf.net/download/vntex-support/plnfss.zip}
\subsubsection{Using \pkg{TCX}}
\pkg{TCX} files can be used as described in the \LaTeX\ section.
\begin{Code}
%& -translate-file=viscii-t5
\input t5code
\input plnfss
\setfontencoding{T5}
\selectfont
|sometext(text in VISCII encoding)
\bye
\end{Code}
\subsection{Using \pkg{texinfo}}
TCX is required:
\begin{Code}
%& -translate-file=viscii-t5
\def\fontprefix{vn}
\input t5code.tex
\input texinfo
|sometext(text in VISCII encoding)
\end{Code}
There are some test files for Vn\TeX\ in |texmf*/source/latex/vntex/tests/|.
Please read the file \pkg{README} in this directory.
\section{Vietnamese Fonts}
Vn\TeX\ provides a lot of Vietnamese fonts. If you are using
{\code|T5|} font encoding but do not specify any font (as in the
examples above) you get \pkg{Vietnamese Computer Modern}. These VNR
fonts are extensions to Donald Knuth's \pkg{Computern Modern Fonts}
and have been designed by Hàn Thế Thành.
\marginnote{nonfree fonts}Vn\TeX\ provides Vietnamese versions of free
fonts donated by Adobe, URW, and Bitstream. Some of the URW fonts can
be used freely but they can't be distributed if money is charged for
the distribution. These fonts are not part of the Vn\TeX\ core
distribution because otherwise Vn\TeX\ can't be in \pkg{TeX Live} or
in Linux distributions. There is an extra package containing these
fonts:
\indenturl\http{vntex.sourceforge.net/download/vntex/vntex-nonfree.zip}\\
\indenturl\http{vntex.sourceforge.net/download/vntex/vntex-nonfree.tar.bz2}
If you are using \pkg{TeX Live}, intallation is very simple. Just run
{\code|getnonfreefonts --help|}
on the command line in order to get more information.
\marginnote{\pkg{Latin Modern} and \pkg{\TeX Gyre}}There are many other
fonts supporting Vietnamese which are not shipped with Vn\TeX\
because they are an integral part of any modern \TeX\ distribution
anyway. Some quite interesting fonts are the \pkg{Latin Modern} and
\pkg{\TeX\ Gyre} fonts created by Bogus\l{}aw Jackowski and Janusz
M. Nowacki. They fully support Vietnamese but their main advantage
is that they support virtually all Latin scripts used today. Thus,
they are well suited for multilingual documents.
\marginnote{MS core fonts}The Microsoft core fonts are supported
too. Vn\TeX\ only provides the additional files needed to make them
accessible to \TeX, but not the fonts themselves. If you are on
Windows, they are available already.
If you are on Unix, you have to install them yourself.
\http{sourceforge.net/project/showfiles.php?group\_id=34153}
Though the quality of the original fonts was quite good, the
Vietnamese accents were added later, and obviously not by
the guys who designed the fonts. The only exception is \pkg{Palatino
Linotype}. Inspect the fonts carefully before you decide which one
you want to use.
\marginnote{font samples}There are sample files for all fonts which
support Vietnamese, can be used with \TeX, and can be used freely,
even commercially. However, some of them can't be distributed if you
charge money for the distribution.
\http{vntex.sf.net/fonts/samples}
Not every font supports maths. If you have to typeset math
formulas, consult:
\http{ctan.org/tex-archive/info/Free\_Math\_Font\_Survey/vn/survey-vn.pdf}
\subsection{Selecting Fonts in \LaTeX}
We describe how to use fonts with \LaTeX\ first. A description of
\pkg{plnfss} (plain TeX) is given below.
To use Latin Modern instead of VNR, simply
\begin{Code}
\usepackage{lmodern}
\usepackage[viscii]{vietnam}
\end{Code}
For Antikwa Toru\'nska, do
\begin{Code}
\usepackage{anttor}
\usepackage[viscii]{vietnam}
\end{Code}
\ldots or use \pkg{inputenc} and \pkg{babel} instead of \pkg{vietnam}.
It is recommended to specify a roman font, a sans-serif font and a
typewriter font separately. You do not have to specify all of them.
It makes sense, for instance, not to specify a typewriter font --- you
get Computer Modern Typewriter then, which is a good choice.
\begin{tabular}{lll}\hline
Command & PostScript Name & Font Family Name\\\hline
{\code|\renewcommand\sfdefault{uag}|} & |VnURWGothicL| & AvantGarde\\
{\code|\renewcommand\rmdefault{ubk}|} & |VnURWBookmanL| & Bookman\\
{\code|\renewcommand\ttdefault{ucr}|} & |VnNimbusMonL| & Courier\\
{\code|\renewcommand\sfdefault{uhv}|} & |VnNimbusSanL| & Helvetica\\
{\code|\renewcommand\rmdefault{unc}|} & |VnCenturySchL| & New Century Schoolbook\\
{\code|\usepackage{mathpazo}|} & |VnURWPalladioL| & Palatino\\
{\code|\usepackage{mathptm}|} & |VnNimbusRomNo9L| & Times\\\hline
\end{tabular}
\marginnote{small caps}There is also a real small caps font for
|VnURWPalladioL|, made by Ralf Stubner and extended by Hàn Thế Thành.
There are still some support files missing.
By default, you get the faked small caps but you can use real small caps with
some restrictions. To make use of them, put the following macro definition
into the preamble of your document:
{\code|\newcommand{\textfplsc}[1]{\bgroup\usefont{T5}{fpl}{m}{sc}#1\egroup}|}
You can use it like this:
{\code||\sometext{some text}
\code|\textfplsc{|\sometext{some text in small caps}\code|}|
\sometext{some text}}
The macro argument should not contain any numbers because they will appear
as oldstyle numbers, but you cannot use oldstyle numbers with other font
shapes in T5 encoding (Vietnamese) yet. This problem will be fixed in a
future release.
\marginnote{math fonts}If you have to typeset math formulas, be aware
that not all fonts support math. The following fonts support math
very well:
\begin{tabular}{ll}\hline
Font & Command \\\hline
Computer Modern & do nothing \\
Latin Modern & {\code|\usepackage{lmodern}|} \\
Palatino & {\code|\usepackage{mathpazo}|} \\
Times & {\code|\usepackage{mathptm}|} \\\hline
\end{tabular}
There are many others too, please consult:
\http{ctan.org/tex-archive/info/Free\_Math\_Font\_Survey/vn/survey-vn.pdf}
However, some of the fonts borrow math symbols from other fonts and
it's worthwhile to check whether all the symbols you need blend well
with the base font you are using. Be very careful when using
\textsf{sans-serif} fonts in math formulas. It's very
painful if there is no significant difference between ``\textsf{l}''
and ``\textsf{I}''. Do you see any difference at all? The first
one is a lowercase ``\texttt{L}'', the second one is an uppercase
``\texttt{i}''.
\clearpage
\marginnote{MS core fonts}If you are using Windows, you also can use
the fonts provided by Microsoft:
\begin{tabular}{lll}\hline
Command & PostScript Name & Font Family Name\\\hline
{\code|\renewcommand\sfdefault{ma1}|} & |ArialMT| & Arial \\
{\code|\renewcommand\ttdefault{mcr}|} & |CourierNewPSMT| & Courier \\
{\code|\renewcommand\rmdefault{lpr}|} & |PalatinoLinotype| & Palatino \\
{\code|\renewcommand\rmdefault{mns}|} & |TimesNewRomanPSMT| & Times New Roman \\
{\code|\renewcommand\sfdefault{jth}|} & |Tahoma| & Tahoma \\
{\code|\renewcommand\sfdefault{jvn}|} & |Verdana| & Verdana \\\hline
\end{tabular}
None of the Microsoft fonts supports mathematics. Though the quality of
the fonts is quite high, not much care had been taken in the design of
Vietnamese accents. See:
\http{vntex.sf.net/fonts/samples}
Unless someone insists that you use these fonts, you can use
\begin{tabular}{lll}\hline
|VnNimbusMonL| & instead of |CourierNewPSMT| & Courier\\
|VnNimbusSanL| & instead of |ArialMT| & Helvetica/Arial\\
|VnNimbusRomNo9L| & instead of |TimesNewRomanPSMT| & Times/Times New Roman\\
|VnURWPalladioL| & instead of |PalatinoLinotype| & Palatino\\\hline
\end{tabular}
If you are using plain \TeX, you can use \pkg{plnfss.tex} to select fonts.
Instead of
\begin{Code}
\renewcommand\rmdefault{...}
\renewcommand\sfdefault{...}
\renewcommand\ttdefault{...}
\end{Code}
you have to select fonts like this:
\begin{Code}
\setrmdefault{...}
\setsfdefault{...}
\setttdefault{...}
\end{Code}
See the \pkg{plnfss} documentation for more details.
\section{Licenses}
The URW and Bitstream Type1 fonts are copyrighted under the GNU GPL,
\texttt{.map} files are public domain, \pkg{varioref-vi.sty} is under
LGPL, \pkg{Vntopia} is under the Adobe/TUG Utopia license agreement,
all other files are under LPPL, version 1.3 or newer.
\begin{itemize}
\item \http{www.gnu.org/licenses/gpl.txt}
\item \http{www.gnu.org/licenses/lgpl.txt}
\item \http{www.latex-project.org/lppl.txt}
\item \http{tug.org/fonts/utopia/LICENSE-utopia.txt}
\end{itemize}
\clearpage
\section{Contributors}
\LaTeX\ support (input encoding files, font encoding files, babel support
and vietnam.sty) had been provided by Werner Lemberg. \pkg{vntex.sty}
had been proposed by Huỳnh Kỳ Anh.
Vietnamese fonts for \pkg{tex4ht} had originally been provided by Hàn
Thế Thành, but they are now maintained by Eitan Gurari.
\pkg{plnfss} had been removed from Vn\TeX\ because it supports many other
languages as well. You can download it from
\http{ctan.tug.org/tex-archive/macros/plain/plnfss}
\section{Known Problems}
\begin{itemize}
\item In order to use \pkg{amsart.cls} (and other AMS La\TeX\ document
classes) with Unicode you must add the following lines immediately
before {\code|\begin{document}|}:
\begin{Code}
\def\firstofone#1{#1}
\let\uppercase\firstofone
\let\MakeUppercase\firstofone
\end{Code}
This completely disables \LaTeX's uppercasing commands which might
cause bad secondary effects. Note that this problem is not specific
to Vietnamese but affects any multibyte encoding.
\item In order to use Vn\TeX\ with \pkg{Prosper}, you have to install
\http{vntex.sf.net/download/vntex-support/prosper-vn.zip}
\item In order to use Vn\TeX\ with Foil\TeX, you have to install
\http{vntex.sf.net/download/vntex-support/foiltex-vn.zip}
\item If have an old version of \LaTeX\ which does not support
UTF-8, you have to use \pkg{ucs.sty}. If \pkg{ucs.sty} is not
present on your system you can install
\http{vntex.sf.net/download/vntex-support/ucs-vn.zip}
We will keep this file as long as \pkg{ucs} is unmaintained. If
a maintainer is found you should download a fresh \pkg{ucs}
distribution from the original site.
This is a small subset of the \pkg{ucs} package which supports
Vietnamese only. You can invoke it with
{\code|\usepackage[utf8x]{inputenc}|}.
Instead of installing ucs we recommend you update \LaTeX. The
latest version can be downloaded from
\begin{itemize}
\item \leavevmode\http{www.dante.de/tex-archive/macros/latex/base.zip} (Germany)
\item \leavevmode\http{www.tex.ac.uk/tex-archive/macros/latex/base.zip} (UK)
\item \leavevmode\http{tug.ctan.org/tex-archive/macros/latex/base.zip} (USA)
\end{itemize}
\end{itemize}
\end{document}
__
Everything below the line above is ignored.
Local Variables:
coding: utf-8
End:
%%% initemxf --edit-config-file updmap
|