VietTUG.org - old forum - threads' archive

thread_id = 1188, contains 1188, 1189, 1191, 1194, 1266, 1268, 1271, 1272, 1275, 1277, 1279, 1281, 1298, 1303, 1305, 1319, 1604, 1605, 1679, 1683
id = 1188, parent = 0, thread = 1188, catid = 7, locked = 1, moved = 0,
userid = khach (guest), ip = 203.160.1.52, time = 2006/02/13 (1139837937) ,
subject = Lệnh tạo section (một số vấn đề...), hits = 7017, karma = 0+0-,
chào các bạn, mình có một số câu hỏi mà không biết hỏi ai cả, tìm sách đọc cũng không thấy đó là:

1. để tạo mục lục cho tài liệu mình đã dùng \tableofcontent, trong phần mục lục mình chỉ muốn hiên ra phần \section và không biến hiện những phần \subsection. Vậy phải làm như thế nào?

2. trong tài liệu khoảng cách giữa 2 \subsection có khi thì như ý muốn nhưng vẫn có những chổ trong tài liệu, khoảng cách này rất lớn. làm sao khắc phục được.

3. khi mình viết một bài báo, mình đã dùng

\begin{definition}
\end{definition}
% rồi
\begin{theorem}
\end{theorem}

\begin{proposition}
\end{proposition}....


Nhưng số định nghĩa, định lý, mệnh đề rất lộn xộn như định nghĩa 2.1, mệnh đề 2.1, .... mình muốn là

Định nghĩa 2.1
Định nghĩa 2.2
Định lý 2.3
Mệnh đề 2.4
Bổ đề 2.5

Hoặc là

2.1. Định nghĩa
2.2. Định nghĩa
2.3. Định lý
2.4. Mệnh đề
2.5. Bổ đề.....

Vậy phải làm thế nào? Mong các anh chị giúp.
 
id = 1189, parent = 1188, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = hhp, ip = 203.210.253.134, time = 2006/02/13 (1139843753) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
Chào Khach,

Trả lời cho bạn đây

1) Dùng \subsection* (có dấu * )

2) Thay đổi lại \@startsection

3) Chạy thử file này là sẽ thấy thỏa yêu cầu của bạn


\documentclass{article}
\usepackage[utf8]{vietnam}

\begin{document}

\newtheorem{theorem}{Định lý}[section]
\newtheorem{lemma}[theorem]{Bổ đề}
\newtheorem{proposition}[theorem]{Mệnh đề}
\newtheorem{definition}[theorem]{Định nghĩa}

\section{test}

\begin{definition}
test
\end{definition}

\begin{definition}
test
\end{definition}

\begin{theorem}
test
\end{theorem}

\begin{lemma}
test
\end{lemma}

\begin{proposition}
test
\end{proposition}

\end{document}
 
id = 1191, parent = 1188, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = tsnsidon, ip = 220.231.92.219, time = 2006/02/14 (1139865212) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
khach:
1. để tạo mục lục cho tài liệu mình đã dùng \tableofcontent, trong phần mục lục mình chỉ muốn hiên ra phần \section và không biến hiện những phần \subsection. Vậy phải làm như thế nào?
Bạn có thể
\setcounter{tocdepth}{2}
thế là xong. Để hiểu thêm về counter này bạn hãy thử thay số 2 bằng các số từ 0 đến 4
 
id = 1194, parent = 1188, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 203.210.245.195, time = 2006/02/14 (1139906992) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
1/ câu trả lời của bác Long là đúng nhất. của bác hhp chỉ là workaround

2/ không hiểu khoảng cách giữa hai \subsection là gì? khoảng cách đó tuỳ thuộc vào lớp tài liệu đang dùng, và thậm chí gói bạn đang dùng. Thường thì người dùng không quan tâm đến khoảng cách đó. Chỉnh lại \startsection là điều không hay. Bởi việc bố trí tài liệu khéo léo có thể khắc phục lỗi này,

3/ bạn nên dùng gói amsthm hoặc ntheorem để thể hiện các định lý. tài liệu về gói sau cùng tìm thấy ở:
LINK_HERE-vn
LINK_HERE-vn

Về yêu cầu của bạn. Nếu muốn:
Định nghĩa 2.1
Định nghĩa 2.2
Định lý 2.3
Mệnh đề 2.4
Bổ đề 2.5
thì có lẽ bạn muốn đánh số theo Mục. Như vậy, bạn hãy khai báo
% như hhp đã chỉ ra
\newtheorem{theorem}{Định lý}[section] % đánh số theo Mục
\newtheorem{lemma}[theorem]{Bổ đề} % đánh số theo định lý.
\newtheorem{proposition}[theorem]{Mệnh đề} % ---
\newtheorem{definition}[theorem]{Định nghĩa} % ---


còn nếu muốn
2.1. Định nghĩa
2.2. Định nghĩa
2.3. Định lý
2.4. Mệnh đề
2.5. Bổ đề.....
thì cách đơn giản và tuyệt vời nhất... là dùng ntheorem

34/ chắc là nhiều người muốn biết bạn là ai. Hãy chọn cho bạn một cái nick đáng yêu nhé
 
id = 1266, parent = 1194, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = khach (guest), ip = 203.160.1.52, time = 2006/02/25 (1140800881) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
chào các anh chị

em muốn hỏi về vấn đề sau đây: em đang có một khoá luận chia làm 4 bài,
em dang định làm như sau:

\S 1. Khái niệm vành.
1.1. Khái niệm
1.1.1. Vành
1.1.2. Vành giao hoán
1.2.3....
1.2. Ví dụ
1.2.1. Ví dụ 1.
1.2.2. Ví dụ 2.
...
\S 2. Vành ma trận
2.1. Định nghĩa.
2.2. Định lý.
2.3. Hệ quả.
2.4. Các tính chất.
2.4.1. Mệnh đề.
2.4.2 Mệnh đề.
...
\S 3. Ideal trong vành ma trận.
3.1. Định nghĩa.
3.2. Ví dụ.
.....

Vậy em phải làm sao? Mong các anh giúp.

Cái lệnh \S là để in ra ký hiệu "BÀI" (hai cái con giun ấy ) phải không ạ?
 
id = 1268, parent = 1266, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.246.214, time = 2006/02/25 (1140802778) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
khach:
Cái lệnh \S là để in ra ký hiệu "BÀI" (hai cái con giun ấy ) phải không ạ?
Sorry ! Bạn gửi liền hai bài, nhưng mình không hiểu ý bạn muốn hỏi gì!

Lệnh \S đúng là in ra ký hiệu xoắn... Có phải là bạn muốn làm thế nào để in ra \$ vào đầu mỗi tiêu đề các mục không? Bạn thử cách đơn giản nhất sau ( chưa phải là tốt nhất )

% mã cũ bị sai  \renewcommand{\section}[1]{\S\thesection.\space#1}
\renewcommand\thesection{\S\arabic{section}}


PS: bạn vui lòng tạo chủ đề mới cho mỗi vấn đề của bạn. Như thế mọi người sẽ trả lời bạn nhanh hơn và các bạn khác cũng dễ theo dõi sau này. Cám ơn bạn!
 
id = 1271, parent = 1268, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = khach (guest), ip = 203.160.1.52, time = 2006/02/25 (1140867608) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
kyanh:
Lệnh \S đúng là in ra ký hiệu xoắn... Có phải là bạn muốn làm thế nào để in ra \$ vào đầu mỗi tiêu đề các mục không? Bạn thử cách đơn giản nhất sau ( chưa phải là tốt nhất )

\renewcommand{\section}[1]{\S\thesection.\space#1}
Dạ, ý của em là làm thế nào tạo ra các cách đánh chỉ số 1.1 rồi 1.1.1, 1.1.2,... trong \S 1, rồi tương tự cho bài 2...

Còn hướng dẫn như anh thì lại chèn \S vào từng \section rồi ạ.
 
id = 1272, parent = 1271, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = khach (guest), ip = 203.160.1.52, time = 2006/02/25 (1140867691) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
mà hướng dẫn của anh lại cứ đánh \S 0 (Bài 0) cho tất cả các \section đấy ạ
 
id = 1275, parent = 1272, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = Editor (guest), ip = 203.160.1.52, time = 2006/02/25 (1140886553) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
Nhân tiện đây, cho em hỏi là trong văn bản em dùng \section*{}, thì trong văn bản in không đánh số mục. Thế có cách nào (lệnh nào)để phần section thì không đánh mục nhưng phần \subsection trong đó vẫn đánh số không?
Ví dụ, mình muốn là khi gõ vào:

\section*{Thu}
\subsection{Thu}
\subsection{Thu}
\subsection{Thu}
\section*{Thu}
\subsection{Thu}
\subsection{Thu}
\subsection{Thu}
...


thì nó vẫn cho ra là

Thu %%Phần \section 1 không đánh số
1.1 Thu %%Nhưng phần \subsection vẫn đánh số thế này
1.2. Thu
1.3. Thu
Thu  %phần \section 2 cũng không đánh số
2.1. Thu %%Nhưng phần \subsection vẫn đánh số thế này
2.2. Thu
2.3. Thu
...


Liệu có thể làm được điều này không?
 
id = 1277, parent = 1275, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = hhp, ip = 203.210.253.6, time = 2006/02/26 (1140891005) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
Editor:
Nhân tiện đây, cho em hỏi là trong văn bản em dùng \section*{}, thì trong văn bản in không đánh số mục. Thế có cách nào (lệnh nào)để phần section thì không đánh mục nhưng phần \subsection trong đó vẫn đánh số không?
1) Theo mình \renewcommand{\section}[1]{\S\thesection.\space#1} Kyanh giới thiệu chỉ để minh họa việc đưa cái xoắn vào, còn dùng như vậy thì section qúa xấu, chẳng có gì là section cả.

Bạn thử tạm cái này để "hiểu" vấn đề khi muốn thay đổi style của section

\renewcommand{\section}[1]{
\par\vspace{\baselineskip}\setcounter{subsection}{0}
\addtocounter{section}{1}
\noindent{\normalfont\large\bfseries\S\thesection.\space#1}
\par\vspace{0.5\baselineskip}\noindent}


Theo mình tuyệt vời nhất và đơn giản là bạn dùng gói titlesec, "muốn gì được cũng được". Hãy thử đưa cái này vào trước \begin{document} nhé! Nó sẽ cho bạn đúng như ý bạn muốn, đó là: cái xoắndấu chấm cuối

\usepackage{titlesec}
\titleformat{\section}
{\normalfont\Large\bfseries}{\S\,\thesection.}{1em}{}
\titlelabel{\thetitle.\quad}


2) Câu hỏi về section* của bạn có thể giải quyết như thế này. Ngay trên mỗi lệnh section* bạn hãy thêm 2 lệnh nữa, xem nội dung dưới đây:

.....
\addtocounter{section}{1} % Đưa vào cái này
\setcounter{subsection}{0} % và cũng cái này nữa
\section*{Thu}
\subsection{Thu}
\subsection{Thu}
\addtocounter{section}{1} % Đưa vào cái này
\setcounter{subsection}{0} % và cũng cái này nữa
\section*{Thu}
\subsection{Thu}
\subsection{Thu}
\subsection{Thu}
...


Chúc bạn thành công
 
id = 1281, parent = 1275, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.246.17, time = 2006/02/26 (1140892459) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
Editor:
Nhân tiện đây, cho em hỏi là trong văn bản em dùng \section*{}, thì trong văn bản in không đánh số mục. Thế có cách nào (lệnh nào)để phần section thì không đánh mục nhưng phần \subsection trong đó vẫn đánh số không?
đơn giản như sau:
\let\oldsection\section
\def\section*{%
\addtocounter{section}{1}%
\setcounter{subsection}{0}%
\oldsection*}
...
\begin{document}
\section*{Thu}
\subsection{Thu}
\subsection{Thu}

\section*{Thu}
\subsection{Thu}
\subsection{Thu}
\subsection{Thu}
 
id = 1298, parent = 1281, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = tsnsidon, ip = 220.231.77.187, time = 2006/02/27 (1141031907) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
Mô phật!

Xin phê bình đ/c Kyanh!

\TeX được xây dựng nhằm đảm bảo kết cấu văn bản luôn thuần nhất và cấu trúc rõ rệt.

Hiển nhiên là với \tex thì xào nấu kiểu gì cũng được, nhưng không nên tùy tiện quá mức.

Đáng lý ra bác Kyanh nên trao đổi rõ hơn về pros & cons của việc thay đổi mấy cái counter đó trước khi show code. Tránh trường hợp mọi người sẽ nghiện \hack. Bác làm thế là đang biến cho cái forum này trở thành việt-túc-hách king rồi đó
 
id = 1303, parent = 1298, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.244.184, time = 2006/02/27 (1141037552) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
/me biết chứ. Ngay khi đọc cái yêu cầu của của bác Editor đã muốn phang một câu rùi. Nhưng đời có chuyện ngược, như cái chuyện cỡ 13pt. Đành phải hack thui.

Có hai cách: một cái hhp đã chỉ ra Cái của mình cũng hệt như cái của hhp thui, nhưng chỉ phải gõ code một lần là xong

Việc hack chỉ nên dùng cho những trường hợp bất khả kháng. Nhất trí với bác LongPhan thui
 
id = 1279, parent = 1272, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.246.17, time = 2006/02/26 (1140891548) ,
subject = Re:Một số vấn dề không biết hỏi ai, hits = 0, karma = 0+0-,
khach:
mà hướng dẫn của anh lại cứ đánh \S 0 (Bài 0) cho tất cả các \section đấy ạ
Sorry bạn, mình bị nhầm code. Mình đã sửa ở bài trước.

Sorry again!
 
id = 1305, parent = 1188, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = cuong12giaitich, ip = 203.160.1.52, time = 2006/02/27 (1141054627) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
khach:
Hoặc là

2.1. Định nghĩa
2.2. Định nghĩa
2.3. Định lý
2.4. Mệnh đề
2.5. Bổ đề.....

Vậy phải làm thế nào? Mong các anh chị giúp.
Chào bạn Khách. Nếu bạn chưa thể dùng gói n-theorem để làm được điều này, bạn có thể thêm vào lệnh \swapnumbers trong file nguồn:

Ví dụ:

\documentclass{article}
\usepackage[utf8]{vietnam}
\usepackage{amsthm} % thêm bởi kyanh, ngày 29/03/2006

% <move>
% chuyển lên preamble bởi kyanh ngày 29/03/2006
\swapnumbers %%Nhớ là cho lệnh này ở đây nhé
\newtheorem{theorem}{Định lý}[section]
\newtheorem{lemma}[theorem]{Bổ đề}
\newtheorem{proposition}[theorem]{Mệnh đề}
\newtheorem{definition}[theorem]{Định nghĩa}
% </move>

\begin{document}
\section{test}
\begin{definition}
test
\end{definition}
\begin{definition}
test
\end{definition}
\begin{theorem}
test
\end{theorem}
\begin{lemma}
test
\end{lemma}
\begin{proposition}
test
\end{proposition}
\end{document}

Và sẽ cho ra kết quả là:
1. test
1.1. Định nghĩa. test
1.2. Định nghĩa. test
1.3. Định lý. test
1.4. Bổ đề. test
1.5. Mệnh đề. test

Chúc bạn thành công.
 
id = 1319, parent = 1305, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.245.232, time = 2006/02/28 (1141126919) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
he he, cám ơn bác. từ rất lâu rồi kô dùng \swapnumbers. cứ nhớ mang máng là cái lệnh này nằm ở đâu đó, nhưng tìm hoài hỏng ra
 
id = 1604, parent = 1319, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = texe, ip = 203.160.1.52, time = 2006/03/29 (1143579732) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
Chào mọi người, lệnh \swapnumbers không dùng được cho tuỳ chọn \documentclass{book}\documentclass{report}. Cách khắc phục điều này mà không dùng gói n-theorem thì phải làm sao? Cảm ơn mọi người.
 
id = 1605, parent = 1604, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.247.50, time = 2006/03/29 (1143619407) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
texe:
Chào mọi người, lệnh \swapnumbers không dùng được cho tuỳ chọn \documentclass{book}\documentclass{report}. Cách khắc phục điều này mà không dùng gói n-theorem thì phải làm sao? Cảm ơn mọi người.
Sorry bạn Lệnh \swapnumbers chỉ có khi nạp gói amsthm:

\usepackage{amsthm}
\swapnumbers
\newtheorem{...}


Gói ntheorem có tuỳ chọn đảm bảo sự tương thích với gói amsmath và amsthm. Do đó, việc dùng ntheorem không đến nỗi quá khó khăn. Bạn đọc tài liệu để biết thêm chi tiết.
 
id = 1679, parent = 1605, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = texe, ip = 203.160.1.52, time = 2006/04/06 (1144261612) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
Em muốn tạo một cuốn sách có nội dung như sau:
CHUONG 1
CAC KIEN THUC MO DAU
\S 1. CAC KHAI NIEM
1.1. Khong gian vecto
1.1.1.1. Ta goi….
1.1.1.2. Tinh chat
1.1.2. Khong gian dinh chuan
1.1.3. Khong gian Banach

\S 2. CAC TINH CHAT
1.2.1…
1.2.1.1…

1.2.2….
…..
CHUONG 2.
……

Trong đó:
CHUONG 1
CAC KIEN THUC MO DAU
\S1. CAC KHAI NIEM CO BAN
Nằm ở giữa, và kiểu in hoa toàn bộ như thế, vì em dùng với tuỳ chọn documentclass[]{book} thì thấy chương không căn giữa. Mong mọi người giúp cách tạo ra như trên, và bày cho em cách tạo việc đánh số 1.1, 1.1.2... nữa. Mong mọi người giúp.
 
id = 1683, parent = 1679, thread = 1188, catid = 7, locked = 0, moved = 0,
userid = kyanh, ip = 222.252.246.196, time = 2006/04/06 (1144335119) ,
subject = Re:Lệnh tạo section (một số vấn đề...), hits = 0, karma = 0+0-,
bạn sử dụng gói titlesec (như hhp đã cho ví dụ trong chủ đề này). các ví dụ khác của gói titlesec mình đã thông báo ở trang nhất: LINK_HERE

để tạo ra các đề mục bạn làm như sau:
\documentclass{report} % để có chương
\usepackage{titlesec} % nạp gói này nhé
....
\begin{document}
\chapter{lời nói đầu} % cho ra Chương 1
\chapter{điều kiện cân bằng} % cho ra chương 2

\section{chuẩn bị} % cho 1.1

\subsection{khái niệm} % cho ra 1.1.1

\subsection{định lý} % cho ra 1.1.2
  \sububsection{bổ đề} % cho ra 1.1.2.1
  \subsubsection{nhận xét} % cho ra 1.1.2.2
  \subsubsection{hệ quả} % cho ra 1.1.2.3

\subsection{định lý} % cho ra 1.1.2

\section{điều kiện cân bằng} % cho 1.2
....