Làm thế nào để không có ngắt trang sau khi \ include trong LaTeX


110

LaTeX của tôi làm cho tôi ngắt trang sau mỗi tiểu mục vì các tiểu mục của tôi nằm trong các tệp riêng biệt. Tôi sử dụng lệnh \include{file}thêm dấu ngắt trang sau khi sử dụng nó.

Tôi muốn không có lỗi trang do sử dụng \include{file}.

Làm cách nào để bạn không bị ngắt trang sau khi sử dụng include-command?


2
Tôi không tin rằng bạn nhận được ngắt trang sau tiểu mục một cách bình thường. Bạn đang sử dụng lớp tài liệu nào?
Cascabel

1
Bạn có thể đăng tiêu đề của mình (mọi thứ cho đến khi \ begin {document}) để chúng tôi có thể biết điều gì đang xảy ra không?
Gerald Senarclens de Grancy,

10
Sử dụng \input, nếu không sử dụng \inputhoặc sử dụng khác \input.
egreg

Câu trả lời:


4

Gói newclude do Will Robertson đề xuất khá hữu ích để tránh bị xóa. Nó xuất hiện, \includeonlyđể hoạt động người ta phải gọi gói ngay sau đó \documentclass{...}. Trong môi trường phức tạp của luận văn, tôi cũng gặp phải vấn đề với các tài liệu tham khảo bị hỏng.

Một giải pháp tốt, khi chỉ bao gồm không cần thiết cho phiên bản cuối cùng, là chỉ sử dụng bao gồm trong bản nháp:

\newif\ifdraft\drafttrue

hoặc là

\newif\ifdraft\draftfalse

\ifdraft
  \include{...}
\fi

\ifdraft
  \include{file}
\else
  \input{file}
\fi

Dòng đầu tiên có thể dễ dàng thêm vào bởi một tệp makefile, để tạo mục tiêu cho phiên bản sản xuất nháp hoặc sản xuất.

\includeonly{file1,file2,...}cho phép chỉ định danh sách các tệp nguồn được gọi với \include{file1}( file1ví dụ là ở đâu ) sẽ hiển thị trong tài liệu kết quả. Những cái khác sẽ không hiển thị, nhưng được coi là bộ đếm, nhãn, mục lục khi các tệp aux tương ứng được bao gồm.

Nói cách khác, bằng cách sử dụng includeincludeonlyngười ta có thể giữ cho thời gian biên dịch ngắn trong bản nháp trong khi vẫn có các tham chiếu chính xác. Đọc thêm trên Wikibooks .

@Will Robertson

\includerất hữu ích vì nó cho phép \includeonly{...}xây dựng các phần chỉ cần thiết. Trong khi làm việc trên văn bản dài hơn, nó có thể tạo ra sự khác biệt khá lớn trong thời gian biên dịch để chỉ bao gồm một phần của một chương dài. Nó cũng vô cùng hữu ích vì người ta không phải xem qua một bản nháp dài trong khi làm việc tại một điểm. Cuối cùng, các tệp mã nguồn nhỏ hơn sẽ dễ xử lý hơn trong quản lý phiên bản, ví dụ: git.


Bạn có thể vui lòng cho một ví dụ về cách bạn biên dịch chỉ một phần của một bài báo làm việc rất dài? Tôi đã sử dụng các phương pháp này của câu trả lời sau đây trong pageselkhoảng \discardpagesfromhere\keeppagesfromhere. Chúng ít trùng lặp nhau nên tôi sẵn sàng học hỏi nếu bạn có thể xử lý việc quản lý dự thảo này tốt hơn. tex.stackexchange.com/a/267555/13173
Léo Léopold Hertz 준영

1
Nếu tôi hiểu nó correclty, pagesel là để đạt được hơn includeonly bằng cách cho phép kiểm soát tốt những trang phải được bao gồm trong một build thức. Bao gồm có phạm vi nhỏ hơn nhiều, bao gồm mã nguồn theo cách có thể bật và tắt.
gschenk

152

\includeluôn luôn sử dụng \clearpage, một mặc định không hoàn toàn hợp lý. Nó dành cho toàn bộ các chương, không phải cho các tiểu mục (dù sao thì bạn cũng muốn các tiểu mục trong các tệp riêng biệt?).

Bạn có thể sửa nó bằng cách sử dụng \input{filename}hoặc tải newcludegói và viết \include*{filename}.


Dự án cơ sở dữ liệu của tôi cần tài liệu Lập kế hoạch tài liệu "Xây dựng" để chỉ ra cách thiết lập hệ thống. Chúng là các phần trong LaTeX -file của tôi.
Léo Léopold Hertz 준영

7
Tôi có thể nghĩ ra nhiều lý do tại sao phải đặt các tiểu mục trong các tệp khác nhau. Điều đầu tiên bạn nghĩ đến là có một CV với các mức độ chi tiết khác nhau, tùy thuộc vào mục tiêu và / hoặc đơn xin việc. Một lần có thể dễ dàng cắt các bit ra hoặc đưa các bit vào, với một ký hiệu '%' duy nhất.
Nicholas Hamilton

8
Nó được một lúc kể từ khi tôi viết câu trả lời này, nhưng tôi tin rằng trong dấu ngoặc đó có nghĩa là phải châm biếm:)
Will Robertson

Lý do \includebắt đầu một trang mới là nó \includeonlycó thể hoạt động bình thường.
Carsten S

Một lý do khác để cắt các phần thành các tệp khác nhau: Hãy cân nhắc việc viết phiếu bài tập luôn có phần trang điểm ngay từ đầu nhưng luôn chỉ bao gồm một phiếu bài tập trên bản in. Bản thân tôi sẽ không coi mỗi tờ bài tập là một chương, đặc biệt là vì nhiều tờ bài tập hơn đề cập đến một chương trong bài giảng. Bao gồm chỉ dùng để đếm các phiếu bài tập như tờ 1 với các bài tập (1.1-1.4), tờ 2 với các bài tập (2.1-2.3), v.v.
C-Star-W-Star,

30

Bạn có thể ngừng ngắt trang gây ra bằng \includecách đặt \let\clearpage\relaxtrước nó. Vì thế,

\let\clearpage\relax
\include{file1}
\include{file2}
\include{file3}

sẽ đặt nội dung của ba tệp (và bất kỳ tệp nào sau đó được bao gồm) lại với nhau mà không có dấu ngắt trang giữa chúng. Nếu bạn muốn ngừng thư giãn \clearpagelệnh, hãy bọc các tệp để bao gồm mà không có dấu ngắt trang trong một nhóm như sau:

\begingroup
\let\clearpage\relax
\include{file1}
\include{file2}
\endgroup
\include{file3}

Điều này sẽ ngăn chặn ngắt trang giữa tệp1 và tệp2, nhưng hãy chèn ngắt trang bình thường sau tệp2. (Lưu ý: Tôi không biết liệu điều này có cản trở việc tham chiếu và đánh số trang hay không, mặc dù tôi nghĩ rằng nó sẽ ổn.)


1
Cảm ơn! Câu trả lời này hoạt động tốt khi bạn có nhiều bao gồm cộng với Tham chiếu và bạn không muốn có trang mới cho chúng. Chỉ cần tạo một nhóm cuối cùng bao gồm một và phần thư mục, và không còn là một trang rõ ràng.
Manuel Ferreria

2
Manuel là đúng: bạn có thể sử dụng \begingroup\let\clearpage\relax ...\endgroupthủ thuật bất cứ nơi nào bạn thích --- dừng ngắt trang giữa các phần đặc biệt hoặc các bộ phận, nếu bạn muốn thư mục phải được trên trên cùng một trang dưới dạng văn bản của bạn, vv
John

1
Giải pháp này dường như đã gây ra một số vấn đề cho tôi với tài liệu tham khảo. Trong một tệp bao gồm có hai danh sách được liệt kê, các tham chiếu đến các mục của danh sách thứ hai không hoạt động. Tôi không biết tại sao phải làm như vậy, nhưng việc chuyển sang newclude đã khắc phục được sự cố.
Mike Shulman

1
Tôi khuyên bạn nên chống lại sử dụng phương pháp này; nó sẽ tạo ra nhiều vấn đề hơn nó giải quyết (giả sử nó giải quyết một số vấn đề ở nơi đầu tiên): xem tex.stackexchange.com/a/185237/4427
egreg

2

Cảm ơn bạn, Cambridge !

sử dụng \ include thay vì \ input và sử dụng lệnh \ includeonly để chọn các phần để xử lý


2
Đây không phải là lời khuyên tốt nhất. Tại sao bạn muốn sử dụng \include{...]cho một công việc khi \input{...}lệnh thực sự được định sẵn cho những tình huống này?
Florian R. Klein

1
Câu trả lời này dường như không trả lời câu hỏi nào cả. (Mặc dù đó là một lời khuyên hữu ích, với một tài liệu tham khảo tốt.)
jciloa

Điều này không trả lời câu hỏi.
EL_DON
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.