我之前问过,但我从未得到我想要的答案。(旧问题在这里:定义新的图形环境)
正如标题所示,我正在寻找一种方法,通过定义一个新的环境,而不是命令。
这个例子和老问题一样:我如何定义一个新环境,让两幅图像并排显示
这是我尝试过的但没有效果。
\documentclass[a4paper,11pt,fleqn,twoside,openright]{memoir}
\usepackage{caption}
\usepackage{graphicx,caption}
\usepackage{float}
\newenvironment{sidebyside}[6]{
\begin{figure}[H]
\centering
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#1}
\caption{#2}
\end{subfigure}
%
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#3}
\caption{#4}
\end{subfigure}
\caption{\protect\raggedright #5}
\label{#6}
\end{figure}
}
我希望它作为环境的唯一原因是因为我正在与不懂 LaTeX 编码的人一起工作,所以我需要尽可能让他们轻松理解。
编辑澄清:
当用户输入“ \begin{sidebyside}
”并按下回车键时,他应该会看到以下代码弹出:
\begin{sidebyside}
\begin{figure}[H]
\centering
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{}
\caption{}
\end{subfigure}
%
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{}
\caption{}
\end{subfigure}
\caption{\protect\raggedright }
\label{}
\end{figure}
\end{sidebyside}
编辑2:
显然我的问题仍然很难理解。所以我记录了我希望发生的事情:https://youtu.be/vEBT6Z5TwJQ
最终编辑:
我现在明白了,大多数人使用的 LaTex 编辑器显然与在线解决方案不同。这个问题是基于我对编辑器的不熟悉,并且源于在线编辑器 Overleaf,它有一些豪华的快捷方式和自动完成命令和环境,这显然不适用于“常规”编辑器。所以我现在明白为什么很难理解。
答案1
这是一个environment
基于的解决方案。
\documentclass[a4paper,11pt,fleqn,twoside,openright]{memoir}
\usepackage[demo]{graphicx} % remove 'demo' option in real document
\usepackage{subcaption,float}
\newenvironment{sidebyside}[6]{%
\begin{figure}[H]
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#1}
\caption{#2}
\end{subfigure}\hspace{\fill}%
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#3}
\caption{#4}
\end{subfigure}
\caption{\protect\raggedright #5}
\label{#6}}{%
\end{figure}}
\begin{document}
\setcounter{chapter}{2} % just for this example
\begin{sidebyside}%
{pic1}{Caption of first subfigure}%
{pic2}{Caption of second subfigure}%
{Overall caption}{fig:x}
\end{sidebyside}
\end{document}
尽管如此,我同意@TeXnician的观点,即基于宏的解决方案似乎更加自然,并且至少同样易于实现。首先是命令定义:
\newcommand{\sidebyside}[6]{%
\begin{figure}[H]
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#1}
\caption{#2}
\end{subfigure}\hspace{\fill}%
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics[width=\textwidth]{Lists/Images/#3}
\caption{#4}
\end{subfigure}
\caption{\protect\raggedright #5}
\label{#6}
\end{figure}}
二、调用命令的方式:
\sidebyside{pic1}{Caption of first subfigure}%
{pic2}{Caption of second subfigure}%
{Overall caption}{fig:x}