利润数字有时看起来很尴尬

利润数字有时看起来很尴尬

我正在使用tufte-book具有名为的环境的类来排版我的文档marginfigure。这很好,但有时它与文档中的图片不太相符。例如在这个 MW 中:

% !TEX TS-program = xelatex
% !TEX encoding = UTF-8
\documentclass{biditufte-book}

\usepackage{ptext}
\usepackage{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,patterns,decorations.pathmorphing,arrows.meta,decorations.markings}


\usepackage[localise=on]{xepersian}
\settextfont{Times New Roman}
\setdigitfont{Times New Roman}


\begin{document}
    \chapter{مشاهده‌‌پذیری}
    \ptext[1-4]
    \section{مقدمه}
\begin{marginfigure}
\centering
\begin{tikzpicture}[domain=-2:2]
\draw[->] (-2,0) -- (2,0) node[right] {$x$};
\draw[->] (0,-2) -- (0,2) node[above] {$y$};
\coordinate (o) at (0,0);
\coordinate (a) at (1,{sin(1 r)});
\coordinate (b) at (-1,{sin(-1 r)});
\draw[dashed] (a|-o) node[below] {$x$} -- (a) -- (a-|o) node[left] {$f(x)$};
\draw[dashed] (b-|o) node[right] {$-f(x)$} -- (b) -- (b|-o) node[above] {$-x$};
\draw[color=blue] plot (\x,{sin(\x r)});
\end{tikzpicture}
\caption{ نمونه ای از یک تابع فرد}
\end{marginfigure}
\begin{marginfigure}
\centering
\begin{tikzpicture}[domain=-2:2]
\draw[->] (-2,0) -- (2,0) node[right] {$x$};
\draw[->] (0,-2) -- (0,2) node[above] {$y$};
\coordinate (o) at (0,0);
\coordinate (a) at (1,{cos(1 r)});
\coordinate (b) at (-1,{cos(-1 r)});
\draw[dashed] (a|-o) node[below] {$x$} -- (a) -- (a-|o);
\draw[dashed] (b-|o) node[above] {$f(x)$} -- (b) -- (b|-o) node[below] {$-x$};
\draw[color=blue] plot (\x,{cos(\x r)});
\end{tikzpicture}
\caption{ نمونه ای از یک تابع زوج}
\end{marginfigure}
    \section{مقدمه}
    \ptext[1]

\end{document}

我的图片没有完全显示在页面上。有没有什么方法可以防止这种情况发生?

在此处输入图片描述

答案1

宏由\marginpar提供,它使图形的中心与文本的基线对齐。这意味着图形的底部可以突出到文本区域下方。可以使用 将其升高,但必须首先确定页面上剩余多少空间。minipage\marginfigure\raisebox

这可以通过多种方式实现,但最简单的是使用tikzpagenodes

注意:我无法让 biditufte-book 工作,因此改用 tufte-book。

\documentclass{tufte-book}
\usepackage{tikzpagenodes}

\usepackage{showframe}% MWE only
\usepackage{lipsum}% MWE only

\newlength{\DistanceToBottom}
\newcommand{\GetDistanceToBottom}{\tikz[remember picture,overlay]{%
  \pgfextracty{\DistanceToBottom}{\pgfpointdiff{\pgfpointanchor{current page text area}{south}}%
    {\pgfpointorigin}}%
  \global\DistanceToBottom=\DistanceToBottom}}

\makeatletter
\renewenvironment{@tufte@margin@float}[2][-1.2ex]%
  {\FloatBarrier% process all floats before this point so the figure/table numbers stay in order.
  \begin{lrbox}{\@tufte@margin@floatbox}%
  \begin{minipage}{\marginparwidth}%
    \@tufte@caption@font%
    \def\@captype{#2}%
    \hbox{}\vspace*{#1}%
    \@tufte@caption@justification%
    \@tufte@margin@par%
    \noindent%
  }
  {\end{minipage}%
  \end{lrbox}%
  \marginpar{\GetDistanceToBottom
    \ifdim\DistanceToBottom>\dp\@tufte@margin@floatbox
      \usebox{\@tufte@margin@floatbox}%
    \else
      \raisebox{\dimexpr \dp\@tufte@margin@floatbox-\DistanceToBottom}%
        {\usebox{\@tufte@margin@floatbox}}%
    \fi
  }}
\makeatother

\begin{document}

\noindent\rule{1em}{40\baselineskip}
\begin{marginfigure}
  \rule{\marginparwidth}{20\baselineskip}
\end{marginfigure}

\the\DistanceToBottom\par
\lipsum[1-3]

\end{document}

完整页面

相关内容