在自定义环境中避免“\Url 错误 ->\url 用于移动参数。”

在自定义环境中避免“\Url 错误 ->\url 用于移动参数。”

我有一个文档,我想使用两个类来呈现它——我的大学论文.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}

答案2

也适用于 IEEE 论文脚注。

\thanks{This letter has supplementary downloadable material available at \protect\url{https://}, provided by the authors.} 在此处输入图片描述

相关内容