我想编写 latex 来实现下面的花式引用框,按照解决方案Latex 中的精美引文框。
但是,我不知道如何缩进引用框,例如:
您可以观察引号定义 D 的一部分已缩进,因此与定义D。
我更新代码:
% <!-- language: latex --> Comment this line for avoid errors
\documentclass[a4paper]{article}
\usepackage[table]{xcolor}
\usepackage{framed}
\usepackage[strict]{changepage}
%Defining colour with different models.
\definecolor{mypink1}{rgb}{0.858, 0.188, 0.478}
\definecolor{mypink2}{RGB}{219, 48, 122}
\definecolor{mypink3}{cmyk}{0, 0.7808, 0.4429, 0.1412}
\definecolor{mygray}{gray}{0.8}
\definecolor{formalshade}{rgb}{0.95,0.95,1}
\newenvironment{formal}{%
\def\FrameCommand{%
\hspace{1pt}%
{\color{mygray}\vrule width 6pt}%
{\color{formalshade}\vrule width 4pt}%
\colorbox{formalshade}%
}%
\MakeFramed{\advance\hsize-\width\FrameRestore}%
\noindent\hspace{-4.55pt}% disable indenting first paragraph
\begin{adjustwidth}{}{7pt}%
\vspace{2pt}\vspace{2pt}%
}
{%
\vspace{2pt}\end{adjustwidth}\endMakeFramed%
}
\begin{document}
\subsubsection*{Definition Lists}
\textbf{Markdown Extra} has a special syntax for definition lists too: \newline
\noindent
\textbf{Term 1} \\
\noindent
\textbf{Term 2} \\
\indent \indent Definition A \\
\indent \indent Definition B \\
\noindent
\textbf{Term 3} \\
\indent \indent Definition C \\
\indent \indent Definition D \\
% indent quote blocks?
\begin{formal}
part of definition D
\end{formal}
\begin{formal}
\begin{quote}
part of definition D
\end{quote}
\end{formal}
\end{document}
答案1
好吧,我看到了你从中获取代码的页面,我知道你在做什么......也许环境list
在这种情况下会很有用。从你的 MWE 代码中:
\documentclass[a4paper]{article}
\usepackage[table]{xcolor}
\usepackage{framed}
\usepackage[strict]{changepage}
%Defining colour with different models.
\definecolor{mypink1}{rgb}{0.858, 0.188, 0.478}
\definecolor{mypink2}{RGB}{219, 48, 122}
\definecolor{mypink3}{cmyk}{0, 0.7808, 0.4429, 0.1412}
\definecolor{mygray}{gray}{0.8}
\definecolor{formalshade}{rgb}{0.95,0.95,1}
\newenvironment{formal}{
\def\FrameCommand{
\hspace{1pt}
{\color{mygray}\vrule width 6pt}
{\color{formalshade}\vrule width 4pt}
\colorbox{formalshade}
}
\MakeFramed{\advance\hsize-\width\FrameRestore}
\noindent\hspace{-4.55pt}% disable indenting first paragraph
\begin{adjustwidth}{}{7pt}
\vspace{2pt}\vspace{2pt}
}
{
\vspace{2pt}\end{adjustwidth}\endMakeFramed
}
\newcounter{definitio}
\begin{document}
\subsubsection*{Definition Lists}
\textbf{Markdown Extra} has a special syntax for definition lists too: \newline
\begin{list}{\textbf{Term} \textbf{\arabic{definitio}}}{\usecounter{definitio}\setlength{\labelwidth}{42.5pt}}
\item bla bla bla
\item bla bla bla
\begin{list}{Definition \Alph{definitio}}{\usecounter{definitio}\setlength{\labelwidth}{60pt}\setlength{\leftmargin}{56pt}}
\item
\item
\end{list}
\item bla bla bla
\begin{list}{Definition \Alph{definitio}}{\usecounter{definitio}\setlength{\labelwidth}{60pt}\setlength{\leftmargin}{56pt}}
\item
\item
\end{list}
\end{list}
% indent quote blocks?
\begin{formal}
part of definition D
\end{formal}
\begin{formal}
\begin{list}{}{\setlength{\labelwidth}{60pt}\setlength{\leftmargin}{56pt}}
\item part of definition D
\end{list}
\end{formal}
\end{document}
如您所见,我尝试使用list
环境重建您的 MWE。不幸的是,结果并不完全符合您的要求。但我认为环境可以帮助您缩进构建嵌套环境,只需对环境进行少量调整即可formal
。
该环境是列表环境(如或)list
的基础,其工作方式如下:itemize
enumerate
\begin{list}{label}{format parameters}
\item First item
\item Second item
.
.
.
\item Last item
\end{list}
在哪里:
label
指定应如何标记项目。此参数是
插入框中以形成标签的一段文本。此
参数可以且通常包含其他LaTeX
命令。format parameters
包含用于更改列表间距参数的命令。空参数将选择所有默认
间距,这在大多数情况下应该足够了。格式参数
为:\itemsep
\labelsep
\labelwidth
\leftmargin
\listparindent
\parsep
\parskip
\partopsep
\rightmargin
\topsep
您还可以创建一个新的计数器用于自动编号,我在序言中使用了一个计数器\newcounter{definitio}
,并且再次使用它来定义如何在我使用的环境label
的参数中使用它list
。
无论如何,我无法像您在 MWE 中那样暂停和重新开始对定义进行编号。我认为计数器\value
可以用于此,但我没有尝试过。您可以阅读有关计数器的更多信息这里。