一些 Elsevier 期刊(例如 Ad Hoc Networks)要求在稿件末尾添加作者简介。作者指南:
个人简历 在手稿中包括每位作者的简短传记(最多 100 个字),以及其他图表的护照类型照片。
文档类是否elsarticle
定义了任何特定的环境供作者使用(双列 FWIW),类似于 IEEE 期刊的环境IEEEbiography
?
我偶然看到了这篇博文期刊投稿作者简介的替代 LaTeX 格式,虽然它是 2009 年的,但我希望 Elsevier 现在有一种标准化的方法来实现相同的结果,而无需添加更多软件包。
答案1
编辑:请参阅下面的改进版本
这是一个(初步)解决方案,定义一个用于指定图像的命令,使用wrapfig
包及其一些功能和作者姓名以及有关作者的一些信息。
该信息被写入一个文件,该文件最后会自动包含在内。
当然,它目前缺少一些功能和一些配置可能性。
参数说明,特殊值请参阅代码和调用。
- 可选参数:指定选项
- 图像文件名
- 作者姓名
- 作者信息
\documentclass{elsarticle}
\usepackage{xparse}%
\usepackage{blindtext}
\usepackage{morewrites}
\usepackage{wrapfig}
\usepackage{xkeyval}%
\newwrite\authorbibfile%
\AtBeginDocument{%
\immediate\openout\authorbibfile=\jobname.aub%
}%
\AtEndDocument{%
\immediate\closeout\authorbibfile
\InputIfFileExists{\jobname.aub}{}{}
}%
\makeatletter
\define@key{authorbib}{scale}[1]{%
\def\AuthorbibKVMacroScale{#1}%
}
\define@key{authorbib}{wraplines}[10]{%
\def\AuthorbibKVMacroWraplines{#1}%
}
\define@key{authorbib}{imagewidth}[4cm]{%
\def\AuthorbibKVMacroImagewidth{#1}%
}
\define@key{authorbib}{overhang}[10pt]{%
\def\AuthorbibKVMacroOverhang{#1}%
}
\define@key{authorbib}{imagepos}[l]{%
\def\AuthorbibKVMacroImagepos{#1}%
}
\makeatother
\presetkeys{authorbib}{imagepos=l,imagewidth=4cm,wraplines=15,overhang=20pt}{}
\newlength{\AuthorbibTopSkip}
\newlength{\AuthorbibBottomSkip}
\setlength{\AuthorbibTopSkip}{\baselineskip}
\setlength{\AuthorbibBottomSkip}{\baselineskip}
\NewDocumentCommand{\authorbibliography}{+o+m+m+m}{%
\IfNoValueTF{#1}{%
}{%
\setkeys{authorbib}{#1}%
\immediate\write\authorbibfile{%
\string\begin{wrapfigure}[\AuthorbibKVMacroWraplines]{\AuthorbibKVMacroImagepos}[\AuthorbibKVMacroOverhang]{\AuthorbibKVMacroImagewidth}^^J
\string\includegraphics[scale=\AuthorbibKVMacroScale]{#2}^^J
\string\end{wrapfigure}^^J
}%
}%
\IfNoValueTF{#3}{%
\typeout{Warning: No author name}%
}{%
\immediate\write\authorbibfile{%
\unexpanded{\vspace{\AuthorbibTopSkip}}^^J
\string\noindent\relax
\unexpanded{\textbf{#3}\par}^^J
\string\noindent\relax
\unexpanded{#4}^^J%
\unexpanded{\vspace{\AuthorbibBottomSkip}}^^J
}%
}%
}%
\begin{document}
\blindtext
\authorbibliography[scale=0.3,wraplines=10,overhang=40pt,imagewidth=4cm,imagepos=r]{bild_erwin_schroedinger}{Erwin Schr\"odinger}{\blindtext}
\authorbibliography[scale=0.4,imagewidth=5cm,wraplines=13,overhang=-50pt]{bild_erwin_schroedinger}{Erwin Schr\"odinger}{\blindtext}
\authorbibliography[scale=0.3,wraplines=10,overhang=40pt,imagewidth=4cm,imagepos=r]{bild_erwin_schroedinger}{Erwin Schr\"odinger}{\blindtext}
\end{document}
改进版本:authorbiography.sty
\NeedsTeXFormat{LaTeX2e}%
\ProvidesPackage{authorbiography}%
\usepackage{graphicx}%
\usepackage{xparse}%
\usepackage{textcomp}%
\usepackage{tocloft}
\usepackage{morewrites}%
\usepackage{wrapfig}%
\usepackage{xkeyval}%
\usepackage{etoolbox}%
\usepackage{tcolorbox}%
\newwrite\authorbibfile%
\AtBeginDocument{%
\immediate\openout\authorbibfile=\jobname.aub%
}%
\newlength{\AuthorbioTopSkip}%
\newlength{\AuthorbioBottomSkip}%
\setlength{\AuthorbioTopSkip}{\baselineskip}%
\setlength{\AuthorbioBottomSkip}{\baselineskip}%
\define@key{authorbio}{wraplines}[10]{%
\def\AuthorbioKVMacroWraplines{#1}%
}
\define@key{authorbio}{imagewidth}[4cm]{%
\def\AuthorbioKVMacroImagewidth{#1}%
}
\define@key{authorbio}{overhang}[10pt]{%
\def\AuthorbioKVMacroOverhang{#1}%
}
\define@key{authorbio}{imagepos}[l]{%
\def\AuthorbioKVMacroImagepos{#1}%
}
\define@key{authorbio}{yearofbirth}[]{
\def\AuthorbioKVMacroYearofbirth{#1}%
}%
\define@key{authorbio}{yearofdeath}[]{
\def\AuthorbioKVMacroYearofdeath{#1}%
}%
\define@key{authorbio}{BiographyName}[1]{%
\def\AuthorbioKVMacroBiographyName{#1}%
}%
\newtoggle{AuthorBiographyInTOC}%
\settoggle{AuthorBiographyInTOC}{false}%
\define@boolkey{authorbio}{totoc}[false]{%
\ifKV@authorbio@totoc
\toggletrue{AuthorBiographyInTOC}
\else
\togglefalse{AuthorBiographyInTOC}
\fi
}%
\newcommand{\listofauthorbiographiesname}{List of Author Biographies}
\newlistof{authorbiographies}{bio}{\listofauthorbiographiesname}
\presetkeys{authorbio}{imagepos=l,imagewidth=4cm,wraplines=15,overhang=20pt,totoc=false}{}%
\newcommand*{\authorbiography@@singlename}{Biography of author}%
\newcommand*{\authorbiography@@name}{Biographies of authors}%
\DeclareExpandableDocumentCommand{\authorbiographyname}{+m}{%
\IfNoValueTF{#1}{%
\authorbiography@@name%
}{%
\ifnumgreater{#1}{1}{%
\authorbiography@@name}{%
\ifnumequal{#1}{1}{%
\authorbiography@@singlename%
}{}%
}%
}%
}%
\NewDocumentCommand{\Authorbiography}{+o}
{%
\immediate\closeout\authorbibfile%
\csundef{AuthorbioKVMacroBiographyName}%
\clearpage
\ifnumgreater{\value{authorbiographies}}{0}{% Only add a page/entries if the authorbiographies counter is greater than 0
\IfValueTF{#1}{%
\setkeys*{authorbio}{#1}%
\iftoggle{AuthorBiographyInTOC}{%
\ifcsdef{AuthorbioKVMacroBiographyName}{%
\ifcsdef{chapter}{%
\chapter*{\AuthorbioKVMacroBiographyName}% %Check for KOMA addchap etc later on.
\markboth{\AuthorbioKVMacroBiographyName}{\AuthorbioKVMacroBiographyName}%
\addcontentsline{toc}{chapter}{\AuthorbioKVMacroBiographyName}%
}{%
\section*{\AuthorbioKVMacroBiographyName}%
\markboth{\AuthorbioKVMacroBiographyName}{\AuthorbioKVMacroBiographyName}
\addcontentsline{toc}{section}{\AuthorbioKVMacroBiographyName}%
}%
}{%
\ifcsdef{chapter}{%
\chapter*{\authorbiographyname{\number\value{authorbiographies}}}%
\addcontentsline{toc}{chapter}{\authorbiographyname{\number\value{authorbiographies}}}%
}{% Assume that \section* exists ;-)
\section*{\authorbiographyname{\number\value{authorbiographies}}}%
\addcontentsline{toc}{section}{\authorbiographyname{\number\value{authorbiographies}}}
}%
\markboth{\authorbiographyname{\number\value{authorbiographies}}}{\authorbiographyname{\number\value{authorbiographies}}}%
}%
}{}%
}{% No further ado, just add a (chapter) header to the page
\ifcsdef{chapter}{%
\chapter*{\authorbiographyname{\number\value{authorbiographies}}}%
}{% Assume that \section* exists ;-)
\section*{\authorbiographyname{\number\value{authorbiographies}}}%
}%
\markboth{\authorbiographyname{\number\value{authorbiographies}}}{\authorbiographyname{\number\value{authorbiographies}}}%
}%
\InputIfFileExists{\jobname.aub}{\typeout{authorbiographies: Inputting file successfully}}{\typeout{Error: File \jobname.aub does not exist}}%
}% End of \ifnumgreater...
}%
\NewDocumentCommand{\authorbiographyyearofdeathstyle}{+o}{%
\textbf{\textdied #1)}%
}%
\NewDocumentCommand{\authorbiographyyearofbirthstyle}{+o}{%
\textbf{(\textborn #1}%
}%
\NewDocumentCommand{\writeauthorlifeinfo}{+o}{%
\global\undef\AuthorbioKVMacroYearofbirth%
\global\undef\AuthorbioKVMacroYearofdeath%
\IfValueTF{#1}{%
\setkeys*{authorbio}{#1}%
\ifcsdef{AuthorbioKVMacroYearofbirth}{%
\authorbiographyyearofbirthstyle[\AuthorbioKVMacroYearofbirth]%
\ifcsdef{AuthorbioKVMacroYearofdeath}{%
, \authorbiographyyearofdeathstyle[\AuthorbioKVMacroYearofdeath]%
}{%
\textbf{)} % No year of death given ...unknown or still alive
}%
}{% No year of birth give, but perhaps a year of death?
\ifcsdef{AuthorbioKVMacroYearofdeath}{%
(\textborn ? , \authorbiographyyearofdeathstyle[\AuthorbioKVMacroYearofdeath]%
}{%
% Do nothing
}%
}%
}{% No argument given, do nothing
}%
}%
\NewDocumentCommand{\authorbiography}{+o+m+m+m}{%
\csundef{AuthorbioKVMacroWraplines}%
\setkeys*{authorbio}{#1}%
\IfNoValueTF{#3}{%
\typeout{Warning: No author name}% Needs improvement
}{%
\refstepcounter{authorbiographies}%
\addcontentsline{bio}{section}{\protect{#3}}% Should be improved!
\immediate\write\authorbibfile{%
\string\begin{tcolorbox}[floatplacement=htp,float,boxrule=0pt,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,arc=0mm,auto outer arc,width=\textwidth]%
% \string\vskip\AuthorbioTopSkip%
\string\begin{wrapfigure}[\AuthorbioKVMacroWraplines]{\AuthorbioKVMacroImagepos}[\AuthorbioKVMacroOverhang]{\AuthorbioKVMacroImagewidth}%
\string\centering%
\string\includegraphics\expandafter[\XKV@rm]{#2}% Use the \XKV@rm macro for possible remaining macros designed only for \includegraphics
\string\end{wrapfigure}%
\unexpanded{\noindent}%
\unexpanded{\textbf{#3}}%
\writeauthorlifeinfo[#1]%
\string\par^^J
\string\noindent^^J%
\unexpanded{#4}%
% \string\vskip\AuthorbioBottomSkip%
\string\end{tcolorbox}%
}%
}%
}%
\endinput%
驱动程序文件
\documentclass{scrbook}
\usepackage{authorbiography}%
\usepackage{hyperref}%
\usepackage{blindtext}%
\begin{document}%
\tableofcontents
\clearpage
\listofauthorbiographies
\section{Normal Content}
\blindtext
\authorbiography[scale=0.3,overhang=0pt,wraplines=9,imagewidth=3cm,imagepos=l,yearofbirth={1887},yearofdeath={1961}]{bild_erwin_schroedinger}{Erwin Schr\"odinger}{\blindtext}%
\authorbiography[scale=0.3,wraplines=10,overhang=0pt,imagewidth=5cm,imagepos=r,yearofbirth={1564},yearofdeath={1616}]{CHANDOS3}{William Shakespeare}{\blindtext}%
\authorbiography[scale=0.2,width={4cm},imagewidth=6cm,wraplines=15,imagepos=l,overhang=0pt,yearofbirth={1879},yearofdeath={1955}]{einstein.jpg}{Albert Einstein}{\blindtext}%
\authorbiography[scale=0.1,imagewidth=3cm,wraplines=10,imagepos=r,overhang=0pt,yearofbirth={1879},yearofdeath={1955}]{einstein.jpg}{Albert Einstein}{\blindtext}%
\authorbiography[scale=0.1,imagewidth=3cm,wraplines=10,imagepos=r,overhang=0pt,yearofbirth={1879}]{einstein.jpg}{Albert Einstein}{\blindtext}%
\Authorbiography% Standard behaviour
\Authorbiography[totoc=true,BiographyName={Authors}] % Use some more configurability
\end{document}
关于这个“包”的一些注释...
它仍然需要对参数进行一些手动调整wrapfig
,这不是自动完成的,浮动工作很好,但最后一个不在顶部,所以这是......嗯,糟糕。
还有许多可能的改进和想法,我会回过头来讨论。
答案2
使用 picins 包后,我的 springer 传记可以使用此代码
添加序言
\usepackage{picins}
并在文档末尾为不同的作者重复添加这些代码
\par\noindent
\parbox[t]{\linewidth}{
\noindent\parpic{\includegraphics[height=1.5in,width=1in,clip,keepaspectratio]{biography/bio_prg.jpg}}
\noindent {\bf Prateek Raj Gautam}\
received M.Tech. degree in Electronics and Communication Engineering from
Harcourt Butler Technological Institute Kanpur, India in 2011. He is currently pursuing Ph.D.
degree with Motilal Nehru National Institute of Technology Allahabad, Allahabad, India. His
research interest include energy-efficient scheme for wireless sensor network, Image Processing,
CDMA, IDMA, and Brain wave mapping.}
\vspace{4\baselineskip}
给出结果
或者简单地
\par\noindent
\parbox[t]{\linewidth}{
\noindent\parpic{\includegraphics[height=1.5in,width=1in,clip,keepaspectratio]{IMAGE.jpg}}
\noindent {\bf AUTHOR_NAME}\
BIO_TEXT.}
\vspace{4\baselineskip}
答案3
我发现(截至 2020 年 6 月)解决方案包含在cas-dc
和cas-sc
模板/类中。找到了示例这里。您只需在末尾添加 \end{document} 之前
\bio{}
Author biography without author photo.
Author biography. Author biography. Author biography.
\endbio
\bio{figs/pic1}
Author biography with author photo.
Author biography. Author biography. Author biography.
\endbio
cas-dc
它在(双列)文档模板中对我有用 。
问候!
编辑:正如评论中提到的,类与我引用的较新类或类elsevier
不同。一种解决方法是将较新类中的 \bio{..} 和 \endbio 命令添加到较旧的模板中,它们在文件中定义 cas-dc
cas-sc
elsevier
cas-common.sty
不是那么简单,需要测试一下。但至少需要复制粘贴这三个新命令:\bio、\enbio 和 \WrapFigure。
答案4
“wrapfigure” 可以替代带有照片的传记文字。例如:
\usepackage{wrapfig}
\usepackage{graphicx}
\subsection*{ } % This subsection (with no heading) is added to give more space between two biographies
\setlength\intextsep{0pt} % align top of photo with text
\begin{wrapfigure}{l}{0.13\textwidth}
\centering
\includegraphics[width=0.15\textwidth]{author_photo.jpg}
\end{wrapfigure}
\noindent \textbf{Author Name} received the Ph.D. degree in Electrical and Electronics Engineering.