⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 custom.tex

📁 用于公式编辑
💻 TEX
📖 第 1 页 / 共 3 页
字号:
\begin{verbatim} 
Some text \ldots 

\vspace{\stretch{1}} 
这一行将出现在页的最后。\pagebreak 
\end{verbatim} 
\end{code} 

同一段或同一个表格中两行之间的距离可以用如下命令来指定: 
\begin{lscommand} 
\ci{\bs}\verb|[|\emph{length}\verb|]| 
\end{lscommand} 

使用命令~\ci{bigskip}~和~\ci{smallskip}~你可以获得一个预定义的垂直距离。 

\section{页面的布局} 

\begin{figure}[!hp] 
\begin{center} 
\makeatletter\@layout\makeatother 
\end{center} 
\vspace*{1.8cm} 
\caption{页面布局参数} 
\label{fig:layout} 
\end{figure} 

\index{page layout} 
\LaTeXe{}~允许你在~\verb|\documentclass|~命令中指定页面尺寸(\wi{paper size})。
然后它将自动的选择其它参数。但有些时候你可能不满意~\LaTeX{}~的预设值,这个
时候你可以自己改变这些参数。 
%no idea why this is needed here ... 
\thispagestyle{fancyplain} 
图\nbs\ref{fig:layout}~中显示了所有能改变的页面参数。这个图是用~\pai{layout}~宏包
获得的\footnote{\texttt{CTAN:/tex-archive/macros/latex/required/tools}}。 

\textbf{先等等!} \ldots~在你开始“让这个狭窄的页面看起来宽一点”之前,先花一些时间
想想。和~\LaTeX{}~中的大多数规定一样,缺省的页面布局是有其内在原因的。 

确实,相对于你的MS\ Word页面来说,它看上去非常的狭窄。但是看看你喜欢的书籍
\footnote{我说的是卓有声誉的出版商正式出版的书籍}并且统计每个标准文本行的字符数目。 
你会发现每行的字符不超过66个。现在你的~\LaTeX{}~页面也正是如此。经验显示,如果在
一行中塞入更多的字符,阅读将变得困难。这是因为眼睛从行的开始移动到行的结束变得困难了。 
这也是报纸为何要排版成多栏形式的原因。 

因此如果你决定增加文本的宽度,头脑中要明白你正在使你的作品变得难以阅读。警告已经
说的够多了,接下来我将告诉你如何去做。 

\LaTeX{}~提供了两个命令来改变这些参数。他们通常在文章的导言部分使用。 

第一个命令给某个参数一个固定的值: 
\begin{lscommand} 
\ci{setlength}\verb|{|\emph{parameter}\verb|}{|\emph{length}\verb|}| 
\end{lscommand} 

第二个命令给某个参数增加一个固定的大小。 
\begin{lscommand} 
\ci{addtolength}\verb|{|\emph{parameter}\verb|}{|\emph{length}\verb|}| 
\end{lscommand} 

第二个命令实际上比~\ci{setlength}~命令更为实用,因为你可以通过修改已有的设置来获得
所需的结果。为了给文本的宽度增加1厘米,我将如下的命令放置到导言部分。 
\begin{code} 
\verb|\addtolength{\hoffset}{-0.5cm}|\\ 
\verb|\addtolength{\textwidth}{1cm}| 
\end{code} 

在进行这个工作的时候,你可能会想要看看\pai{calc}包,它允许你在~setlength~的参数
中进行算术运算。它可以运用到任何用数值作为参数的函数中。 

\section{关于长度的更详细的信息} 

只要有可能,我通常都避免在~\LaTeX{}~文档中使用绝对长度。相反的,我一般通过页面
中其它元素的宽度或高度来指定长度。比如一个图形,我指定~\verb|\textwidth|~作为
它的宽度从而使得图形恰好充满整个页面。 

下面的三个命令允许你获得一个文本串的宽度、高度以及深度。 

\begin{lscommand} 
\ci{settoheight}\verb|{|\emph{lscommand}\verb|}{|\emph{text}\verb|}|\\ 
\ci{settodepth}\verb|{|\emph{lscommand}\verb|}{|\emph{text}\verb|}|\\ 
\ci{settowidth}\verb|{|\emph{lscommand}\verb|}{|\emph{text}\verb|}| 
\end{lscommand} 

下面的例子显示了这些命令的一个可能的用途: 

\begin{example} 
\flushleft 
\newenvironment{vardesc}[1]{% 
 \settowidth{\parindent}{#1:\ } 
 \makebox[0pt][r]{#1:\ }}{} 

\begin{displaymath} 
a^2+b^2=c^2 
\end{displaymath} 

\begin{vardesc}{Where}$a$, 
$b$ -- are adjunct to the right 
angle of a right-angled triangle.   

$c$ -- is the hypotenuse of 
the triangle and feels lonely. 

$d$ -- finally does not show up 
here at all. Isn't that puzzling? 
\end{vardesc} 
\end{example} 

\section{盒子} 

\LaTeX{}~通过盒子来建立整个文档的布局。首先,每个字符都是一个小的盒子,
这些盒子连接起来构成单词,单词本身连接起来构成一行。值得注意的是,单词
之间的连接是一个橡皮连接,\LaTeX{}~将自动进行调整使得单词将恰好构成一行。 

我承认,这里的描述是实际情况的一个简化了许多的版本,但重点在于~\TeX{}~
主要操作盒子和连接。不是只有一个字母才能成为一个连接,你几乎可以把
任何可见元素(包括盒子自身)放到一个盒子中。 然后~\LaTeX{}~将会像处理
单个字母一样处理这个盒子。 

在过去的章节中你已经遇到了一些盒子的使用,尽管我并没有明确的说出来。例如
~\ei{tabular}~环境和~\ci{includegraphics}~命令就都构造了一个盒子。这就
意味着你可以轻松的将多个表格和图像并列排列。你唯一需要保证的就是它们
宽度的总和不大于文本宽度。 

使用如下命令可以把一个段落放置到盒子中: 

\begin{lscommand} 
\ci{parbox}\verb|[|\emph{pos}\verb|]{|\emph{width}\verb|}{|\emph{text}\verb|}| 
\end{lscommand} 

也可以用下面这个命令完成同样的事情: 

\begin{lscommand} 
\verb|\begin{|\ei{minipage}\verb|}[|\emph{pos}\verb|]{|\emph{width}\verb|}| text 
\verb|\end{|\ei{minipage}\verb|}| 
\end{lscommand} 

参数~\texttt{pos}~可以取以下字符中的一个~\texttt{c, t}~或~\texttt{b},
这个参数用于控制盒子相对环绕文本基线的垂直位置。参数~\texttt{width}~用于
调整盒子的宽度。这两个环境的主要不同之处在于你可能无法在一个~\ei{parbox}~
环境中使用某些命令或者环境,而几乎任何东西都可以在~\ei{minipage}~环境中使用。 

\ci{parbox}~中可以包含整个段落,完成分行在内的几乎所有事情。与之不同,
\LaTeX{}~中还存在另外一类盒子用于处理水平对齐的材料。我们已经知道其中的
一个~-- \ci{mbox},它简单的将其它盒子包含成为一个盒子,可以用于防止
~\LaTeX{}~断开两个单词。因为盒子中可以包含盒子,因此它可以给予作者强大的灵活性。 

\begin{lscommand} 
\ci{makebox}\verb|[|\emph{width}\verb|][|\emph{pos}\verb|]{|\emph{text}\verb|}| 
\end{lscommand} 

参数~\texttt{width}~定义了生成的盒子从外部观察的宽度\footnote{这意味着在盒子
内部看来,盒子的宽度可能会小一些,你甚至可以将盒子的宽度设置为~0pt,这样可以
使得盒子中的内容不影响盒子外部的布局。}。在进行参数设置的时候,你也可以传递
~\ci{width}、~\ci{height}、~\ci{depth}~和~\ci{totalheight}~给~\texttt{width}~
参数。这几个值是测量盒子内部文本来获得的。参数~\emph{pos}~接受一个字符:
\textbf{c} --~居中、\textbf{l} --~靠左、\textbf{r} --~靠右和~\textbf{s} --~
将文本均匀分布到整个盒子中。 

命令~\ci{framebox}~和~\ci{makebox}~完成同样的工作,不同之处在于它在内部文本
的周围画出一个矩形框。 

下面的例子演示了你使用命令~\ci{makebox}~和~\ci{framebox}~能完成的工作: 

\begin{example} 
\makebox[\textwidth]{% 
   c e n t r a l}\par 
\makebox[\textwidth][s]{% 
   s p r e a d}\par 
\framebox[1.1\width]{Guess I'm 
   framed now!} \par 
\framebox[0.8\width][r]{Bummer, 
   I am too wide} \par 
\framebox[1cm][l]{never 
   mind, so am I} 
Can you read this? 
\end{example} 

现在我们已经知道怎么控制盒子的水平方向长度了,接下来的步骤是学习如何控制
垂直方向\footnote{全面控制仅仅是水平方向控制和垂直方向控制的同时运用~\ldots}。
对于~\LaTeX{}来说,命令 
\begin{lscommand} 
\ci{raisebox}\verb|{|\emph{lift}\verb|}[|\emph{depth}\verb|][|\emph{height}\verb|]{|\emph{text}\verb|}| 
\end{lscommand} 

让你能够定义盒子的高度。你可以前面三个参数中使用~\ci{width}、\ci{height}、\ci{depth}~
和~\ci{totalheight},这样可以使得盒子的参数能够与盒子内部的文本匹配。 


\begin{example} 
\raisebox{0pt}[0pt][0pt]{\Large% 
\textbf{Aaaa\raisebox{-0.3ex}{a}% 
\raisebox{-0.7ex}{aa}% 
\raisebox{-1.2ex}{r}% 
\raisebox{-2.2ex}{g}% 
\raisebox{-4.5ex}{h}}} 
he shouted but not even the next 
one in line noticed that something 
terrible had happened to him. 
\end{example} 

\section{标尺和支撑} 
\label{sec:rule} 

我们之前曾经使用过命令 
\begin{lscommand} 
\ci{rule}\verb|[|\emph{lift}\verb|]{|\emph{width}\verb|}{|\emph{height}\verb|}| 
\end{lscommand} 
通常它被用来输出一个黑色的矩形。 
\newpage 
\begin{example} 
\rule{3mm}{.1pt}% 
\rule[-1mm]{5mm}{1cm}% 
\rule{3mm}{.1pt}% 
\rule[1mm]{1cm}{5mm}% 
\rule{3mm}{.1pt} 
\end{example} 

这个命令可以用来产生水平方向和垂直方向的线条。例如扉页上的线条就是用一个~\ci{rule}~命令创建的。 

一种特殊的应用就是没有宽度只有高度的标尺。在专业的出版术语中,这被称为支撑(\wi{Struts})。
它被用来保证文档的一部分具有一个确定的高度最小值。你可以在~\texttt{tabular}~环境中使用支撑
来使得某行具有一个特定的高度最小值。你也可以在一个环境中使用它来保证一行具有一个高度最小值。 

\begin{example} 
\begin{tabular}{|c|} 
\hline 
\rule{1pt}{4ex}Pitprop \ldots\\ 
\hline 
\rule{0pt}{4ex}Strut\\ 
\hline 
\end{tabular} 
\end{example} 

%%% Local Variables: 
%%% mode: latex 
%%% TeX-master: "lshort2e" 
%%% End: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -