我使用 teach 包(该包不在 ctan 上,但可以下载这里)。
我的文件是第一份:
\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{hmargin=1cm,vmargin=1cm}
\usepackage[]{teach}
\begin{document}
dsgsgsd
\end{document}
但它以以下错误结束:
LaTeX Error: Option clash for package geometry.
这是由使用带有参数的几何包的教学包触发的:
% THIS CODE IS IN TEACH PACKAGE SOURCE
\RequirePackage[%
hmargin=2.5cm,
vmargin=2cm
%,showframe,showcrop
]{geometry}
我使用以下命令找到了解决方案\PassOptionsToPackage
:
\PassOptionsToPackage{hmargin=1cm,vmargin=1cm}{geometry}
\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[]{teach}
\begin{document}
dsgsgsd
\end{document}
我不再有错误,但是边距是错误的(它使用教学定义的边距而不是我的)。
我认为这是因为 PassOptionsToPackage 的优先级低于教学包调用的优先级。
我该如何解决我的问题?
答案1
移动
\geometry{hmargin=1cm,vmargin=1cm}
后
\usepackage[]{teach}
并删除
\usepackage{geometry}
有效,所以我的问题已解决。
但是如果有人知道关于此问题的一般解决方案(即\PassOptionsToPackage
优先考虑),请回答,这可能对我或其他人将来有用。
完整代码:
\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[]{teach}
\geometry{hmargin=1cm,vmargin=1cm}
\begin{document}
dsgsgsd
\end{document}