-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
检查清单
- 我已在 issues 中进行搜索(包括已关闭的问题)
操作系统
windows10, overleaf
TeX 发行版
TeXlive 2021
描述问题
描述出现的情况
最近在做一个义务排版,是想实现边注的效果。主要是希望实现几个内容:
- 实现margin note, 但边注是在每章指定的位置开始top-bottom 依次排列,而不是像marginpar/marginnote那样贴在对应行附近。默认每章有一个起点【因为章首页的首段不是在页面的最上方】
- 跨页的边注自动续到下一页。
- 支持two side设定。
- 本页的边注最好在本页出现。
- 边注之间可设置间隔。
- 可在正文或边注中插入图片
- 边注有note marker,并且在正文中marker 是上标,在边注中是正常大小。
给出您解决问题所进行的尝试
- memoir。 发现memoir的sidefootnote非常好用,尝试了下可以满足2,3,5。功能4可能也默认实现了。功能7也可以修改。但是功能1不能实现,默认的sidefootnote是bottom up排列。也没有办法设置起点。 【问题是如何使用memoir中的sidefootnote,但是让其是top down而不是bottom up,并且每章可以设置一个起始高度间隔。】
- https://tex.stackexchange.com/questions/70312/how-can-i-replace-footnotes-for-non-floating-marginal-notes?noredirect=1&lq=1 提供了一个方案,是利用了一个新的box ftbox将footin的内容装进去,然后重新排版outpubox和ftbox。这个默认的代码就可以实现1,2,3。功能4看起来也实现了,但我看不懂是怎么实现的,代码中也没有显式的写。功能5我通过加vspace满足了,功能7 也满足了。但是有两个问题,一个功能6在正文中插入图片会导致整个格式都错乱,甚至超出页面范围。 一个是边注区域要么下面不满,或者上面超出正文一点点。【问题是怎么在正文中正常插入图片,改善下边注排满和上面超出的问题。】
给出复现步骤
- https://www.overleaf.com/1752198231rgbhcypjqzdr#abdf2f 【memoir实现】
- https://www.overleaf.com/8475689682twsnbthvkqsn#4406f7 【方法2,问题出现在第2,3,4页】
最小工作示例(MWE)
- memoir实现
\documentclass[book]{memoir}
% \let\subsection\section % undo article option change of divisions
% \let\section\chapter % ditto
\usepackage{mwe}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{wrapfig}
\usepackage{xcolor}
\usepackage{xeCJK}
\sidefootmarkstyle{{\color{red}{{#1}}:} }
\begin{document}
\section{First}
中英文皆可以混排。 sssss這是繁體中文。
\lipsum[2]
Some sidefootnoted text.\sidefootnote{Margined footnote.
{\includegraphics[width=0.77\sidefootwidth]{example-image}
\captionof{figure}{This is a test case.}
}}
\lipsum[4]
Some sidefootnoted textSome sidefootnoted textSome sidefootnoted textSome sidefootnoted text.\sidefootnote{\lipsum[1-3]}Some sidefootnoted textSome sidefootnoted textSome sidefootnoted textSome sidefootnoted text.
\par\begin{wrapfigure}{r}{0.55\textwidth}
\centering\vspace{-\baselineskip}
\includegraphics[width=0.25\textwidth]{example-image}
\caption{SSS}
\end{wrapfigure}
\begin{figure}[h]
\centering
\includegraphics[width=0.25\textwidth]{example-image}
\caption{new img}
\end{figure}
\lipsum[1-3]
\end{document}- 方法2 实现
\documentclass[twoside]{ctexbook}
\usepackage[%
a4paper,
left=2cm,
textheight=14cm,
textwidth=10cm,
paperheight=18cm,
marginparsep=0.5cm,
marginparwidth=7cm
]{geometry}
\usepackage{lipsum}
\usepackage{zhlipsum}
\usepackage{mwe}
\setlength{\footnotesep}{5\baselineskip}
\usepackage{xcolor}
\usepackage{caption}
\newbox\ftbox
\setbox\ftbox\vbox{} %
\makeatletter
\long\def\@footnotetext#1{%
\global\setbox\ftbox\vbox{%
\unvbox\ftbox
\reset@font\footnotesize
\hsize\marginparwidth \@parboxrestore
\interlinepenalty 50
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\protected@edef\@currentlabel{%
\csname p@footnote\endcsname\@thefnmark
}
% \vspace{1pt}
\color@begingroup
\@makefntext{%
#1
\@finalstrut\strutbox
}%
\color@endgroup
}%
}
% ftbox保存所有的footnotes
%
\gdef\@makecol{%
\ifvoid\footins
\setbox\@outputbox\box\@cclv
\else
\setbox\@outputbox\vbox{%
\boxmaxdepth\@maxdepth
\unvbox\@cclv
\vskip\skip\footins
\color@begingroup
\normalcolor
\footnoterule
\unvbox\footins
\color@endgroup
}%
\fi
% 有脚注,就解包cclv再合并footins, 没有脚注,就直接设置为cclv,主要设置了outputbox的内容
% 前面设置了一个ftbox 放脚注, 这里又有了一个outputbox 放 正文和脚注
\global\setbox\@ne\vbox{\vsplit\ftbox to\textheight}
% 这里是切成list还是只是去了第一段呢?剩下的怎么办? 只切了第一段,剩下的还在ftbox中
% 按照textheight切怎么保证每一页的注释能出现在每一页该在的那一页呢?footnote怎么保证是对应页数的?
\if@twoside\ifodd\c@page
\setbox\@outputbox\vbox{%
\hbox{
\box\@outputbox
\rlap{\kern\marginparsep\box\@ne}
}
}%
\else
\setbox\@outputbox\vbox{%
\hbox{\llap{\box\@ne\kern\marginparsep}\box\@outputbox}
}%
\fi
\else
\setbox\@outputbox\vbox{%
\hbox{\box\@outputbox\rlap{\kern\marginparsep\box\@ne}}
}%
\fi
% 又设置了一遍outputbox里面的内容,似乎\box用完一遍里面就清空了,但是outputbox不是已经有脚注在内了吗?
\let\@elt\relax
\xdef\@freelist{\@freelist\@midlist}%
\global\let\@midlist\@empty
\@combinefloats
% 看起来无关的一段
\ifvbox\@kludgeins
\@makespecialcolbox
\else
\setbox\@outputbox\vbox to \@colht{%
\@texttop
\dimen@\dp\@outputbox
\unvbox\@outputbox
\vskip-\dimen@
\@textbottom
}%
\fi
% 又set outbox?但是设置0.5\@colht 也没有看到改变,怎么调整高度?
% 到底在哪里打印的呢?每一页执行一次吗?
\global\maxdepth\@maxdepth
}
\makeatother
\usepackage{wrapfig}
\usepackage{graphicx}
\begin{document}
\chapter{sss1}
\setbox\ftbox\vbox{\vspace{145pt}}
每建马先口住月大,究平克满现易手,省否何安苏京。两今此叫证程事元七调联派业你,全它精据间属医拒严力步青。厂江
内立拉清义边指,况半严回和得话,状整度易芬列。再根心应得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统
定发几满斯究后参边增消与内关,解系之展习历李还也村酸。制周心值示前她志长步反,和果使标电再主它这,即务解旱八
战根交。是中文之象万影报头,与劳工许格主部确,受经更奇小极准。形程记持件志各质天因时,据据极清总命所风式,气
太束书家秀低坟也。期之才引战对已公派及济,间究办儿转情革统将,周类弦具调除声坑。两了济素料切要压,光采用级数
本形,管县任其坚。切易表候完铁今断土马他,领先往样拉口重把处千,把证建后苍交码院眼。较片的集节片合构进,入化
发形机已斯我候,解肃飞口严。技时长次土员况属写,器始维期质离色,个至村单原否易。重铁
\begin{figure}[h!]
\centering % 表示居中
\includegraphics[width=4.5cm,height=5cm]{example-image}
\caption{test} \label{sample-figure}
\end{figure}
看年程第则于去,且它后基格并下,每收感石形步而
每建马先\footnote{\zhlipsum[1]}口住月大,究平克满现易手,省否何安苏京。两今此叫证程事元七调联派业你,全它精据间属医拒严力步青。厂江内立拉清义边指,况半严回和得话,状整度易芬列。再根心应得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统定发几满斯究后参边增消与内关,解系之展习历李还也村酸。制周心值示前她志长步反,和果使标电再主它这,即务解旱八战根交。是中文之象万影报头\footnote{\zhlipsum[1]},与劳工许格主部确,受经更奇小极准。形程记持件志各质天因时,据据极清总命所风式,气太束书家秀低坟也。期之才引战对已公派及济,间究办儿转情革统将,周类弦具调除声坑。两了济素料切要压,光采用级数本形,管县任其 \zhlipsum[1] \footnote{\zhlipsum[1]}坚。切易表候完铁今断土马他,领先往样拉口重把处千,把证建后苍交码院眼。较片的集节片合构进,入化发形机已斯我候,解肃飞口严。技时长次土员况属写,器始维期质离色,个至村单原否易。重铁看年程第则于去,且它后基格并下,每收感石形步而
水厂共当而面三张,白家决空给意层般,单重总歼者新。每建马先口住月大,究平克满现易手,省否何安苏京。两今此
叫证程事元七调\par\begin{wrapfigure}[4]{r}{0.5\textwidth}
\centering\vspace{-\baselineskip}
\includegraphics[width=0.25\textwidth]{example-image}
\caption{SSS}
\end{wrapfigure} 联派业你,全它精据间属医拒严力步青。厂江内立拉清义边指,况半严回和得话,状整度易芬列。再根心应
得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统定发几满斯究后参边增消与内关,解系之展习历李还也村酸。
制周心值示前她志长步反,和果使标电再主它这,即务解旱八战根交。是中文之象万影报头\footnote{\zhlipsum[1-2]},与劳工许格主部确,受经更奇水厂共当而面三张,白家决空给意层般,单重总歼者新。\footnote{\zhlipsum[1]}每建马先口住月大,究平克满现易手,省否何安苏京。两今此叫证程事元七调联派业你,全它精据间属医拒严力步青。厂江内立拉清义边指,况半严回和得话,状整度易芬列。再根心应得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统定发几满斯究后参边增消与内关,解系之展习历李还也村酸。制周心值示前她志长步反,和果使标电再主它这,即务解旱八
战根交。是中文之象万影报头\footnote{\zhlipsum[1]},与劳工许格主部确,受经更奇小极准。形程记持件志各质天因时,据据极清总命所风式,气太束书家秀低坟也。期之才引战对已公派及济,间究办儿转情革统将,周类弦具调除声坑。两了济素料切要压,光采用级数本形,管县任其坚。切易表候完铁今断土马他,领先往样拉口重把处千,把证建后苍交码院眼。较片集节片合构进,入化发形机已斯我候,解肃飞口严。技时长次土员况属写,器始维期质离色,个至村单原否易。重铁看年程第则于去,且它后基格并下,每收感石形步而
水厂共当而面三张,白家决空给意层般,单重总歼者新。每建马先口住月大,究平克满现易手,省否何安苏京。两今此叫证程事元七调联派业你,全它精据间属医拒严力步青。厂江内立拉清义边指,况半严回和得话,状整度易芬列。再根心应得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统定发几满斯究后参边增消与内关,解系之展习历李还也村酸。制周心值示前她志长步反,和果使标电再主它这,即务解旱八战根交。是中文之象万影报头\footnote{\zhlipsum[1-2]},与劳工许主部确,受经更奇
\zhlipsum[1]
水厂共当而面三张,白家决空给意层般,单重总歼者新。每建马先口住月大,究平克满现易手,省否何安苏京。两今此
叫证程事元七调联派业你,全它精据间属医拒严力步青。厂江内立拉清义边指,况半严\begin{figure}[h!]
\centering % 表示居中
\includegraphics[width=2cm,height=5cm]{example-image}
\caption{test} \label{sample-figure}
\end{figure}回和得话,状整度易芬列。再根心应得信飞住清增,至例联集采家同严热,地手蠢持查受立询。统定发几满斯究后参边增消与内关,解系之展习历李还也村酸。制周心值示前她志长步反,和果使标电再主它这,即务解旱八战根交。是中文之象万影报头\footnote{\zhlipsum[1-2]\includegraphics[width=0.77\linewidth]{example-image}
\captionof{figure}{This is a test case.}
\label{fig:test}},与劳工许格主部确,受经更奇
\end{document}
用 XeLaTeX 编译后,日志文件输出【请见附件】
链接
- TeX.SX: https://tex.stackexchange.com/questions/70312/how-can-i-replace-footnotes-for-non-floating-marginal-notes?noredirect=1&lq=1
- TeX.SX: https://tex.stackexchange.com/questions/69517/send-and-stack-marginpar-to-the-top-or-the-bottom-of-the-page
其他信息
我还做了这些尝试:
- marginnote, marginpar都是贴在对应行的边注,而不是top down依次排列的边注;而且有时候边注之间还会重叠,需要手动调节offset,而且也没有counter计数边注,整个功能不是很对应marginnote/marginpar的初衷。
- footmisc有一个side选项,但是查看了文档后发现是套用marginpar实现的。
- https://tex.stackexchange.com/questions/69517/send-and-stack-marginpar-to-the-top-or-the-bottom-of-the-page 提供了一套方案,但是不满足“跨页的边注会自动续到下一页”,也不支持two-side。
- paracol, 这种随时随地 能切换multi col和单栏的设定很好,但是考虑到把单独 的一栏都用来放边注,而且还要对齐,还要设置counter计数,感觉和paracol的设计也对不上。
- Tufte-LATEX, 它 的边注好用,但是边注之间的offset要自己调节,默认还是贴在对应行的边注。
附件
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels