babel[magyar] 摘要页 undefined

babel[magyar] 摘要页 undefined

我正在处理一个使用自定义类的文档。我想更改该类,以便它使用 babel[magyar] 而不是英文版本。

但是,当我尝试这样做时,出现以下错误消息:

E: .../Tester.tex:10 未定义控制序列 \begin{abstract}

我的文档使用了环境的自定义定义abstract,如果使用以下命令导入 babel,则可以正常工作:

\RequirePackage{babel}

每当我将其更改为:

\def\magyarOptions{defaults=safest}
\RequirePackage[magyar]{babel}

然后编译失败并且我收到显示的错误消息。

有人能告诉我这是怎么发生的吗?

更新:我被要求提供一个最小工作示例而不是规范,这里我使用了文章类,并用 renewenvironment 替换了 newenvironment。

\documentclass{article}

\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\def\magyarOptions{defaults=safest}
\RequirePackage[magyar]{babel}

\renewenvironment{abstract}{
    \checktoopen
    \tttypeout{\abstractname}
    \null\vfil
    \thispagestyle{plain}
    \begin{center}
    {\huge\textit{\abstractname} \par}
    \bigskip
    \end{center}
}

\begin{document}{}

\begin{abstract}

    The Thesis Abstract is written here (and usually kept to just this page). The page is kept centered vertically so can expand into the blank space above the title too\ldots
    %% TODO: megírni

\end{abstract}

\section{asda}

This is a test document.

\end{document}

答案1

最好使用以下方式询问模板问题:问一个问题按钮,您就可以确定熟悉模板的人会来处理您的问题。

匈牙利语的语言定义文件没有为 定义匈牙利语字符串abstract。您必须自己定义一个。

\def\magyarOptions{defaults=safest}
\documentclass[magyar]{MastersDoctoralThesis}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\providecaptionname{magyar}{\abstractname}{abstractname magyar}
\renewenvironment{abstract}{
    \checktoopen
    \tttypeout{\abstractname}
    \null\vfil
    \thispagestyle{plain}
    \begin{center}
        {\huge\textit{\abstractname} \par}
        \bigskip
    \end{center}
}{\cleardoublepage}

\begin{document}{}

\begin{abstract}

    The Thesis Abstract is written here (and usually kept to just this page). The page is kept centered vertically so can expand into the blank space above the title too\ldots
                            %% TODO: megírni

\end{abstract}

\section{asda}

This is a test document.

\end{document}

答案2

显然这个问题与无关magyar

  • \checktoopen似乎没有\tttypeout{}在所包含的任何包或类中定义article

  • 环境(重新)定义采用以下形式\renewenvironment{name}{before}{after},其中after部分指定每次调用时要包含的代码\end{name}。您的定义缺少该部分。

我注释掉了这两个命令,并在定义末尾添加了一对空括号,并且效果很好:

\renewenvironment{abstract}{
  %\checktoopen
  %\tttypeout{\abstractname}
  \null\vfil
  \thispagestyle{plain}
  \begin{center}
  {\huge\textit{\abstractname} \par}
  \bigskip
\end{center}
}{}

如果您的类定义基于其他类,那么您可能会缺少某些部分代码或\RequirePackage{}命令。

我希望它有帮助。

相关内容