在日常的文档编辑工作中,图文混排还是比较常见的,本文介绍使用wrapfig与picinpar宏包来实现这一排版方式。

1、示例代码的验证环境

  • 操作系统:Ubuntu 22.04
  • 引擎:XeTeX 3.141592653-2.6-0.999993
% CSDN,繁星间漫步,陆巍的博客
\documentclass[UTF8]{ctexart}
\usepackage{geometry}% 用于页面设置
\usepackage[dvipsnames, svgnames, x11names]{xcolor}% 颜色支持
\usepackage{graphicx}% 图形支持
\usepackage{wrapfig}% 图文混排支持
\usepackage{picinpar}% 混排支持
\usepackage[
  colorlinks=true,
  linkcolor=Navy,
  urlcolor=Navy,
  citecolor=Navy,
  anchorcolor=Navy
]{hyperref}% 设置超链接颜色
% 纸张设置
\geometry{
	a4paper,
	left = 1in,
	right = 1in,
	top = 1in,
	bottom = 1in
% 设置章节标题左对齐,+=表示在原有格式上追加,如果只有=则表示完全替换
\ctexset{
  section/format += \raggedright,
  subsection/format += \raggedright,
  subsubsection/format += \raggedright,
\setlength{\parindent}{2em}% 缩进
\setlength{\parskip}{1ex} % 段间距
\begin{document}
\section{使用wrapfig宏包}
\subsection{一般用法}
从结构和功能的表现形式上看,结构深藏于内,功能表现于外。同时,从系统的过程来看,系统的结构具有相对稳定性,而系统的功能则是易于变化的。结构和功能实际上是对立统一的,系统的结构及其功能的矛盾的不断产生又不断解决,由此推动着系统的不断发展。系统的结构制约着系统的功能,功能在适应不断变化的环境的同时又反作用于系统的结构,促进系统结构的改变,改变了的结构可以具有更佳的功能,使得功能得到更好的发挥。而且随着环境的改变又要求打破已经建立起的均衡,要求系统的功能跟着发展改变,这又会引起系统结构发生相应的变化。系统的结构和功能在过程之中统一起来,系统就在其结构与功能的互相适应又不完全互相适应的矛盾作用和转化之中得到发展。
\begin{wrapfigure}[12]{l}[0em]{.3\textwidth}
  \centering
  \includegraphics[width=.3\textwidth]{figure1.png}
  图18-6-1 结构、功能和涨落的关系
\end{wrapfigure}
进一步置于系统的演化过程来考察系统的结构和功能的动态关系时,情况会变得更加复杂。事实上,系统的结构和系统的功能的决定作用和反作用之间,还涉及到一个必然性和偶然性关系问题,是必然因素和偶然因素交织在一起的过程,耗散结构理论的研究揭示出,一个演化系统,其结构、功能和涨落之间的关系可以示意为图18-6-1。这里,结构、功能和涨落是相互作用的,结构和功能之间的关系具有决定性,而涨落则把随机性因素带入其中。三者之间互相作用,一定的结构必然具有一定的功能,并制约着随机涨落的范围,而随机涨落总是可以引起局部功能改变的,当涨落突破了系统内部调节机制的作用范围,涨落得到整体系统的响应即得以放大时,就会引起整体结构的改变,所形成的新的结构又规定了新的涨落的范围,建立起新的对于结构稳定性的调节机制。必然性和偶然性、原因和结果、稳定和失稳,就这样与结构变化和功能发挥密切地联系在一起。
当代科学前沿的探索,离不开对于物质结构及其功能的探索。在人们的认识史上,人们的认识和实践离不开对于认识对象的结构和功能的探索,这是一个由表及里的过程,因而也就是一个由功能到结构的过程。人类对于物质的认识,最先是通过物质的性质来对于物质进行分类,进而深入到利用物质的组成来推断物质的性质,再进一步才发展到建立起物质的结构与属性之间具有对应关系的观念,并深入认识到物质结构、物质系统结构与功能之间的对应关系。
\subsection{number of narrow lines 与 overhang 的影响}
从结构和功能的表现形式上看,结构深藏于内,功能表现于外。同时,从系统的过程来看,系统的结构具有相对稳定性,而系统的功能则是易于变化的。结构和功能实际上是对立统一的,系统的结构及其功能的矛盾的不断产生又不断解决,由此推动着系统的不断发展。系统的结构制约着系统的功能,功能在适应不断变化的环境的同时又反作用于系统的结构,促进系统结构的改变,改变了的结构可以具有更佳的功能,使得功能得到更好的发挥。而且随着环境的改变又要求打破已经建立起的均衡,要求系统的功能跟着发展改变,这又会引起系统结构发生相应的变化。系统的结构和功能在过程之中统一起来,系统就在其结构与功能的互相适应又不完全互相适应的矛盾作用和转化之中得到发展。
\begin{wrapfigure}[10]{l}[2em]{.3\textwidth}
  \begin{center}
    \includegraphics[width=.3\textwidth]{figure1.png}
    图18-6-1 结构、功能和涨落的关系
  \end{center}
\end{wrapfigure}
进一步置于系统的演化过程来考察系统的结构和功能的动态关系时,情况会变得更加复杂。事实上,系统的结构和系统的功能的决定作用和反作用之间,还涉及到一个必然性和偶然性关系问题,是必然因素和偶然因素交织在一起的过程,耗散结构理论的研究揭示出,一个演化系统,其结构、功能和涨落之间的关系可以示意为图18-6-1。这里,结构、功能和涨落是相互作用的,结构和功能之间的关系具有决定性,而涨落则把随机性因素带入其中。三者之间互相作用,一定的结构必然具有一定的功能,并制约着随机涨落的范围,而随机涨落总是可以引起局部功能改变的,当涨落突破了系统内部调节机制的作用范围,涨落得到整体系统的响应即得以放大时,就会引起整体结构的改变,所形成的新的结构又规定了新的涨落的范围,建立起新的对于结构稳定性的调节机制。必然性和偶然性、原因和结果、稳定和失稳,就这样与结构变化和功能发挥密切地联系在一起。
当代科学前沿的探索,离不开对于物质结构及其功能的探索。在人们的认识史上,人们的认识和实践离不开对于认识对象的结构和功能的探索,这是一个由表及里的过程,因而也就是一个由功能到结构的过程。人类对于物质的认识,最先是通过物质的性质来对于物质进行分类,进而深入到利用物质的组成来推断物质的性质,再进一步才发展到建立起物质的结构与属性之间具有对应关系的观念,并深入认识到物质结构、物质系统结构与功能之间的对应关系。
\section{使用picinpar宏包}
\subsection{图片居左或居右混排}
从结构和功能的表现形式上看,结构深藏于内,功能表现于外。同时,从系统的过程来看,系统的结构具有相对稳定性,而系统的功能则是易于变化的。结构和功能实际上是对立统一的,系统的结构及其功能的矛盾的不断产生又不断解决,由此推动着系统的不断发展。系统的结构制约着系统的功能,功能在适应不断变化的环境的同时又反作用于系统的结构,促进系统结构的改变,改变了的结构可以具有更佳的功能,使得功能得到更好的发挥。而且随着环境的改变又要求打破已经建立起的均衡,要求系统的功能跟着发展改变,这又会引起系统结构发生相应的变化。系统的结构和功能在过程之中统一起来,系统就在其结构与功能的互相适应又不完全互相适应的矛盾作用和转化之中得到发展。
% 参数[0,r,...]中,“0,”与“r”之间不要有空格,否则“r”参数无效。
% 在“figure1.png}},”的逗号后也不要有空格,否则\centering命令失效
\begin{window}[0,r,{\includegraphics[width=.3\textwidth]{figure1.png}},{\centering 图18-6-1 结构、功能和涨落的关系}]
  进一步置于系统的演化过程来考察系统的结构和功能的动态关系时,情况会变得更加复杂。事实上,系统的结构和系统的功能的决定作用和反作用之间,还涉及到一个必然性和偶然性关系问题,是必然因素和偶然因素交织在一起的过程,耗散结构理论的研究揭示出,一个演化系统,其结构、功能和涨落之间的关系可以示意为图18-6-1。这里,结构、功能和涨落是相互作用的,结构和功能之间的关系具有决定性,而涨落则把随机性因素带入其中。三者之间互相作用,一定的结构必然具有一定的功能,并制约着随机涨落的范围,而随机涨落总是可以引起局部功能改变的,当涨落突破了系统内部调节机制的作用范围,涨落得到整体系统的响应即得以放大时,就会引起整体结构的改变,所形成的新的结构又规定了新的涨落的范围,建立起新的对于结构稳定性的调节机制。必然性和偶然性、原因和结果、稳定和失稳,就这样与结构变化和功能发挥密切地联系在一起。
\end{window}
当代科学前沿的探索,离不开对于物质结构及其功能的探索。在人们的认识史上,人们的认识和实践离不开对于认识对象的结构和功能的探索,这是一个由表及里的过程,因而也就是一个由功能到结构的过程。人类对于物质的认识,最先是通过物质的性质来对于物质进行分类,进而深入到利用物质的组成来推断物质的性质,再进一步才发展到建立起物质的结构与属性之间具有对应关系的观念,并深入认识到物质结构、物质系统结构与功能之间的对应关系。
\subsection{图片居中混排}
\begin{window}[1,c,{\includegraphics[width=.3\textwidth]{figure1.png}},{\centering 图18-6-1 结构、功能和涨落的关系}]
  进一步置于系统的演化过程来考察系统的结构和功能的动态关系时,情况会变得更加复杂。事实上,系统的结构和系统的功能的决定作用和反作用之间,还涉及到一个必然性和偶然性关系问题,是必然因素和偶然因素交织在一起的过程,耗散结构理论的研究揭示出,一个演化系统,其结构、功能和涨落之间的关系可以示意为图18-6-1。这里,结构、功能和涨落是相互作用的,结构和功能之间的关系具有决定性,而涨落则把随机性因素带入其中。三者之间互相作用,一定的结构必然具有一定的功能,并制约着随机涨落的范围,而随机涨落总是可以引起局部功能改变的,当涨落突破了系统内部调节机制的作用范围,涨落得到整体系统的响应即得以放大时,就会引起整体结构的改变,所形成的新的结构又规定了新的涨落的范围,建立起新的对于结构稳定性的调节机制。必然性和偶然性、原因和结果、稳定和失稳,就这样与结构变化和功能发挥密切地联系在一起。
\end{window}
\end{document}

3、生成的pdf文件内容

  • 代码“\begin{wrapfigure}[12]{l}[0em]{.3\textwidth}”,其中的参数“[12]”的名称为number of narrow lines,参数“[0em]”的名称为overhang。这两个参数的作用已经在第二个例子中演示,大家可以看到我用红色箭头标识的地方,那里展示了number of narrow lines参数设置不当造成的影响。
  • wrapfig宏包中使用wrapfigure环境的效果有一些不足,就是文字总是比图片高一些,虽然可以用空行来把文字压下去,但又会造成与上一段文字之间的距离过大。
  • 使用picinpar宏包时,要注意参数中的逗号后面不要有空格,否则会造成下一个参数的有些功能失效,在示例代码中我已经说明。
  • picinpar示例代码“\begin{window}[1,c,…”中的数字1参数,表示文字内容高于图片一行。
  • picinpar宏包不仅能够实现图片与文字混排,也可以实现表格与文字混排,详情请看其帮助文件。picinpar的一些帮助文件是德文的,如果没有学过德语,直接看代码也足以明白。
  • 从以上示例来看,我们可以知道picinpar宏包表现更好。
%加上这个,以取消图片序号显示 \makeatletter \long\def\figwindownonum[#1,#2,#3,#4] {% \begin{figwindownonum} \begi... latex默认生成的简单列表, 默认为一个小圆点想要一些不一样的列表符号, 比如 -, * 之类的 二、enumerate这是用于带序号的列表,默认生成 1,2,3… 如果想要其他修饰,如上面的(1... 其实原理很简单, 就是用minipage分割出两个page, 一个page放figure, 一个page放tabular. \begin{figure}[t] \begin{minipage}{0.38\linewidth} \centering \includegraphics[width=0.99\columnwidth]{Figure/adaptive.pdf} \caption{\centering ....} \label{Fig: adaptive} \end{min 本质上绕排功能都是通过在 TeX 中使用 \parshape 命令控制段落形状,挖出一个空洞出来,然后把图表内容填进去来完成的。Knuth 排版 TAOCP 就都是手工完成这种绕排工作的。不过手工完成这种工作非常繁琐,在 LaTeX 中通常还是使用现成的宏包工具。 实现文字绕排工具很多,效果各有千秋。按当前版本的时间顺序排是: picins:1992 年 3.0 版,早于 LaTeX2e,因许可证问题现已从 TeX Live 中删除,MiKTeX 仍可用 picinpar:1993 年 ...