我尝试让\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}
请参阅以下问题以了解更多详细信息: