引用哈佛作为论据会引发错误

引用哈佛作为论据会引发错误

我每次在论文中使用图片时都会尝试添加来源引文。我有一个自编的命令来简化这个过程(代码在文章末尾):

\bild[citation]{label for refs}{file}{name of the image}{size in cm}

当我尝试将引用作为 \cite-command (使用 harvard-package)包含在内时,latex 抛出以下错误:

<argument> \cite 
                 {ferstl_grundlagen_2008}
\equal #1#2#3->\TE@throw \def \@tempa {#1
                                         }\def \@tempb {#2}\noexpand \ifx \@...

\NROrg@ifthenelse ...eval \the \toks@ \TE@endeval 
                                                  }\endgroup \@gtempa \expan...

\\bild ...-0.3cm\ifthenelse {\equal {#1}{\empty }}
                                                   {\caption [{#4}]{#4}} {\c...
l.12 ...en/aufgabenstruktur}{Aufgabenstruktur}{12}

? 

我使用的命令如下:

\bild[\cite{ferstl_grundlagen_2008}]{aufgabenstruktur}{FeSi-Aufgaben/aufgabenstruktur}{Aufgabenstruktur}{12}

我认为这是哈佛大学 \cite 实现的一个问题,因为我最近将这段代码与 bibgerm 包一起使用,它运行得非常好。我在这里做错了什么?有没有什么简单的方法可以解决这个问题?

提前致谢,

乌利

编辑: \bild-macro 的代码:

\newcommand{\bild}[5][\empty]{%
  \begin{figure}[htb]%
    \begin{center}%
      \includegraphics[width=#5cm]{images/#3}%
      \vskip -0.3cm%
    \ifthenelse{\equal{#1}{\empty}}
        {\caption[{#4}]{#4}}
            {\caption[{#4} \newline \small{\textit{Quelle: #1}}]{#4}}%
      \vskip -0,2cm%
      \label{#2}%
    \end{center}%
  \end{figure}%
}

使用的软件包和文档类别:

\documentclass[a4paper, 12pt]{article}
\usepackage{german}
\usepackage[latin1]{inputenc}
\usepackage{fancyhdr}
\usepackage[T1]{fontenc}
\usepackage{ae}
\usepackage{listings}
\usepackage{color}
\usepackage{listings}
\usepackage{harvard}
\usepackage{wrapfig}
\usepackage{helvet}
\usepackage{txfonts}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{sectsty}
\usepackage{acronym}
\usepackage{eurosym}

答案1

(答案已更新,包含完整的 MWE)

由于无法访问您的图像文件或使用 key 设置条目的 bib 文件ferstl_grundlagen_2008,我无法完全确定发生了什么。以下是建议的解决方案:

\documentclass{article}
\usepackage{german,harvard,ifthen}
\usepackage[demo]{graphicx} % get rid of 'demo' option in real document
\usepackage{hyperref}
\newcommand{\bild}[5][\empty]{%
  \begin{figure}[htbp]%
     \centering
     \includegraphics[width=#5cm]{images/#3}%
     \caption{#4}
     \label{#2}%
     \ifthenelse{\equal{#1}{\empty}}
        {}
        {\small\emph{Quelle: #1}}
  \end{figure}%
}

\begin{document}
\bild[Ferstl (2008)]{fig:1}{FeSi-Aufgaben/aufgabenstruktur}%
   {Aufgabenstruktur}{12}
\bild{fig:2}{FeSi-Aufgaben/aufgabenstruktur}{Neue Aufgabenstruktur}{10}
\end{document}

在此处输入图片描述

顺便说一句,鉴于您使用harvard引文管理包,您可能应该使用命令\citeasnoun而不是\cite第一个可选参数\bild

此外,由于您似乎hyperref也使用了 包,因此您可能希望加载natbibhar2nat包而不是 包harvard。提出此建议的原因是,虽然它hyperref与几个引文管理包配合使用效果还不错,但与natbib包配合使用效果确实最好。从其名称中您可能可以看出,该har2nat包将 harvard 样式的引文命令(例如 )“翻译”为等效的 natbib 样式的引文命令。这样,您可以继续使用 harvard 样式的引文命令,同时获得和包\citeasnoun之间良好相互作用的所有好处natbibhyperref

相关内容