我每次在论文中使用图片时都会尝试添加来源引文。我有一个自编的命令来简化这个过程(代码在文章末尾):
\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
也使用了 包,因此您可能希望加载natbib
和har2nat
包而不是 包harvard
。提出此建议的原因是,虽然它hyperref
与几个引文管理包配合使用效果还不错,但与natbib
包配合使用效果确实最好。从其名称中您可能可以看出,该har2nat
包将 harvard 样式的引文命令(例如 )“翻译”为等效的 natbib 样式的引文命令。这样,您可以继续使用 harvard 样式的引文命令,同时获得和包\citeasnoun
之间良好相互作用的所有好处natbib
hyperref