VietTUG.org - old forum - threads' archive

thread_id = 2136, contains 2136, 2138, 2143, 2145, 2146
id = 2136, parent = 0, thread = 2136, catid = 10, locked = 0, moved = 0,
userid = vanchutr, ip = 125.234.247.157, time = 2006/05/19 (1148023177) ,
subject = Sơ lược về Omega, hits = 3182, karma = 0+0-,
Giới thiệu về Omega (trích từ Internet)

Một file nguồn đơn giản
\documentclass[a4paper,12pt]{article}
\usepackage[english]{babel}
\usepackage{omega}
\begin{document}
This is our first file with \OMEGA.
\end{document}


Để dịch file trên chúng ta dùng trình dịch lambda chứ không dùng latex. (lambda tương đương với latex và gamma thay cho tex còn ConteXt thay cho gamma.

Lệnh dịch như: lambda file.tex. Lệnh này cho file xuất là file file.dvi

Và xem kết quả thì dùng trình xem .dvi

Chúng ta có thể chuyển file .dvi sang .pdf bằng lệnh: dvipdfmx file.dvi

Gói omega.sty cho phép dùng các font chuẩn của Omega. Với các ngôn ngữ có chuẩn mã latin 1 thì chúng ta có thể nhập trực tiếp. Với các ngôn ngữ khác (không dùng chuẩn mã hóa latin 1) thì phải có cách nhập thích hợp.

Việc dùng các ngôn ngữ có chuẩn mã khác (latin 1) thì thông thường chúng ta phải viết thêm đoạn mã hỗ trợ cho ngôn ngữ đó. Cụ thể là: Viết thêm môi trường mới vào file omega.sty.

Ví dụ như: Đối với ngôn ngữ hy lạp thì môi trường `greek' được định nghĩa như sau:

\newenvironment{greek}{%
  \pushocplist\GreekOCP %%(1)
  \fontfamily{omlgc}\selectfont%
  \language=3%
  \lefthyphenmin=2%
  \righthyphenmin=2%
}{%
}

Dòng (1) yêu cầu nạp danh sách OCP (đó là danh sách mã nhập các ký tự của ngôn ngữ tương ứng); đó là mã mà chúng ta phải nhập khi dùng ngôn ngữ đó. Ví dụ: Mã nhập là UTF8 hay latin 1, hay viscii ... và mã xuất được dùng do font ví dụ OT1 hay T1).

Một file OTP (hỗ trợ ngôn ngữ Hy Lạp) được định nghĩa (có nội dung) như:

\ocp\GrTexUni=grpo2uni
 \ocp\GrUniToFont=uni2greek
 \ocplist\GreekOCP=
   \addbeforeocplist 1 \GrTexUni
   \addbeforeocplist 1 \GrUniToFont
 \nullocplist


File OCP gồm có hai phần: Phần thứ nhất OCP \GrTexUni, được định nghĩa trong file grpo2uni.otp, file này chuyển đổi mã nhập sang `nội mã' mà Omega dùng. Phần thứ hai OCP\GrUniToFont là phần được định nghĩa trong file uni2greek.otp, file này có nhiệm vụ chuyển đổi nội mã của Omega sang mã của bộ font tương ứng.

Ví dụ: Chúng ta hãy xem nội dung của file grpo2uni.otp. (Thông thường trong file này tác giả hay viết tên của chuẩn mã hóa).

input: 1;
output: 2;
 
expressions:
 
`<'`''`a'`|'   =>    #(@"1F85)  ;
`<'`''`h'`|'   =>    #(@"1F95)  ;
`<'`''`w'`|'   =>    #(@"1FA5)  ;
`<'`='`a'`|'   =>    #(@"1F87)  ;
...
`A'   =>    #(@"0391)  ;
`B'   =>    #(@"0392)  ;
`D'   =>    #(@"0394)  ;
`E'   =>    #(@"0395)  ;
`F'   =>    #(@"03A6)  ;
`G'   =>    #(@"0393)  ;
...

Trng file trên ta thấy ngay: Để thu được chữ alpha thì chúng ta phải nhập chữ a (từ bán phím). Tương tự cho các chữ khác. Nên nhớ những chữ có dấu thanh thì chúng ta thường viết dấu thanh trước chữ (nguyên âm) đó (ví dụ: <'u). Có những chữ chúng ta không viết như vậy mà lại dùng mã Unicode; ví dụ: Nhập U+02C2 (mã Unicode) thì ta thu được chữ sigma.

Ta phải biết trong OTP thì ký tự nào tương ứng với mã nào: Ví dụ chữ beta nhập được bằng cách gõ ^^^^02D0 (tức là mã U+03D0). Và ta phải xem ký tự đó có vị trí nào trong bảng mã chuẩn của Omega (xem file omgls.ps). (http://www.lps.ens.fr/~ebrunet/omega/omlgc.ps)

Và khi đã nắm được tương quan đó thì ta có thể nhập file nguồn với ngôn ngữ Hy Lạp như:

\documentclass[a4paper,12pt]{article}
\usepackage[english]{babel}
\usepackage{omega}
\begin{document}
\pagestyle{empty}
\begin{greek}
<h <'ubric

<h <'u^^^^03d0ric

Gei'a sac
\end{greek}
\end{document}


Tương tự như vậy với các ngôn ngữ khác.

Chú ý: Do độ phức tạp của ngôn ngữ mà người ta phải có các file hỗ trợ bổ sung. Ví dụ: Với ngôn ngữ Hy Lạp thì có thêm file hỗ trợ (bổ túc) grlccode.tex. Và ta phải nạp file đó vào trước khi soạn file nguồn bằng lệnh: \input{grlccode.tex} (File này chỉ rõ các ký tự nào của ngôn ngữ Hy Lạp là các chữ)

Các mã hóa khác

Một ngôn ngữ có một bảng mã; ví dụ với ngôn ngữ Hy Lạp thì bảng mã tông dụng thường dùng là ISO-8859-7, nhưng cũng có thể dùng chuẩn mã UTF8 nếu ta muốn nhập nhiều ngôn ngữ khác nhau trong file tài liệu. Để nhập được nhiều ngôn ngữ ta phải định nghĩa lại môi trường Hy Lạp (đã được định nghĩa trong omega.sty), để môi trường này chấp nhận đọc được mã nhập từ một OTP khác.

Ta có thể tìm file ISO-8859-7: Trong thư mục của omega và thấy có file in88597.otp. Đó là file chuẩn mã của ngôn ngữ Hy Lạp. Và khi đó ta soạn phần preamble của tài liệu như sau:

\documentclass[a4paper,12pt]{article}
\usepackage[english]{babel}
\usepackage{omega}
 
\ocp\GrIsoUni=in88597
\ocplist\GreekOCP=
   \addbeforeocplist 1 \GrIsoUni
   \addbeforeocplist 1 \GrUniToFont
 \nullocplist
\begin{document}
\pagestyle{empty}
\begin{greek}
Ãăéỵ óáò
\end{greek}
\end{document}


Với file nguồn trên ta đã dùng được ngôn ngữ Hy Lạp.

Với các ngôn ngữ khác ta cũng tiến hành theo cùng nguyên tắc đã làm. Và với cách dùng URF8 ta cũng tiến hành tương tự. (Với UTF8 thì file nhập có tên là inutf8).

Hướng viết: Với các ngôn ngữ viết từ trái sang phải thì hiển nhiên. Nhưng có (thứ chữ viết) ngôn ngữ thì phải viết từ phải sang trái thì file nguồn chúng ta phải có đoạn mã định nghĩa hướng viết theo dạng sau:

\newenvironment{arab}{% Chữ Ả Rập
  \pushocplist\ArabicOCP
  \fontfamily{omarb}\selectfont
  \beginR
}{%
  \endR
}
 
id = 2138, parent = 2136, thread = 2136, catid = 10, locked = 0, moved = 0,
userid = viettug, ip = 222.252.235.203, time = 2006/05/19 (1148023971) ,
subject = Re:Sơ lược về Omega, hits = 0, karma = 0+0-,
cám ơn thầy Chú rất nhiều.

em cần một hướng dẫn và bộ cài thật xịn để tích hợp gói Omega (vietnam) với vnmik. Thầy hoặc hhp có thể mần không? Cách đây khá lâu, hhp có gửi kyanh bộ cài omega nhưng em không xử lý được ;(
 
id = 2143, parent = 2138, thread = 2136, catid = 10, locked = 0, moved = 0,
userid = hhp, ip = 203.210.254.42, time = 2006/05/19 (1148037048) ,
subject = Re:Sơ lược về Omega, hits = 0, karma = 0+0-,
Dưới đây là một ví dụ dùng tiếng việt trong omega chuẩn có sẵn trong MiKTeX (không dùng omegavn), nó dùng các font Omegaserif...


\documentclass{article}
\usepackage{omega}
\ocp\TexUTF=inutf8
\InputTranslation currentfile \TexUTF
\begin{document}
Tiếng việt trong omega
\end{document}
 
id = 2145, parent = 2143, thread = 2136, catid = 10, locked = 0, moved = 0,
userid = viettug, ip = 203.210.241.183, time = 2006/05/19 (1148046853) ,
subject = Re:Sơ lược về Omega, hits = 0, karma = 0+0-,
thế còn cái gọi là vietnamese caption? làm thế nào để có chúng?

\section -> mục
\chapter -> chương
etc.
 
id = 2146, parent = 2145, thread = 2136, catid = 10, locked = 0, moved = 0,
userid = hhp, ip = 222.253.1.52, time = 2006/05/19 (1148048482) ,
subject = Re:Sơ lược về Omega, hits = 0, karma = 0+0-,
Khai báo ngay trong file.tex hay làm một .sty về vietnamese caption. Chẳng hạn cần \chapter -> Chương, thì khai báo \def\chaptername{Chương}