LaTeX中的框以及框中的子图

2024-01-13 08:12
文章标签 latex 框中

本文主要是介绍LaTeX中的框以及框中的子图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

文章目录

  • 目录
  • 框(盒子)
    • \fbox
    • framed包
      • framed环境
      • leftbar环境
    • mdframed包
    • fcolorbox命令
    • tcolorbox包
    • adjustbox包
      • 调整盒子的宽度和高度
      • 旋转盒子
  • 框中的子图
    • 问题一:框中插入图片
    • 问题二:给框中图片加上图名、编号
      • caption包
    • 问题三:框中加入含有子图的图
      • subcaption包

框(盒子)

在LaTeX中,有几个包或命令可以用来生成框。以下是其中一些常用的包和命令:

\fbox

\fbox{内容}命令可以用来创建一个简单的方框,将指定的内容放在框内。但是,不会自动换行,并且如果其中的内容过长,会超出页面边界。因此,除非是很少的文字加框,一般不建议使用。

\setlength{\fboxrule}{3pt}
\setlength{\fboxsep}{7pt}
\fbox{这是一个简单的fbox框。}

在这里插入图片描述

framed包

这个包提供了更多灵活的框架命令。

framed环境

你可以使用\begin{framed}…\end{framed}环境来创建一个带有标题的框。在framed环境中放置了一段文本。framed环境会自动为其中的内容添加边框,默认情况下边框的样式是实线,宽度是1pt。
你也可以根据需要对framed环境进行定制。以下是一些常用的设置选项:
\setlength{\FrameRule}{2pt}:设置边框线的宽度为2pt。
\setlength{\FrameSep}{10pt}:设置边框与其中的内容之间的间距为10pt。
\setlength{\fboxrule}{1pt}:设置边框线的宽度为1pt(适用于\fbox命令)。
\setlength{\fboxsep}{10pt}:设置边框与其中的内容之间的间距为10pt(适用于\fbox命令)。
你可以将这些设置可以放在导言区或者在文档中使用framed环境之前进行设置。

\setlength{\FrameRule}{2pt} % 设置边框线的宽度
\setlength{\FrameSep}{10pt} % 设置边框线与内容之间的间距
\setlength{\leftmargin}{0pt} % 将左边框与左边距对齐
\begin{framed}
This is a customized framed text.
\end{framed}

在这里插入图片描述

leftbar环境

使用\begin{leftbar}…\end{leftbar}环境来创建一个带有左边栏的框。

\setlength{\FrameRule}{2pt}
\setlength{\FrameSep}{10pt}
\begin{leftbar}
这是一个简单的leftbar环境创建的“框”。
\end{leftbar}

在这里插入图片描述

mdframed包

这个包提供了高度可定制的框架环境。它支持不同的边框样式、阴影效果、背景色等。你可以使用\begin{mdframed}…\end{mdframed}环境来创建一个框。

\begin{mdframed}[
linecolor=blue, 
linewidth=2pt, 
backgroundcolor=yellow, 
innertopmargin=10pt, 
innerbottommargin=10pt, 
leftmargin=20pt, 
rightmargin=20pt]
这是一个定制的mdframed环境创建的框。
\end{mdframed}

在这里插入图片描述

fcolorbox命令

在color包和xcolor包中都有fcolorbox这个命令。但xcolor更好一些。所以我们只说xcolor包里的fcolorbox命令。fcolorbox的语法是
\fcolorbox{边框颜色}{背景色}{内容}
该命令可以用来创建一个带有自定义边框颜色和背景色的框。
例如:

\fcolorbox{red}{yellow}{This is a colored box.}
\linebreak
\fcolorbox{red}{gray}{\parbox{\textwidth}{This is a colored box with a wider text.}
}
\linebreak
\fcolorbox{red}{yellow}{这是一个简单的fcolorbox框。} 

在这里插入图片描述
实际上,虽然fcolorbox能够设置背景颜色,框线颜色等。它可以设置的参数并不多。所以灵活性稍差。

tcolorbox包

这个包提供了非常强大的定制框的功能,支持多种边框样式、背景色、渐变色、阴影效果、圆角等。你可以使用\begin{tcolorbox}...\end{tcolorbox}环境来创建一个高度定制化的框。

\begin{tcolorbox}[colframe=red,colback=yellow]This is a colored box.
\end{tcolorbox}\begin{tcolorbox}[colframe=blue,colback=cyan,sharp corners]This is a colored box with a wider text and sharp corners.
\end{tcolorbox}\begin{tcolorbox}[title=这是一个框, colback=white, colframe=blue, colbacktitle=yellow, coltitle=black, sharp corners]这是一段文字,它出现在彩色框内。这个彩色框使用了tcolorbox宏包创建。\end{tcolorbox}

在这里插入图片描述

adjustbox包

这个包提供了对盒子的调整和定制功能。虽然它主要用于调整盒子的大小和位置,但也可以用于生成框。你可以使用\adjustbox{frame}{内容}命令来创建一个带有边框的框。
adjustbox宏包为LaTeX提供了对盒子和图像进行调整和定制的功能。它提供了一系列选项和命令,可以控制盒子的大小、位置、旋转、裁剪等操作。

下面是一些使用adjustbox宏包的示例,展示了如何进行常见的盒子和图像调整操作:

调整盒子的宽度和高度

\adjustbox{width=5cm,height=3cm}{This is an adjusted box.}

在这里插入图片描述

在上述示例中,我们使用adjustbox宏包的widthheight选项来调整盒子的宽度和高度。

旋转盒子

\adjustbox{width=10cm,height=3cm,rotate=45}{This is a rotated box.}

在这里插入图片描述

这个示例中,我们使用adjustbox宏包的rotate选项将盒子旋转了45度。
需要注意的是,这里并没有出现盒子的框线。要想得到一个框线,还需要结合其它宏包进行设置。
这些示例只展示了adjustbox宏包的一小部分功能。你可以根据具体需求,进一步探索和使用adjustbox宏包提供的其他选项和命令。

在这些包中,tcolorbox包是功能最强大的。推荐使用。

框中的子图

问题一:框中插入图片

在很多的盒子中,是不能使用figure环境来插入图片的。因为,figure环境是一个浮动环境,它允许内容在页面中自由地浮动,以便LaTeX可以找到最佳的位置来放置它,例如顶部、底部或特定页面的文本中。这种浮动机制是为了处理大块内容(如图形和表格)的页面布局而设计的。

但是并不是说盒子中就不能插入图片,而是不用figure环境插入,直接插入就行了。
例如:

\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx} % 引入graphicx包来使用\includegraphics
\usepackage{xcolor} % 引入xcolor包来使用\fcolorbox\begin{document}\noindent % 确保fcolorbox不会缩进\fcolorbox{blue}{gray!30}{% 创建一个边框颜色为蓝色、背景颜色为浅灰色的文本框\parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{% 创建一个parbox来正确处理文本和图片的宽度这是一段文字,后面会紧跟一张图片。\\ % 文本内容\centering\includegraphics[width=0.6\linewidth]{a.jpg} % 插入图片,宽度设为\linewidth}}\end{document}

这里a.jpg是一张图片。你要保证你的代码所在的文件夹中有这张图片。这个代码编译后显示:
在这里插入图片描述

问题二:给框中图片加上图名、编号

但是这个图片没有图名。当你尝试在\includegraphics[width=0.6\linewidth]{a.jpg} 的下一行加入图名时,会出现错误。

\caption outside float. ^^I}

大概意思是你这个图名设置没有在figure环境中设置。

解决这个问题的办法就是用caption包。将上面的代码改为:

\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx} % 引入graphicx包来使用\includegraphics
\usepackage{xcolor} % 引入xcolor包来使用\fcolorbox
\usepackage{caption}%自定义浮动环境的标题
\begin{document}\noindent % 确保fcolorbox不会缩进\fcolorbox{blue}{gray!30}{% 创建一个边框颜色为蓝色、背景颜色为浅灰色的文本框\parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{% 创建一个parbox来正确处理文本和图片的宽度这是一段文字,后面会紧跟一张图片。\\ % 文本内容\captionsetup{type=figure}\includegraphics[width=0.6\linewidth]{a.jpg} % 插入图片\caption{示例图片}}}
\end{document}

编译后,结果为:

在这里插入图片描述

caption包

LaTeX 中的 caption 宏包提供了广泛的功能来自定义浮动环境的标题(caption)。这个包对于那些需要对图表、算法、子图表等的标题进行格式化以适应其出版需求的用户来说非常有用。

使用 caption 宏包,你可以改变标题的许多方面,包括字体、颜色、大小、对齐方式、间距、分隔符和标签等。此外,这个包还能与其他宏包如 subcaption、float、hyperref 等协同工作,为LaTeX文档添加更多的灵活性和功能。

以下是一些 caption 宏包的主要功能:

自定义格式:可以定义标题的整体布局和风格,比如是否挂起(悬挂)、居中或者采用其他格式。

字体选项:可以指定标题的字体大小(如 small、footnotesize 等),以及是否加粗或斜体等样式。

支持双语标题:可以为图表提供主要语言和辅助语言的双语标题。

细粒度控制:可以对标题宽度进行限制,或者对标题的单行/多行表现形式进行调节。

兼容性和扩展性:caption 宏包旨在与其他宏包和文档类兼容,同时也支持用户定义新的标题类型。

列表定制:可以定制图形目录(List of Figures)和表格目录(List of Tables)中的项。

要使用 caption 包中的功能,需要在文档的导言区(preamble)包含这个包:

\usepackage{caption}

一旦包含了 caption 宏包,就可以使用 \captionsetup 命令进行配置,如:

\captionsetup{options}

在这里,options 是一个键值列表,用于指定你想要的标题格式。

例如,如果你想要所有的表格标题都居中并且字体为小号,你可以写:

\captionsetup[table]{justification=centering, font=small}

这行代码将会影响所有表格的标题,使其居中并且使用小号字体。

问题三:框中加入含有子图的图

问题是子图的命令也需要figure环境中才能实现。所以带来了麻烦,后来我用了subcaption包,放弃了使用subfigure包。代码更改如下:

\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx} % 引入graphicx包来使用\includegraphics
\usepackage{xcolor} % 引入xcolor包来使用\fcolorbox
\usepackage{caption}%自定义浮动环境的标题
\usepackage{subcaption}%插入子图
\begin{document}\noindent % 确保fcolorbox不会缩进\fcolorbox{blue}{gray!30}{% 创建一个边框颜色为蓝色、背景颜色为浅灰色的文本框\parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{% 创建一个parbox来正确处理文本和图片的宽度这是一段文字,后面会紧跟一张图片。\\ % 文本内容\captionsetup{type=figure}\begin{center}\begin{minipage}{0.9\linewidth}\centering\captionsetup{type=figure}% 第一个子图\begin{subfigure}{0.45\linewidth}\centering\includegraphics[width=0.95\linewidth]{a.jpg}\caption{空间域图像}\label{fig:spatial}\end{subfigure}\hfill% 第二个子图\begin{subfigure}{0.45\linewidth}\centering\includegraphics[width=0.95\linewidth]{b.jpg}\caption{傅里叶变换后的频率域图像}\label{fig:freq}\end{subfigure}% 总标题\caption{图像的傅里叶变换}\label{fig:pic_fft}\end{minipage}\end{center}}}
\end{document}

编译结果:

在这里插入图片描述

subcaption包

在LaTeX中,subcaption 宏包主要用于为浮动环境(如图形和表格)中的子对象提供标题。这个宏包特别适用于当你有多个子图(subfigures)或子表(subtables)在一个浮动环境中,并且希望每个子对象都有自己的标题和可选的子标签。这些子标题可以帮助读者更好地理解每个子对象的内容,并且它们也可以被引用。

subcaption 宏包提供了\subcaption、\subfigure 和 \subtable 等命令,这些命令可以在包含它们的父浮动环境内部使用。每个子对象都可以有其自己的标题和标签,并且它们的列表也可以被包含在总的图形目录或表格目录中。

这篇关于LaTeX中的框以及框中的子图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/600776

相关文章

VSCode中latex文件(Misplaced alignment tab character .LaTeX

Misplaced alignment tab character &.LaTeX 先给出参考文章1 Misplaced alignment tab character &.LaTeX 把bib文件中的 &改为 and 。删除原有的bbl文件、重新运行 选择这个运行 这个错误在overleaf上并没有遇到、在vscode上遇到了 方法二就是把 &改为 \& ,记得删除

LaTeX的IEEE模板,以及有用的链接

虽然本人用Word用的挺不错的,但是正规学术文章必须用LaTeX。以下是一个IEEE的会议LaTeX模板。我加入了{CJK}包,这样可以写中文。学会用LaTeX很重要:1)写国际论文都用这个;2)平时写课程报告用LaTeX,逼格陡增~ 1 IEEE模板,包含中文CJK包 \documentclass[10pt, conference, compsocconf]{IEEEtran}\usepa

Latex使用方式

1 Latex优势 使用固定模板,格式固定,只需套用模板即可生成文章 2 Latex图表 1. 表格 设定表格宽度1 \usepackage{graphicx} # 记得加宏包\resizebox{\linewidth}{!}{ #此处!表示根据根据宽高比进行自适应缩放\begin{tabular}...........\end{tabular}} # 注意加的位置在\be

LaTeX各符号表示方式(持续更新~)

- "\mu":穆 miu - "\sigma":西格玛xigema - "\lambda":兰姆达或拉姆达lamuda - "\alpha":阿尔法aerfa - "\beta":贝塔beita - "\gamma":伽马 gama- "\pi":派 - "\theta":西塔或者泰塔xita - " \epsilon"-"\chi":希腊字母,读卡或者希-"\rho":希腊字母,肉  :下标

【Get深一度】Texlive: latex数学符号表

LaTeX输入单个点: \cdot 横向多个点: \cdots 竖向多个点: \vdots 斜向多个点: \ddots 希腊字母 以下的表格用于查询和对照。 序号 大写 LaTex代码 小写 LaTex代码 中文名称 1 A A α \alpha 阿尔法 2 B B β \beta 贝塔 3 Γ Γ γ \gamma

LaTeX中的\sloppy命令详解及应用实例

诸神缄默不语-个人CSDN博文目录 在使用 LaTeX 排版文档时,有时候我们会遇到一些段落中的文字或 URL 超出页边距的情况,导致文档版式不够美观。在这种情况下,LaTeX 提供了一些命令来处理这些排版问题,其中一个非常实用的命令就是 \sloppy。 文章目录 什么是 `\sloppy`?`\sloppy` 与 `\fussy` 的区别`\sloppy` 的使用方法实例:解决文字超出

vim和latex环境搭建

安装软件 下载软件 下载gvim:http://www.vim.org/download.php,安装的是 gvim74.exe下载latex:http://vim-latex.sourceforge.net/,下载的是vim-latex-1.8.23-20141116.812-gitd0f31c9.tar.gz 安装 gvim安装自不必说。 在http://vim-latex.sour

LaTex表格用法

记录表格的基本语法。 代码: 一、没有水平线、竖线,主要用于格式化\begin{table}[!hbp]\begin{tabular}{p{3cm}p{3cm}p{3cm}p{3cm}}(A)$\dfrac{1}{2016}$ & (B)$-\dfrac{1}{2016}$ & (C)$2016$ & (D)$-2016$ \\\end{tabular}\end{table}二、有水平线、竖线

Latex编辑工具

1、表格转换:tablesgenerator

Mac Latex 报错 Recipe terminated with fatal error: spawn pdflatex ENOENT.

没有安装pdf生成器,Mac的安装和windows不一样,可以参考下面教程安装MacLex https://zhuanlan.zhihu.com/p/107393437?utm_source=wechat_session   然后使用MacLex编译Lex生成pdf