我有一个像这样定义的定理样式(基于这个答案https://tex.stackexchange.com/a/65955/228413):
\newtheoremstyle{note}% name
{10pt}% space above
{10pt}% space below
{}% body font
{}% indent amount
{}% theorem head font
{}% punctuation after theorem head
{\newline}% space after theorem head
{\underline{\thmname{\@ifempty{#3}{#1}\@ifnotempty{#3}{#3}}}} % theorem head spec
....
\theoremstyle{note}
\newtheorem*{note}{Notiz}
当在子文件中使用此环境时,它会在自行编译时产生正确的结果:
\begin{note}[Title]
\lipsum[4][1-3]
\end{note}
但是当包含相同的文件(\subfile{file_name}
)时,结果如下所示:
是什么原因造成的?我该如何解决?
提前致谢!
答案1
您必须将定义括\newtheoremstyle
在\makeatletter
和之间\makeatother
。
\makeatletter % <<<<<<<<<<<<<<<<<< HERE <<<<<<<<<<<<<<
\newtheoremstyle{note}% name
{10pt}% space above
{10pt}% space below
{}% body font
{}% indent amount
{}% theorem head font
{}% punctuation after theorem head
{\newline}% space after theorem head
{\underline{\thmname{\@ifempty{#3}{#1}\@ifnotempty{#3}{#3}}}} % theorem head spec
\makeatother % <<<<<<<<<<<<<<<<<< HERE <<<<<<<<<<<<<<
您的问题与软件包无关subiles
。(好吧,令人惊讶的是,它在编译子文件时完全有效。)检查您从中复制代码的源代码。在那里您还会找到这两个额外的命令。