我有一个文档,我想使用两个类来呈现它——我的大学论文.cls
和(我的大学的tufte-latex
样式指南很丑陋,我想制作一个漂亮的打印版本以满足自己的需求)。我为命令编写了一个垫片,内容如下:tufte-latex
\sidefig
\newenvironment{sidefig}%
{\begin{figure}}%
{\end{figure}}%
\url
这是可行的,除了我需要使用inside\caption
来引用图像源的情况,即:
\begin{sidefig}
\centering
\includegraphics[width=1.5in]{graphics/foobar}
\caption{This is the foobar graphic. Source: \url{http://foo.bar/baz} \label{fig:foobar}}
\end{sidefig}
这可以通过tufte-latex
自己的sidefig
环境很好地呈现,但使用我的垫片时会出现以下错误文本的错误。
[1] <graphics/foobar.png, id=34, 233.07076pt x 310.761pt>
<use graphics/foobar.png>
! Undefined control sequence.
\Url Error ->\url used in a moving argument.
l.36 ...p://foo.bar/baz} \label{fig:foobar}}
我知道该如何修改我的 shim 环境以避免这个错误。
答案1
移动参数条目可能需要保护。在这种情况下,使用\protect\url{...}
:
\documentclass{article}
\usepackage{url}% http://ctan.org/pkg/url
\begin{document}
\begin{figure}[ht]
\centering\rule{150pt}{100pt}
\caption{This is the foobar graphic. Source: \protect\url{http://foo.bar/baz} \label{fig:foobar}}
\end{figure}
\end{document}