![如果第一个字母是“L”,则“\affil”参数中的第一个字母不会输出](https://linux22.com/image/461740/%E5%A6%82%E6%9E%9C%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AD%97%E6%AF%8D%E6%98%AF%E2%80%9CL%E2%80%9D%EF%BC%8C%E5%88%99%E2%80%9C%5Caffil%E2%80%9D%E5%8F%82%E6%95%B0%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AD%97%E6%AF%8D%E4%B8%8D%E4%BC%9A%E8%BE%93%E5%87%BA.png)
当我尝试在作者单位中添加公司名称时,编译我的 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}
。