我想以定义、定理、证明(定理的证明)、示例和插图(图像)的形式做笔记。每个定义、定理等都是(虚拟)列表中的一项。关键是我想在最晚的时刻决定如何以笔记、书籍、演示幻灯片等形式呈现信息。- 我将使用 LaTeX(使用适用于 Windows 的 TeXstudio)做笔记。我可能需要 XML 或类似 Docbook 的东西来满足我的需求,我不确定。我正在寻找一个小例子来朝着正确的方向开始。所以我的笔记将看起来像这样。
Definition. A space is a set which admits to some type of structure.
Theorem. Let P,Q be points in the plane. Now P,Q, ....
Proof. Given P,Q. Therefore, ...
Definition. A set is a collection of objects.
这样的笔记将以 LaTeX 编写。我可能希望以几种格式呈现笔记。例如,以下三种。(关键是我希望尽可能晚地决定呈现问题。)
Format 1:
Title
Contents
Chapter 1: Definitions
Chapter 2: Examples
Chapter 3: Theorems
Chapter 4: Proofs
Chapter 1: Definitions
(Section) 1: Space
Definition. A space is a set which admits to some type of structure.
( The word space typeset in bold )
(Section) 2: Set
Definition. A set is a collection of objects.
Chapter 2: Examples
Example 1.
Example 2.
格式 2:与上文相同,但采用备忘单布局,因此没有标题页和目录,只有多列格式的注释列表。请参阅:https://www.sharelatex.com/templates/other/math-cheat-sheet
格式 3:仅校样。每份校样均为幻灯片格式,每段校样占一页。
我有编写 LaTeX 文档的经验,因此我可以生成所需的格式,但这会涉及大量文本重复等。我正在寻找(我不知道的)额外步骤、工具,以便我可以完全专注于工作内容,并在以后担心呈现时不会出现元素重复。我确实理解并接受这可能需要(大量)准备工作,如果它能实现上述目标,那么我很乐意投入时间。
现在(具体、可回答的)问题是。除了 TexStudio 之外,我还需要其他工具吗?如果需要,需要哪些工具?如果不需要,我需要在 LaTeX 中做什么?也许可以创建自己的文档类?如果是这样,那么如何从一个文本文件创建三个(或更多)文档?
我将非常感激任何想法、建议、例子和正确的方向。
答案1
一种选择是使用您定义的具有语义意义的宏来编写文档,然后\input
将该文档分成不同的文档类(或自定义序言),以不同的方式对其进行排版。您可以根据需要重新定义每个文档中的命令。
此示例只是您可以做的事情的一种概念证明。在此示例中,我创建了三个 .tex 文件:
notesfile.tex
-- 这是您的基本注释文件。注释是使用可单独定义的自定义宏编写的,注释本身被包装在宏命令中,以便您可以单独调用它们。notesbeamer.tex
-- 该文件以 beamer 演示文稿的形式处理来自 notes 文件的文本。notesarticle.tex
-- 该文件以文章或讲义格式处理笔记文件中的文本。
保存每个文件,然后使用 编译 beamer 文件pdflatex notesbeamer
,使用 编译文章文件pdflatex notesarticle
。
notesfile.tex
\newcommand{\notesOnLetters}{%
\notesSection{Letters}
A is the first letter.
B is the second.
Z is the last one.%
}
\newcommand{\notesOnNumbers}{%
\notesSection{Numbers}
\begin{mylist}
\item We may assume that $1 + 1 = 2$.
\item That is \strong{addition}.
\end{mylist}%
}
notesbeamer.tex
\documentclass{beamer}
% Define \notesSection as beamer frame title
\newcommand{\notesSection}[1]{%
\frametitle{#1}%
}
% Define mylist as itemize
\newenvironment{mylist}
{\begin{itemize}}
{\end{itemize}}
% Define \strong as \alert
\let\strong\alert
% Bring in notes accessible through commands defined in notesfile
\input{notesfile}
\begin{document}
\begin{frame}
\notesOnLetters
\end{frame}
\begin{frame}
\notesOnNumbers
\end{frame}
\end{document}
notesarticle.tex
\documentclass{article}
% Define \notesSection as article \subsection
\newcommand{\notesSection}[1]{%
\subsection{#1}%
}
% Define mylist as enumerate
\newenvironment{mylist}
{\begin{enumerate}}
{\end{enumerate}}
% Define \strong as boldface
\let\strong\textbf
% Bring in notes accessible through commands defined in notesfile
\input{notesfile}
\begin{document}
\title{Things You Should Know}
\author{Professor}
\maketitle
\section{Review}
\notesOnLetters
\section{New Concepts}
\notesOnNumbers
\end{document}