![如何在页边空白处添加项目符号?](https://linux22.com/image/231703/%E5%A6%82%E4%BD%95%E5%9C%A8%E9%A1%B5%E8%BE%B9%E7%A9%BA%E7%99%BD%E5%A4%84%E6%B7%BB%E5%8A%A0%E9%A1%B9%E7%9B%AE%E7%AC%A6%E5%8F%B7%EF%BC%9F.png)
我不是排版专家,但我听说 itemize/enumerate 环境中的项目符号和数字最好放在正文之外,即放在页边距中。如何在 LaTeX 中做到这一点?
还有一个附加问题,我如何在 ConTeXt 中做到这一点?:)
编辑:本文中的一个用途是:http://www.duo.uio.no/sok/work.html?WORKID=81971&lang=en 但我没有在那里找到任何嵌套列表。
另一个案例是这本电子书:http://designingfortheweb.co.uk/book/part3/part3_chapter13.php
答案1
我从未见过将列表的项目符号放在页边距中。列表中的文本不仅仅是正文。那么,为什么要将其与正文对齐呢?像引用引文一样缩进是一个好主意。
让我们考虑选择这种样式。嵌套列表怎么样?因此,其项目必须与父列表的左边缘对齐,因此也必须与文档的左边缘对齐。
那么枚举列表呢?数字是否应放在边距中?
综上所述,在页边空白处添加项目符号,并将项目与正文对齐,这种带有项目符号的列表似乎值得怀疑。尽管如此,它还是很容易实现的。
使用 enumitem 时,最好在序言中指定样式,而不是通过可选参数为每个列表指定样式。这样既一致又易于更改。如果您后来决定更改列表样式,只需在序言中对整个文档应用一次修改即可。
马丁的例子根据这个观点进行了修改:
\documentclass{article}
\usepackage{enumitem}
\setitemize[1]{leftmargin=0ex}
\usepackage[showframe]{geometry}
\begin{document}
\begin{itemize}
\item text
\end{itemize}
\end{document}
答案2
ConTeXt 部分很简单:
\startitemize[inmargin]
\item foo
\item bar
\item baz
\stopitemize
答案3
您可以使用 enumitem 包来调整左边距。但是,我从未在边距中看到过项目符号。
\documentclass{文章} \usepackage{enumitem} \usepackage[showframe]{几何} \开始{文档} \begin{itemize}[leftmargin=0ex] \item 这里有一些文本 \end{逐项列举} \结束{文档}
答案4
我实际上在某处找到了该论文的来源,并提取了以下内容(好的,我在枚举列表中添加了 .!)
% Enumeratable list
\newenvironment{enum}{%
\begin{list}{\arabic{enumi}.}{%
\setlength{\topsep}{\onelineskip}
\setlength{\partopsep}{0pt}
\setlength{\parsep}{\parskip}
\setlength{\itemsep}{\parskip}
\setlength{\leftmargin}{0pt}
\setlength{\itemindent}{0pt}
\usecounter{enumi}
}
}{\end{list}}
% Itemized list
\newenvironment{items}{%
\begin{list}{\textbullet}{%
\setlength{\topsep}{\onelineskip}
\setlength{\partopsep}{0pt}
\setlength{\parsep}{\parskip}
\setlength{\itemsep}{\parskip}
\setlength{\leftmargin}{0pt}
\setlength{\itemindent}{0pt}
}
}{\end{list}}
% Definitions in lists
\newcommand{\iterm}[1]{\item \term{#1}}