我正在使用\documentclass{tufte-book}
并有一系列长表,我想将它们的标题放在边缘处。
我找到了一个解决方案来重新定义此类表格的标题这个帖子,效果非常好。
\makeatletter
\def\LT@makecaption#1#2#3{%
\noalign{\smash{\hbox{\kern\textwidth\rlap{\kern\marginparsep
\parbox[t]{\marginparwidth}{%
\@tufte@caption@font \@tufte@caption@justification \noindent
#1{#2: }\ignorespaces #3}}}}}}
\makeatother
我也使用 把图表放在页边空白处,marginfigure
但这些图表标题的字体大小比其他文本大。我在Tufte 范例书我可以使用 (参见第 31 页) 自定义边距内容的样式...
\setsidenotefont{\footnotesize}
\setcaptionfont{\footnotesize}
\setmarginnotefont{\footnotesize}
\setcitationfont{\footnotesize}
...这些都可以,但它们不会影响字体的大小,marginfigure
并且在部分(见第 23 页)中也没有提及/描述marginfigure
如何自定义它们。然而,它们在示例文档中看起来都是相同的大小
我搜索了一下,找到了推荐这里使用包/选项,这可以工作,但它会覆盖在边缘\usepackage[font=footnotesize]{caption}
放置标题所定义的自定义标题,因此它不是一个真正可行的选择。longtable
有人可以建议如何修改标题的字体大小marginfigure
或如何使用caption
包但仍定义要放置在边缘的长表标题吗?
提前致谢。
答案1
由于 \marginpar 在浮点数中不起作用,因此我使用了 Tikzpagenodes。为图形和表格创建单独的替换比将两者合并更容易。
\documentclass{article}
\usepackage{tikzpagenodes}
\usepackage{mwe}
% repacement caption
\newcommand{\figcaption}[1]% #1 = text
{\refstepcounter{figure}%
\addcontentsline{lof}{figure}{\numberline {\arabic{figure}}{\ignorespaces #1}}%
\tikz[remember picture,overlay]{\coordinate (here) at (0,0);%
\path (here -| current page marginpar area.west) node[below right,inner sep=0pt]
{\parbox{\marginparwidth}%
{\raggedright\footnotesize Figure \arabic{figure}:\newline{}#1}};}%
\newline\vspace{-\baselineskip}}%
\begin{document}
\listoffigures
\medskip
\lipsum[1]
\begin{figure}[htp]
\figcaption{A very very very very long caption.}
\centering\includegraphics{example-image}
\end{figure}
\lipsum[2]
\end{document}