Page LayoutHow to typeset many headings with no bodies? (After about 20 they don't fit on a page, and latex is not creating new)

Information and discussion about page layout specific issues (e.g. header and footer lines, page formats, page numbers).
Post Reply
lockywolf
Posts: 4
Joined: Tue Aug 27, 2019 4:18 am

How to typeset many headings with no bodies? (After about 20 they don't fit on a page, and latex is not creating new)

Post by lockywolf »

I have a document (I use the 'article' class, but I cannot guarantee that, since the users may override it.), which only consists of headings of various kinds (\chapter, \section, \subsection, \subsubsection, god knows which), about 200 of them.

When I compile it with latex (I use lualatex), the result is very creepy, namely, I am getting an empty page, followed by the page that has the first ~20 headings. The last headings are overflowing to the bottom margin (which should only have a page number, or even have nothing), and no new pages are being created, so the rest ~180 headings are lost.

How do I make latex never ever go outside the boxes where it is intended to be? (To avoid inappropriate text in the margins.)
How do I make latex create new pages when they are needed? I cannot overload \section, \subsection, etc, commands, because I can't know in advance what their names are. (Otherwise I could, perhaps, write something like \renewcommand\section{\section\vspace{0.001cm}}, but again, I need a robust solution, which is not based on a pre-computed set of section names, sizes, etc.

My MWE is the following:

Code: Select all

Code, edit and compile here:
\documentclass[11pt,a4paper]{article}
\begin{document}
\section{{\bfseries\sffamily TODO} Good Books [0/33]}
\subsection{{\bfseries\sffamily TODO} {http://www.finseth.com/craft/}{Craft of Text Editing about Emacs}}
\subsection{{\bfseries\sffamily TODO} The art of Metaobject protocol {https://en.m.wikipedia.org/wiki/The\_Art\_of\_the\_Metaobject\_Protocol}{Wikipedia Link}}
\subsection{{\bfseries\sffamily TODO} lesswrong.com {https://www.lesswrong.com/}{Link online}}
\subsection{{\bfseries\sffamily TODO} lesswrong.ru}
\subsection{{\bfseries\sffamily TODO} Ilya Prigogine Philosophy of complexity?}
\subsection{{\bfseries\sffamily TODO} An Introduction to the Graphic Language: The Vocabulary, Grammatical Construction, Idiomatic Use, and Historical Development, with Special Reference to the Reading of Drawings -- by Gardner Chace}
\subsection{{\bfseries\sffamily TODO} Getting Things Done}
\subsection{{\bfseries\sffamily TODO} Kernigan-Pike Practice of Programming}
\subsection{{\bfseries\sffamily TODO} Model Calibration and Parameter Estimation}
\subsection{{\bfseries\sffamily TODO} Hitchhiker's Guide to the Galaxy\hfill{}\textsc{hate}}
\subsection{{\bfseries\sffamily TODO} Thomas Hunt Pragmatic Programmer}
\subsection{{\bfseries\sffamily TODO} r-5.org}
\subsection{{\bfseries\sffamily TODO} otoro.net machine learning research blog}
\subsection{{\bfseries\sffamily TODO} Weinberg The Trouble With Quantum Mechanics}
\subsection{{\bfseries\sffamily TODO} Elements of Statistical Learning}
\subsection{{\bfseries\sffamily TODO} Tufte Book on graphs}
\subsection{{\bfseries\sffamily TODO} sumofsquares.org book}
\subsection{{\bfseries\sffamily TODO} Gabriel Wyner Fluent Forever How To Learn Any Language}
\subsection{{\bfseries\sffamily TODO} {https://en.wikipedia.org/wiki/Scientific\_community\_metaphor} and subbooks}
\subsection{{\bfseries\sffamily TODO} {https://www.amazon.com/dp/0201433117/?tag=stackoverfl08-20}}
\subsection{{\bfseries\sffamily TODO} {http://immersivemath.com/ila/index.html}{Immersive Linear Algebra}}
\subsection{{\bfseries\sffamily TODO} {http://discrete.openmathbooks.org/dmoi3.html}{Discrete Mathematics Open Book}}
\subsection{{\bfseries\sffamily TODO} danijar.com}
\subsection{{\bfseries\sffamily TODO} Terry Tang Yuan github.io}
\subsection{{\bfseries\sffamily TODO} blog.mdda.net}
\subsection{{\bfseries\sffamily TODO} brilliant.org blog}
\subsection{{\bfseries\sffamily TODO} {http://gaudisite.nl/newspage.html}{Gaudi Systems Architecture}}
\subsection{{\bfseries\sffamily TODO} Farnam Street}
\subsection{{\bfseries\sffamily TODO} {http://www.mitchr.me/SS/books/Catigory\_index.html} and subbooks}
\subsection{{\bfseries\sffamily TODO} {https://www.scrumalliance.org/labs}{Scrum Alliance}}
\subsection{{\bfseries\sffamily TODO} {http://flibusta.is/b/482781}{Gippenreiter-2+3}}
\subsection{{\bfseries\sffamily TODO} {http://timmurphy.org/2018/05/22/combining-pdf-documents-using-latex/}{Tim Murphy's Blog}}
\subsection{{\bfseries\sffamily TODO} {http://flibusta.is/b/122923}{Ruth Benedict Chrysanthemum and Sword}}
\subsection{{\bfseries\sffamily TODO} {https://www.amazon.com/Mathematicians-Lament-School-Fascinating-Imaginative/dp/1934137170/ref=pd\_aw\_sbs\_14\_1/146-9551928-4683768?\_encoding=UTF8\&pd\_rd\_i=1934137170\&pd\_rd\_r=ebc1f528-5232-11e9-a585-0fccb0784f1b\&pd\_rd\_w=gnvYP\&pd\_rd\_wg=V2MnV\&pf\_rd\_p=aae79475-6dc9-4a12-80e8-27b63108fa72\&pf\_rd\_r=GC659QJ4DRN1YBNG4HZE\&psc=1\&refRID=GC659QJ4DRN1YBNG4HZE}{Mathematician's Lament}}
\subsection{{\bfseries\sffamily TODO} Tech books}
\subsubsection{{\bfseries\sffamily TODO} Lamport Latex}
\subsubsection{{\bfseries\sffamily TODO} Spivak, JoyOfTex}
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p

Ijon Tichy
Posts: 640
Joined: Mon Dec 24, 2018 10:12 am

How to typeset many headings with no bodies? (After about 20 they don't fit on a page, and latex is not creating new)

Post by Ijon Tichy »

Sections (and also chapters etc.) in LaTeX are designed to not allow page breaks immediately after the title, because this would break typography. Here you've misused sections to something which is more or less a list. And I would really recommend to use nested lists or something similar for it, e.g.
Code, edit and compile here:
\documentclass[11pt,a4paper]{article}
\usepackage{enumitem}
\usepackage{hyperref}
\newlist{todo}{itemize}{4}% you could also depend on enumerate instead of itemize to have numbers
\setlist[todo]{label={TODO},font=\sffamily\bfseries,align=left,labelwidth=*,leftmargin=*}% try also leftmargin=0pt instead of leftmargin=*
\setlist[todo,1]{before=\Large}
\setlist[todo,2]{before=\large}
\setlist[todo,3]{before=\normalsize}
%\usepackage{showframe}
\begin{document}
\begin{todo}
\item Good Books [0/33]
\begin{todo}
\item \href{http://www.finseth.com/craft/}{Craft of Text Editing about Emacs}
\item The art of Metaobject protocol \href{https://en.m.wikipedia.org/wiki/The\_Art\_of\_the\_Metaobject\_Protocol}{Wikipedia Link}
\item lesswrong.com \href{https://www.lesswrong.com/}{Link online}
\item lesswrong.ru
\item Ilya Prigogine Philosophy of complexity?
\item An Introduction to the Graphic Language: The Vocabulary, Grammatical Construction, Idiomatic Use, and Historical Development, with Special Reference to the Reading of Drawings -- by Gardner Chace
\item Getting Things Done
\item Kernigan-Pike Practice of Programming
\item Model Calibration and Parameter Estimation
\item Hitchhiker's Guide to the Galaxy\hfill{}\textsc{hate}
\item Thomas Hunt Pragmatic Programmer
\item r-5.org
\item otoro.net machine learning research blog
\item Weinberg The Trouble With Quantum Mechanics
\item Elements of Statistical Learning
\item Tufte Book on graphs
\item sumofsquares.org book
\item Gabriel Wyner Fluent Forever How To Learn Any Language
\item \url{https://en.wikipedia.org/wiki/Scientific\_community\_metaphor} and subbooks
\item \url{https://www.amazon.com/dp/0201433117/?tag=stackoverfl08-20}
\item \href{http://immersivemath.com/ila/index.html}{Immersive Linear Algebra}
\item \href{http://discrete.openmathbooks.org/dmoi3.html}{Discrete Mathematics Open Book}
\item danijar.com
\item Terry Tang Yuan github.io
\item blog.mdda.net
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If you really insist in using section commands, that are not made for such a thing, you have to redefine the commands to make page breaks after them possible. For \section till \subsubsection this could be done redefining [cmd]@afterheading[/cmd]:
Code, edit and compile here:
\documentclass[11pt,a4paper]{article}
\usepackage{xpatch}
\makeatletter
% This is not recommended, because it can break several things
\xpatchcmd{\@afterheading}{\@nobreaktrue}{\@nobreakfalse}{%
\typeout{WARNING: \string\@afterheading\space broken}%
}{%
\@latexerr{ERROR: Cannot patch \string\@afterheading}\@ehd%
}
\makeatother
\begin{document}
\section{{\bfseries\sffamily TODO} Good Books [0/33]}
\subsection{{\bfseries\sffamily TODO} {http://www.finseth.com/craft/}{Craft of Text Editing about Emacs}}
\subsection{{\bfseries\sffamily TODO} The art of Metaobject protocol {https://en.m.wikipedia.org/wiki/The\_Art\_of\_the\_Metaobject\_Protocol}{Wikipedia Link}}
\subsection{{\bfseries\sffamily TODO} lesswrong.com {https://www.lesswrong.com/}{Link online}}
\subsection{{\bfseries\sffamily TODO} lesswrong.ru}
\subsection{{\bfseries\sffamily TODO} Ilya Prigogine Philosophy of complexity?}
\subsection{{\bfseries\sffamily TODO} An Introduction to the Graphic Language: The Vocabulary, Grammatical Construction, Idiomatic Use, and Historical Development, with Special Reference to the Reading of Drawings -- by Gardner Chace}
\subsection{{\bfseries\sffamily TODO} Getting Things Done}
\subsection{{\bfseries\sffamily TODO} Kernigan-Pike Practice of Programming}
\subsection{{\bfseries\sffamily TODO} Model Calibration and Parameter Estimation}
\subsection{{\bfseries\sffamily TODO} Hitchhiker's Guide to the Galaxy\hfill{}\textsc{hate}}
\subsection{{\bfseries\sffamily TODO} Thomas Hunt Pragmatic Programmer}
\subsection{{\bfseries\sffamily TODO} r-5.org}
\subsection{{\bfseries\sffamily TODO} otoro.net machine learning research blog}
\subsection{{\bfseries\sffamily TODO} Weinberg The Trouble With Quantum Mechanics}
\subsection{{\bfseries\sffamily TODO} Elements of Statistical Learning}
\subsection{{\bfseries\sffamily TODO} Tufte Book on graphs}
\subsection{{\bfseries\sffamily TODO} sumofsquares.org book}
\subsection{{\bfseries\sffamily TODO} Gabriel Wyner Fluent Forever How To Learn Any Language}
\subsection{{\bfseries\sffamily TODO} {https://en.wikipedia.org/wiki/Scientific\_community\_metaphor} and subbooks}
\subsection{{\bfseries\sffamily TODO} {https://www.amazon.com/dp/0201433117/?tag=stackoverfl08-20}}
\subsection{{\bfseries\sffamily TODO} {http://immersivemath.com/ila/index.html}{Immersive Linear Algebra}}
\subsection{{\bfseries\sffamily TODO} {http://discrete.openmathbooks.org/dmoi3.html}{Discrete Mathematics Open Book}}
\subsection{{\bfseries\sffamily TODO} danijar.com}
\subsection{{\bfseries\sffamily TODO} Terry Tang Yuan github.io}
\subsection{{\bfseries\sffamily TODO} blog.mdda.net}
\subsection{{\bfseries\sffamily TODO} brilliant.org blog}
\subsection{{\bfseries\sffamily TODO} {http://gaudisite.nl/newspage.html}{Gaudi Systems Architecture}}
\subsection{{\bfseries\sffamily TODO} Farnam Street}
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Sorry, but I can no longer participate here as the administrator is trampling on my wishes on one of his other platforms. :cry:
lockywolf
Posts: 4
Joined: Tue Aug 27, 2019 4:18 am

How to typeset many headings with no bodies? (After about 20 they don't fit on a page, and latex is not creating new)

Post by lockywolf »

This is wonderful! Works like charm!

As you may have guessed, this list is not written by me, at least not directly. It is generated by Emacs' org-mode from an arbitrary depth nested tree, of which (by default) the first three levels are typeset as headings, whereas the rest is, indeed, typeset as list items. And the arbitrary number 3 is customizable, just as completely unpredictable are the number and contents of those sections (the majority of those will be indeed, empty, but not necessarily, as they may have tables and pictures inside.

As a side-note, I see nothing wrong about breaking a page after a heading, as I almost always view pdfs in a 'continous scroll' mode, and the need for pages only arises when I need to offload or backup some files. Indeed, I probably should have asked how to disable paging completely, but that must be a much harder issue.

Thank you very much any way, this seems to be solving my question.
User avatar
Ijon Tichy
Posts: 640
Joined: Mon Dec 24, 2018 10:12 am

How to typeset many headings with no bodies? (After about 20 they don't fit on a page, and latex is not creating new)

Post by Ijon Tichy »

lockywolf wrote:I probably should have asked how to disable paging completely, but that must be a much harder issue.
Completely is not possible, but almost is easy. Add, e.g.
\usepackage[paperheight=\maxdimen,vmargin={.5in,.5in}]{geometry}
to your preamble.
Sorry, but I can no longer participate here as the administrator is trampling on my wishes on one of his other platforms. :cry:
Post Reply