在我看来,我读过的每个 LaTeX 代码都必须加载一些包。
自从开始学习 LaTeX(我是新手)以来,我可以在不加载任何软件包的情况下顺利创建文档。因此,我对 LaTeX 的核心功能有点困惑。
因此,我的问题是:LaTeX 无需任何软件包即可执行哪些基本任务?此外,您能否给我举一个 LaTeX 无需任何软件包即可执行的任务示例?不能除非加载了包,否则会怎样?
答案1
正如评论中提到的那样,您不需要使用 加载包的代码\usepackage
。您可以将其复制到您的序言中:
\documentclass{article}
\makeatletter
... lots of code lines from various packages
\maketother
\begin{document}
但恕我直言,这并没有真正回答你的问题。你可能想知道是否真的需要这些额外的代码行。
LaTeX 内核是一个内核,它就像您 PC 上的操作系统。因此它并不包含所有内容的代码。由于历史原因,内核中应该包含的很多内容目前都包含在外部包中,例如颜色支持、图形、语言支持、输入编码支持、amsmath 代码、keyval、基本绘图命令——希望它们会在未来的版本中出现在内核中。
但是对于特殊的事情,你总是必须加载外部代码(并且你正在加载的类\documentclass
已经是这样的外部代码),例如如果你想画一只坐在棋盘上的鸭子:
\documentclass{article}%
\usepackage{tikzducks}
\usepackage{xskak}
\begin{document}
\begin{tikzpicture}
\newchessgame
\node at (1,1) {\chessboard[showmover=false]};
\duck
\end{tikzpicture}
\end{document}
答案2
这里有一些例子:
\documentclass{book}
\begin{document}
\tableofcontents
\listoftables
\listoffigures
\chapter{What we can do without packages}
\section{With \texttt{book} we can create table of contents \& Co.}
Taking advantange only of what is defined in a \texttt{documentclass}, for
example, \texttt{book}, we can produce a table of contents, a list of tables,
and a list of figures.
\section{We can write formulae}
But with \texttt{amsmath} or \texttt{mathtool} it is easy to make them
beautiful.
\[
E = mc^{2}
\]
\section{We can list something}
We can create bullet list:
\begin{itemize}
\item Something about ducks
\item Something about lions
\end{itemize}
Enumerated list:
\begin{enumerate}
\item Something about ducks
\item Something about lions
\end{enumerate}
Descriptive list:
\begin{description}
\item [Ducks] very funny birds
\item [Lions] very funny animals, too!
\end{description}
But with \texttt{enumitem} you can easily customize them.
\section{We can create tables}
We can create Table~\ref{tab:mytab}, but with \texttt{booktabs} it'd look
more beautiful and professional, and with \texttt{caption} we can easily
costomize its caption and improve its position.
\begin{table}
\centering
\caption{A table\label{tab:mytab}}
\begin{tabular}{cc}
\hline
Ducks & Lions \\
\hline
Lions & Ducks \\
\hline
\end{tabular}
\end{table}
\section{We can draw images}
We can draw a duck, see Figure~\ref{fig:duck}, but with Ti\emph{k}Z or
\texttt{pstricks} it is easier.
\begin{figure}
\centering
\begin{picture}(100,100)
\put(50,50){\oval(50,20){}}
\put(70,65){\circle{20}}
\put(35,50){\line(1,0){30}}
\put(70,65){\circle*{2}}
\put(75,67){\line(6,-1){10}}
\put(75,63){\line(6,1){10}}
\end{picture}
\caption{Duck by David Carlisle\label{fig:duck}}
\end{figure}
\chapter{What we cannot do without packages}
Virtually, you can do everything without packages,
they only simplify your life!
But why do you want to redo what others have already done for you?
\end{document}
答案3
回答你的第二个问题实际上也回答了你的第一个问题:
此外,您能否给我举一个示例,说明除非加载包,否则 LaTeX 无法执行的任务?
实际上没有什么需要包。包只是加载到 LaTeX 中的代码,如果您只是将其插入到源代码的开头,相同的代码将执行相同的操作。如果您对 LaTeX 足够熟悉,您可以自己手动编写所有内容;它只需要非常很久了!软件包的作用是为您提供简单的界面,使您能够利用其他人的时间和技能来使您的文档看起来更好。它们不是新功能;它们是打包的现有功能,以便更易于使用。
(另外:对此有一点例外,即存在类似的包,glossaries
其中还包括必须与 LaTeX 一起运行的外部工具,但我认为这些工具的外部部分本身不是 LaTeX 包,因为它必须单独调用)。
因此,考虑到包所做的一切,您可以不用包来完成,您会发现第一个问题的答案是:一切,只是这样做要困难得多。