我编写了一个用于格式化报告的类。该类 Demo.cls 处理一些选项。其中包括使用 \fancyhdr 在每个页面顶部显示的短标题。包含下划线的短标题(我无法控制其使用)会导致 生成错误Missing \endscname inserted.
。\ProcessOptions\relax
如果不包含下划线,短标题选项可以正常工作。
我怎样才能将下划线传递给班级?
我已经包含了该类的 MWE、一个非工作 tex 文件和一个工作 tex 文件。
演示.cls:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{Demo}[2020/02/01 Demo report class]
% Demo.cls builds off of article with twoside option.
\LoadClass[twoside]{article}
% Class option to add "Confidential" in red text at the bottom of each page.
% To use, call the Demo class such as \documentclass[confidential]{Demo}.
\newcommand\confidential{0}
\newcommand\no{0}
\newcommand\yes{1}
\DeclareOption{confidential}{ \renewcommand\confidential{1} }
\ProcessOptions\relax
% Class option to print an abbreviated report title in the middle of the header on each page.
% To use, call the Demo class such as \documentclass[shortTitle = {{This is my title}}]{Demo}.
\RequirePackage{xkeyval}
\def\shortTitle{}
\define@key{Demo.cls}{shortTitle}[]{\def\shortTitle{#1}}
\ExecuteOptionsX{shortTitle}
\ProcessOptionsX
% Pull in required packages.
\RequirePackage{fancyhdr}
\RequirePackage[useregional]{datetime2}
\RequirePackage{datetime}
% Only display month an year, no date.
\DTMlangsetup[en-US]{showdayofmonth=false}
% Demo-style header with project name and date.
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[C]{\normalsize \shortTitle}
\fancyhead[R]{\normalsize \monthname[\the\month], \the\year}
\fancyfoot[LE, RO]{ \thepage }
\if \confidential 1
\fancyfoot[CO, CE]{ \textbf{\large \textcolor{red}{Confidential}} }
\fi
\pagestyle{fancy}
不起作用的 tex 文件:
\documentclass[shortTitle = {{Title\_with\_underscore}}]{Demo}
\usepackage{lipsum}
\begin{document}
\section{Introduction}
\lipsum[1-3]
\section{Other section}
\lipsum[4-6]
\end{document}
工作 tex 文件:
\documentclass[shortTitle = {{Title without underscore}}]{Demo}
\usepackage{lipsum}
\begin{document}
\section{Introduction}
\lipsum[1-3]
\section{Other section}
\lipsum[4-6]
\end{document}