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 等命令,这些命令可以在包含它们的父浮动环境内部使用。每个子对象都可以有其自己的标题和标签,并且它们的列表也可以被包含在总的图形目录或表格目录中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

动态规划学习笔记

背景 一般形式是求最值,核心是穷举。 首先,虽然动态规划的核心思想就是穷举求最值,但是问题可以千变万化,穷举所有可行解其实并不是一件容易的事,需要你熟练掌握递归思维,只有列出正确的「状态转移方程」…

【Python】新鲜出炉的海洋捕食者算法Python版本

2020年发表的海洋捕食者算法《Marine Predators Algorithm: A nature-inspired metaheuristic》。 作者只在原论文中给出了MATLAB代码,网上也没有Python版本,我自己用Python重写了MATLAB代码。 """2020海洋捕食者算法 """…

【自控实验】4. 数字仿真实验

本科课程实验报告,有太多公式和图片了,干脆直接转成图片了 仅分享和记录,不保证全对 使用matlab中的simulink进行仿真 实验内容 线性连续控制系统的数字仿真 根据开环传递函数G(S)的不同,完成两个线性连续控制系统的仿真。 …

C#上位机与欧姆龙PLC的通信12----【再爆肝】上位机应用开发(WPF版)

1、先上图 继上节完成winform版的应用后,今天再爆肝wpf版的,看看看。 可以看到,wpf的确实还是漂亮很多,现在人都喜欢漂亮的,颜值高的,现在是看脸时代,作为软件来说,是交给用户使用的…

【目标检测】YOLOv5算法实现(七):模型训练

本系列文章记录本人硕士阶段YOLO系列目标检测算法自学及其代码实现的过程。其中算法具体实现借鉴于ultralytics YOLO源码Github,删减了源码中部分内容,满足个人科研需求。   本系列文章主要以YOLOv5为例完成算法的实现,后续修改、增加相关模…

vue3hooks的使用

在 Vue 3 中,hooks 是用于封装组件逻辑的方法,类似于 Vue 2 中的 mixins。 使用 Hooks 可以提高代码的可维护性、可读性、可复用性和可测试性,降低代码之间的耦合度,使得组件的状态更加可控和可预测。 要使用 hooks,…

【VRTK】【Unity】【游戏开发】更多技巧

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 本篇将较为零散但常用的VRTK开发技巧集合在一起,主要内容: 创建物理手震动反馈高亮互动对象【创建物理手】 非物理手状态下,你的手会直接…

MATLAB - 四旋翼飞行器动力学方程

系列文章目录 前言 本例演示了如何使用 Symbolic Math Toolbox™(符号数学工具箱)推导四旋翼飞行器的连续时间非线性模型。具体来说,本例讨论了 getQuadrotorDynamicsAndJacobian 脚本,该脚本可生成四旋翼状态函数及其雅各布函数…

C++|44.智能指针

文章目录 智能指针unique_ptr特点一——无法进行复制 shared_ptr特点一——可复制特点二——计数器(用于确定删除的时机) 其他 智能指针 通常的指针是需要特殊地去申请对应的空间,并在不使用的时候还需要人工去销毁。 而智能指针相对普通的指…

ubuntu20.04网络问题以及解决方案

1.网络图标消失,wired消失,ens33消失 参考:https://blog.51cto.com/u_204222/2465609 https://blog.csdn.net/qq_42265170/article/details/123640669 原始是在虚拟机中切换网络连接方式(桥接和NAT), 解决…

Java-网络爬虫(三)

文章目录 前言一、爬虫的分类二、跳转页面的爬取三、网页去重四、综合案例1. 案例三 上篇:Java-网络爬虫(二) 前言 上篇文章介绍了 webMagic,通过一个简单的入门案例,对 webMagic 的核心对象和四大组件都做了简要的说明,以下内容…

LeetCode---121双周赛---数位dp

题目列表 2996. 大于等于顺序前缀和的最小缺失整数 2997. 使数组异或和等于 K 的最少操作次数 2998. 使 X 和 Y 相等的最少操作次数 2999. 统计强大整数的数目 一、大于等于顺序前缀和的最小缺失整数 简单的模拟题,只要按照题目的要求去写代码即可,…

高级分布式系统-第6讲 分布式系统的容错性--进程的容错

分布式系统的容错原则既适用于硬件, 也适用于软件。 两者的主要区别在于硬件部件的同类复制相对容易, 而软件组件在运行中的同类复制( 进程复制) 涉及到更为复杂的分布式操作系统的容错机制。 以下是建立进程失效容错机制的一些基…

腾讯云添加SSL证书

一、进入腾讯云SSL证书: ssl证书控制台地址 选择“我的证书”,点击"申请免费证书" 2、填写域名和邮箱,点击“提交申请” 在此页面中会出现主机记录和记录值。 2、进入云解析 DNS:云解析DNS地址 进入我的解析-记录…

css3基础语法与盒模型

css3基础语法与盒模型 前言CSS3基础入门css3的书写位置内嵌式外链式导入式(工作中几乎不用)行内式 css3基本语法css3选择器标签选择器id选择器class类名原子类复合选择器伪类元素关系选择器序号选择器属性选择器css3新增伪类![在这里插入图片描述](https…

AI教我学编程之C#类型

前言 在上一课 中我们通过C#入门程序了解到关于C#的基础知识,这节课我们来感受作为C家族最大的黑马,在TIOBE榜单 上受欢迎程度未来两个月可能超越java的存在:C#的魅力 重点先知 1、C#程序或DLL的源代码是一组类型声明。 2、对于可执行程序&…

高压消防泵:科技与安全性的完美结合

在现代社会,随着科技的不断发展,各种高科技设备层出不穷,为我们的生活带来了极大的便利。在森林火灾扑救领域,恒峰智慧科技研发的高压消防泵作为一种高效、节能、绿色、环保的优质设备,将科技与安全性完美地结合在一起…

【面试突击】注册中心面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

uniapp 如何使用echarts 以及解决tooltip自定义不生效问题

使用的是echarts-for-wx插件&#xff1b; 正常写法案例&#xff1a;给tooltip数值加个% <template><view><uni-ec-canvas class"uni-ec-canvas"id"uni-ec-canvas"ref"canvas"canvas-id"uni-ec-canvas":ec"ec&quo…

蚁群算法(ACO)解决旅行商(TSP)问题的python实现

TSP问题 旅行商问题&#xff08;Travelling Salesman Problem, 简记TSP&#xff0c;亦称货郎担问题)&#xff1a;设有n个城市和距离矩阵D [dij]&#xff0c;其中dij表示城市i到城市j的距离&#xff0c;i, j 1, 2 … n&#xff0c;则问题是要找出遍访每个城市恰好一次的一条回…