• 0

كيف أُظهر خانة الملاحظات على شاشة ثانية باستخدام XeLaTeX وَ AtBeginSection؟

على برنامج LaTeX صممت عرضا لوثيقة، واريد تضمين بعض الملاحظات التي تساعدني أثناء القيام بعرض، وكان الكود كالتالي:

\documentclass{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen}

\AtBeginSection{
    \frame{\insertsectionhead}
}

\begin{document}
\section{My Section}
\begin{frame}{My Frametitle}
    My Content
\end{frame}
\note{
    My Notes
}
\end{document}

هذه نتيجة ماتوصلت إليه:

4VfBZ.thumb.png.af893529e5d7ef1627b1360c

لكن على ما يظهر هناك خطأ على  مستوى  fix/workaround، كيف أحل الأمر؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

على ما يبدو أن هناك خطأ في الخط المستعمل، حيث استعملت إطار النص باللون الأبيض.

الحل هو توليد لون الخط في كل frame. وذلك باستعمال {usebeamercolor[fg]{normal text\ .

ليصبح الكود المصدري للوثيقة على الشكل التالي:

\documentclass{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen}

\AtBeginSection{
    \frame{\insertsectionhead}
}

\makeatletter

\renewenvironment{beamer@frameslide}{%
    \ifbeamer@autobreak\else%
    \ifx\beamer@againname\@empty%
    {\let\@elt\beamer@restorecounter\beamer@overlaycounterresets}%
    \else%
    {\let\@elt\beamer@labelrestorecounter\beamer@overlaycounterresets}%
    \fi%
    \fi%
    \global\c@beamerpauses=1\relax%
    \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{%
        \stepcounter{subsectionslide}%
        \xdef\beamer@framestartpage{\the\c@page}% only first time
    }{\clearpage\beamer@notesactions}% cleanup from previous slide
    \hypersetup{pdfpagetransition=R}%
    \hypersetup{pdfpageduration=}%
    \@ifundefined{thispdfpagelabel}{}{%
        \thispdfpagelabel{\insertframenumber}}%
    \xdef\beamer@frameendpage{\the\c@page}% every time
    \beamer@setuplinks%
    \beamer@displaybreak%
    \global\setbox\beamer@zoombox=\box\voidb@x%
    \def\beamer@zoomer{}%
    \beamer@slidehaszoomfalse%
    \gdef\insertframetitle{}%
    \gdef\insertframesubtitle{}%
    \gdef\beamer@frametitle{}%
    \gdef\beamer@shortframetitle{}%
    \gdef\beamer@framesubtitle{}%
    \let\beamer@startcomment=\beamer@startcommentinframe%
    % Start slide:
    \usebeamercolor[fg]{normal text}% NEW
    \beamer@framenotesbegin%
    \global\setbox\beamer@framebox=\vbox\bgroup%
    \beamer@inframetrue%
    \let\frame=\framelatex% inside frames, use LaTeX's \frame command
    \begin{beamer@framepauses}%
        \refcounter{framenumber}%use frame number for  \label
        \ifbeamer@shrink%
        \hsize=\beamer@shrinkfactorinv\hsize%
        \textwidth=\beamer@shrinkfactorinv\textwidth%
        \linewidth=\beamer@shrinkfactorinv\linewidth%
        \fi%
        % Insert labels if necessary:
        \ifx\beamer@againname\@empty\else%
        \nointerlineskip\vbox to0pt{\vss%
            \label<\the\beamer@slideinframe>{\beamer@againname<\the\beamer@slideinframe>}%
            \ifnum\beamer@slideinframe=1\relax%
            \label<1>{\beamer@againname}%
            \fi%
        }\nointerlineskip%
        \fi%
        \ifx\beamer@framehypertargets\@empty\else%
        \nointerlineskip\vbox to0pt{\vss%
            \beamer@framehypertargets%
            \global\let\beamer@framehypertargets\@empty%
        }\nointerlineskip%
        \fi%
        \vskip-\parskip\vbox{}%
        \beamer@initfirstlineunskip%
        \ifbeamer@plainframe\nointerlineskip\fi%
        \beamer@checkframetitle}%
    {\par
    \end{beamer@framepauses}%
    \egroup%
    \ifx\beamer@frametitle\@empty%
    \setbox\beamer@frametitlebox=\box\voidb@x%
    \else%
    \setbox\beamer@frametitlebox=\vbox{%
        \vbox{}%
        {\parskip0pt\usebeamertemplate***{frametitle}\vskip0.25em}%
    }%
    \fi%
    \ifbeamer@plainframe%
    \beamer@frametextheight=\paperheight%
    \else%
    \beamer@frametextheight=\textheight%
    \fi%
    \advance\beamer@frametextheight by-\ht\beamer@frametitlebox%
    \advance\beamer@frametextheight by-\dp\beamer@frametitlebox%
    \advance\beamer@frametextheight by-\beamer@frametopskip%
    \ifbeamer@shrink%
    \beamer@shrinkframebox%
    \fi%
    \ifx\beamer@zoomer\@empty
    \setbox\beamer@framebox=\vbox{%
        \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak%
        \nointerlineskip\unvbox\beamer@frametitlebox%
        \nobreak%
        \ifbeamer@autobreak%
        \vskip\beamer@frametopskipautobreak%
        \else%
        \vskip\beamer@frametopskip%
        \fi%
        \nobreak%
        \nointerlineskip\box\beamer@zoombox\nointerlineskip%
        \nobreak%
        \ifbeamer@slidehaszoom\box\beamer@framebox\else\unvbox\beamer@framebox\fi%
        % bottom skip is added in autobreakframebox
    }%
    \beamer@autobreakframebox%
    \else%
    \beamer@zoomer%
    \fi%
    \beamer@undolabels%
    \beamer@framenotesend%
    \box\beamer@framebox}

\makeatother

\begin{document}
\section{My Section}
\begin{frame}{My Frametitle}
    My Content
    \note{hgv}
\end{frame}

\end{document}

النتيجة بعد إضافة التعديلات:

4YfSs.thumb.png.23298f99104a3741120fdb4d

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن