如果第一个字母是“L”,则“\affil”参数中的第一个字母不会输出

如果第一个字母是“L”,则“\affil”参数中的第一个字母不会输出

当我尝试在作者单位中添加公司名称时,编译我的 LaTeX 文档后缺少字母“L”。

下面的演示:

乳胶:

\documentclass{IEEEmce}
\makeatletter
\def\footnoterule{\relax%
  \kern-5pt
  \hbox to \columnwidth{\hfill\vrule width 0.8\columnwidth height 0.4pt\hfill}
  \kern4.6pt}
\makeatother

\usepackage{graphicx}
\usepackage{dirtytalk}
\usepackage{booktabs}
\usepackage{adjustbox}
\usepackage{multirow, makecell}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage{float}
\usepackage{array}
\usepackage{comment}
\usepackage{siunitx}
\usepackage{times, amsmath}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcommand{\eg}{\mbox{{\em e.g.}}}
\newcommand{\ie}{\mbox{{\em i.e.}}}
\newcommand{\etal}{\mbox{{\em et al.}}}

\usepackage{color}

\usepackage{comment}

\usepackage{siunitx} 
% \usepackage{xcolor}
\definecolor{redcolor}{rgb}{1, 0, 0}

%\IEEEoverridecommandlockouts

\usepackage[colorlinks,urlcolor=blue,linkcolor=blue,citecolor=blue]{hyperref}

\usepackage{upmath}

\jvol{XX}
\jnum{XX}
\paper{8}
\jmonth{xxx/xxx}
\publisheddate{00 xxxx 0000}
\currentdate{00 xxxx 0000}
\jname{IEEE Consumer Electronics Magazine}
\pubyear{2023}
\doiinfo{MCE.2023.Doi Number}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}

\setcounter{secnumdepth}{0}
\begin{document}
\title{Bla bla}
\author{First Last}
\affil{Lockheed Martin, USA}
\begin{abstract}

\end{abstract}

\maketitle

\enlargethispage{10pt}

\section{Introduction}
\end{document}

编译结果:

First Last
ockheed Martin, USA

有人可以给出建议吗?

答案1

嗯,文档类中有一个错误IEEEmce(可以通过此链接)。我其实不建议使用这个文档类,因为它似乎不符合编写 .cls 文件的最佳做法。至少在快速浏览了文件头之后,我感觉有人草率地定制了另一个 .cls 文件,因为相关的宏(例如)\ProvidesClass保持不变,与新文件名不匹配。

不管怎样,让我们​​看一下这个错误:在文件的IEEEmce.cls第 3411 和 3412 行中,宏\affilfont\affil定义如下:

\def\affilfont{\reset@font\fontfamily{\sfdefault}\fontsize{9.5}{12}\selectfont\ifodd\c@page\else\leftskip-60pt\fi\rightskip0pc plus1fill}
\def\affil#1{{\par\affilfont#1\par\vskip6pt}}

但是 的定义\affilfont应该以 或类似的内容结尾,因为否则如果后面跟着另一个字母(无论是否大写字母都无所谓)\relax就会出现问题。L

这怎么会是个问题呢?好吧,假设你输入\affil{Lockheed Martin, USA}。这将扩展为

{\par\reset@font\fontfamily{\sfdefault}\fontsize{9.5}{12}\selectfont\ifodd\c@page\else\leftskip-60pt\fi\rightskip0pc plus1fillLockheed Martin, USA\par\vskip6pt}

现在您有一个长度为1fillL(或1filll),这确实是 TeX 中无限粘连的有效长度 (单位)(对于长度单位,是否使用大写字母无关紧要)。因此,TeX 会将此字母解释L为长度单位的一部分,因此不会排版此字母。

您可以通过键入来规避此错误\affil{{}Lockheed Martin, USA}

相关内容