Bagaimana agar tidak ada pagebreak setelah \ include di LaTeX

110

LaTeX saya membuat saya pagebreak setelah setiap subbagian karena subbagian saya berada dalam file terpisah. Saya menggunakan perintah \include{file}yang menambahkan pagebreak setelah menggunakannya.

Saya ingin tidak ada penghentian halaman yang disebabkan oleh penggunaan \include{file}.

Bagaimana Anda tidak bisa menghentikan pagebreak setelah menggunakan include-command?

Léo Léopold Hertz 준영
sumber
2
Saya tidak percaya bahwa Anda mendapatkan jeda halaman setelah sub-bagian secara normal. Documentclass apa yang Anda gunakan?
Cascabel
1
Bisakah Anda memposting tajuk Anda (semuanya hingga \ begin {document}) sehingga kami dapat mengetahui apa yang salah?
Gerald Senarclens de Grancy
10
Gunakan \input, gunakan, \inputatau gunakan \input.
egreg

Jawaban:

4

Paket termasuk baru yang disarankan oleh Will Robertson agak berguna untuk menghindari halaman yang jelas. Tampaknya, agar \includeonlyberfungsi, seseorang harus segera memanggil paket setelahnya \documentclass{...}. Dalam lingkungan disertasi yang kompleks, saya juga mengalami masalah dengan referensi yang rusak.

Solusi yang baik, jika hanya menyertakan tidak diperlukan untuk versi final, adalah dengan menggunakan penyertaan hanya dalam draf:

\newif\ifdraft\drafttrue

atau

\newif\ifdraft\draftfalse

\ifdraft
  \include{...}
\fi

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

Baris pertama dapat dengan mudah ditambahkan oleh makefile, untuk membuat draf atau produksi versi produksi membuat target.

\includeonly{file1,file2,...}memungkinkan untuk menentukan daftar file sumber yang dipanggil dengan \include{file1}(di mana file1adalah contoh) yang akan ditampilkan dalam dokumen yang dihasilkan. Yang lain tidak akan muncul, tetapi dipertimbangkan untuk penghitung, label, daftar isi ketika file aux terkait disertakan.

Dengan kata lain, dengan menggunakan includedan includeonlyseseorang dapat membuat waktu kompilasi singkat dalam draf sambil memiliki referensi yang benar. Bacaan lebih lanjut di Wikibooks .

@AngkasaSurga

\includesangat berguna karena memungkinkan melalui \includeonly{...}untuk membangun hanya bagian yang diperlukan. Saat mengerjakan teks yang lebih panjang, bisa membuat perbedaan yang cukup besar dalam waktu kompilasi dengan hanya menyertakan satu bagian dari bab yang panjang. Ini juga sangat berguna karena seseorang tidak harus membaca draf panjang sambil bekerja pada satu titik. Terakhir, file kode sumber yang lebih kecil lebih mudah ditangani dalam manajemen versi, misalnya git.

gschenk.dll
sumber
Bisakah Anda memberi contoh bagaimana Anda mengumpulkan hanya satu bagian dari kertas kerja yang sangat panjang? Saya telah menggunakan metode jawaban berikut ini di pageselabout \discardpagesfromheredan \keeppagesfromhere. Mereka sedikit tumpang tindih satu sama lain jadi saya bersedia belajar jika Anda dapat menangani pengelolaan draf ini dengan lebih baik. tex.stackexchange.com/a/267555/13173
Léo Léopold Hertz 준영
1
Jika saya memahaminya dengan benar, pagesel akan mencapai lebih dari sekadar memasukkan dengan mengizinkan kontrol yang baik halaman mana yang akan disertakan dalam pembuatan akhir. Include memiliki cakupan yang jauh lebih kecil, termasuk kode sumber dengan cara yang dapat dinyalakan dan dimatikan.
gschenk
152

\includeselalu menggunakan \clearpage, default yang tidak sepenuhnya masuk akal. Ini ditujukan untuk seluruh bab, bukan untuk subbagian (mengapa Anda menginginkan subbagian dalam file terpisah, sih?).

Anda dapat memperbaikinya dengan menggunakan \input{filename}atau memuat newcludepaket dan menulis \include*{filename}sebagai gantinya.

Will Robertson
sumber
Proyek database saya memerlukan dokumen Perencanaan, dokumen "Bangunan" untuk menunjukkan cara menyiapkan sistem. Mereka adalah bagian dalam file LaTeX saya.
Léo Léopold Hertz 준영
7
Saya dapat memikirkan setumpuk alasan mengapa harus meletakkan subbagian di file yang berbeda. Yang pertama terlintas dalam pikiran adalah memiliki CV dengan tingkat detail yang berbeda-beda, tergantung target dan / atau lamaran pekerjaan. Once dapat dengan mudah memotong atau memasukkan bit, dengan satu simbol '%'.
Nicholas Hamilton
8
Sudah lama sejak saya menulis jawaban ini, tetapi saya percaya bahwa tanda kurung dimaksudkan untuk menjadi sarkastik:)
Will Robertson
Alasan \includememulai halaman baru adalah agar \includeonlydapat berfungsi dengan baik.
Carsten S
Alasan lain untuk memotong bagian menjadi file yang berbeda: Pertimbangkan menulis lembar latihan selalu memiliki judul maket di awal tetapi selalu menyertakan satu lembar latihan hanya pada cetakan. Saya sendiri tidak akan menganggap setiap lembar latihan sebagai bab itu sendiri, terutama karena lebih banyak lembar latihan mengacu pada satu bab dalam kuliah. Termasuk hanya berfungsi sebagai penghitungan lembar latihan seperti lembar 1 dengan latihan (1.1-1.4), lembar 2 dengan latihan (2.1-2.3) dan seterusnya.
C-Star-W-Star
30

Anda dapat menghentikan penghentian halaman yang disebabkan \includeoleh penempatan \let\clearpage\relaxsebelumnya. Begitu,

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

akan menyatukan konten dari tiga file (dan file yang disertakan selanjutnya) bersama-sama tanpa pemisah halaman di antara mereka. Jika Anda ingin berhenti melonggarkan \clearpageperintah, maka bungkus file untuk disertakan tanpa pagebreak dalam grup seperti ini:

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

Ini akan menghentikan pemutusan halaman antara file1 dan file2, tetapi menyisipkan pemecah halaman normal setelah file2. (Catatan: Saya tidak tahu apakah ini mengganggu referensi dan penomoran halaman, meskipun menurut saya seharusnya tidak masalah.)

John
sumber
1
Terima kasih! Jawaban ini berfungsi dengan baik ketika Anda memiliki beberapa penyertaan plus Referensi dan Anda tidak menginginkan halaman baru untuk mereka. Buat saja grup yang terakhir termasuk satu dan bagian bibliografi, dan bukan lagi halaman yang jelas.
Manuel Ferreria
2
Manuel benar: Anda dapat menggunakan \begingroup\let\clearpage\relax ...\endgrouptrik ini di mana pun Anda suka --- hentikan pemenggalan halaman di antara bagian atau bagian tertentu, jika Anda ingin bibliografinya berada di halaman yang sama dengan teks Anda, dll.
Yohanes
1
Solusi ini tampaknya telah menyebabkan beberapa masalah bagi saya dengan referensi. Dalam file yang disertakan yang berisi dua daftar enumerasi, referensi ke item dari daftar kedua tidak berfungsi. Saya tidak tahu mengapa ini harus terjadi, tetapi beralih ke newclude memperbaiki masalah.
Mike Shulman
1
Saya merekomendasikan untuk tidak menggunakan metode ini; itu akan menciptakan lebih banyak masalah daripada memecahkannya (dengan asumsi itu memecahkan beberapa masalah di tempat pertama): lihat tex.stackexchange.com/a/185237/4427
egreg
2

Terima kasih, Cambridge !

gunakan \ include daripada \ input, dan gunakan perintah \ includeonly untuk memilih bagian yang akan diproses

Léo Léopold Hertz 준영
sumber
2
Ini bukan nasihat terbaik. Mengapa Anda ingin menggunakan \include{...]untuk suatu pekerjaan ketika \input{...}perintah sebenarnya yang dimaksudkan untuk situasi ini?
Florian R. Klein
1
Jawaban ini sepertinya tidak menjawab pertanyaan itu sama sekali. (Meskipun ini adalah nasihat yang berguna, dengan referensi yang bagus.)
jciloa
Ini tidak menjawab pertanyaan itu.
EL_DON