重新定位大都市演示的样式文件

重新定位大都市演示的样式文件

我已经通过调整文件调整了 metropolis beamer 样式的样式文件,beamercolorthememetropolis.sty并放置了新文件里面我的项目的主文件夹。

如果我运行以下 MWE,一切都会顺利:

\documentclass{beamer}

\usetheme{metropolis}

\begin{document}

\begin{frame}{test} test \end{frame}

\end{document}

我的问题是,这会使我的文件管理变得混乱,我宁愿将新beamercolorthememetropolis.sty文件放在子文件夹中。我的尝试是:

\documentclass{beamer}

\usetheme{metropolis}

\usepackage{./Preliminaries/beamercolorthememetropolis}

\begin{document}

\begin{frame}[fragile]{titel} test \end{frame}

\end{document}

但这会产生各种错误,例如:

LaTeX Warning: You have requested package `./Preliminaries/beamercolorthememetr opolis',
               but the package provides `beamercolorthememetropolis'.

Package: beamercolorthememetropolis 2015/12/04 Metropolis color theme ) (./Preliminaries/beamerinnerthememetropolis.sty

! LaTeX Error: Command \metropolis@inner@setdefaults already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation. Type  H <return>  for immediate help.  ...                                    

                                                   l.49 }
       Your command was ignored. Type  I <command> <return> to replace it with another command, or  <return>  to continue without it.

如果我以这种方式包含它们,我的 \usepackage 似乎无法覆盖 metropolis 股票版本中存在的某些设置......

答案1

一般来说,您不应该修改 latex .sty 文件并保留相同的名称。这会导致很多混乱,并且对于根据 LPPL 许可证发布的所有文件,我们非常不鼓励这样做。对于根据其他许可证发布的文件,例如 metropolis 主题(或其更新的分支moloch),这当然是非常糟糕的做法。

我看到了几种替代方案

  • 使用原始的 metropolis/moloch 主题并在您的 beamer 文档中进行本地更改。例如,如果您想更改某些颜色:

      \documentclass{beamer}
    
      \usetheme{moloch}% modern fork of the metropolis theme
    
      \setbeamercolor{frametitle}{fg=red, bg=blue}
    
      \begin{document}
      \begin{frame}
      \frametitle{test}
      \end{frame}
      \end{document} 
    
  • 如果更改太多,导致文档混乱,您可以将更改外包到一个新文件中,例如./preliminaries/changes.tex,并将\input{./preliminaries/changes.tex}其放入文档中

  • 或者复制整个beamertheme-metropolis文件夹,重命名其中所有要更改的文件(记得还要更改包名称和最初调用的已加载子主题的名称beamerthememetropolis.sty)。如果您希望将此新主题放在子文件夹中,您可以调整路径以从子文件夹加载主题。

相关内容