在基于“ oneside
d”memoir
的文档中,两个自定义\newcommand
s 分别使用marginpar
和sidepar
命令。marginpar
s 位于右侧,sidepar
s 位于左侧。一些演示代码(根据后续评论更新):
\documentclass[a4paper,11pt,article,oneside]{memoir}
\pagestyle{simple}
\setlrmarginsandblock{*}{5cm}{*}
%\setmarginnotes{0.5em}{3cm}{2em} % margins?
\checkandfixthelayout
\usepackage{layouts} % layout
% custom sidepar, marginpar
\newcommand{\marginhead}[1]{\sidepar[{\footnotesize\vspace{0.8em}\flushleft #1}]{}}
\newcommand{\rdate}[1]{\normalmarginpar\marginpar{\footnotesize{\begin{flushleft}#1\end{flushleft}}}}
\begin{document}
\printinunitsof{mm}
\twocolumnlayoutfalse
\currentpage
\marginparswitchtrue
\pagedesign
% headers
\thispagestyle{empty}
\newpage
\marginhead{\sffamily {{\vskip -0.1em} MarginHead}}
Contributing in... \rdate{03.\,2015 -- 09.\,2015}
Monitoring... \rdate{Apr 2013 -- Dec 2013}
\marginhead{\sffamily {{\vskip -0.1em} MarginHead Two}}
Contributing in... \rdate{03.\,2015 -- 09.\,2015}
Monitoring... \rdate{Apr 2013 -- Dec 2013}
\end{document}
更新
我想
oneside
为dmemoir
页(左侧和右侧)的每一侧边距定义自定义宽度——由于\sidepar
其尺寸取自于,所以这可能吗\marginpar
?- 然后,移动左边距的起点,使其更靠近文本块,同时保持右边距以及文本主体(位置和宽度)不变。
- (另一更新)左边距的内容应与左对齐,或与其等效的(?)与右对齐。
在下面的模型中,我试图解释最终产品的外观。
我读完了手册、TeX.SE 和其他地方的各种问答。但我仍然找不到答案,如果可能的话。
另一个更新
更多详细信息请参见扎尔科通过两个模型来回答。https://tex.stackexchange.com/a/272493/8272得出:
所需的布局大致如下:
答案1
编辑(3): 您的问题不清楚,甚至没有说明和评论。在努力帮助您之前,我尝试指出,要做什么、怎么做或可以做什么(从您的角度或我猜测的问题是什么)来解决您的问题。正如您所回答的,答案不是您想要的 :-( )。
过了一会儿,我决定重新开始努力,并进行更多的解释(但不指望它会被认为是有帮助的,更多的是为了我的练习:-))。
在准备我的答案时,我做了以下步骤: - 删除提供的 MWE 的所有不相关部分(layout
与其相关的包和宏)
- 重新定义新命令的定义,现在借助添加的包以
ragged2e
智能方式将注释内容对齐到左右文本边框并消除所有出现的垂直移位(其目的尚不清楚):
\newcommand{\marginhead}[1]{\sidepar{\sffamily\footnotesize \RaggedLeft #1}} \newcommand{\rdate}[1]{\marginpar[]{\sffamily\footnotesize \RaggedRight #1}}
- 添加解释如何确定边注和边距注释与文本边框的距离(我假设边注和边距注释的距离必须相同):
\setmarginnotes{5mm} % distance between text border margin notes box {30mm}% width of margin notes box {3mm} % distance between two successive margin notes % note: it doesn't effect on side notes!
- 将
showframe
包添加到 MWE 进行显示,文本边框在哪里(由于 MWE 使用第一行缩进的预设,因此一行文本从文本边框移动 2em(缩进的长度)
现在我添加了lipsum
一个添加虚拟文本的包,希望它能更好地填充边注和边距注释的位置,并查看段落中第一行的缩进。如果你不喜欢缩进,那么就添加序言\setlenght{\indent}{0pt}
。此外,我还进一步简化了边注和边距注释命令的定义。
开放问题,如果想让边注(在页面左侧)与边注(在页面右侧)的距离不同。在这种情况下,您可以执行以下操作(未在我的 MWE 中显示):
- 通过
\setmarginnotes
设置两个音符的最小距离 - 相应地更改注释的新命令的定义,使其与文本的距离更大。例如
\rdate
\newcommand{\rdate}[1]{\marginpar[]{% \hspace{5mm}\begin{minipage}[t]{\marginparwidth-5mm} \sffamily\footnotesize \RaggedRight #1 \end{minipage}}}
在这种情况下,您需要将包添加calc
到文档前言中。如何查找零边距注释距离,然后将边距注释向右移动 5 毫米,如下所示:
完整的 WME 是:
\documentclass[a4paper,11pt,article,oneside]{memoir}
\pagestyle{simple}
%\setlength{\parindent}{0pt} % set paragraph indentation to zero
% preset margin notes, it can be changed according to user wish
\setmarginnotes{5mm} % distance between text border margin notes box
{30mm}% width of margin notes box
{3mm} % distance between two successive margin notes
% note: it doesn't have effect on side notes!
\usepackage{ragged2e} % for use in margin notes content align
\usepackage{calc}
\usepackage{showframe} % show page layout
\usepackage{lipsum} % for dummy text
% custom sidepar and marginpar
\newcommand{\marginhead}[1]{\sidepar{\sffamily\footnotesize
\RaggedLeft #1}}
\newcommand{\rdate}[1]{\marginpar[]{\RaggedRight #1}}
\begin{document}
\marginhead{MarginHead}% lonely side note
Some text:
\rdate{03.\,2015 -- 09.\,2015}
\marginhead{rule below show side note box width
\rule{\hsize}{1pt}}%
\lipsum[2]%
Monitoring... %
\rdate{03.\,2015 -- 09.\,2015
\rule{\hsize}{1pt}}
\end{document}
这使:
总结一下:
- 文本边框与边注和边距之间的距离取决于
\setmarginnotes
- 边注之间的垂直距离也由 决定
\setmarginnotes
,但这不决定侧注之间的垂直距离。如果它们太近,它们会互相覆盖 - 为了使旁注和边注之间的距离不同,应该
\setmarginnotes
设置最小距离,可以通过在边注内移动小页来实现更大的距离。 - 无需特别注意垂直对齐侧边注和边注。在正常情况下(当它们彼此不太靠近时),它们将与正文中的锚定线完美对齐。
- 未锚定在文本上的旁注,在锚定的文本中“生成”空行
结束!