我想用 LaTeX 格式化分步教程,使每个步骤显示一张屏幕截图和该步骤的一小段文本。我可以想到一种格式,在每个步骤中,屏幕截图位于左侧,文本位于右侧。但是,如果我使用\includegraphics
图像,则会在文档中动态定位。
我怎样才能实现这种格式?
答案1
绝对没有必要将\includegraphics
命令放置在figure
环境内。
如果文本没有溢出图形的高度,则可以使用一种简单的方法:
\documentclass[a4paper]{article}
\usepackage[demo]{graphicx}
\usepackage{adjustbox}
\usepackage{lipsum}
\newenvironment{explanation}[2][]
{\begin{flushleft}
\adjustbox{center=6cm,valign=t}{\includegraphics[width=5cm,#1]{#2}}%
\begin{minipage}[t]{\dimexpr\textwidth-6cm\relax}}
{\end{minipage}\end{flushleft}}
\begin{document}
\lipsum[2]
\begin{explanation}{screenshot1}
This is the text that accompanies the first screen shot
and explains it.
\end{explanation}
\lipsum[2]
\end{document}
注意demo
:图形只是为了避免有真正的图形文件。这里我为屏幕截图提供了 6 厘米的空间,排版为 5 厘米宽,以便给它一些空间。可能会有变化,请参阅调整框。
如果需要标题,可以使用caption
或captionof
包并使用类似
\newenvironment{explanation}[2][]
{\noindent\begin{minipage}{\textwidth}\vspace{\topsep}
\adjustbox{center=6cm,valign=t}{\includegraphics[width=5cm,#1]{#2}}%
\begin{minipage}[t]{\dimexpr\textwidth-6cm\relax}}
{\end{minipage}
\par
\if\relax\detokenize\expandafter{\expcaptiontext}\relax\else
\captionof{figure}{\expcaptiontext}
\fi
\gdef\expcaptiontext{}%
\vspace{\topsep}
\end{minipage}}
\newcommand{\expcaption}[1]{\gdef\expcaptiontext{#1}}
和
\begin{explanation}{screenshot1}
This is the text that accompanies the first screen shot
and explains it.
\expcaption{This is the caption}
\end{explanation}
如果文本超出屏幕截图几行,则包裹图应该考虑这个包。
答案2
正如@egreg所建议的,这里有一个例子wrapfigure
:
\documentclass[12pt,a4paper]{article}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{wrapfig}
\begin{document}
\lipsum[1]
\begin{wrapfigure}{l}{7cm}
\includegraphics[width=6cm]{<image file>}
\end{wrapfigure}
\lipsum[2]
\end{document}
将环绕图形的段落放置在后这个图形本身。
值得一看的是文档的 wrapfig 包,因为它的行为与常规浮点略有不同。关于在页面上放置图形所需的参数,这里只简短引用一下:
参数 #2(必需)是图形放置代码,但有效代码与常规图形不同。它们成对出现:大写版本允许图形浮动,小写版本将图形“精确地放置在此处”。
r R – 文本的右侧
l L – 文本左侧
i I – 内侧边缘 – 靠近装订处(如果是 [twoside] 文档)
o O – 外边缘 – 远离装订线