如何创建具有自定义标题的空环境?

如何创建具有自定义标题的空环境?

此代码显示一个简单的居中表格,如下所示:

\documentclass[12pt,a4paper]{report}
\usepackage[labelfont=bf]{caption}

\begin{document}
    \tableofcontents
    \listoftables
    \chapter{One}
    \begin{table}[ht]
        \caption{My first table.}
        \centering
        \begin{tabular}{lcr}
            One  & Two  & Three\\
            Four & Five & Six
        \end{tabular}
    \end{table}
\end{document}

在此处输入图片描述

我现在想定义一个新的环境,appendix其中标题应如下所示:

附录1:我的第一个阑尾。

还应该可以制作一个\listofappendices,我可以将它放在我的正下方\listoftables

我已经尝试修改此代码但没有产生我想要的结果:

\makeatletter
\newcommand\listexamplename{List of Appendices}
\newcommand\listofexamples{%
    \section*{\listexamplename}\@starttoc{exs}}
\makeatother

\newcounter{example}
\newenvironment{example}[2][]{\refstepcounter{example}%
    \ifx\\#1\\ % if #1 is empty
    \addcontentsline{exs}{subsection}{\theexample~#2}%
    \else
    \addcontentsline{exs}{subsection}{\theexample~#1}%
    \fi
    \begin{list}{}{% options
            \setlength{\leftmargin}{0mm}%     leftmargin
            \parsep\parskip%                  space between paragraphs within an item
            \setlength{\itemsep}{-\parsep}%   space between items
        }
        \item {\centering\textbf{Appendix \theexample:} ~#2}
        \item}{\end{list}}

请注意,我想写一些类似这样的内容并产生与之前所示相同的输出,但标题看起来不像这样:

表格1:我的第一张桌子。

但像这样:

附录1:我的第一个阑尾。

也就是说,我想写这样的内容:

\documentclass[12pt,a4paper]{report}
\usepackage[labelfont=bf]{caption}

\begin{document}
    \tableofcontents
    \listoftables
    \listofappendices
    \chapter{One}
    \begin{table}[ht]
        \caption{My first table.}
        \centering
        \begin{tabular}{lcr}
            One  & Two  & Three\\
            Four & Five & Six
        \end{tabular}
    \end{table}
    \begin{appendix}[ht]
        \caption{My first appendix.}
        \centering
        \begin{tabular}{lcr}
            One  & Two  & Three\\
            Four & Five & Six
        \end{tabular}
    \end{appendix}
\end{document}

答案1

环境以宏的形式实现,例如\figure\endfigure。可惜的是,宏\appendix已经被使用,因此需要修改 newfloat (或 float) 包以使用\renewenvironment而不是\newenvironment

但是,这仅适用于环境名称。

\documentclass[12pt,a4paper]{report}
\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext=app,listname={List of Appendices},
  name=Appendix,placement=htp,within=none]{app}
\usepackage[labelfont=bf]{caption}

\begin{document}
    \tableofcontents
    \listoftables
    \listofapps
    \chapter{One}
    \begin{table}[ht]
        \caption{My first table.}
        \centering
        \begin{tabular}{lcr}
            One  & Two  & Three\\
            Four & Five & Six
        \end{tabular}
    \end{table}
    \begin{app}[ht]
        \caption{My first appendix.}
        \centering
        \begin{tabular}{lcr}
            One  & Two  & Three\\
            Four & Five & Six
        \end{tabular}
    \end{app}
\end{document}

相关内容