这是创建类似缩进嵌套的枚举环境。该问题的公认解决方案效果很好,但它无法处理像\begin{table}-\end{table}
和这样的浮动环境\begin{figure}-\end{figure}
。缩进此类浮动环境的方法是什么?
答案1
如果你希望浮点数符合当前环境的宽度,那么你很可能根本不希望它们浮动。以下代码假设通过重新定义figure
为minipage
,设置常规\caption
使用capt-of
的\captionof{figure}
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{changepage,etoolbox}
\usepackage{environ,capt-of}
\newenvironment{enumlike}[1][15pt]{%
\begin{adjustwidth}{#1}{0pt}% Only indent on left side
}{%
\end{adjustwidth}%
}
\let\oldfigure\figure% Store original figure float environment
\let\endoldfigure\endfigure
\RenewEnviron{figure}[1][H]{% Update figure environment
\par\vspace{\intextsep}% Assume in-text placement, so insert appropriate vertical spacing
\noindent
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\BODY}{\caption}{\captionof{figure}}{}{}% Replace \caption with \captionof{figure} inside \BODY
% Set "figure"
\begin{minipage}{\linewidth}
\BODY
\end{minipage}
\par\vspace{\intextsep}% Assume in-text placement, so insert appropriate vertical spacing
}
\begin{document}
\lipsum[1]
\begin{enumlike}
\lipsum[2]
\begin{figure}[h]
\includegraphics[height=40mm,width=\linewidth]{example-image}
\caption{An indented figure}
\end{figure}
\end{enumlike}
\lipsum[3]
\end{document}
可以对table
浮点数进行类似的重新定义。
答案2
您可以使用链接问题中给出的解决方案,但您必须将环境放在环境enumlike
里面。figure
table
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{changepage}
\usepackage{tabularx}
\newenvironment{enumlike}[1][15pt]{%
\begin{adjustwidth}{#1}{0pt}% Only indent on left side
}{%
\end{adjustwidth}%
}
\begin{document}
\lipsum[1][1-5]
\begin{figure}[h]
\begin{enumlike}
\includegraphics[height=40mm, width=\linewidth]{example-image}
\caption{An indented figure}
\end{enumlike}
\end{figure}
\lipsum[1][1-5]
\begin{table}[h]
\begin{enumlike}[50pt]
\begin{tabularx}{\linewidth}{|X|X|X|} \hline
some & meaningless & text \\ \hline
some & meaningless & text \\ \hline
some & meaningless & text \\ \hline
\end{tabularx}
\caption{An even more indented table}
\end{enumlike}
\end{table}
\end{document}
不过,我建议你在添加图片时坚持\centering
使用类似的东西width=0.9\linewidth
。只有左侧缩进对我来说看起来很奇怪。