我想在文本的边距中添加注释,但不想更改整个文档的边距。我只希望更改一两个段落的边距,以便将边距注释放在其旁边。我研究过marginnote
+ adjustwidth
,但效果不佳。边距注释未占用创建的空间。我也尝试过使用marginnote
+ \newgeometry
,但\newgeometry
会强制在封装文本之前和之后开始新页面,这不是最理想的。还有其他方法吗?
这是一个独立的例子,其中尝试了两种解决方案:
\documentclass[11pt,a4paper,twoside]{book}
\usepackage{geometry}
\geometry{papersize={16cm,24cm},layoutsize={16cm,24cm},top=2cm,bottom=2cm,left=2cm,right=2cm}
\usepackage[strict]{changepage}
\usepackage{marginnote}
\usepackage{mparhack}
\usepackage{marginfix}
\begin{document}
%EXAMPLE1
\begin{adjustwidth}{2cm}{}
\reversemarginpar
\marginnote{My margin note text}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
\end{adjustwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
%EXAMPLE2
\newgeometry{papersize={16cm,24cm},layoutsize={16cm,24cm},top=2cm, bottom=2cm, outer=4.5cm, inner=2cm, heightrounded, marginparwidth=2.5cm, marginparsep=0.5cm}
\marginnote{My margin note text}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
\restoregeometry
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
\end{document}
得出:
答案1
这适用于oneside
和twoside
文档,其中注释会自动放置在外边缘,正如人们所期望的那样。
我想我可能做得过头了,因为事情比我原先想象的要复杂一些。
输出
代码
\documentclass[11pt,twoside]{article}
\usepackage{geometry}
\geometry{papersize={16cm,24cm},layoutsize={16cm,24cm},top=2cm,bottom=2cm,left=2cm,right=2cm,marginparwidth=1cm}
\usepackage{calc}
\usepackage{lipsum}
%\usepackage{showframe}
\usepackage{changepage}
\newlength{\tempParIndent}
\newcommand{\textBody}[1]{%
\begin{minipage}[t]{\linewidth-5cm-\marginparsep}
\setlength{\parindent}{\tempParIndent}%
#1
\end{minipage}%
}
\newcommand{\noteBody}[1]{%
\begin{minipage}[t]{5cm}
#1
\end{minipage}%
}
\newcommand{\textAndNote}[2]{%
% input:
% #1: The main text
% #2: The note
\setlength{\tempParIndent}{\parindent}
\begin{adjustwidth*}{}{-\marginparwidth-\marginparsep}%
\checkoddpage%
\ifoddpage%
\textBody{#1}%
\hspace{\marginparsep}%
\noteBody{#2}%
\else%
\noteBody{#2}%
\hspace{\marginparsep}%
\textBody{#1}%
\fi%
\end{adjustwidth*}}
\begin{document}
\lipsum[2]
\vspace{3cm}
\lipsum[2]
\textAndNote{\lipsum[3]}{This is a note.}
\clearpage
\textAndNote{\lipsum[4]}{This is a note, automaticly placed on the correct side.}
\lipsum[5]
\end{document}
答案2
由于\marginparwidth
比几何提供的边距更宽,我\marginparadjust
在边距中添加了缩进。请注意,此版本允许在文本中分页。
\documentclass[11pt,a4paper,twoside]{book}
\usepackage{geometry}
\geometry{papersize={16cm,24cm},layoutsize={16cm,24cm},top=2cm,bottom=2cm,left=2cm,right=2cm}
\usepackage{ifoddpage}
\usepackage{lipsum}
\newlength{\marginparadjust}% indentation into margin
\setlength{\marginparadjust}{1cm}
\newcommand{\mymarginpar}[2]% #1 = note, #2=text
{\par\checkoddpage\ifoddpage
\leftskip=\dimexpr \marginparwidth+\marginparsep-\marginparadjust\relax
\noindent\llap{\hspace{\dimexpr -\leftskip-\marginparadjust}%
\smash{\parbox[t]{\marginparwidth}{#1}}\hspace{\marginparsep}}%
\indent #2\par\leftskip=0pt
\else
\rightskip=\dimexpr \marginparwidth+\marginparsep-\marginparadjust\relax
\noindent\rlap{\hspace{\dimexpr\textwidth-\rightskip+\marginparsep}%
\smash{\parbox[t]{\marginparwidth}{#1}}}%
\indent #2\par\rightskip=0pt
\fi}%
\begin{document}
\lipsum[1]
\mymarginpar{This note is too wide to fit.}{\lipsum[2]}
\lipsum[3]
\newpage
\lipsum[1]
\mymarginpar{This note is too wide to fit.}{\lipsum[2]}
\lipsum[3]
\end{document}