正在尝试使用europasscv
并将biblatex
出版物分成几类,但出现错误。
pdflatex <file>
[...]
! Argument of \end has an extra }.
<inserted text>
\par
l.23 \printbibtabular[title=A,category=aa]
这是 Latex 文件:
\documentclass[swedish,a4paper,10pt]{europasscv}
\usepackage[T1]{fontenc}
\usepackage[backend=bibtex,sorting=ynt,style=numeric,maxnames=99]{biblatex}
\usepackage{europasscv-bibliography}
\addbibresource{mwe}
\DeclareBibliographyCategory{aa}
\DeclareBibliographyCategory{bb}
\begin{document}
\begin{europasscv}
\addtocategory{aa}{A:2019}
\addtocategory{bb}{B:2019}
\nocite{A:2019}
\nocite{B:2019}
\renewcommand{\section}[2]{\ecvitem{#2}}
\printbibtabular[title=A,category=aa]
\printbibtabular[title=B,category=bb]
\end{europasscv}
\end{document}
文件如下.bib
:
@Book{A:2019,
author = {A},
title = {A},
publisher = {A},
year = {2019}
}
@Book{B:2019,
author = {B},
title = {B},
publisher = {B},
year = {2019}
}
编辑:如何让它运行而不出现错误和产生好的输出吗?
答案1
根据 europasscv
文档 \ecvitem
接受一个可选参数和两个强制参数。
\ecvitem[vspace]{left}{right}
随着重新定义
\renewcommand{\section}[2]{\ecvitem{#2}}
\section{#1}{#2}
将被替换\ecvitem{#2}
,因此\ecvitem
缺少第二个参数。它将继续吞噬接下来作为其第二个参数的任何内容。可以理解的是,这并不总是顺利的。(请注意,这里的\section{#1}{#2}
有点误导。由于biblatex
使用\section*
作为默认标题,因此#1
实际上只是*
。所以我们实际上用替换\section*{#2}
。\ecvitem{#2}
当然,如果使用\section{Title}
甚至更糟,这会出现错误\section[Short]{Long}
。)
我不完全确定你到底想要什么,但你可以尝试
\renewcommand{\section}[2]{\ecvitem{#2}{}}
或者
\renewcommand{\section}[2]{\ecvitem{#2}{#2}}
我对此并不太高兴,因为这种重新定义实际上并没有反映出该命令\section
在大多数文档类(您可能有\section*{Unnumbered}
或\section[Short]{Long}
)中的正常用法,但对于这种用例,它可以毫无错误地工作。
注意defernumbers
选项。
\documentclass[swedish,a4paper,10pt]{europasscv}
\usepackage[T1]{fontenc}
\usepackage[backend=bibtex, style=numeric, sorting=ynt, defernumbers, maxnames=99]{biblatex}
\usepackage{europasscv-bibliography}
\addbibresource{biblatex-examples.bib}
\DeclareBibliographyCategory{aa}
\DeclareBibliographyCategory{bb}
\begin{document}
\begin{europasscv}
\addtocategory{aa}{sigfridsson}
\addtocategory{bb}{nussbaum}
\nocite{sigfridsson,nussbaum}
\renewcommand{\section}[2]{\ecvitem{#2}{}}
\printbibtabular[title=A,category=aa]
\printbibtabular[title=B,category=bb]
\end{europasscv}
\end{document}