{beamer} 使用 \insertsection 在部分框架中加载图像 - 替换空格

{beamer} 使用 \insertsection 在部分框架中加载图像 - 替换空格

我为演示文稿定义了一个自定义部分框架。我想加载一个与部分标题同名的图像。问题是,如果图像名称包含空格,LaTeX 通常无法加载图像。因此,我正在寻找一种解决方案,在将图像\insertsection作为参数传递给时替换空格(以及其他特殊字符) \includegraphics

这是一个(不)有效的最小示例:

\documentclass{beamer}
\usetheme{default}
\usepackage{inputenc}
\setbeamertemplate{section page}{{
    \begin{frame}{\insertsectionhead}
        \begin{columns}
            \begin{column}{0.65\textwidth}                 
                 this should load an image with name
                  \texttt{some-section-with-spaces.png}
                 in the on the right of this text (if that exists...)
            \end{column}
            \begin{column}{0.45\textwidth}% 
                \includegraphics[width=0.7\linewidth]{%
                %% how to  replace spaces with minus or underscore here
                    \insertsection%
                }
            \end{column}
        \end{columns}
    \end{frame}
}}
\AtBeginSection{
  \sectionpage
}
\begin{document}
  \section{some section with spaces in name}
\end{document}

答案1

方法 1

一个简单的解决方法是使用部分编号来命名图像:

\documentclass{beamer}
%\usetheme{default}
\usepackage{inputenc}
\setbeamertemplate{section page}{
    \begin{frame}{\insertsectionhead}
        \begin{columns}
            \begin{column}{0.65\textwidth}                 
                 this should load an image with name
                  \texttt{some-section-with-spaces.png}
                 in the on the right of this text (if that exists...)
            \end{column}
            \begin{column}{0.45\textwidth}% 
                \includegraphics[width=0.7\linewidth]{\thesection}
            \end{column}
        \end{columns}
    \end{frame}
}

\AtBeginSection{
  \sectionpage
}

\begin{document}
  \section{some section with spaces in name}

  \section{title}
\end{document}

方法 2

如果您想坚持原来的计划并在文件名中使用空格,那么该grf­file软件包可能会有所帮助。

相关内容