我正在尝试在文章中使用该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}