将 LaTeX 文件导入模板?

将 LaTeX 文件导入模板?

我有以下待办任务:我已经为讲座笔记设置了默认结构,现在我想将我的笔记编译成单独的 PDF 以供学习。

所以我的目标是为每门课程创建一个单独的 tex 文件,并且只有一个模板文件。问题是我无法做到这一点,\input{myfile}因为我想设置标题、精美的页眉和类似的东西。或者也可以使用该函数来实现这一点\input{}

或者还有其他方法吗?

答案1

您可以设置页眉/页脚,而无需定义实际内容。因此,创建一个MyTemplate.sty包含您的设置的文件。请注意,、CourseNumber\CourseTitle尚未\CourseTitle定义。此文件应包含您要使用的所有包,并且样式的基本设置已在此处完成。

MyTemplate.sty:

\usepackage{fancyhdr}
% Other generic packages

% Setup style for fancyheader
\pagestyle{fancy}
\lhead{\bfseries \CourseNumber} 
\chead{} 
\rhead{\bfseries \CourseTitle} 
\lfoot{\today} 
\cfoot{\Author} 
\rfoot{Page \thepage} 
\renewcommand{\headrulewidth}{0.4pt} 
\renewcommand{\footrulewidth}{0.4pt}

% Other generic settings

% Following is only so that I can capture the image below in a small height. 
% Do not use in real document
%\renewcommand{\textheight}{4cm}

对于每个课程,您都有一个单独的文件,其中包含\usepackage{MyTemplate}。这是一个示例文件,您可以在其中定义填充页眉/页脚内容所需的宏的值。请注意,此文件应仅包含内容,所有格式信息都包含在MyTemplate.sty

Math101:

\documentclass{article}

\usepackage{lipsum}% for dummy text
\usepackage{MyTemplate}

\newcommand{\CourseNumber}{Math 101}%
\newcommand{\CourseTitle}{Intro to Mathematics}%
\newcommand{\Author}{Prof. Reox}%

\begin{document}
\section{Section Header}
\lipsum[1-4]
\end{document}

这样,每门课程都会有一个共同的格式:

在此处输入图片描述

答案2

.tex如果您打算只在模板中包含一个课程文件,那么您可以在课程.tex文件中设置所有标题、标题等,并在模板文件中使用\input{<filename>}。下面简要说明一下我所说的内容(您将拥有多个course.tex文件):

course.tex

% Course preamble
\usepackage{<packages>}% Course-specific package(s)
%...
\begin{document}
% Course body/content
\end{document}

template.tex

\documentclass{article}% Main document class
% Template preamble
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\usepackage{<packages>}% Generic packages used throughout all courses
%...
% Other generic packages
% Other generic settings
\input{course}

\input{<filename>}命令提取逐字内容<filename>.tex并将其插入到调用它的文档中。因此,您可以在<filename>.tex.tex模板文件中包括任何内容。只要命令序列遵循常规/必需的文档结构:

\documentclass{<class>}
%preamble
\begin{document}
%body
\end{document}

您会注意到,当在第一个示例中将\input{course}替换为 的内容时course.tex,将产生上述文档结构,从而导致特定的成功编译course

如上所述,这不允许你将课程混合在一起并编译(例如)course1.texcourse2.tex主模板中,因为每个课程都会有一个与常规文档结构冲突的序言。如果你想要这个设置(无论出于什么原因),你需要考虑使用类似standalone包/文档类或者subfiles包裹

有趣的是,请考虑阅读何时应使用 \input 和 \include?

答案3

听起来你最好 (i) 将所有专门的代码收集到所谓的 LaTeX “样式文件” 中——一个扩展名为 的文本文件.sty——reox.sty以及 (ii) 从每个驱动程序文件中加载此包。使用以下命令加载包\usepackage,如下所示:

\documentclass{article} % or "report", or whatever
\usepackage{reox}
% further commands to set document's tile, page headers, etc
\begin{document}
% body of document.
\end{document}

答案4

您可以在模板命令名称中使用,例如在标题等的定义中使用 \mytitle。然后在课程文件中为该命令提供合理的内容 — 您只需确保在使用命令之前为命令提供正确的内容。

相关内容