跳转至内容

LaTeX/盒子

来自 Wikibooks,开放世界中的开放书籍

LaTeX

入门
  1. 介绍
  2. 安装
  3. 安装额外包
  4. 基础
  5. 如何获取帮助

常用元素

  1. 文档结构
  2. 文本格式化
  3. 段落格式化
  4. 颜色
  5. 字体
  6. 列表结构
  7. 特殊字符
  8. 国际化
  9. 旋转
  10. 表格
  11. 标题创建
  12. 页面布局
  13. 自定义页面页眉和页脚‎
  14. 导入图形
  15. 浮动体、图形和标题
  16. 脚注和边注
  17. 超链接
  18. 标签和交叉引用
  19. 首字母

机制

  1. 错误和警告
  2. 长度
  3. 计数器
  4. 盒子
  5. 规则和撑杆

技术文本

  1. 数学
  2. 高级数学
  3. 定理
  4. 化学图形
  5. 算法
  6. 源代码列表
  7. 语言学

特殊页面

  1. 索引
  2. 词汇表
  3. 参考文献管理
  4. 更多参考文献

特殊文档

  1. 科学报告(本科报告、硕士论文、博士论文)
  2. 信件
  3. 演示文稿
  4. 教师专栏
  5. 简历
  6. 学术期刊(MLA、APA 等)

创建图形

  1. 介绍程序化图形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 创建 3D 图形

编程

  1. Plain TeX
  2. 创建包
  3. 创建包文档
  4. 主题

其他

  1. 模块化文档
  2. LaTeX 文档的协作编写
  3. 导出到其他格式

帮助和建议

  1. 常见问题
  2. 提示和技巧

附录

  1. 作者
  2. 链接
  3. 包参考
  4. LaTeX 文档示例
  5. 索引
  6. 命令词汇表

编辑此框编辑目录

TeX 盒子和胶水概述

[编辑 | 编辑源代码]

盒子是 TeX 中用于表示一个不可见容器的术语,它可以容纳可见元素、空内容或其他盒子。胶水是 TeX 中用于表示连接盒子的不可见连接器的术语,它决定了连接盒子的相对位置。TeX 文档中包含的每个单独的可见元素都包含在一个盒子里。可见元素可以是字母、图像、几何形状等。TeX 通过根据默认的 TeX 规则、默认的 LaTeX 规则或文档命令将盒子粘合在一起构建页面。在一个典型的文档中,字母盒子粘合到其他字母盒子上形成单词,然后这些单词弹性地粘合到其他单词上形成句子。句子被分成行并放置在段落盒子里。弹性胶水被挤压或拉伸以使段落盒子内的行完全对齐。段落盒子粘合到图表盒子,依此类推。

虽然盒子可以容纳其他盒子,但并非所有可以生成盒子的命令都可以在所有其他可以生成盒子的命令中使用。对于这些限制,通常有解决方法。

盒子的尺寸通常与其内容的尺寸和位置相关,但并非必须如此。许多盒子命令都接受自定义宽度和/或高度,并且还有其他命令会影响盒子的形状和位置。盒子相对于其他盒子放置,而可见元素相对于包含它们的盒子放置。

关于盒子和胶水的更完整描述可以在 Donald E. Knuth 的《TeXbook》的第 11 章和第 12 章中找到。可以在 http://www.personal.ceu.hu/tex/spacebox.htm 找到基本的 LaTeX 盒子和胶水命令列表。

字符盒子

[编辑 | 编辑源代码]

TeX 字符盒子具有三个维度属性

  • 高度是基线到盒子顶部的长度。
  • 深度是基线到盒子底部的长度。
  • 宽度是盒子的宽度。

字符盒子在基线处粘合在一起。

parbox、minipage 和 pbox

[编辑 | 编辑源代码]

\parbox 是一个以段落模式格式化的特定宽度盒子。在段落模式下,文本被分成行,行被分成页面。

\parbox[pos][height][contentpos]{width}{text}

width 定义段落盒子的宽度。文本将被分成行,以使其适合此宽度。除了固定长度,您还可以提供用户定义的长度宏或 TeX/LaTeX 定义的长度宏和基元,例如 \width\height\depth\totalheight。(有关深度和高度的解释,请参见上面的字符盒子。)

height 定义 \parbox 的高度。

pos 选择要连接的哪个基线。它可以是 top(顶部)、bottom(底部)或 center(中心)。此参数对于新手来说通常令人困惑!请参见下面的特殊说明。

contentpos 在盒子内定位盒子的内容。它可以是 center(中心)、top(顶部)、bottom(底部)或 spread(分散)。请注意,如果盒子的大小不超过其包含的文本,则 contentpos 无效。

\pbox 可在 pbox 包中使用。\pbox 具有与 \parbox 相同的参数,但如果用户提供的宽度参数大于 pbox 的实际内容,则 pbox 会缩小以适应内容。这仅在内容包含手动换行符并且您希望适应结果材料时才有用。

\pbox[pos][height]{width}{text}

minipage 环境采用与 \parbox 相同的参数,并且其行为与 \parbox 几乎相同。minipage\parbox 之间的区别在于,\parbox 只能包含单个段落,并且您不能在其中使用所有命令和环境,而 minipage 可以包含多个段落,实际上,几乎可以包含任何内容。

\begin{minipage}[pos][height][contentpos]{width} text \end{minipage}

您可以使用 minipage\parbox\pbox 将段落嵌入到非段落盒子中。例如

\fbox{%
  \parbox{\textwidth}{
    Some very long text\\
    that would not be allowed\\
    in an fbox.
  }%
}

关于 pos 参数的特殊说明

[编辑 | 编辑源代码]

contentpos 缺失或等于 pos,以及任何时候 pos= center 时,对齐参数 pos 并不指代 \parbox 的边界。在任何这些情况下,对齐参数都会选择 \parbox 内部的哪一行文本用于对齐段落框。 \parbox 会被放置,使得所选文本行的基线\parbox 粘贴到的框的基线对齐。因此,如果 pos 设置为 top,则 \parbox 中第一行的基线将与 \parbox 外部的基线对齐。在只有一个文本行的特殊情况下,该行文本同时是顶部、底部和中心行,并且更改 pos 似乎不会有任何作用,除非添加了其他文本。

如果 contentpos 存在且等于 pos,并且 pos 不是 center,则 \parbox 将在其边界处对齐。

makebox 和 mbox

[编辑 | 编辑源代码]

Makebox 创建一个单行框,可以选择固定宽度,否则足够容纳其内容。请注意,宽度不必大于内容:例如,将宽度设置为 0 会排版内容而不更改当前位置。(例如,这允许覆盖。)Makebox 通常用于防止连字符(参见 连字符)或仅用于防止属于一起的文本被放置在不同的行上。您不能在 Makebox 内放置换行符 (\\)。mbox 是 Makebox 的简写无选项版本。

\mbox{text}
\makebox[width][pos]{text}

pos 参数采用一个字母的值:center、flushleft、flushright 或将文本spread 以填充框。

\makebox[0pt]{Some text} over this text

\makebox[15ex][s]{Censored text}\hspace{-15ex}\makebox[15ex][s]{X X X X X}

Text \makebox[2\width][r]{running away}

framebox 和 fbox

[编辑 | 编辑源代码]

命令 \framebox 的行为与 \makebox 完全相同,只是它还会在内容周围绘制一个框。

\fbox{text}
\framebox[width][pos]{text}

以下示例显示了您可以使用 \makebox\framebox 命令执行的一些操作。

\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?

您可以调整以下框架长度。

  • \fboxsep:框架和内容之间的距离。
  • \fboxrule:规则的粗细。

这将打印一个较粗且距离较远的框架。

\setlength{\fboxsep}{10pt}
\setlength{\fboxrule}{5pt}
\fbox{A frame.}

这显示了字母的方框框架。

\setlength{\fboxsep}{0pt}
\fbox{A}

提供了 framed 包,它添加了 framed 环境,提供了一种在文档中轻松设置段落框架的方法。

\usepackage{framed}
% ...

\begin{framed}
This is an easy way to box text within a document!
\end{framed}

savebox/usebox/newsavebox

[编辑 | 编辑源代码]

savebox 是一个未渲染的框,保存用于以后通过 usebox 命令重复渲染。

\newsavebox{\boxname}
\savebox{\boxname}{some content}
\usebox{\boxname}

命令 \newsavebox 创建一个用于存储内容的占位符;命令 \savebox 将指定的内容存储在占位符中,而不会在文档中渲染它;并且 \usebox 将占位符的内容渲染到文档中。

colorbox 和 fcolorbox

[编辑 | 编辑源代码]

参见 颜色\fcolorbox 也可以使用 \fboxsep\fboxrule 进行调整。


fancybox 包提供了其他框。

  • \doublebox
  • \ovalbox
  • \shadowbox

框修饰符

[编辑 | 编辑源代码]

现在我们控制了水平方向,接下来的明显步骤是控制垂直方向。对于 LaTeX 来说这不成问题。

\raisebox{lift}[height][depth]{text}

命令允许您定义框的垂直属性。您可以在前三个参数中使用 \width\height\depth\totalheight,以作用于文本参数内框的大小。两个可选参数分别设置 raisebox 的高度和深度。例如,您可以观察嵌入 framebox 时它们的区别。

\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.


rotatebox

[编辑 | 编辑源代码]

参见 旋转

resizebox 和 scalebox

[编辑 | 编辑源代码]

graphicx 包提供了其他框。

\resizebox{10ex}{2\baselineskip}{Dunhill style}
\scalebox{10}{Giant}


上一页:计数器 索引 下一页:规则和撑杆
华夏公益教科书