2

With the preamble that I built from the answer on \section with empty title. Show number next to first paragraph, I use \section{} and related with empty title, which will mark the first paragraph of the section with a number. This is perfect for my use case, however:

How do I exclude the sections with empty title from the TOC?

What I've got so far is this:

\documentclass{report}
\usepackage[a4paper, margin=1.3in]{geometry}

\usepackage{etoolbox}
\usepackage[explicit]{titlesec}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set section numbers in the margin and center the chapter headings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{5}
\renewcommand\thesection{\arabic{section}}

% this length controls the hanging indent for titles
% change the value according to your needs
\newlength\titleindent
\setlength\titleindent{1.35cm}

\titleformat{\chapter}[block]
  {\normalfont\huge\bfseries\center}{}{0pt}{\hspace*{-\titleindent}#1}

\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\llap{\parbox[t]{\titleindent}{\thesection\hfill}}}{0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr2.3ex+0.5\baselineskip\relax}}
    \else#1
    \fi
  }

\titleformat{\subsection}
  {\normalfont\large}{\llap{\parbox[t]{\titleindent}{\thesubsection\hfill}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
    \else\bfseries#1
    \fi
  }

\titleformat{\subsubsection}
  {\normalfont\normalsize}{\llap{\parbox[t]{\titleindent}{\thesubsubsection}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
    \else\bfseries#1
    \fi
  }

\titleformat{\paragraph}[runin]
  {\normalfont\large}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titleformat{\subparagraph}[runin]
  {\normalfont\normalsize}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titlespacing*{\chapter}{0pt}{0pt}{20pt}
\titlespacing*{\section}
{0pt}{3.5ex}{2.3ex}
\titlespacing*{\subsection}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{0pt}{3.25ex}{1.5ex}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\titlespacing*{\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Make chapters show up in TOC and NOT reset the section counters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{chapter}{0}
\newcommand{\mychapter}[1]{
    \chapter*{#1}
    \addcontentsline{toc}{chapter}{#1}
}


\begin{document}

\tableofcontents
\cleardoublepage

\mychapter{INITIAL CLAUSES}

\section{A Section title}
\subsection{A subsection with a title} 
Some text

\subsection{} This subsection has no title, so the numbers are displayed next to this text instead.

\subsection{} These subsections should not be included in the TOC


\end{document}

TOC with empty entries

2
  • I tried it. Does not make a difference. I want to configure the preamble so it checks for empty titles and does not include them
    – Eldamir
    Mar 10, 2015 at 12:45
  • I've updated my post with an example
    – Eldamir
    Mar 10, 2015 at 13:09

2 Answers 2

2

As part of your conditional test to see if the title is empty you can add the code required to change the ToC depth:

\documentclass{report}
\usepackage[a4paper, margin=1.3in]{geometry}

\usepackage{etoolbox}
\usepackage[explicit]{titlesec}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set section numbers in the margin and center the chapter headings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{5}
\renewcommand\thesection{\arabic{section}}

% this length controls the hanging indent for titles
% change the value according to your needs
\newlength\titleindent
\setlength\titleindent{1.35cm}


\titleformat{\chapter}[block]
  {\normalfont\huge\bfseries\center}{}{0pt}{\hspace*{-\titleindent}#1}

\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\llap{\parbox[t]{\titleindent}{\thesection\hfill}}}{0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr2.3ex+0.5\baselineskip\relax}}
      {\addtocontents{toc}{\setcounter{tocdepth}{-3}}}
    \else#1
      \addtocontents{toc}{\setcounter{tocdepth}{3}}
    \fi
  }

\titleformat{\subsection}
  {\normalfont\large}{\llap{\parbox[t]{\titleindent}{\thesubsection\hfill}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
      {\addtocontents{toc}{\setcounter{tocdepth}{-3}}}
    \else\bfseries#1
      \addtocontents{toc}{\setcounter{tocdepth}{3}}
    \fi
  }

\titleformat{\subsubsection}
  {\normalfont\normalsize}{\llap{\parbox[t]{\titleindent}{\thesubsubsection}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
    \else\bfseries#1
    \fi
  }

\titleformat{\paragraph}[runin]
  {\normalfont\large}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titleformat{\subparagraph}[runin]
  {\normalfont\normalsize}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titlespacing*{\chapter}{0pt}{0pt}{20pt}
\titlespacing*{\section}
{0pt}{3.5ex}{2.3ex}
\titlespacing*{\subsection}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{0pt}{3.25ex}{1.5ex}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\titlespacing*{\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Make chapters show up in TOC and NOT reset the section counters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{chapter}{0}
\newcommand{\mychapter}[1]{
    \chapter*{#1}
    \addcontentsline{toc}{chapter}{#1}
}


\begin{document}

\tableofcontents
\cleardoublepage

\mychapter{INITIAL CLAUSES}

\section{A section with title}
\subsection{A subsection with a title} 
Some text

\subsection{} This subsection has no title, so the numbers are displayed next to this text instead.

\subsection{} These subsections should not be included in the TOC

\subsection{Another subsection with a title} 
Some text

\section{} This section has no title
\section{} This section has no title

\section{Another section with title}
\subsection{Another subsection with a title} 

\end{document}

enter image description here

0
2

Not that I approve what you are doing, but here it is.

You can define two new commands, \emptysection and \emptysubsection

\newcommand{\emptysection}[1]{%
    \begingroup\renewcommand\addcontentsline[3]{}%
    \section{#1}\endgroup%
}

\newcommand{\emptysubsection}[1]{%
    \begingroup\renewcommand\addcontentsline[3]{}%
    \subsection{#1}\endgroup%
}

and use them instead of \section and \subsection when they must have no contents.

MWE:

\documentclass{report}
\usepackage[a4paper, margin=1.3in]{geometry}

\usepackage{etoolbox}
\usepackage[explicit]{titlesec}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Set section numbers in the margin and center the chapter headings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{5}
\renewcommand\thesection{\arabic{section}}

% this length controls the hanging indent for titles
% change the value according to your needs
\newlength\titleindent
\setlength\titleindent{1.35cm}

\titleformat{\chapter}[block]
  {\normalfont\huge\bfseries\center}{}{0pt}{\hspace*{-\titleindent}#1}

\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\llap{\parbox[t]{\titleindent}{\thesection\hfill}}}{0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr2.3ex+0.5\baselineskip\relax}}
    \else#1
    \fi
  }

\titleformat{\subsection}
  {\normalfont\large}{\llap{\parbox[t]{\titleindent}{\thesubsection\hfill}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
    \else\bfseries#1
    \fi
  }

\titleformat{\subsubsection}
  {\normalfont\normalsize}{\llap{\parbox[t]{\titleindent}{\thesubsubsection}}}
  {0em}
  {\if\detokenize{#1}\relax\relax
      {\Large\bfseries\vspace*{-\dimexpr1.5ex+0.5\baselineskip\relax}}
    \else\bfseries#1
    \fi
  }

\titleformat{\paragraph}[runin]
  {\normalfont\large}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titleformat{\subparagraph}[runin]
  {\normalfont\normalsize}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}

\titlespacing*{\chapter}{0pt}{0pt}{20pt}
\titlespacing*{\section}
{0pt}{3.5ex}{2.3ex}
\titlespacing*{\subsection}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{0pt}{3.25ex}{1.5ex}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\titlespacing*{\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Make chapters show up in TOC and NOT reset the section counters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{chapter}{0}
\newcommand{\mychapter}[1]{
    \chapter*{#1}
    \addcontentsline{toc}{chapter}{#1}
}

\newcommand{\emptysection}[1]{%
    \begingroup\renewcommand\addcontentsline[3]{}%
    \section{#1}\endgroup%
}

\newcommand{\emptysubsection}[1]{%
    \begingroup\renewcommand\addcontentsline[3]{}%
    \subsection{#1}\endgroup%
}

\begin{document}

\tableofcontents
\cleardoublepage

\mychapter{INITIAL CLAUSES}

\section{A Section title}
\subsection{A subsection with a title}
Some text

\emptysubsection{} This subsection has no title, so the numbers are displayed next to this text instead.

\emptysubsection{} These subsections should not be included in the TOC

\end{document} 

Output (ToC):

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .