IEEEtran 课程、会议选项和 hyperref 中的 pdfusetitle

IEEEtran 课程、会议选项和 hyperref 中的 pdfusetitle

考虑以下:

\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。

相关内容