Mở rộng môi trường định lý

27 531 1
Mở rộng môi trường định lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tóm tắt nội dung ntherem.sty là gói thể hiện các môi trường (tựa) định lý. Bên cạnh các tính năng giúp thay đổi cách thể hiện môi trường (tựa) định lý, gói còn giúp giải quyết vài vấn đề liên quan: đặt dấu kết thúc (endmarks), tạo bảng liệt kê các định lý. Trái với các cách tiếp cận trước đây, gói giải quyết vấn đề đặt dấu kết thúc (endmarks) cho các môi trường tựa định lý (theorem, definition, example, proof) một cách tự động, chính xác, ngay cả đối với môi trường kết thúc bởi môi trường displaymath hoặc môi trường danh sách (thậm chí các môi trường này có thể lồng nhau – nested); nhờ đó giải quyết được hoàn toàn các trục trặc khi dùng gói amsmath. Nguyên lý làm việc của gói giống như cách LATEX điều khiển việc đặt nhãn, bằng cách sử dụng các tập tin .aux. Gói cung cấp lệnh để tạo danh sách các môi trường tựa định lý, tương tự như khi liệt kê các hình vẽ bằng listoffigures. Sau khi biên dịch tài liệu vài lần (số lần tuỳ thuộc vào sự phức tạp của các tham khảo chéo; thường thì ba lần là đủ), các dấu kết thúc (endmarks) sẽ được đặt đúng chỗ, và danh sách các định lý sẽ được tạo ra. Do gói ntheorem.sty sử dụng lệnh ewtheorem của LATEX chuẩn, các tài liệu cũ có thể chuyển qua dùng gói mà không cần thay đổi nội dung. Ngoài ra, gói còn tương thích với các tài liệu dùng gói theorem.sty của Frank Mitterbach.

Mở rộng môi trường định Wolfgang May may@informatik.uni-freiburg.de Andreas Schlechte ntheorem@andreas-schlechte.de Biên dịch: kyanh kyanh@o2.pl Bản dịch số 873 (2005/12/8) cho ntheorem 1.24 (2004/09/20) Tóm tắt nội dung ntherem.sty gói thể môi trường (tựa) định Bên cạnh tính giúp thay đổi cách thể môi trường (tựa) định lý, gói giúp giải vài vấn đề liên quan: đặt dấu kết thúc (endmarks), tạo bảng liệt kê định Trái với cách tiếp cận trước đây, gói giải vấn đề đặt dấu kết thúc (endmarks) cho môi trường tựa định (theorem, definition, example, proof) cách tự động, xác, môi trường kết thúc môi trường displaymath môi trường danh sách (thậm chí môi trường lồng – nested); nhờ giải hoàn toàn trục trặc dùng gói amsmath Nguyên làm việc gói giống cách LATEX điều khiển việc đặt nhãn, cách sử dụng tập tin aux Gói cung cấp lệnh để tạo danh sách môi trường tựa định lý, tương tự liệt kê hình vẽ \listoffigures Sau biên dịch tài liệu vài lần (số lần tuỳ thuộc vào phức tạp tham khảo chéo; thường ba lần đủ), dấu kết thúc (endmarks) đặt chỗ, danh sách định tạo Do gói ntheorem.sty sử dụng lệnh \newtheorem LATEX chuẩn, tài liệu cũ chuyển qua dùng gói mà không cần thay đổi nội dung Ngoài ra, gói tương thích với tài liệu dùng gói theorem.sty Frank Mitterbach License & Copyright Information This is part of ‘ntheorem-doc-vn’ bundle -Copyright (C) 2005 kyanh -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 in http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all distributions of LaTeX version 2003/12/01 or later This work has the LPPL maintenance status "maintained" Current maintainer of this work is kyanh List of files of this bundle can be found in FILELIST These files *MUST* be distributed as a whole FILELIST /FILELIST /README /COPYING /ntheorem-doc-vn.pdf /test.tex /test.pdf /src/TODO /src/README.src /src/Makefile /src/ntheorem-doc-vn.tex /src/example.tex /src/license.tex /src/intro.tex /src/test.tex /src/user-interface.tex /src/help.tex /src/thanks.tex /src/endmarks.tex /src/interference.tex /src/preamble.tex /src/title-abstract.tex Acknowledgements Giới thiệu Ghi Sử dụng gói 3.1 Nạp gói 3.2 Định nghĩa THM 3.3 Thay đổi kiểu dáng 3.3.1 Các tham số chung 3.3.2 Cho THM cụ thể 3.3.3 Lựa chọn font 3.3.4 Các kiểu định nghĩa 3.3.5 Thiết lập mặc định 3.3.6 Các THM chuẩn 3.3.7 THM chuẩn cá nhân 3.4 Danh sách THM 3.4.1 Thay đổi kiểu danh sách THM 3.4.2 Ghi thông tin vào danh sách THM 3.5 Định nghĩa kiểu (danh sách) THM 3.5.1 Định nghĩa kiểu THM 3.5.2 Định nghĩa kiểu danh sách THM 3.6 Dấu kết thúc 3.7 Tham khảo mở rộng 3.8 Linh tinh Ảnh hưởng đến gói khác 4.1 Ảnh hưởng đến tuỳ chọn lớp tài liệu 4.2 Với gói amslatex 4.2.1 Với gói amsmath 4.2.2 Với gói amsthm 4.3 Với gói babel 4.4 Với gói hyperref Vấn 5.1 5.2 5.3 4 6 7 8 9 10 10 10 11 11 12 12 13 14 14 14 14 14 15 15 15 đề thường gặp 15 Giới hạn gói ntheorem 15 Các BUG biết 17 Câu hỏi mở 17 Ví dụ 18 6.1 Tham khảo mở rộng 23 6.2 Danh sách THM 24 Acknowledgements This place is dedicated to all those, who helped us developing our separate styles and this combined package Thanks to (listed in alphabetical order): Donald Arseneau, Giovanni Dore, Oliver Karch, Frank Mittelbach, Gerd Neugebauer, Heiko Oberdiek, Boris Piwinger, Bernd Raichle, Rainer Sch¨opf, Didier Verna Giới thiệu Ghi Một môi trường tựa định lý, ta gọi tắt (môi trường) THM, minh họa Hình trang liền sau Với THM, tên định lý, hệ quả, bổ đề, tiên đề, định nghĩa, ví dụ, ghi chú, chứng minh, gọi tên THM Phần header THM bao gồm tên THM, số THM, tên tuỳ chọn (hay tên riêng) THM Phần nội dung THM gọi thân (body) THM Để ý rằng, tên THM khác với tên môi trường THM.1 Trong ví dụ sau, \newtheorem{foobar}{Menh de} ta có THM foobar, với tên Menh de, tên môi trường tương ứng foobar Đôi khi, ta gọi môi trường THM thay cho tên môi trường THM Cách thể THM thay đổi nhờ tham số kiểu chữ cho header, cho thân THM, bố trí header, khoảng trắng thụt đầu dòng, cách đánh số, Để thỏa mãn yêu cầu thay đổi này, gói theorem.sty Fran Mittelbach viết trở thành gói chuẩn LATEX từ lâu Tuy nhiên, tính khác dấu kết thúc endmarks, danh sách theorem chưa hỗ trợ gói chuẩn Giải vấn đề này, có hai mở rộng gói theorem.sty phát triển: gói chuyên điều khiển endmarks, gói thmmarks.sty, gói chuyên liệt kê danh sách THM, gói newthm.sty Sau đó, Frank Mittelbach đề nghị kết hợp hỗ trợ hai gói vào gói (sẽ chuẩn) Đó gói ntheorem.sty ;) Sử dụng gói 3.1 Nạp gói Gói ntheorem.sty nạp sau \usepackage[ options ]{ntheorem} với options danh sách tuỳ chọn yêu cầu đặc biệt Các tuỳ chọn cho nhờ options sau: standard noconfig standard noconfig Trong thực tế, thường tên môi trường THM tên THM có tương ứng 1-1, ví dụ menhde ứng với Mệnh đề, dinhly ứng với Định Do đó, đa số trường hợp, phân biệt ý nghĩa quan trọng — kyanh Hình 1: Môi trường THM xem Mục 3.3.6 trang Mục 3.3.7 trang Với hai tùy chọn standard noconfig, bạn lựa chọn việc sử dụng không tập hợp môi trường THM định nghĩa sẵn amsthm amsthm tùy chọn amsthm dùng bảo đảm tính tương thích với môi trường THM cung cấp gói amsthm Xem Mục 4.2 trang 14 thmmarks thmmarks tuỳ chọn thmmarks đồng ý để gói ntheorem.sty tự động đặt dấu kết thúc (endmarks) (xem Mục 3.3); dùng với gói amsthm, tùy chọn thmmarks phải dùng kèm với tuỳ chọn amsmath Xem thêm Mục 4.2 thref thmref tuỳ chọn thref cho phép mở rộng khả tham khảo chéo Xem Mục 6.1 trang 23; dùng với gói amsthm, tuỳ chọn phải kèm với tuỳ chọn amsmath Xem thêm Mục 4.2 hyperref hyperref tuỳ chọn hyperref bảo đảm tương thích với gói hyperref Xem Mục 4.4 trang 15 Dưới ví dụ: \usepackage{hyperref} \usepackage[hyperref,thmmarks,noconfig]{ntheorem} Với cách nạp gói trên, bạn phải tự định nghĩa môi trường THM, dấu kết thúc định vị tự động Vì ta dùng gói hyperref, ta phải bảo đảm tính tương thích nhờ tuỳ chọn hyperref 3.2 \newtheorem Định nghĩa THM \newtheorem Cú pháp lệnh hoàn toàn giống lệnh chuẩn \newtheorem Lệnh định nghĩa THM Có hai tham số bắt buộc tên môi trường tên THM Tham số bổ sung cách đánh số môi trường \newtheorem{vidu}{Ví dụ} Định nghĩa môi trường vidu, với tên Ví dụ (như vậy, bạn có Ví dụ 1, Ví dụ 2, ) Môi trường sử dụng đếm riêng vidu, bạn thay đổi giá trị giá trị đếm này, chẳng hạn \setcounter{vidu}0 \newtheorem{vidu2}[vidu]{Ví dụ khác} Định nghĩa môi trường vidu2, với tên Ví dụ khác Môi trường sử dụng đếm môi trường vidu ví dụ trước \newtheorem{baitap}{Bài tập}[section] Định nghĩa môi trường baitap (với tên Bài tập), sử dụng đếm thay đổi theo mục (section) Nếu bạn Mục số chẳng hạn, bạn có Bài tập 5.1, Bài tập 5.2, Mỗi chuyển qua mục mới, đếm đặt không, nghĩa bạn có Bài tập 6.1, Bài tập 6.2, , Bài tập 7.1, Bài tập 7.2, Khi gọi lệnh \newtheorem để tạo môi trường name , thực có hai môi trường tạo ra, name name* Điểm khác biệt hai môi trường này, giống khác biệt hai lệnh \section \section*, môi trường name* không đưa THM vào danh sách liệt kê THM Trong ví dụ trên, bạn có chẳng hạn hai môi trường baitap baitap* Xem thêm Mục 3.4 trang 10 \renewtheorem \renewtheorem Định nghĩa lại môi trường có Cách dùng tương tự \newtheorem Bộ đếm khởi tạo lại 3.3 Thay đổi kiểu dáng Với môi trường tựa định lý, bạn thay đổi vài tham số (tuỳ chọn) trước gọi lệnh \newtheorem để tinh chỉnh cách thể môi trường ý bạn; cài đặt nhờ tham số có tác dụng bạn sử dụng môi trường 3.3.1 \theorempreskipamount \theorempostskipamount Các tham số chung \theorempreskipamount \theorempreskipamount Các tham số bổ sung ảnh hưởng đến khoảng cách theo chiều đứng – (\theorempreskipamount) (\theorempostskipamount) môi trường THM Hai tham số ảnh hưởng đến môi trường THM điều chỉnh nhờ lệnh thông thường điều khiển biến độ dài Chúng chiều dài dạng rubber, chứa phần với dấu cộng trừ 3.3.2 Cho THM cụ thể Cách thể THM tinh chỉnh nhờ lệnh điều khiển sau \theoremstyle \theoremstyle{ style } Xác định kiểu dáng THM Các kiểu cung cấp với với \ntheorem bao gồm kiểu có gói theorem.sty Xem liệt kê kiểu Mục 3.3.4 trang sau Ở Mục 3.5.1 trang 11 có nói cách định nghĩa kiểu \theoremheaderfont \theoremheaderfont{ fontcmds } Dùng fontcmds để xác định font cho phần header THM Không theorem.sty, lệnh \theoremheaderfont cho phép đổi font cho kiểu THM \theorembodyfont \theorembodyfont{ fontcmds } Xác định font cho phần thân (nội dung) THM \theoremseparator \theoremseparator{ sep } Dùng sep để ngăn cách phần header phần thân THM Thường sep dấu hai chấm (:) chấm (.) \theoremindent \theoremindent{ dimen } dùng để xác định indent (khoảng cách so với lề bên trái) ! Ở đây, dimen kích thước thật Nếu bạn dùng kiểu rubber với dấu plus minus phần dimen , bạn gặp lỗi \theoremnumbering \theoremnumbering{ style } Kiểu đánh số cho THM Các giá trị là: arabic (default), alph, Alph, roman, Roman, greek, Greek fnsymbol Rõ ràng, môi trường THM sử dụng đếm từ môi trường XYZ khác, kiểu đánh số môi trường THM thừa hưởng từ XYZ \theoremsymbol \theoremsymbol{ thing } Lệnh tác dụng gói ntheorem.sty nạp với tuỳ chọn thmmarks Ở đây, thing dùng endmark, tức dấu kết thúc cho THM Nếu không muốn dùng endmark cho riêng môi trường THM nào, dùng lệnh \theoremsymbol{} Nhờ lệnh điều khiển trên, bạn linh hoạt tạo THM ý, mà nhọc công phải quan tâm nhiều đến yếu tố kỹ thuật \theoremclass \theoremclass{ theorem-type } With the command \theoremclass{ theorem-type } (where theorem-type must be an already defined theorem type), these parameters can be set to the values which were used when \newtheorem was called for theorem-type Với \theoremclass{LaTeX}, kiểu dáng chuẩn LATEX cho THM dùng 3.3.3 Lựa chọn font Xét mặt cấu trúc, THM phần đặc biệt tài liệu, đó, phần header thiết kế để dễ dàng phân biệt với phần lại môi trường Vì vậy, lệnh \theoremheaderfont thừa hưởng đặc trưng \theorembodyfont, đến lượt mình, \theorembodyfont thừa hưởng thuộc tính phần tài liệu bên THM xét Ví dụ: \theorembodyfont \itshape \theoremheaderfont \bfseries, phần header thực tế có kiểu đậm nghiêng Nếu điều làm bạn không vừa ý, cụ thể bạn muốn phần header in đậm, làm sau: \theoremheaderfont{\normalfont\bfseries} 3.3.4 Các kiểu định nghĩa Các kiểu dáng định sau có sẵn (như gói theorem.sty): plain Như kiểu dáng LATEX chuẩn, ngoại trừ tham số bổ sung \theorem skipamount dùng break Phần header ngăn cách với phần thân THM dòng mới2 change Chỉ số tên THM hoán đổi vị trí Tuy nhiên, phần header theo sau phần thân THM (so sánh với kiểu changebreak Là kết hợp hai kiểu change break margin Chỉ số bố trí lề trái, không ngắt dòng sau phần header marginbreak Như margin, ngắt dòng sau phần header nonumberplain Như plain, không đánh số (dùng cho chứng minh, ) nonumberbreak Tổ hợp break nonumberplain empty Phần header gồm tên riêng (nếu có), số tên THM bỏ qua thực dấu ngắt dòng 3.3.5 Thiết lập mặc định Khi tùy chọn ra, nghĩa gói ntheorem.sty nạp đơn giản nhờ \usepackage{ntheorem}, thiết lập sau dùng: \theoremstyle{plain} \theoremheaderfont{\normalfont\bfseries} \theorembodyfont{\itshape} \theoremseparator{} \theoremindent0cm \theoremnumbering{arabic} \theoremsymbol{} Vì vậy, cách dùng \newtheorem{ }{ }, bạn thu cách thể giống hệt LATEX chuẩn 3.3.6 Các THM chuẩn Các THM chuẩn (được định nghĩa sẵn) có tập tin ntheorem.std, nạp nhờ tùy chọn standard gói Khi dùng tuỳ chọn này, gói phụ thuộc amssymb latexsymb nạp tự động Danh sách THM sau đây, THM hay dùng tài liệu tiếng Anh tiếng Đức: Theorems: Theorem, Lemma, Proposition, Corollary, Satz, Korollar, Definitions: Definition, Examples: Example, Beispiel, Remarks: Anmerkung, Bemerkung, Remark, Proofs: Proof and Beweis Với THM thuộc họ ‘Theorems’, kiểu THM đưọc dùng plain, với font phần thân THM \itshape, phần header \bfseries, dấu kết thúc môi trường \ensuremath{_\Box} Với họ ‘Definitions’, ‘Remarks’ ‘Examples’, thiết lập tương tự, ngoại trừ phần body có font \upshape Riêng họ ‘Proofs’ có vài điểm khác biệt nhỏ: họ sử dụng kiểu nonumberplain, font cho phần thân \upshape, cho phần header \scshape, dấu kết thúc \ensuremath{_\blacksquare} Để biết thêm chi tiết, bạn đọc trực tiếp mã nguồn định nghĩa tập tin ntheorem.std 3.3.7 THM chuẩn cá nhân Rõ ràng, người dùng muốn có riêng THM chuẩn, tương tự THM cung cấp ntheorem.std Tuy nhiên, không nên thay đổi tập tin ntheorem.std Có cách khác, hay hơn, dùng tập tin ntheorem.cfg Nội dung ntheorem.cfg tương tự ntheorem.std, nơi đặt định nghĩa môi trường THM hay dùng (chuẩn) người dùng Nơi để tập tin ntheorem.cfg đâu mà TEX tìm thấy Điều đáng lưu ý là, tập tin nạp tự động, trừ bạn tuỳ chọn noconfig nạp gói ntheorem; tập tin ntheorem.cfg dùng, tập tin ntheorem.std bị bỏ qua, kể bạn dùng tùy chọn standard cho gói 3.4 Danh sách THM \listtheorems Tương tự, lệnh LATEX chuẩn \listoffigures, danh sách THM định nghĩa với \newtheorem liệt kê nhờ lệnh \listtheorems: \listtheorems{ list } Đối số lệnh list , danh sách THM cần liệt kê, THM cách dấu phảy: \listheorems{theorem,thm,dinhly} Trong ví dụ trên, THM liệt kê gồm theorem, thm, dinhly — đây, theorem, thm dinhly tương ứng với môi trường \begin{theorem} , \begin{thm} , \begin{dinhly} — (môi trường) THM tạo nhờ \newtheorem Để ý rằng, THM sao, ví dụ \begin{dinhly*} , danh sách Điều tương tự xử \section \section* lệnh \tableofcontents Nếu trong danh sách list có THM chưa định nghĩa (có thể bạn gõ sai tả), danh sách THM tạo ra, kết xuất bạn không thấy cả! Gói cảnh báo bạn điều 3.4.1 Thay đổi kiểu danh sách THM \theoremlisttype Danh sách THM thay đổi cách thể Điều làm nhờ chọn kiểu cho danh sách: \theoremlisttype{ type } Các giá trị type sau Bạn xem thêm Mục trang 18 ví dụ: all Liệt kê THM với thông tin gồm số THM, tên riêng (nếu có) THM số trang Đây kiểu mặc định allname Tương tự all, có kèm theo tên THM opt Tương tự all, THM có tên riêng liệt kê optname Tương tự opt, kèm theo tên THM 3.4.2 Ghi thông tin vào danh sách THM Tương tự hai lệnh \addcontentsline \addtocontents, bạn ghi thêm thông tin bổ sung vào danh sách THM.3 \addtheoremline Tương tự lệnh \addtocontentsline: Không thể dùng lệnh \addcontentsline \addtocontents cách trực tiếp để ghi thông tin vào tập tin thm, là, so với phần tử bảng Mục lục, phần tử danh sách THM phức tạp nhiều 10 Ngoài ra, với môi trường THM đơn lẻ mà định nghĩa bạn không dấu kết thúc cho THM đó, bạn đặt dấu kết thúc nhờ \qedsymbol \qed vừa nói \NoEndMark \TheoremSymbol \NoEndMark \TheoremSymbol Trong số trường hợp khác, bạn muốn đặt dấu kết thúc vào vị trí bạn ra, ví dụ bên môi trường figure hay minipage Khi đó, tính tự động đặt dấu kết thúc cho THM tắt nhờ \NoEndMark Sau gọi lệnh cho THM name , bạn đặt dấu kết thúc vào đâu, cách gọi lệnh \ name Symbol — chẳng hạn \dinhlySymbol Đối với tài liệu này, việc gọi \TheoremSymbol cho ♦ Chú ý rằng, dòng cuối trước kết thúc môi trường THM, ví dụ trước \end{dinhly}, không dòng trắng; không, dấu kết thúc bị bỏ qua Xem thêm ví dụ điều Mục trang 18 3.7 Tham khảo mở rộng Tính tham khảo mở rộng kích hoạt nhờ tuỳ chọn thref nạp lớp ntheorem Thường soạn tài liệu, ta thay đổi5 từ mệnh đề sang định lý, từ định sang hệ quả, từ bổ đề sang ý, Khi thay đổi xảy ra, tham khảo chéo cần phải phải đổi theo Ví dụ, trước bạn dùng “xem Mệnh đề~\ref{completeness}”, bạn phải đổi thành “xem Bổ đề~\ref{completeness}” Rõ ràng, công việc tỉ mỉ! Gói ntheorem cung cấp tính tham khảo chéo mở rộng, giúp bạn giải vấn đề Lệnh \label{ label }[ type ] gán kiểu type với nhãn label Việc thực tự động với môi trường THM: \begin{Theorem}[ name ]\label{ label } tương đương với \begin{Theorem}[ name ]\label{ label }[Theorem] \thref \thref \thref{ label } Bây giờ, lệnh gọi sinh ra, chẳng hạn “Định 42” Để ý rằng, cần phải biên dịch tài liệu hai lần sau có thay đổi nhãn, để tham khảo chéo xác Tuỳ chọn thmref ảnh hưởng tới gói babel, đó, tuỳ chọn dùng, gói ntheorem cần phải nạp sau gói babel Tuỳ chọn ảnh hưởng tới gói amsmath Xem Mục 4.2 trang sau Thay đổi đây, nghĩa thay đổi nội dung, mà thay đổi tên gọi 13 3.8 Linh tinh Bên môi trường THM env , tên riêng THM lấy nhờ \ env name Chẳng hạn \dinhlyname cho tên riêng THM dinhly Ảnh hưởng đến gói khác Vì ntheorem xây dựng lại hoàn toàn cách xử THM, nên không tương thích với gói có liên quan đến cách xử THM Ngoài ra, thuật toán đặt dấu kết thúc thmmarks đòi hỏi phải thay đổi vài môi trường (xem tài liệu mã nguồn ntheorem) Vì vậy, môi trường thay đổi, xây dựng lại lớp tài liệu hay gói không chịu ảnh hưởng thuật toán cung cấp gói ntheorem Tùy chọn thref định nghĩa lại lệnh \label xử nhãn đọc tập tin aux Chính thế, việc dùng tùy chọn gây không tương thích với gói có thay đổi lệnh \label \newlabel Với gói babel, không tương thích giải gói ntheorem nạp sau gói babel 4.1 Ảnh hưởng đến tuỳ chọn lớp tài liệu Gói ntheorem đụng độ với các tuỳ chọn leqno fleqn cho lớp tài liệu Nếu hai tùy chọn nạp lớp, gói ntheorem (với tùy chọn thmmarks) phát Nếu tuỳ chọn không gọi lớp, mà nạp gói amsmath (xem mục tiếp theo), tùy phải không nạp gói ntheorem, môi trường gói amsmath nhận tuỳ chọn 4.2 Với gói amslatex Gói ntheorem ảnh hưởng đến gói amsmath amsthm Chú ý rằng, gói amstex.sty LATEX2.09 cũ bạn nên thay hai gói amsmath amstext LATEX 2ε Gói ntheorem phiên từ 1.18 trước tương thích với amsmath-1.x, phiên từ 1.19 tương thích với amsmath-2.x (hy vọng ;) Tác giả ntheorem hy vọng có dùng hiểu gói amsmath tham gia đội phát triển bảo dưỡng ntheorem để bảm đảm tương thích 4.2.1 Với gói amsmath Sự tương thích với gói amsmath (ở điểm: đặt dấu kết thúc, xử nhãn môi trường toán) bảo đảm nhờ tuỳ chọn amsmath nạp lớp ntheorem • \usepackage[thmmarks]{ntheorem} cẩn phải thay \usepackage[amsmath,thmmarks]{ntheorem}), tương tư • \usepackage[thref]{ntheorem} cần thay \usepackage[amsmath,thref]{ntheorem}) 14 Cũng cần lưu ý rằng, gói amsmath cần phải nạp trước gói ntheorem, để đảm bảo định nghĩa amsmath ntheorem xử lại 4.2.2 Với gói amsthm Gói amsthm xung đột với gói theorem (về kiểu THM) Thay dùng gói amsthm, bạn dùng tùy chọn amsthm nạp gói ntheorem Tùy chọn cung cấp kiểu THM plain, definition, remark proof gói amsthm Lệnh \newtheorem* cung cấp ntheorem bạn không dùng tùy chọn amsthm Chú ý rằng, \newtheorem* tương ứng với không đánh số kiểu THM tại; đó, dùng \newtheorem* kiểu THM kiểu có Lệnh \newtheoremstyle \swapnumbers gói amsthm không ntheorem xây dựng lại Vì vậy, bạn phải định nghĩa lệnh (như gói amsthm định nghĩa), cộng thêm thay đổi nhờ dùng lệnh \theoremheaderfont \theorembodyfont Tóm lại, bạn không nên dùng gói amsthm, tính cung cấp ntheorem trực quan thân thiện 4.3 Với gói babel Khi dùng tùy chọn thref, gói babel phải nạp trước gói babel 4.4 Với gói hyperref Vì gói hyperref định nghĩa lại lệnh \contentsline LATEX, nên gói trục trặc với ntheorem phiên 1.17 trước Từ 1.17 nthereom, có thêm tùy chọn hyperref bảo đảm tương thích: danh sách THM bạn có liên kết đến THM tương ứng Chú ý rằng, bạn định nghĩa (lại) kiểu danh sách THM Mục 3.5.2 trang 12), kiểu không làm việc tốt với hyperref Vấn đề thường gặp 5.1 Giới hạn gói ntheorem • ntheorem dùng tập tin aux để lưu thông tin dấu kết thúc, đó, cần biên dịch tài liệu hai lần để dấu kết thúc đặt vị trí • Cũng sử dụng tập tin aux để lưu thông tin danh sách tập tin thm, cần thêm hai lần biên dịch Việc di chuyển THM cần tới lần biên dịch để có danh sách THM đắn • Gói xử phần tên riêng THM (tham số bổ sung gọi môi trường) theo vài cách khác danh sách, đó, chép nguyên xi, không triển khai (expand) phần tham số bổ sung vào tập tin thm Hệ là, bạn dùng chẳng hạn lệnh \thesection bên phần tên riêng 15 kết không ý Bạn không nên dùng lệnh phần tên riêng THM! • Nếu THM lồng kết thúc thời điểm, ntheorem lập dấu kết thúc cho môi trường sâu (level cao nhất) Chẳng hạn \begin{Lemma} Some text \begin{Proof} The Proof \end{Proof} \end{Lemma} đưa tới kết sau α Bổ đề: Some text Chứng minh The Proof Bạn vượt qua nhược điểm này, cách thêm nội dung ẩn sau kết thúc THM bên trong, đó, THM bên có dấu kết thúc ý Quan sát ví dụ sau đây: \begin{Lemma} Some text \begin{Proof} The Proof \end{Proof}~ \end{Lemma} kết β Bổ đề: Some text Chứng minh The Proof ♥ • Sử dụng tùy chọn fleqn gọi lớp tài liệu sinh rắc rối tuỳ chọn fleqn điều khiển phương trình $$ mà danh sách (thử kiểm tra xem điều xảy bạn dùng \begin{theorem} \[ displaymath \] \end{theorem} LATEX chuẩn: nội dung displaymath không đặt dòng riêng Cũng vậy, với công thức dài, số phương trình dấu kết thúc gần công thức so với bình thường • Một cách tự nhiên, ntheorem không làm việc với kiểu (gói) liên quan đến xử môi trường THM tựa định lý, 16 xử dấu kết thúc (ví dụ \[ \], eqnarray, ) • ntheorem không tương thích với gói theorem Frank Mittelbach, gói dùng để biểu diễn THM phổ biến Gói ntheorem dùng chung với gói theorem, dùng thay cho gói theorem 5.2 Các BUG biết • Khi kết thúc môi trường THM sau nội dung, dấu kết thúc bị bỏ qua Ví dụ \begin{Lemma} Lemma\end{Lemma} sinh γ Bổ đề: Lemma Vì vậy, khoảng trắng dấu ngắt dòng cần phải có trước \end{ } Ngoài ra, trước \end{ } không dòng trắng • Với kiểu THM break, việc ngắt dòng sau header làm cho phần nội dung “xấu xí” (theo cách hiểu LATEX), việc ngắt dòng bị bỏ qua 5.3 Câu hỏi mở Các câu hỏi liên quan chủ yếu đến việc phát triển gói ntheorem — nghĩa ích với người dùng bình thường Nếu có câu trả lời cho câu hỏi đây, vui lòng thông báo cho tác giả gói ntheorem; tác giả câu trả lời có mặt Acknowledgements • Với phương trình (biểu diễn nhờ môi trường equation), dấu kết thúc đặt sau số phương trình (được canh theo chiều đứng) Hiện tại, chưa có thuật toán để canh số phương trình đồng thời đặt dấu kết thúc bên (việc đòi hỏi phải biết chiều cao nội dung phương trình) • Thuật toán đặt dấu kết thúc dựa kết việc kiểm tra xem liệu phần nội dung bình thường hết chưa (khi gặp kết thúc môi trường \end{ }) Việc kiểm tra có câu trả lời phần (partially) nhờ \ifhmode: dòng, LATEX chế độ \hmode Nhưng sau biểu thức toán, LATEX chế độ \hmode Vì thế, phải kiểm tra thêm \lastkip: sau biểu thức toán \lastskip=0 Trong hầu hết trường hợp, nội dung vừa ghi xong vào dòng, \lastskip = Nhưng điều không chắn: mã nguồn có dạng text\label{bla}, (sau đó) \lastskip=0 Và đó, dấu kết thúc bị bỏ qua Câu hỏi đặt là, làm để xác định thời điểm LATEX vừa kết thúc việc biểu diễn công thức toán? 17 • Trong vấn đề nhãn: kiểu break gắng ngắt dòng sau phần header cách dùng \hfill\penalty-8000 đằng sau item \trivlist Vì vậy, TEX chuyển vào chế độ horizontal The label places a “whatsit” somewhere and, it seems that the “whatsit” makes TEX think that there is a line of text.6 Ví dụ Các thiết lập dùng sau Chú ý rằng, thiết lập tuân theo nguyên tắc thừa kế Ví dụ, thiết lập font không khởi tạo trạng thái bình thường ta khai báo môi trường Lemma, Lemma thừa kế thiết lập môi trường Theorem Một số ví dụ có dùng lệnh \color cung cấp gói xcolor.sty Định lý: \theoremstyle{marginbreak} \theoremheaderfont{\normalfont\bfseries}\theorembodyfont{\slshape} \theoremsymbol{\ensuremath{\diamondsuit}} \theoremseparator{:} \newtheorem{Theorem}{Theorem} Bổ đề: \theoremstyle{changebreak} \theoremsymbol{\ensuremath{\heartsuit}} \theoremindent0.5cm \theoremnumbering{greek} \newtheorem{Lemma}{Lemma} Hệ quả: \theoremindent0cm \theoremsymbol{\ensuremath{\spadesuit}} \theoremnumbering{arabic} \newtheorem{Corollary}[Theorem]{Corollary} Ví dụ: \theoremstyle{change} \theorembodyfont{\upshape} \theoremsymbol{\ensuremath{\ast}} \theoremseparator{} \newtheorem{Example}{Example} Định nghĩa \theoremstyle{plain} \theoremsymbol{\ensuremath{\clubsuit}} \theoremseparator{.} \newtheorem{Definition}{Definition} kyanh: “whatsit”, dzì vậy? 18 Chứng minh: \theoremheaderfont{\sc}\theorembodyfont{\upshape} \theoremstyle{nonumberplain} \theoremseparator{} \theoremsymbol{\rule{1ex}{1ex}} \newtheorem{Proof}{Proof} Ví dụ (Ví dụ đơn giản) Một chiều đường này, Hoa điệp vàng trải chân tôi, Các ví dụ minh họa cho việc đặt dấu kết thúc biểu thức toán, phương trình đơn lẻ dãy phương trình ∗ Định (Định dài): Ví dụ môi trường Theorem, lồng bên môi trường khác Example, Lemma, Khi môi trường Theorem, chữ có màu đen; môi trường sâu hơn, màu môi trường đổi khác để dễ phân biệt Ví dụ không xuất danh sách Example, dùng với dạng sao: \begin{Example*} \end{Example*} Ví dụ (kết thúc với biểu thức toán) Hãy để ý vị trí dấu kết thúc dòng biểu diễn công thức f (n) (z) = n! 2πi ∂D f (ζ) dζ (ζ − z)n+1 ∗ Bây giờ, ta ghi vài thông tin bổ sung vào danh sách THM (Example); thông tin ghi không gồm số THM: \addtheoremline*{Example}{Extra Entry} δ Bổ đề (Biểu thức mảng (dãy) phương trình): Bổ để (Lemma) thụt đầu dòng đánh số với chữ số Hy Lạp Xét ví dụ sau đây, trông tốt: \[\begin{array}{l} a = \begin{array}[t]{l} first\ line \\ second\ line \end{array}% \mbox{\color{green}{try to put this text in the lowest line}} \end{array} \] 19 Nhưng biểu diễn mà không sử dụng mẹo đặc biệt (thử để lựa chọn vị trí [t], [c], [b]), kết không ý: a = f irst line try to put this text in the lowest line second line ♥ ε Bổ đề (Phương trình): Với phương trình có đánh số, dấu kết thúc đặt sau số phương trình, canh theo chiều đứng Hiện tại, chưa có thuật toán để bố trí số phương trình canh (theo chiều đứng), dấu kết thúc lại đặt vào cuối phương trình — việc đỏi hòi phải biết chiều cao nội dung phương trình Nếu biết, vui lòng báo cho tác giả ntheorem b f (z) dz := f (γ(t))γ (t) dt γ (1) ♥ a Với kiểu break, sử dụng việc đánh nhãn sau \begin{Lemma}[Breakstyle]\label{breakstyle} ζ Bổ đề (Breakstyle): bạn thấy, xuất khoảng trắng thừa Nếu dấu phần trăm (chú thích) đặt sau lệnh tạo nhãn (hoặc dùng lệnh \ignorespaces), ví dụ \begin{Lemma}[Breakstyle]\label{breakstyle}% khoảng trắng thừa Với kiểu định nghĩa ntheorem, điều xảy với kiểu break Đây lỗi, mà cách xử LATEX Ví dụ với eqnarray: f (z) = = 2πi 2π ∂D 2π f (ζ) dζ ζ −z f (z0 + reit )dt (2) (3) ♥ Chứng minh (of nothing) f (z) = = 2πi 2π ∂D 2π f (ζ) dζ ζ −z f (z0 + reit )dt Đến kết thúc Định ♦ 20 Nếu có nhiều môi trường bên môi trường THM, môi trường cuối có dấu kết thúc Định nghĩa (với danh sách) b f (γ(t))γ (t) dt f (z) dz := (4) a γ • vậy, bạn thấy dấu kết thúc làm việc với văn • với biểu thức toán • với danh sách ♣ Hệ (Q.E.D.): Đây hệ tầm thường, kết thúc \qedsymbol{\textrm{q.e.d}} \qed q.e.d Ví dụ f (n) (z) = n! 2πi ∂D f (ζ) dζ (ζ − z)n+1 Nếu có văn theo sau môi trường, dấu kết thúc đặt sau văn ∗ Ví dụ cho mã nguồn sau Chú ý rằng, lệnh ~\hfill~ chèn vào để ngăn cản LATEX quản danh sách lồng theo cách LATEX (môi trường verbatim danh sách \trivlist) Có nghĩa là, việc khiến LATEX bắt đầu môi trường verbatim với dòng \begin{Example} ~\hfill~ \begin{verbatim} And, it also works for verbatim when the \end{verbatim} is in the same line as the text ends \end{verbatim} ^ this space is important !! \end{Example} Ví dụ (dùng ‘verbatim’) And, it also works for verbatim when the end{verbatim} is in the same line as the text ends Không chừa dòng trắng trước \end{theorem}, làm bỏ qua dấu kết thúc \begin{Theorem} some text but no end mark \end{Theorem} 21 Định lý: some text but no end mark Bây hệ xuất với tên riêng khác danh sách Corollary: \begin{Corollary*}[title in text]\label{otherlabel} \end{Corollary*} \addtheoremline{Corollary}{title in list} Hệ (title in text): Thể môi trường canh Định (trích dẫn): Trong môi trường trích dẫn quote, nội dung thường thụt vào tất dòng bên trái bên phải Tuy nhiên, dấu kết thúc không đặt vào lề bên phải ♠ ♦ Dưới ví dụ việc tắt/bật việc đặt dấu kết thúc tự động \begin{Theorem}[Manual End Mark]\label{somelabel} a line of text with a manually set endmark \hfill\TheoremSymbol\\ some more text, but no automatic endmark set \NoEndMark \end{Theorem} Định (Manual End Mark): a line of text with a manually set endmark some more text, but no automatic endmark set ♦ Để ý rằng, lệnh \hfill chèn vào trước dấu kết thúc để đặt dấu vào lề bên phải Ví dụ (nhanh hơn) Dấu kết thúc tự động đặt trở lại ∗ Nếu bạn không thích dùng số chữ số Hy Lạp cách thụt đầu dòng cho Lemma, bạn định nghĩa lại: \theoremstyle{changebreak} \theoremheaderfont{\normalfont\bfseries}\theorembodyfont{\slshape} \theoremsymbol{\ensuremath{\heartsuit}} \theoremsymbol{\ensuremath{\diamondsuit}} \theoremseparator{:} \theoremindent0.5cm \theoremnumbering{arabic} \renewtheorem{Lemma}{Lemma} 22 Lemma: Bây bổ đề khác, với cách đánh số dùng chữ số Ả Rập Chú ý số tiếp tục tăng ♦ Tham số bổ sung xác định tên riêng THM lấy nhờ chẳng hạn \Theoremname Examplename, — điều làm bên môi trường THM mà \begin{Theorem}[\color{red}{some name}\normalcolor] Obviously, we are in Theorem~\Theoremname \end{Theorem} Định (some name): Obviously, we are in Theorem some name ♦ Tính dùng, chẳng hạn để sinh tự động mã cho môi trường thích, verbatim, : \begin{exercise}[quicksort] the exercise text \begin{verbatimwrite}{solutions/\exercisename.c} C-code \end{verbatimwrite} \verbatiminput{solutions/\exercisename.c} \end{exercise} Đoạn mã viết mã C-code vào tập tin solutions/quicksort.c, sau nạp vào nhờ lệnh \verbatiminput Bây giờ, ta định nghĩa môi trường KappaTheorem sử dụng kiểu môi trường Theorem, đánh số Hệ (Corollary) (các Theorem đánh số theo Corollary) Để ý rằng, ta đưa phần header phần dấu kết thúc phức tạp \theoremclass{Theorem} \theoremsymbol{\ensuremath{a\atop b}} \newtheorem{KappaTheorem}[Theorem]{\(\kappa\)-Theorem} κ-Theorem (1st κ-Theorem): Đây định kappa 6.1 a b Tham khảo mở rộng Lệnh \label chuẩn mở rộng: nhận thêm tham số bổ sung dùng để xác định tên cấu trúc dùng để đánh nhãn – nhờ việc tham khảo chéo linh hoạt Ví dụ, mục đánh nhãn sau: \subsection*{ }% \label{sec-ExtRef}[Mu.c] Như nói, với môi trường THM, phần tham số bổ sung \label tự động thêm vào Do đó, 23 \begin{Theorem}[Manual End Mark]\label{somelabel}| tương đương với (xem trang 22) \begin{Theorem}[Manual End Mark]\label{somelabel}[Theorem]| Lệnh \thref{ label } sinh thông tin bổ sung, cho biết tên THM tương ứng với tham số bổ sung \label Ví dụ: This is \thref{sec-ExtRef} \thref{somelabel} \thref{otherlabel} \thref{kappatheorem1} cho ta This is Mục 6.1 Định Hệ κ-Theorem Phải cẩn thận: việc xử tham số bổ sung tiến hành tự động cho môi trường định nghĩa nhờ \newtheorem, nghĩa quản cho Mục (\section), phương trình (equation) hay danh sách (enumerate) Việc gọi \thref{ label } cho nhãn chưa thiết lập với phần tham số bổ sung sinh kết khó tưởng tượng: label không bên môi trường THM, lỗi sinh ra; ngược lại, tên THM dùng, ví dụ việc gọi \thref{xxxlabel} sinh chẳng hạn “Định number ”! Chú ý hỗ trợ cho tham khảo chéo phức, “xem Định 7”.7 6.2 Danh sách THM Với \addtotheoremfile{Added into all theorem lists} danh sách, dòng “Added into all theorem lists” chèn vào Tuy nhiên, tài liệu này, ta không làm thế, ta dùng định dạng khác danh dách THM Để chèn danh sách ví dụ (Example), làm chẳng hạn \addtotheoremfile[Example]{% \color{blue}{Only concerning Example lists}} Với \theoremlisttype{all} \listtheorems{Lemma} This would require plural-forms for different languages and handling of \ref-lists, probably splitting into different sublists for different environments If someone is interested in programming this, please contact us; it seems to be algorithmically easy, but tedious 24 bổ đề liệt kê α β γ δ ε ζ Biểu thức Phương trình Breakstyle mảng (dãy) phương trình 16 16 17 19 20 20 23 Như ta thấy kết trên, xuất dòng toàn dấu chấm Ta sử dụng kiểu danh sách opt để liệt kê bổ đề có tên riêng: \theoremlisttype{opt} \listtheorems{Example} cho ta kết Extra Entry with number Extra Entry Ví dụ đơn giản Extra Entry dùng ‘verbatim’ nhanh Only concerning Example lists 11 11 19 19 21 22 Như ta thấy, dòng chữ “Only concerning Example lists” xuất cuối danh sách — ta thêm dòng nhờ \addtotheoremfile ví dụ Bây ta định nghĩa kiểu danh sách mới, sử dụng môi trường tabular: \newtheoremlisttype{tab}% {\begin{tabular*}{\linewidth}% {@{}lrl@{\extracolsep{\fill}}r@{}}}% {##1&##2&##3&##4\\}% {\end{tabular*}} Sử dụng kiểu tab sau: \theoremlisttype{tab} \listtheorems{Theorem,Lemma} Các định bổ đề liệt kê theo kiểu mới: 25 Bổ đề Bổ đề Bổ đề Định Bổ đề Bổ đề Bổ đề Định Định Định Lemma Định α β γ δ ε ζ 7 Định dài Biểu thức mảng (dãy) phương trình Phương trình Breakstyle trích dẫn Manual End Mark some name 16 16 17 19 19 20 20 22 22 22 23 23 Cũng sử dụng môi trường tạo danh sách LATEX để tạo kiểu sau đây: \newtheoremlisttype{list}% {\begin{trivlist}\item} {\item[##2 ##1:]\ ##3\dotfill ##4}% {\end{trivlist}} \theoremlisttype{list} \listtheorems{Corollary} Kết với kiểu α Bổ đề: 16 β Bổ đề: 16 γ Bổ đề: 17 δ Bổ đề: Biểu thức mảng (dãy) phương trình 19 ε Bổ đề: Phương trình 20 ζ Bổ đề: Breakstyle 20 Lemma: 23 Trong ví dụ này, sau phần tử \item danh sách, lệnh \␣ dùng thay cho ␣, trường hợp sau, lệnh \dotfill báo lỗi phần tham số bổ sung ##3 26 Index A \addtheoremline \addtheoremline* \addtotheoremfile amsthm (option) hyperref (option) \renewtheoremlisttype 12 \renewtheoremstyle 12 10 11 11 H standard (option) T \theorembodyfont \theoremclass \theoremheaderfont \theoremindent \theoremlisttype \theoremnumbering \theorempostskipamount \theorempreskipamount \theoremseparator \theoremstyle \TheoremSymbol \theoremsymbol thmmarks (option) \thref thref (option) L \listtheorems 10 N \newtheorem \newtheoremlisttype \newtheoremstyle noconfig (option) \NoEndMark 12 11 13 Q \qed 12 \qedsymbol 12 R \renewtheorem S 27 10 13 13 ... phương trình ∗ Định lý (Định lý dài): Ví dụ môi trường Theorem, lồng bên môi trường khác Example, Lemma, Khi môi trường Theorem, chữ có màu đen; môi trường sâu hơn, màu môi trường đổi khác... listtheorems{Theorem,Lemma} Các định lý bổ đề liệt kê theo kiểu mới: 25 Bổ đề Bổ đề Bổ đề Định lý Bổ đề Bổ đề Bổ đề Định lý Định lý Định lý Lemma Định lý α β γ δ ε ζ 7 Định lý dài Biểu thức mảng (dãy)... 2π ∂D 2π f (ζ) dζ ζ −z f (z0 + reit )dt Đến kết thúc Định lý ♦ 20 Nếu có nhiều môi trường bên môi trường THM, môi trường cuối có dấu kết thúc Định nghĩa (với danh sách) b f (γ(t))γ (t) dt f (z)

Ngày đăng: 18/08/2017, 19:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan