我一直试图让段落编号位于双栏文档的页边空白处。我根本无法marginpar
在页边空白处打印任何文本。当我使用 时marginnote
,我收到一条错误消息,提示TeX capacity exceeded, sorry [grouping levels=255]
。
我不知道出了什么问题。几天前,我marginnote
至少能够打印在页边距中,尽管它打印在第二列的文本上。如果我至少能找到一种方法来marginnote
打印在页边距中,我绝对可以毫无问题地调整文档的样式,使中心边距更宽,这样数字就可以放在那里。
我是否明显做错了什么事情才marginnote
导致这个错误?
在我的示例代码中,我将其改为...\marginnote{\pn}...
显示...\marginpar{\pn}...
它不打印任何内容。它甚至不会使用编译文档marginnote
。这是我现在的示例代码:
\documentclass{article}
\usepackage{lipsum}
\usepackage{color}
\usepackage{multicol}
\usepackage{marginnote}
\setlength\parindent{0cm}
\newcounter{pc}
\newcommand{\pn}{\bfseries\thepc}
\newenvironment{pns}{
\par
\everypar{\noindent\stepcounter{pc}\leavevmode{\color{red}\marginpar{\pn}\hspace{1.5em}}}
\setcounter{pc}{0}
}{}
\begin{document}
\begin{multicols}{2}
\begin{pns}
\lipsum[1]
\lipsum[2]
\lipsum[3]
\lipsum[4]
\lipsum[5]
\lipsum[6]
\lipsum[7]
\lipsum[8]
\lipsum[9]
\lipsum[10]
\end{pns}
\end{multicols}
\end{document}
答案1
使用\llap
而不是 就\marginpar
可以达到目的,甚至不需要加载marginnote
:
\documentclass{article}
\usepackage{lipsum}
\usepackage{color}
\usepackage{multicol}
\setlength\parindent{0cm}
\setlength\columnsep{30pt}
\newcounter{pc}
\newcommand{\pn}{\bfseries\thepc}
\newenvironment{pns}{%
\par \setcounter{pc}{0}
\everypar{\noindent\stepcounter{pc}\leavevmode{\color{red}\llap{\pn\hskip0.75em}}%
}}{}
\begin{document}
\begin{multicols}{2}
\begin{pns}
\lipsum[1]
\lipsum[2]
\lipsum[3]
\lipsum[4]
\lipsum[5]
\end{pns}
\end{multicols}
\end{document}