2

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.

  1. How do I make latex never ever go outside the boxes where it is intended to be? (To avoid inappropriate text in the margins.)
  2. 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:

\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}
\subsubsection{{\bfseries\sffamily TODO} Knuth TeXbook}
\subsubsection{{\bfseries\sffamily TODO} FreeCAD}
\subsubsection{{\bfseries\sffamily TODO} SWIG}
\subsubsection{{\bfseries\sffamily TODO} Emacs Lisp}
\subsubsection{{\bfseries\sffamily TODO} Kernigan-Pike}
\subsubsection{{\bfseries\sffamily TODO} Pragmatic Programmer}
\subsubsection{{\bfseries\sffamily TODO} GDB}
\subsubsection{{\bfseries\sffamily TODO} IDA Pro}
\subsubsection{{\bfseries\sffamily TODO} Togaf}
\subsubsection{{\bfseries\sffamily TODO} Craig Scott CMAKE}
\subsubsection{{\bfseries\sffamily TODO} OpenSCAD}
\subsubsection{{\bfseries\sffamily DONE} AUCTeX}
\subsubsection{{\bfseries\sffamily DONE} Magit}
\subsection{{\bfseries\sffamily TODO} Science Books}
\subsubsection{{\bfseries\sffamily TODO} Shen Kolmogorov Komplexity}
\subsubsection{{\bfseries\sffamily TODO} Arora-Barak}
\subsubsection{{\bfseries\sffamily TODO} Strandh}
\subsubsection{{\bfseries\sffamily TODO} Kleinberg-Tardos}
\subsubsection{{\bfseries\sffamily TODO} Sipser Introduction to theory of computation}
\subsubsection{{\bfseries\sffamily TODO} Romanyuk}
\subsubsection{{\bfseries\sffamily TODO} Papoulis}
\subsubsection{{\bfseries\sffamily TODO} Model Calibration and Parameter Estimation}
\subsection{{\bfseries\sffamily TODO} Work}
\subsubsection{{\bfseries\sffamily TODO} Patents}
\subsubsection{{\bfseries\sffamily TODO} POSA-5}
\subsubsection{{\bfseries\sffamily TODO} MBSA}
\subsubsection{{\bfseries\sffamily TODO} ASML}
\subsubsection{{\bfseries\sffamily TODO} Wymore}
\subsection{{\bfseries\sffamily TODO} Culture}
\subsubsection{{\bfseries\sffamily TODO} Sources of Chinese Tradition}
\subsection{{\bfseries\sffamily TODO} Books that `If I have time'}
\subsubsection{{\bfseries\sffamily TODO} The \LaTeX{} Companion by Goossens, Mittelbach}
\subsubsection{{\bfseries\sffamily TODO} \LaTeX{} Web Companion}
\subsubsection{{\bfseries\sffamily TODO} Simmons Modern Analysis}
\subsubsection{{\bfseries\sffamily TODO} Sussman, A computational model of Skill Acquisition}
\subsubsection{{\bfseries\sffamily TODO} Julie Sussman, I can read that a traveler's introduction to Chinese}
\subsubsection{{\bfseries\sffamily TODO} Michael Kerrisk Linux API}
\subsubsection{{\bfseries\sffamily TODO} Acoff-Emery on purposeful systems}
\subsubsection{{\bfseries\sffamily TODO} Gabriel Wyner How to learn any language and never forget}
\subsubsection{{\bfseries\sffamily TODO} Structure and interpretation of classical mechanics}
\subsubsection{{\bfseries\sffamily TODO} Russel/Norvig Artificial Intelligence Modern Approach (STRIPS algorithm)}
\subsubsection{{\bfseries\sffamily TODO} Han Abelson Lower Bounds on Information Transfer in Distributed Computations}
\subsubsection{{\bfseries\sffamily TODO} Abelson Blown to Bits}
\subsubsection{{\bfseries\sffamily TODO} Shirko, Nonlinear Continual Mechanics}
\subsubsection{{\bfseries\sffamily TODO} Dougherty Random Processes for Image Processing}
\subsection{{\bfseries\sffamily TODO} Philosophy}
\subsubsection{{\bfseries\sffamily TODO} Proudhon}
\subsubsection{{\bfseries\sffamily TODO} Das Kapital}
\subsubsection{{\bfseries\sffamily TODO} Wittgenstein}
\subsubsection{{\bfseries\sffamily TODO} Zhorzhh Durua ( George Durois?)}
\subsubsection{{\bfseries\sffamily TODO} Ludwig von Mises}
\end{document}
  • 6
    LaTeX tries hard to not permit a page break after a sectioning heading. You could insert an \allowbreak after each heading to allow a page break at that position. – siracusa Aug 27 at 2:45
  • 2
    This indeed is the expected behavior. The question is, why do you want to only include headings in your document? If you just do this to get the entries numbered, you might want to use enumerate instead. It can be easily customized with the help of the enumitem package. – leandriis Aug 27 at 5:53
5

As siracusa said, LaTeX won't break a page after a sectional heading. A solution is to add some (invisible) text after a heading, such as:

\subsection{A title} \   % or
\subsection{Another title} \mbox{} % or ...
3

There answer to the question is to add the following at the top of the document:

\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

This answer is courtesy to the greap Ijon Tichy at the LaTeX forum. https://latex.org/forum/viewtopic.php?p=110289

As a side note, I believe this property of LaTeX to be unreasonable and counter-intuitive.

  • Such a nice reply...Upvote... – MadyYuvi Sep 28 at 6:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.