在章节标题中使用数学表达式会导致目录出现错误

在章节标题中使用数学表达式会导致目录出现错误

我正在使用自己的课程MyReportClass撰写报告。我想在一个小节标题中使用数学表达式。这只有在我禁用\tableofcontents包含在\initialise类命令

我已经尝试过\DeclareRobustCommand从中汲取灵感答案,但我没有成功。我怎样才能让我的数学表达式在目录中也能起作用?

主要的:

\documentclass{MyReportClass}

\begin{document}

\reporttitle{My Title}
\coursecode{1234}
\coursename{My Course}
\instructorname{Instructor Name}
\reportauthor{Name}{Surname}{1234}
\frontcoverpic{mypicture.png}

\initialise

\section{A section}

\subsubsection{A matrix $\widetilde{\mathbb{E}}^{(2,1)}$}

\end{document}

班级:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{MyReportClass}
\LoadClass[a4paper,12pt]{article} % Class of the document

%--------------------- Packages ------------------------

\RequirePackage[english]{babel} % Langueage of the document
\RequirePackage[utf8]{inputenc} % Special characters
\RequirePackage[section]{placeins} % For format of sections
\RequirePackage[T1]{fontenc} % Letters not included in UTF-8
\RequirePackage{mathtools} % Equations and mathematic symbols
\RequirePackage{siunitx} % Scientific notation
\RequirePackage{float} % Images formatting
\RequirePackage{graphicx} % Insert figures
\RequirePackage{tikz}
\RequirePackage[justification=centering]{caption} % Centred legends
\RequirePackage{subcaption}
\RequirePackage{wallpaper}
\RequirePackage{nomencl}
\RequirePackage{fancyhdr}
\RequirePackage{url}
\RequirePackage[pdfencoding=auto,psdextra]{hyperref} % Legends in sub-figures
\RequirePackage{amsmath,bm,amssymb}
\RequirePackage{amsfonts}
\RequirePackage{bookmark} % Faster updated bookmarks
\RequirePackage{textcomp}

% Package for nice tables
\RequirePackage{booktabs,makecell}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\sisetup{
    %  output-decimal-marker = {,},
    detect-weight,
    mode = text
}
\newcommand*{\specialcell}[2][b]{%
    \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}%
}
\newcommand*{\specialcellbold}[2][b]{%
    \bfseries
    \sisetup{text-rm = \bfseries}%
    \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}%
}
\newcommand*{\leftspecialcell}[2][b]{%
    \begin{tabular}[#1]{@{}l@{}}#2\end{tabular}%
}

%Package for labelling matrix rows and columns
\RequirePackage{blkarray}

% Package to adjust labelled matrices
\RequirePackage{makebox,bigstrut,relsize}

% Page configuration
\RequirePackage{geometry}
\geometry{a4paper,hscale=0.75,vscale=0.8}

%Package to modify chapter header
%\RequirePackage{titlesec}
%Color for sections head
\RequirePackage{color}
\definecolor{tdblue}{RGB}{0,174,239}
\RequirePackage{sectsty}
\sectionfont{\color{tdblue}}
\subsectionfont{\color{tdblue}}
\subsubsectionfont{\color{tdblue}}

%MATLAB command
\RequirePackage{xspace}
\newcommand{\MATLAB}{\textsc{Matlab}\xspace}

%Typesetting a MATLAB code
\RequirePackage[T1]{fontenc}
\RequirePackage{bigfoot} % to allow verbatim in footnote
\RequirePackage[numbered,framed]{matlab-prettifier}
\RequirePackage{filecontents}
\let\ph\mlplaceholder % shorter macro
\lstMakeShortInline"
\lstset{
    style              = Matlab-editor,
    basicstyle         = \mlttfamily,
    escapechar         = ",
    mlshowsectionrules = true,
}

% Per-section figure, equation, table and lstlisting numbering
\RequirePackage{chngcntr}
\counterwithin{figure}{section}
\counterwithin{equation}{section}
\counterwithin{table}{section}
\AtBeginDocument{\counterwithin{lstlisting}{section}}

% Package for references with numbers
\bibliographystyle{apsrev4-1}
\RequirePackage[numbers]{natbib}
\setcitestyle{numbers}

%-------------------- Report information ----------------------

\graphicspath{{figures/}}

\newcommand{\coursecode}[1]{\renewcommand{\coursecode}{#1}}
\newcommand{\coursename}[1]{\renewcommand{\coursename}{#1}}
\newcommand{\instructorname}[1]{\renewcommand{\instructorname}{#1}}
\newcommand{\reporttitle}[1]{\renewcommand{\reporttitle}{#1}}
\newcommand{\reportauthor}[3]{\renewcommand{\reportauthor}{#1 {\scshape #2} \dots\dots {\bfseries #3}}}
\newcommand{\frontcoverpic}[1]{\renewcommand{\frontcoverpic}{\includegraphics[width=0.5\textwidth]{./figures/#1}}}

\newcommand{\makemargins}{
\makenomenclature
\pagestyle{fancy}
\fancyheadoffset{1cm}
\setlength{\headheight}{2cm}
\lhead{\includegraphics[width=0.25\textwidth]{./logos/logo.pdf}} % Set image at top of the page
\rhead{\nouppercase{\leftmark}}
\rfoot{\thepage}
\cfoot{\textbf{\reporttitle}}
\lfoot{\coursecode}
}

\newcommand{\makecoverpage}{
\begin{titlepage}

    \centering % Center the content
    \includegraphics[width=0.4\textwidth]{./logos/logo_blue.pdf}\par\vspace{1cm} % Insert logo
    {\scshape\LARGE Delft University of Technology \par} % Name of the university
    \vspace{1cm} % Vertical space of 1.5 cm
    {\scshape\Large \coursename \\ \large \coursecode \\ \normalsize \instructorname \par}
    \vspace{0.5cm} % Vertical space of 1 cm
    \rule{\linewidth}{0.2 mm} \\[0.4 cm]
    {\huge\bfseries \reporttitle \par} \
    \rule{\linewidth}{0.2 mm} \\[1 cm]
    \vspace{0.5cm}
    \frontcoverpic\\[1.5 cm]
    \normalsize \reportauthor\\
    \vfill
    {\large \today\par} % Visualization of the date

\end{titlepage}
}

\newcommand{\initialise}{
    \makemargins
    \makecoverpage
    \tableofcontents
    \newpage
}

% Define newcommand for norm
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}

答案1

仅用于\protect避免脆弱命令的扩展。

\subsubsection{A matrix $\protect\widetilde{\protect\mathbb{E}}^{(2,1)}$}

重新编译文档之前,请删除 .toc 和 .aux 文件。这样应该就可以了。

顺便说一句,提供一个可以在不包含图形的情况下编译的 MWE。

相关内容