我已经通过调整文件调整了 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
)。如果您希望将此新主题放在子文件夹中,您可以调整路径以从子文件夹加载主题。