使用 \newcommand 创建 \faculty \department 等不起作用

使用 \newcommand 创建 \faculty \department 等不起作用

我尝试让\newcommand{\faculty}[1]{\gdef\@faculty{#1}}其他人使用我的论文模板,只需更改括号中的文本\faculty{Fakulta strojní},它就会更改文档中的每个教师姓名,例如在标题页中。它确实有效,直到我添加更多命令,例如\department等。然后它会告诉我Use of \@ doesn't match its definition.并显示学院没有 F。我正在使用subfiles包和preamble.tex

\begin{titlepage}
    \centering
        \large\textsc{{VŠB - Technická univerzita Ostrava\\
        \@faculty\\
        \@department}}
        
        \vfill
        
        {\LARGE{\sffamily{\textbf{Název práce}\\
        Title name}}}\\
        
        \vfill
        \normalsize{
        \begin{tabularx}{.8\textwidth}{XX}
        Autor: & autor\\
        Vedoucí disertační práce: & director
    \end{tabularx}\\
        \vspace{2em}
    Ostrava~2021}\
\end{titlepage}
\documentclass[a4paper, 12pt]{scrartcl}
\input{nastaveni/preamble}
\usepackage{xr}
\usepackage{subfiles}
    \externaldocument[M-]{\subfix{main}}
\usepackage{graphicx}

\faculty{Fakulta strojní}
\department{Katedra energetiky}

\begin{document}

在此处输入图片描述

答案1

您使用的命令涉及 ,@这是在类和包文件中使用的保留字符。由于您使用\input来输入命令,而不是将它们放入适当的包中,因此您需要使用和来包装\input命令。\makeatletter\makeatother

\documentclass[a4paper, 12pt]{scrartcl}
\makeatletter
\input{nastaveni/preamble}
\makeatother
\usepackage{xr}
\usepackage{subfiles}
    \externaldocument[M-]{\subfix{main}}
\usepackage{graphicx}

\faculty{Fakulta strojní}
\department{Katedra energetiky}

\begin{document}

请参阅以下问题以了解更多详细信息:

相关内容