超过 4 个级别的轮廓与轮廓包

超过 4 个级别的轮廓与轮廓包

outlines经常使用这个软件包。今天我第一次需要一个有 5 个或 6 个级别的大纲。但结果却不行。

文档很明显,四个级别确实是极限 --- 但在这种情况下我需要更多,所以我想知道是否有一种简单的方法来改变它。

因为我很着急,所以我会很感激一个能够以正确的外观破解某些东西的答案,但从长远来看,我真的想要一种方法来添加像\5,这样的命令\6,以便按照用户期望的方式\7工作。outlines

这是一个最小的无法运行的例子。错误在于这\5是一个未定义的控制序列。

\documentclass{article}
\usepackage{outlines}

% I like each level to just bullet points instead of alternating bullets and dashes
\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\bullet$}
\renewcommand{\labelitemiii}{$\bullet$}
\renewcommand{\labelitemiv}{$\bullet$}
% there is no \labelitemv command

\begin{document}

\begin{outline}
    \1 hello at level 1
        \2 hello at level 2
            \3 hello at level 3
                \4 hello at level 4
                    \5 oops this is an error
\end{outline}

\end{document}

答案1

另一种选择可能是易清单,没有四级限制。列表规范使用重复字符来确定级别。下面我定义了一个带有项目符号和缩进的类似 itemize 的列表样式:

\documentclass{article}
\usepackage[at]{easylist}
\NewList(%
    Hide=1000,Progressive*=1em,Hang=true,%
    Style*=$\bullet$\hskip.6em)

\begin{document}
\begin{easylist}
@ hello at level 1
 @@ hello at level 2
  @@@ hello at level 3
   @@@@ hello at level 4
    @@@@@ not an error anymore
     @@@@@@ level 6
\end{easylist}
\end{document}

结果:

在此处输入图片描述

如果有点麻烦(例如设置类别代码),您还可以定义\1\2

\documentclass{article}
\usepackage[at]{easylist}
\NewList(%
    Hide=1000,Progressive*=1em,Hang=true,%
    Style*=$\bullet$\hskip.6em)

\xdef\AtCatcode{\number\catcode`@}
\catcode`@=\active
\def\1{@}
\def\2{@@}
\def\3{@@@}
\def\4{@@@@}
\def\5{@@@@@}
\def\6{@@@@@@}
\catcode`@=\AtCatcode

\begin{document}
\begin{easylist}
\1 hello at level 1
 \2 hello at level 2
  \3 hello at level 3
   \4 hello at level 4
    \5 not an error anymore
     \6 level 6
\end{easylist}
\end{document}

easylist 的一个限制是你不能在列表项中使用列表符号(在列表之外它可以正常工作),因此例如@@@ item with an @ character\3 item with an @ character不起作用。该包提供了一些其他字符可供选择,如 ¶ 和 §,这些字符可能从未使用过或很容易避免,但它们很难输入。但是,使用定义 等方法,\1\2可以绕过这个困难,同时仍然降低触发限制的机会。例如对于 ¶(段落标记,字符代码b6):

\documentclass{article}
\usepackage[pilcrow]{easylist}
\NewList(%
    Hide=1000,Progressive*=1em,Hang=true,%
    Style*=$\bullet$\hskip.6em)

\xdef\PilcrowCatcode{\number\catcode`^^b6}
\catcode`^^b6=\active
\def\1{^^b6}
\def\2{^^b6^^b6}
\def\3{^^b6^^b6^^b6}
\def\4{^^b6^^b6^^b6^^b6}
\def\5{^^b6^^b6^^b6^^b6^^b6}
\def\6{^^b6^^b6^^b6^^b6^^b6^^b6}
\catcode`^^b6=\PilcrowCatcode

\begin{document}
\begin{easylist}
\1 hello at level 1
 \2 hello at level 2
  \3 hello at level 3
   \4 hello at level 4
    \5 not an error anymore
     \6 sixth level
\end{easylist}
\end{document}

相关内容