考虑以下:
\documentclass[conference]{IEEEtran}
\usepackage
%[pdfusetitle]
{hyperref}
\begin{document}
\title{A simple test}
\author{
\IEEEauthorblockN{Michael Shell}
\IEEEauthorblockA{My institution}
}
\maketitle
\end{document}
这是对类的正确使用IEEEtran
,以正确的方式将作者及其机构置于conference
此类模式中。此代码可以编译并提供预期结果。
然而,如果取消注释该[pdfusetitle]
行(这是 hyperref 的一个完全有效的选项),就会得到一个TeX capacity exceeded, sorry [parameter stack size=10000].
这是否值得向作者报告错误,或者我遗漏了什么? IEEEtran 的官方文档中没有提到有关该选项的内容。
=============
配置 :
- TeX Live 2014
- pdfTeX,版本 3.14159265-2.6-1.40.15
- IEEEtran 2014/09/17 V1.8a
- hyperref 2012/11/06 v6.83m
答案1
避免 Clément 解释的问题的另一种解决方案是使用
\texorpdfstring{DOCUMENT_TEXT}{PDF_TEXT}
第一个参数的内容将直接在文档中出现,第二个参数对应于 pdf 元信息部分中的字段。
你的例子可能看起来像
\documentclass[conference]{IEEEtran}
\usepackage
[pdfusetitle]
{hyperref}
\begin{document}
\title{A simple test}
\author{%
\texorpdfstring{%
\IEEEauthorblockN{Michael Shell}
\IEEEauthorblockA{My institution}
}{%
Michael Shell, My institution%
}%
}
\maketitle
\end{document}
同样的方法也可以应用到其他领域(如\title
)。
就我个人而言,我更喜欢这种解决方案,因为这样我就可以在一个地方获得所有的信息(而无需引入任何命令)。
答案2
解决方案:
只需添加
pdfauthor={Michael Shell, My institution}
hyperref 的选项,即
\documentclass[conference]{IEEEtran}
\usepackage
[pdfusetitle, pdfauthor={Michael Shell, My institution}]
{hyperref}
\begin{document}
\title{A simple test}
\author{
\IEEEauthorblockN{Michael Shell}
\IEEEauthorblockA{My institution}
}
\maketitle
\end{document}
给出你想要的。
解释:
因此我写信给 ieeetran 的维护者 Michael Shell°,他很友善地回答了我的问题
当我最终发现 pdfusetitle 选项的作用时(它似乎没有在 hyperref 手册中提及,只有在 README 中提及),我一点也不惊讶它失败了。
很久以前,我被迫接受这样一个事实:对于 IEEE 相关工作,\author 中的简单名称是不够的。因此,在 IEEEtran 下,\author 不仅包含单纯的名称,还包含多个隶属关系组、地址等。Hyperref 无法处理这种情况(可能是因为尝试将 \IEEEauthorblockN/A 导入为某种单纯的字体样式),并且会出错。
这个问题很可能出现在 \author 中包含附加信息的任何类文件中。hyperref 如何知道在每种情况下它必须做什么才能提取所需的信息?它还必须处理/避免 \IEEEmembership、\IEEEauthorrefmark 和 \IEEEcompsocitemizethanks 等功能。
在bare_adv.tex文件中,hyperref
加载如下:
\newcommand\MYhyperrefoptions{bookmarks=true,bookmarksnumbered=true,
pdfpagemode={UseOutlines},plainpages=false,pdfpagelabels=true,
colorlinks=true,linkcolor={black},citecolor={black},urlcolor={black},
pdftitle={Bare Demo of IEEEtran.cls for Computer Society Journals},%<!CHANGE!
pdfsubject={Typesetting},%<!CHANGE!
pdfauthor={Michael D. Shell},%<!CHANGE!
pdfkeywords={Computer Society, IEEEtran, journal, LaTeX, paper,
template}}%<^!CHANGE!
\ifCLASSINFOpdf
\usepackage[\MYhyperrefoptions,pdftex]{hyperref}
\else
\usepackage[\MYhyperrefoptions,breaklinks=true,dvips]{hyperref}
\usepackage{breakurl}
\fi
° 他确实有一个 stackexchange 帐户,但就 IEEEtran 支持而言,只回复电子邮件和 comp.text.tex。