Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am making a bank of exercises for a course. To do this, I use the exam class, which uses the same sectioning as the article class.

To do this, I have a separate .tex files with the questions, inside sections, subsections that uses the exam class format.

The main .tex file consists only of a \Part{Questions} \input{questions.tex} and a \Part{Answers} \input{questions.tex}. When the \part is printed, it gives the following:

Part I

Questions

I would like to remove the Part 1 header.

@Werner has a solution in this question, where the report class had been used. Using is solution seems to work, but LaTeX gives me a undefined control sequence for each \part I have.

Here is a MWE without Werner's solution

\documentclass[12pt]{exam}
\usepackage{lmodern}
\usepackage[T1]{fontenc}    
\usepackage[utf8]{inputenc}     
\usepackage{amsfonts,amsmath,amssymb,amsthm,mathrsfs} 
\usepackage{sectsty}
\pagestyle{headandfoot}
\firstpageheadrule
\firstpageheader{Probabilités}{}{MAT-1720}                             
\firstpagefooter{}{}{\thepage}
\firstpagefootrule
\runningheadrule
\runningheader{Probabilités}{}{MAT-1720}  
\runningfooter{Nom du professeur}{}{\thepage}
\runningfootrule
\title{Banque d'exercices pour MAT-1720}
\author{Nom du professeur - Institut}
\date{Automne 2014}
\begin{document}
\maketitle
\thispagestyle{headandfoot}
\tableofcontents
\newpage
\part{Questions}
\noprintanswers
\begin{questions}
\newcounter{NombredeQ}
\setcounter{NombredeQ}{1}
\newcounter{NombredeR}
\setcounter{NombredeR}{1}
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\newpage
\part{Solutions}
\qformat{\shadowbox{\textbf{Solution à l'exercice} \theNombredeQ}  \hfill}
\printanswers
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\end{questions}
\end{document}

And now the same code with Werner's code

\documentclass[12pt]{exam}
\usepackage{lmodern}
\usepackage[T1]{fontenc}    
\usepackage[utf8]{inputenc}     
%\usepackage[francais]{babel}
\usepackage{amsfonts,amsmath,amssymb,amsthm,mathrsfs} 
\usepackage{sectsty}
\usepackage{hyperref} 
\makeatletter
\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}%
    {\centering
     \interlinepenalty \@M
     \normalfont
     \Huge \bfseries  #2\par}%
    \@endpart}
\makeatother
\pagestyle{headandfoot}
\firstpageheadrule
\firstpageheader{Probabilités}{}{MAT-1720}                             
\firstpagefooter{}{}{\thepage}
\firstpagefootrule
\runningheadrule
\runningheader{Probabilités}{}{MAT-1720}  
\runningfooter{Nom du professeur}{}{\thepage}
\runningfootrule
\title{Banque d'exercices pour MAT-1720}
\author{Nom du professeur - Institut}
\date{Automne 2014}
\begin{document}
\maketitle
\thispagestyle{headandfoot}
\tableofcontents
\newpage
\part{Questions}
\noprintanswers
\begin{questions}
\newcounter{NombredeQ}
\setcounter{NombredeQ}{1}
\newcounter{NombredeR}
\setcounter{NombredeR}{1}
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\newpage
\part{Solutions}
\printanswers
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\end{questions}
\end{document}

It gives the intended results, but leaves an error.

share|improve this question

3 Answers 3

up vote 5 down vote accepted

There is a major difference in how \parts are set in the article (used by exam) and report classes. Most notably is the that the latter sets an entire page for the part.

From your example code, the only unknown causing the error is \@endpart, which only exists in the report class. Instead, article ends a \part using \@afterheading. So you could add

\makeatletter
\let\@endpart\@afterheading
\makeatother

to your preamble to remove the error, if you're also okay with the eventual typeset result.

enter image description here

share|improve this answer

You can use \uplevel macro provided by exam class.

\uplevel{\centering\Huge\bfseries Questions}
\addcontentsline{toc}{part}{Questions}

If you wish, you can turn this in to a macro:

\newcommand{\mypart}[1]{%
\phantomsection   %% to make links work
\uplevel{\centering\Huge\bfseries #1}
\addcontentsline{toc}{part}{#1}
}

and use it like

\mypart{Questions}

Full code:

\documentclass[12pt]{exam}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
%\usepackage[francais]{babel}
\usepackage{amsfonts,amsmath,amssymb,amsthm,mathrsfs}
\usepackage{sectsty}
\usepackage{hyperref}

\pagestyle{headandfoot}
\firstpageheadrule
\firstpageheader{Probabilités}{}{MAT-1720}
\firstpagefooter{}{}{\thepage}
\firstpagefootrule
\runningheadrule
\runningheader{Probabilités}{}{MAT-1720}
\runningfooter{Nom du professeur}{}{\thepage}
\runningfootrule
\title{Banque d'exercices pour MAT-1720}
\author{Nom du professeur - Institut}
\date{Automne 2014}

\newcommand{\mypart}[1]{%
\phantomsection
\uplevel{\centering\Huge\bfseries #1}
\addcontentsline{toc}{part}{#1}
}
\begin{document}
\maketitle
\thispagestyle{headandfoot}
\tableofcontents
\newpage
\mypart{Questions}
\noprintanswers
\begin{questions}
\newcounter{NombredeQ}
\setcounter{NombredeQ}{1}
\newcounter{NombredeR}
\setcounter{NombredeR}{1}
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM?
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM?
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\newpage
\mypart{Solutions}
\printanswers
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM?
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM?
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\end{questions}
\end{document}

enter image description here

enter image description here

If you want to refer to these parts, You can use a newcounter:

\newcounter{mypart}
\setcounter{mypart}{0}
\newcommand{\mypart}[1]{%
\phantomsection
\refstepcounter{mypart}
\label{mypart:#1}
\uplevel{\centering\Huge\bfseries #1}
\addcontentsline{toc}{part}{#1}
}

so that labels are automatically created with (say) {mypart:Questions} when you use \mypart{Questions} and you can use them like

refer~\ref{mypart:Questions} here
share|improve this answer
    
Thanks! I like the use of the exam class command. It would seems that the reference pointed by the TOC aren't working properly though. –  Jean-Sébastien Jun 6 at 0:23
    
@Jean-Sébastien Add a \phantomsection. Answer updated. –  Harish Kumar Jun 6 at 0:29

You have to patch the \@part command as defined in the article class; it's different than in report.

The simplest way is to use \patchcmd, but this must be done before loading hyperref, which changes the definition of \@part based on what there was before.

\documentclass[12pt]{exam}
\usepackage{lmodern}
\usepackage[T1]{fontenc}    
\usepackage[utf8]{inputenc}     
\usepackage{amsfonts,amsmath,amssymb,amsthm,mathrsfs,fancybox} 
\usepackage{sectsty}
\usepackage{etoolbox}

\makeatletter
\pretocmd{\@part}{\phantomsection}{}{} % for links (requires hyperref)
\patchcmd{\@part}{\m@ne}{\maxdimen}{}{}
\patchcmd{\@part}{\m@ne}{\maxdimen}{}{}
\makeatother
\usepackage{hyperref}

\pagestyle{headandfoot}
\firstpageheadrule
\firstpageheader{Probabilités}{}{MAT-1720}                             
\firstpagefooter{}{}{\thepage}
\firstpagefootrule
\runningheadrule
\runningheader{Probabilités}{}{MAT-1720}  
\runningfooter{Nom du professeur}{}{\thepage}
\runningfootrule
\title{Banque d'exercices pour MAT-1720}
\author{Nom du professeur - Institut}
\date{Automne 2014}
\begin{document}
\maketitle
\thispagestyle{headandfoot}
\tableofcontents
\newpage
\part{Questions}
\noprintanswers
\begin{questions}
\newcounter{NombredeQ}
\setcounter{NombredeQ}{1}
\newcounter{NombredeR}
\setcounter{NombredeR}{1}
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\newpage
\part{Solutions}
\qformat{\shadowbox{\textbf{Solution à l'exercice} \theNombredeQ}  \hfill}
\printanswers
\section{ Dénombrement  }
\subsection{Principes de dénombrement}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}  Ceci est une question test. Quel est le sigle du cours probabilités à l'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question.  }}
\begin{solution}
Le sigle est MAT-1720.
\end{solution}
\subsection{Permutations et Combinaisons}
\question \ifthenelse{\boolean{printanswers}}{\label{R:\theNombredeR}}{\label{Q:\thequestion}}
 Ceci est une autre question test. Quel est le nom du cours qui a pour sigle MAT-1720 à L'UdeM? 
\\\ifthenelse{\boolean{printanswers}}{\textbf{Retour à la question \ref{Q:\theNombredeQ}.}\stepcounter{NombredeQ} \stepcounter{NombredeR}}{\textbf{Voir la \hyperref[R:\thequestion]{solution} à la question. }}
\begin{solution}
Le cours est probabilité.
\end{solution}
\end{questions}
\end{document}

The idea is to change the two conditionals \ifnum\c@secnumdepth>\m@ne into \ifnum\c@secnumdepth}>\maxdimen; \m@ne stands for –1, while \maxdimen is the largest expressible number.

enter image description here

share|improve this answer
    
Thanks. TOC links aren't working though –  Jean-Sébastien Jun 6 at 0:35
    
@Jean-Sébastien As usual in these cases \phantomsection helps. Fixed. –  egreg Jun 6 at 7:14

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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