使用 \includegraphics 包含 PDF 时出现错误“缺少 \endcsname 插入”

使用 \includegraphics 包含 PDF 时出现错误“缺少 \endcsname 插入”
\documentclass[12pt,a4paper]{article}
\usepackage{color}
\usepackage[turkish]{babel}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{graphicx}


%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}
  \includegraphics[width=3cm, height=4cm]{2.pdf}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%

错误信息是:

缺少插入的 \endcsname。\relax l.334 ...udegraphics[width=3cm, height=4cm]{1.jpg}

但如果只添加一张图片,那么就可以了。

\documentclass{article}

\usepackage{graphicx}

\begin{document}

\begin{figure}
  \includegraphics[width=3cm, height=4cm]{1.jpg}
\end{figure}

\end{document}

这没问题。但是为什么第一个会给出错误消息?

答案1

默认情况下,turkish语言选项会=变成活动字符,本质上会破坏任何 key=val 接口(因为它们假定=为正常字符)。

处理此问题的标准方法是\shorthandoff{...}

\documentclass{article}

\usepackage[turkish]{babel}
\usepackage{graphicx}
\begin{document}

\begin{figure}
  \shorthandoff{=}
  \includegraphics[width=3cm, height=4cm]{example-image}
\end{figure}

\end{document}

像这样使用,它会暂时(在这个figure环境中)停用=并使其正常运行,从而width=3cm再次工作。

turkishbabel ( )的文档texdoc babel-turkish提到激活=有潜在危险,你可以使用

\usepackage[turkish,shorthands=:!]{babel}

只是活跃:!=别管了。

相关内容