This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Problem #224

Kinh nghiệm “nhỏ” với gói beamer.sty

Added by nqt over 4 years ago. Updated over 2 years ago.

Status: Rejected Start Date: 27-11-2008
Priority: High Due date: 31-03-2010
Assigned to: - % Done:

100%

Category: trình diễn: beamer
Target version: 2010_devel
Resolution: Rejected
Votes: 2/2

Description

Trong bài viết này, mình đóng góp một số kinh nghiệm khi thiết kế trình diễn trong \LaTeX bằng gói beamer!

Chúng ta biết rằng: Trong gói beamer.sty đã thiết kế sẵn rất nhiều theme (kiểu dáng) và mình thấy rắng: các loại theme này đáp ứng đủ nhu cầu trình diễn của chúng ta: default, Boadilla, bergen, Madrid, v.v... mặt khác rất ít ai có khiếu “thẩm mỹ” để tạo nên những theme mới.

Nhận thấy rằng: theme Berkeley, PaloAlto cho ta bản trình diễn (theo mình) rất chi tiết bao gồm bản mục lục (cái này quan trọng lắm đó) và ít chiếm diện tích so với Szeged, Copenhagen, JuanLesPins

Chúng ta bắt đầu soạn trình diễn \LaTeX bằng gói beamer (ở đây, mình dùng theme PaloAlto) như sau:

\NeedsTeXFormat{LaTeX2e}
\documentclass[12pt]{beamer}
\usepackage[utf8]{vietnam}
\usepackage{amsmath,amscd,amsxtra,amssymb}
\newtheorem{dinhli}{Định lí}
\parindent0pt
\usefonttheme{default}
\usetheme[left,width=13mm]{PaloAlto} 

\setbeamersize{text margin left=0.3 cm, text margin right =0.4 cm}
\title[Báo cáo]{\textbf {Báo cáo}}
\subtitle{Luận văn tốt ngiệp}
\subject {Bảo vệ luận văn, Tháng XX/XXXX}
\author[N.Q.Thi]{%
  \texorpdfstring{--Người thực hiện: \textbf{Nguyễn Quang Thi}--}
  {Nguyễn Quang Thi, email: [email protected]}}
\institute[Khóa XXXX-XXXX]{Học viên khoá: XXXX-XXXX\\[5pt]
\textsc {Đại học ABC, trường Đại học CDEF}
}
\begin{document}
\frame{\maketitle}
\end{document}
% Kết quả là hinh1.pdf

Đây rõ ràng là trang tiêu đề. Câu hỏi đặt ra:

Câu hỏi 1: Làm thế nào để bỏ chữ “Ngày 27 tháng 11 năm 2008” hoặc đổi thành chữ khác, chẳng hạn “Năm 2008” đây?.

Đáp: Chúng ta có thể đặt \date{} hoặc \date{Năm 2008} trước \begin{document}

Câu hỏi 2: Làm thế nào để khi mở file *.pdf này thì bản trình diễn sẽ tự “bung ra” toàn màn hình (chế độ full screen, trong Acrobat reader có phím tắt là Ctrl-L).

Đáp: Ta biết rằng gói beamer đã nạp sẵn gói hyperef. Và hiển nhiên nếu ta nạp thế này

\usepackage[pdfpagemode=FullScreen,
   bookmarks=false,unicode,
   bookmarksopen=false,unicode]{hyperref}

trong đó:

pdfpagemode=FullScreen giúp “bung ra” toàn màn hình khi xem screen
bookmarks=false không cho hiện thanh bookmarks khi xem file *.pdf
bookmarkrksopen=false không cho “khai triển” đề mục con khi xem bookmarks
unicode cho phép hiển thị tiếng Việt (khi bạn chọn bộ font Unicode) cho bookmarks và khi xem “thuộc tính” file *.pdf của mình. Trong Acrobat Reader 8.0 bạn chọn File->Properties sẽ thấy được. Bạn đồng ý chứ (quan trọng lắm rồi):);)

thì khi biên dịch sẽ báo lỗi vì gói hyperref đã nạp rồi!

Khắc phục: Ta có thể gọi như sau:

\hypersetup{pdfpagemode=FullScreen,
   bookmarks=false,unicode,bookmarksopen=false,unicode}

Bây giờ thì đẹp rồi đó.

Khi báo cáo “trình diễn” thì rõ ràng việc đánh số các định lí, bài tập “liên tiếp” là không “phù hợp”. Chẳng hạn: Mình có tất cả 20 định lí được đánh số liên tiếp từ 1 đến 20: Định lí 1, Định lí 2, …, Định lí 20.

Câu hỏi 3

Nếu mình chỉ muốn trình diễn 10 định lí trong 20 định lí này, chẳng hạn: 1,3,4,6,8,11,12, 15,16,19 thì làm thế nào? Vụ này hơi bị “tầm thường” ? Đúng vậy, nếu bạn thích định nghĩa kiểu như là:

\newtheorem*{dinhli1}{Định lí 1}
\newtheorem*{dinhli3}{Định lí 3}
% .....................

thì sẽ cho ra như sau:

\NeedsTeXFormat{LaTeX2e}
\documentclass[12pt]{beamer}
\usepackage[utf8]{vietnam}
\hypersetup{pdfpagemode=FullScreen,bookmarks=false,
   unicode,bookmarksopen=false}
\newtheorem{dinhli}{Định lí}
\parindent0pt
\usefonttheme{default}
\usetheme[left,width=13mm]{PaloAlto}

%====================================

\setbeamersize{text margin left=0.3 cm, text margin right =0.4 cm}
\newtheorem*{dinhli1}{Định lí 1}
\newtheorem*{dinhli3}{Định lí 3}

\title[Báo cáo]{\textbf {Báo cáo}}
\subtitle{Luận văn tốt ngiệp}
\subject {Bảo vệ luận văn, Tháng XX/XXXX}
\author[N.Q.Thi]{%
   \texorpdfstring{--Người thực hiện: \textbf{Nguyễn Quang Thi}--}
   {Nguyễn Quang Thi, email: [email protected]}}
   \institute[Khóa XXXX-XXXX]{Học viên khoá: XXXX-XXXX\\[5pt]
   \textsc {Đại học ABC, trường Đại học CDEF}
}
\begin{document}
%\frame{\maketitle}
\begin{frame}

\begin{dinhli1}
   Những chiếc giỏ xe chở đầy hoa phượng. Em chở mùa hè của tôi đi đâu?
\end{dinhli1}

\begin{dinhli3}
Chùm phượng vĩ em cầm là tuổi tôi mười tám.
\end{dinhli3}

\end{frame}
\end{document}
%Kết quả là hinh2.pdf

Híc! 10 cái định lí thì sẽ định nghĩa 10 cái, đau đầu lắm và hiển nhiên là mã nguồn \TeX trông rất tệ. Bạn đồng ý với mình chứ! Cách khắc phục của mình là: nạp lệnh sau (lưu ý bạn phải nhập lại đúng như thế!):

\setbeamertemplate{theorem begin}
{
\begin{\inserttheoremblockenv}
{\inserttheoremheadfont
\inserttheoremname

\ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi
\inserttheorempunctuation
}
}

vào trước \begin{document}

và chỉ cần định nghĩa như sau:

\newtheorem{dinhli}{Định lí} 

và chỉ cần gọi là

\begin{dinhli}[1]
% nội dung
\end{dinhli1} 

để cho ra Định lí 1. Bạn thấy tiện lợi không nào? Đây là ví dụ nè

\NeedsTeXFormat{LaTeX2e}
\documentclass[12pt]{beamer}
\usepackage[utf8]{vietnam}
\hypersetup{pdfpagemode=FullScreen,
   bookmarks=false,unicode,bookmarksopen=false}
\parindent0pt
\usefonttheme{default}
\usetheme[left,width=13mm]{PaloAlto}
%====================================
\setbeamersize{text margin left=0.3 cm, text margin right =0.4 cm}
\newtheorem{dinhli}{Định lí}
\setbeamertemplate{theorem begin}
{
\begin{\inserttheoremblockenv}
{\inserttheoremheadfont
\inserttheoremname
\ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi
\inserttheorempunctuation
}
}
\title[Báo cáo]{\textbf {Báo cáo}}
\subtitle{Luận văn tốt ngiệp}
\subject {Bảo vệ luận văn, Tháng XX/XXXX}
\author[N.Q.Thi]{%
   \texorpdfstring{--Người thực hiện: \textbf{Nguyễn Quang Thi}--}
   {Nguyễn Quang Thi, email: [email protected]}}
\institute[Khóa XXXX-XXXX]{Học viên khoá: XXXX-XXXX\\[5pt]
\textsc {Đại học ABC, trường Đại học CDEF}
}

\begin{document}
%\frame{\maketitle}
\begin{frame}
\frametitle{Đây là các định lí}
\begin{dinhli}[1]
   Những chiếc giỏ xe chở đầy hoa phượng. Em chở mùa hè của tôi đi đâu?
\end{dinhli}
\begin{dinhli}[3]
Chùm phượng vĩ em cầm là tuổi tôi mười tám.
\end{dinhli}
\end{frame}
\end{document}
%Kết quả là hinh3.pdf

Khỏe rồi! Bạn có thể làm tương tự như thế đó.

Câu hỏi 4) Bạn thấy rằng trong các HÌNH: hinh2.pdf, hinh3.pdf thì phần header (khối màu xanh ở trên cùng của mỗi slide) hình như hơi “cao lắm”. Làm thế nào để khắc phục cho nó ”thấp hơn”.

Đáp:
Bạn cứ nạp lệnh sau vào trước \begin{document}

\makeatletter
\[email protected]=1.5\baselineskip 
\makeatother
%Kết quả hinh4.pdf

bạn có thể thay con số 1.5 bằng số nhỏ hơn.

PS: Đây là kinh nghiệm của mình. Mình có kèm theo các file kết quả .pdf ở dưới. Hy vọng nó sẽ giúp ích cho các bạn khi làm quen với gói beamer.sty!
Mong được trao đổi cùng các bạn hơn.

Thân ái!

hinh1.PDF - h1 (47.1 kB) nqt, 27-11-2008 03:13

hinh2.pdf - h2 (33.2 kB) nqt, 27-11-2008 03:13

hinh3.pdf - h3 (45.5 kB) nqt, 27-11-2008 03:13

hinh4.pdf - h4 (45.5 kB) nqt, 27-11-2008 03:13


Related issues

related to TeX - Problem #235: Cach tao hieu ung trong beamer Rejected 01-12-2008

History

Updated by over 4 years ago

  • Subject changed from Những kinh nghiệm “nhỏ” của mình khi dùng gói beamer.sty to Kinh nghiệm “nhỏ” với gói beamer.sty
  • Category set to trình diễn: beamer
  • Status changed from New to Assigned
  • Assigned to set to 3
  • Priority changed from Normal to High
  • Target version set to 2008_help

Updated by over 4 years ago

    1. nqt: chứ không phải
    2. Vui lòng chọn preview trước khi gửi bài

    Updated by nqt over 4 years ago

      Cảm ơn kyanh đã sửa lỗi. Nhờ kyanh sửa lại một số ý (do chưa quen nên typeset hơi vội) sau:
      1. bookmarkrksopen=false thành bookmarksopen=false
      2. Thay đổi

      \begin{dinhli}[1]
      % nội dung
      \end{dinhli1}
      

      thành

      \begin{dinhli}[1]
      % nội dung
      \end{dinhli}% không có số 1
      

      3. và thay

      \setbeamertemplate{theorem begin}
      {
      \begin{\inserttheoremblockenv}
      {\inserttheoremheadfont
      \inserttheoremname
      
      \ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi
      \inserttheorempunctuation
      }
      }
      

      thành

      \setbeamertemplate{theorem begin}
      {
      \begin{\inserttheoremblockenv}
      {\inserttheoremheadfont
      \inserttheoremname % xóa dòng trắng sau dòng này.
      \ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi
      \inserttheorempunctuation
      }
      }
      

      Thật sự xin lỗi các bạn nhiều.

      Updated by nqt over 4 years ago

        Câu hỏi 5. Trong khi trình diễn bằng gói beamer.sty, nếu nội dung rất dài và không chứa đủ trên 1 “trang”, trong beamer gọi là frame thì ta làm như thế nào?
        Trả lời:
        Trong gói beamer.sty, tác giả đã định nghĩa sẵn lệnh \framebreak dùng để ngắt các trang. Việc nạp nó được thực hiện, chẳng hạn, thế này:

        \documentclass{beamer}
        \usepackage[utf8]{vietnam}
        \usetheme{PaloAlto}
        \setbeamertemplate{frametitle continuation}[from second][\tiny{(tiếp theo...)}]
        \begin{document}
        \begin{frame}[allowframebreaks=2]
        \transwipe[direction=0,duration=1]
        \frametitle{Những chiếc giỏ xe}
        nội dung ở trang 1.
        
        \framebreak
        \pause
          % bạn thấy chưa! Không thể xem nội dung ở trang này được vì lệnh \pause
          % hoạt động và không cho thấy nội dung tiếp theo đó.
          % Mình để lệnh \pause này vào để thấy hiệu ứng của nó.
        nội dung ở trang 2.
        \end{frame}
        \end{document}

        Thế là xong!
        Bạn chú ý ở trang 2, phần tiêu đề \frametitle bên cạnh chữ “Những chiếc giỏ xe” là “(tiếp theo …)” nhé.
        Trông có vẻ chuyên nghiệp rồi. Đây có lẽ là ý nghĩa quan trọng của lệnh \framebreak (mình nghĩ như vậy).
        Nhưng mà: Bạn chú ý là trang trình diễn này bị mất hiệu ứng chuyển trang \transwipe[direction=0,duration=1] rồi! Hoặc là mình thiết lập bị sai?

        Mình có ý kiến thế này: Mình thấy rằng, các hiệu ứng xuất hiện khi trình diễn đóng vai trò rất quan trọng và giúp cho việc báo cáo trở nên thú vị hơn. Nhưng tác giả khi thiết kế lệnh \framebreak để ngắt trang thì nó đồng thời tắt hết các hiệu ứng chuyển trang. Rất tiếc là Tiếng Anh của mình amateur lắm và không dám email để góp ý cho tác giả gói beamer.sty được :(!. Hy vọng các bạn có thể giúp mình nhé.

        Sau khi chịu khó ngâm cứu, mình tạm khắc phục như thế này:

        \documentclass{beamer}
        \usepackage[utf8]{vietnam}
        \usetheme{PaloAlto}
        \begin{document}
        \begin{frame}
        \transwipe[direction=0,duration=1]
        \frametitle{Những chiếc giỏ xe}
        nội dung ở trang 1.
        \end{frame}
        
        \begin{frame}
        \transwipe[direction=0,duration=1]
        \frametitle{Những chiếc giỏ xe}
        \pause % lệnh dừng lại để bạn có thể thấy hiệu ứng thôi mà.
         nội dung ở trang 2.
        \end{frame}
        \end{document}
        

        Như thế, mã nguồn \TeX hơi bị xấu nhưng ta sẽ thấy được các hiệu ứng \transwipe[direction=0,duration=1] đó!

        Updated by nqt about 4 years ago

          Một tài liệu hướng dẫn thú vị (tiếng Việt) cho gói Beamer!
          Đây là link cung cấp một tài liệu hướng dẫn sử dụng gói Beamer.sty của tác giả DongPhD
          http://mathvn.com/2009/01/trnh-chiu-vi-latex-bng-gi-beamer.html
          Thú vị lắm nhé.
          Trân trọng cảm ơn tác giả DongPhD nhiều.
          Chúng ta cần học hỏi thêm nhiều lắm lắm....
          Chào mừng Tet con trâu 2009 (bây giờ là 30 Tet con chuột), các bạn ơi.

          Updated by over 3 years ago

          • Target version changed from 2008_help to 2009_devel

          Updated by about 3 years ago

          • Due date set to 31-03-2010
          • Target version changed from 2009_devel to 2010_devel

          Updated by nqt about 3 years ago

            Hi! Lang thang trên Web, mình thu thập được tài liệu hướng dẫn cùng source cho gói beamer của tác giả Dương Minh Đức ở địa chỉ này

            Đây cũng là một tài liệu thú vị. Các bạn có thể tham khảo nhé!

            Trân trọng cảm ơn tác giả Dương Minh Đức!

            Updated by about 3 years ago

              nqt wrote:

              Trân trọng cảm ơn tác giả Dương Minh Đức!

              Thầy Đức là giảng viên ở khoa Toán đại học KHTN Tp. HCM.

              Updated by nqt about 3 years ago

                Câu hỏi 6: Muốn đổi màu cho TOÀN BỘ công thức toán trong beamer.sty thì nên dùng code nào?
                Đáp
                Hi! Bạn cứ bổ sung thêm dòng sau trước \begin{document} là được!

                \setbeamercolor{math text}{fg=red}
                

                Dòng này sẽ chuyển TOÀN BỘ công thức toàn từ màu đen nguyên thuỷ thành màu đỏ (red) đấy!

                Updated by nqt about 3 years ago

                • Votes: 1/1

                Hì! Trang này có cung cấp một file được soạn cho gói beamer.sty và mã nguồn của nó!
                [[http://www.ctan.org/tex-archive/help/Catalogue/entries/compact-symbols.html#Download]]
                Mình gởi kèm đấy! Chúng ta cùng nghiên cứu và học hỏi thêm cho gói beamer.sty đấy

                Updated by over 2 years ago

                • Status changed from Assigned to Rejected
                • % Done changed from 0 to 100
                • Resolution set to Rejected