Figcaps 和特殊字符

Figcaps 和特殊字符

我正在尝试在文章中使用该figcaps包将所有图片保留在文档末尾。当我使用编译以下 TeX 代码时,pdflatex我收到以下错误消息:

! Package inputenc Error: Unicode char \u8:�oS not set up for use with LaTeX.

虽然它显示inputenc错误,但是当我尝试不使用时figcaps,一切都顺利进行。

下面是一个示例来说明我的问题。请确保您有一个名为 的图像文件image_file。我尝试过这个示例几次,错误并不总是出现,但在 PDF 中,标题看起来很糟糕。

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage[printfigures]{figcaps}

\begin{document}

\begin{figure}
    \includegraphics[width=1.\textwidth]{image_file}
    \caption{Location of the Southeast Brazilian Bight~(SBB) and detail of the São Sebastião Channel.}
    \label{fig:Map}
\end{figure}

\end{document}

出现此错误的原因是我在图标题中使用了特殊字符,在这种情况下ã,我推测使用以下任何字符都会出现类似的错误:ñ,,,...âÜ

我知道一个解决方法是使用转义代码比如\~a,例如。

但是,我通常觉得使用这些转义代码很烦人,并尽量避免使用它们。还有其他选择吗?

答案1

这个问题类似于是否可以让包 listofsymbols 识别 \cdots 命令?。该figcaps包使用\immediate\write多字节 UTF-8 字符,无法保存。解决方案也类似

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage[printfigures]{figcaps}
\usepackage{xpatch}

\makeatletter
% get a copy of \protected@write
\let\protected@iwrite\protected@write
% patch the copy to add \immediate
\xpatchcmd{\protected@iwrite}{\write}{\immediate\write}{}{}
% patch \FC@writefile to use \protected@iwrite instead of \immediate\write
\long\def\FC@writefile#1#2{\@ifundefined{tf@#1}{}{%
  \expandafter\protected@iwrite\csname tf@#1\endcsname{}{#2}}}
\makeatother

\begin{document}

\begin{figure}
\includegraphics[width=1.\textwidth]{example-image}

\caption{Location of the Southeast Brazilian Bight~(SBB) and detail of the São Sebastião Channel.}
\label{fig:Map}
\end{figure}

\end{document}

在此处输入图片描述

相关内容