2010-06-25 16 views
5

Tôi đang tạo tài liệu bằng cách sử dụng lớp memoir trong XeLaTeX. Tôi gặp sự cố khi tạo bản trình bày đoạn phù hợp và đặc biệt là khi tôi tạo các đoạn với \paragraph{}lorem ipsum LaTeX bỏ qua các cài đặt \parskip\parindent.Sử dụng parindent và parskip với paragraph {} không có hiệu lực

Ví dụ, nếu tôi có một tài liệu

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
\usepackage{xunicode}% unicode character macros 
\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{}orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\paragraph{}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\end{document} 

này typesets như vậy:

      orem ipsum dolor sit Amet, consectetur adipiscing elit. Aliquam enim urna, các loại eis aliquet eget, condimentum id nibh. Trong cao nguyên hasse habitasse dictumst.

      ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, eis aliqu aliquet eget, id gia vị nibh. Trong hac habitasse platea dictumst.

Điều này không chính xác cả hai đoạn thụt lề và bỏ qua, mặc dù \parskip\parindent được đặt thành 0.

Một mong chờ đầu ra typeset trông như thế này (đó là một sự lựa chọn xấu xí của định dạng đoạn văn, nhưng minh họa vấn đề này):

orem ipsum dolor sit Amet, consectetur adipiscing elit. Aliquam enim urna, các loại eis aliquet eget, condimentum id nibh. Trong cao nguyên hasse habitasse dictumst.
ipsum dolor ngồi amet, consectetur adipiscing elit. Aliquam enim urna, eis aliqu aliquet eget, id gia vị nibh. Trong hac habitasse platea dictumst.

Tôi lưu ý rằng khi tôi tách đoạn bởi hai dòng mới (ví dụ: không sử dụng \paragraph{}, và) các thiết lập \parskip\parindent được tôn trọng.

Tôi sẽ rất biết ơn biết tại sao, khi sử dụng \paragraph{}, các \parskip\parindent lệnh không được tôn vinh, và làm thế nào người ta có thể hoặc có các lệnh này được vinh danh hay cách khác những gì lệnh sẽ đạt được tác dụng tương tự với đoạn tạo ra với \paragraph{} .

Cảm ơn bạn đã đọc.

Brian

Trả lời

5

@Brian - Tôi bắt đầu đưa điều này vào một bình luận sau nhận xét của bạn về phản ứng của Norman Gray, nhưng mẫu mã đã khiến nó quá lớn. \ paragraph {} không thay đổi kiểu sắp xếp của các đoạn thông thường. Chỉ là, ngược lại, đoạn văn bắt đầu bằng lệnh \ paragraph {} không phải là một đoạn văn thông thường; đó là một phần tử trong tài liệu. Chơi với mã bên dưới để xem cách \ parskip và \ parindent ảnh hưởng đến các đoạn văn thông thường nhưng không ảnh hưởng đến phần tử "\ paragraph". (Trên thực tế, \ parskip ảnh hưởng đến các mục \ paragraph {} nhưng khoảng cách trước một mục \ paragraph {} được tính luôn luôn hơi hơn \ parskip, đó là lý do tại sao luôn có khoảng trống giữa các phần tử \ paragraph {} ngay cả khi \ parskip là 0.)

Tôi nghĩ rằng 99% tài liệu LaTeX có thể không bao giờ sử dụng lệnh section \ paragraph {}. Các đoạn thông thường trong LaTeX được phân cách bởi (1) một dòng trống ("đoạn văn thông thường" 1 và 2 bên dưới) hoặc (2) bằng lệnh \ par ("đoạn văn thông thường" 3 và 4 bên dưới).

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
%\usepackage{xunicode}% unicode character macros 
%\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{paragraph section 2}adorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 1 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 2 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\paragraph{paragraph section 2}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\par regular paragraph 3 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\par regular paragraph 4 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\end{document} 
+0

@Herbert: Cảm ơn bạn đã trả lời. Tôi đang sử dụng '\ paragraph' bởi vì đôi khi, các đoạn văn phải được đánh số và đếm, mà tôi hiểu là một giải pháp tốt, mặc dù có lẽ không phải là duy nhất, dựa trên câu hỏi này: http://stackoverflow.com/questions/543208 –

+0

Brian - Điều đó có ý nghĩa, nhưng lệnh phần \ paragraph {} không phải là thứ tôi sẽ chọn. Sử dụng môi trường danh sách 'liệt kê' có lẽ là lựa chọn tốt nhất, mặc dù ngay cả khi đó có thể có một số thay đổi định dạng phản trực giác mà bạn có thể cần. Nếu bạn muốn tiếp tục với phần \ paragraph {}, bạn có thể sử dụng gói "sectsty" để thêm đánh số và thay đổi định dạng (đọc tài liệu sectsty để biết thêm thông tin), hoặc chỉ chuyển đổi và đi với danh sách liệt kê. –

+1

Không, bất kể lời khuyên trong câu trả lời khác mà bạn chỉ tới (và đồng ý với Herbert), '\ paragraph' không phải là những gì bạn muốn ở đây, bởi vì nó chỉ là cách đánh vần' \ subsubsubsection', vì vậy nó chỉ có ý nghĩa nếu nó được sử dụng trong '\ subsubsection'. Đó là một lệnh phân đoạn - không có gì để làm với các đoạn văn. Định nghĩa '\ N' trong câu hỏi ban đầu của bạn là giải pháp tốt nhất ở đây. Tôi đã phải làm điều này bản thân mình, không tìm thấy gói nào đã làm nó, và viện đến (một cái gì đó tương tự như) giải pháp này. Vì các lý do khá cơ bản của LaTeX, việc đánh số đoạn văn rất khó thực hiện tự động. –

2

Có vẻ như hành vi đúng. Bạn nghĩ gì \paragraph nên làm gì? Gợi ý: nó không phải để tách các đoạn văn.

Theo tài liệu hồi ký, \paragraph là một trong các lệnh chia đoạn, sau \subsubsection và trước \subparagraph. Đối số cho lệnh mà bạn đang làm trống trong ví dụ của bạn, là tiêu đề của đoạn văn.

Bạn tách riêng các đoạn văn bản với nhau bằng cách sử dụng một dòng trống (và trường hợp bạn đã tìm thấy nơi các kích thước \parskip\parindent được tôn trọng), hoặc trong một số trường hợp hơi lạ hơn bằng cách sử dụng \par.

+0

Cảm ơn bạn đã trả lời. Tôi nghĩ rằng '\ paragraph' sẽ cung cấp phân đoạn dựa trên đoạn văn, mà không thay đổi sắp xếp của đoạn văn - tức là danh dự' \ par {indent, skip} 'và/hoặc không giới thiệu thụt lề đoạn riêng của nó (tới một mức độ nhất định) và bỏ qua. Tôi muốn biết ơn những suy nghĩ về cách loại bỏ bất kỳ định dạng nào liên quan đến lệnh chia đoạn văn bản. –

+0

@Brian - Tôi nghĩ rằng cách chữa trị tốt nhất, trong trường hợp của bạn, không phải là sử dụng lệnh \ paragraph {}. Bạn dường như không có sử dụng cho nó. Tại sao bạn sử dụng nó? –