LaTeX'e \ dahil edildikten sonra sayfa sonu nasıl olmaz?


110

LaTeX'im, alt bölümlerim ayrı dosyalarda olduğu için her alt bölümden sonra beni sayfa sonu bırakıyor. Kullanıldıktan \include{file}sonra sayfa sonu ekleyen komutu kullanıyorum.

Kullanımından kaynaklanan herhangi bir sayfa sonu olmasını istemiyorum \include{file}.

include-Command kullandıktan sonra nasıl sayfa sonu olmaz?


2
Normalde alt bölümden sonra sayfa sonları aldığına inanmıyorum. Hangi belge sınıfını kullanıyorsunuz?
Cascabel

1
Neyin yanlış gittiğini anlayabilmemiz için başlığınızı gönderebilir misiniz (\ {belge} başlangıcına kadar her şey)?
Gerald Senarclens de Grancy

10
Kullanın \input, başka türlü kullanın \inputveya kullanın \input.
egreg

Yanıtlar:


4

Will Robertson tarafından önerilen newclude paketi, açıklıktan kaçınmak için oldukça kullanışlıdır. Görünüşe göre \includeonlyçalışmak için hemen sonra paketi aramak gerekiyor \documentclass{...}. Tezimin karmaşık ortamında, hatalı referanslarla ilgili sorunlarla da karşılaştım.

Son sürüm için includeonly gerekmediğinde iyi bir geçici çözüm, yalnızca taslakta şunları kullanmaktır:

\newif\ifdraft\drafttrue

veya

\newif\ifdraft\draftfalse

\ifdraft
  \include{...}
\fi

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

İlk satır, taslak veya üretim sürümü üretim hedefleri yapmak için bir makefile ile kolayca eklenebilir.

\includeonly{file1,file2,...}ortaya çıkan belgede gösterilecek olan \include{file1}( file1bir örnek olarak) ile çağrılan kaynak dosyaların bir listesini belirlemeye izin verir . Diğerleri görünmeyecek, ancak karşılık gelen aux dosyaları dahil edildiğinde sayaçlar, etiketler, içindekiler tablosu için dikkate alınacak.

Başka bir deyişle, tarafından kullanılarak includeve includeonlydoğru referanslar yerken biri taslak derleme zamanı kısa tutmak olabilir. Vikikitap'ta daha fazla okuma .

@Hayalhanemersin

\include\includeonly{...}yalnızca gerekli bölümleri oluşturmaya izin verdiği için çok kullanışlıdır . Daha uzun metinler üzerinde çalışırken, uzun bir bölümün yalnızca bir bölümünü dahil etmek derleme zamanında oldukça fark yaratabilir. Ayrıca, bir noktada çalışırken uzun bir taslağı gözden geçirmek zorunda olmadığından paha biçilmez derecede faydalıdır. Son olarak, daha küçük kaynak kod dosyalarının sürüm yönetiminde kullanılması daha kolaydır, örneğin git.


Çok uzun bir çalışma kağıdının sadece bir bölümünü nasıl derlediğinize bir örnek verebilir misiniz? Aşağıdaki cevabın bu yöntemlerini pageselyaklaşık \discardpagesfromhereve \keeppagesfromhere. Birbirleriyle çok az örtüşüyorlar, bu yüzden bu taslak yönetimini daha iyi idare edip edemeyeceğinizi öğrenmeye hazırım. tex.stackexchange.com/a/267555/13173
Léo Léopold Hertz 준영

1
Bunun doğruluğunu anlarsam, pagesel , son yapıya hangi sayfaların dahil edileceğine dair ince kontrole izin vererek yalnızca dahil etmekten daha fazlasını başarmaktır . Dahil et, kaynak kodunu açılıp kapatılabilen bir şekilde dahil etme gibi çok daha küçük bir kapsama sahiptir.
gschenk

152

\includeher zaman \clearpagetamamen mantıklı olmayan bir varsayılan kullanır . Alt bölümler için değil, tüm bölümler için tasarlanmıştır (neden alt bölümleri ayrı dosyalarda isteyesiniz ki?).

Paketi kullanarak \input{filename}veya yükleyerek newcludeve \include*{filename}bunun yerine yazarak düzeltebilirsiniz .


Veritabanı projem, sistemin nasıl kurulacağını göstermek için Planlama belgesine ihtiyaç duyar. LaTeX dosyamdaki bölümler.
Léo Léopold Hertz 준영

7
Alt bölümleri farklı dosyalara koymam için bir yığın neden düşünebilirim. İlk akla gelen, hedefe ve / veya iş uygulamasına bağlı olarak farklı ayrıntı seviyelerine sahip bir CV'ye sahip olmaktır. Bir kez, tek bir '%' sembolü ile kolayca bitleri kesebilir veya ekleyebilir.
Nicholas Hamilton

8
Bu cevabı yazmayalı uzun zaman oldu, ancak parantezin alaycı olması gerektiğine inanıyorum:)
Will Robertson

\includeYeni bir sayfa başlatmanın nedeni, \includeonlydüzgün çalışabilmesidir.
Carsten S

Bölümleri farklı dosyalara kırpmanın başka bir nedeni: Başlangıçta her zaman bir maket başlığı olan, ancak çıktıda her zaman bir alıştırma sayfası içeren alıştırma sayfaları yazmayı düşünün. Ben de her alıştırma kağıdını bir bölüm olarak görmezdim, özellikle de daha fazla alıştırma sayfası bir derste tek bir bölüme atıfta bulunduğundan. Yalnızca dahil etme, alıştırmalar içeren 1. sayfa (1.1-1.4), alıştırmalar içeren 2. sayfa (2.1-2.3) vb. Gibi alıştırma sayfalarını saymaya yarar.
C-Star-W-Star

30

Önüne \includeyerleştirmekten kaynaklanan sayfa sonlarını durdurabilirsiniz \let\clearpage\relax. Yani,

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

üç dosyanın (ve sonradan dahil edilen dosyaların) içeriğini aralarında bir sayfa sonu olmaksızın bir araya getirir. \clearpageKomutu gevşetmeyi bırakmak istiyorsanız , dosyaları şu şekilde bir grup içinde sayfa sonu olmadan dahil etmek için sarın:

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

Bu, dosya1 ve dosya2 arasında bir sayfa sonu durmasını durdurur, ancak dosya2'den sonra normal sayfa sonunu ekler. (Not: Bunun referanslama ve sayfa numaralandırmaya engel olup olmadığını bilmiyorum, yine de tamam olması gerektiğini düşünüyorum.)


1
Teşekkürler! Bu yanıt, birden fazla içerme artı Referansınız olduğunda ve onlar için yeni bir sayfa istemediğinizde işe yarar. Sadece sonuncudan bir grup yapın ve kaynakça kısmını ekleyin ve artık bir açıklama değil.
Manuel Ferreria

2
Manuel haklı: \begingroup\let\clearpage\relax ...\endgroupNumarayı istediğiniz yerde kullanabilirsiniz --- kaynakçanın metninizle aynı sayfada olmasını istiyorsanız, belirli bölümler veya parçalar arasındaki sayfa sonlarını durdurun, vb.
John

1
Bu çözüm, referanslarla ilgili bazı sorunlara neden olmuş gibi görünüyor. İki numaralandırılmış liste içeren eklenmiş bir dosyada, ikinci listenin öğelerine yapılan başvurular işe yaramadı. Bunun neden olması gerektiği hakkında hiçbir fikrim yok, ancak yeniye geçmek sorunu çözdü.
Mike Shulman

1
Ben tavsiye karşı bu yöntemi kullanarak; çözdüğünden daha fazla sorun yaratacaktır (ilk etapta bazı sorunları çözdüğünü varsayarak): bkz. tex.stackexchange.com/a/185237/4427
egreg

2

Teşekkürler Cambridge !

\ input yerine \ include kullanın ve işlenecek bölümleri seçmek için \ includeonly komutunu kullanın


2
Bu en iyi tavsiye değil. Bu durumlar için amaçlanan asıl komut \include{...]varken neden bir iş için kullanmak \input{...}isteyesiniz?
Florian R. Klein

1
Görünüşe göre bu yanıt soruyu yanıtlamıyor. (Aksi halde iyi bir referansla yararlı bir tavsiye olsa da.)
jciloa

Bu soruya cevap vermiyor.
EL_DON
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.