1.2.1 方法1:TeXモードか外部文書から参照
• Beamerで普通にlstlisting環境を使おうとするとエラーが出る。
• LyXであれば、[Insert]>[File]>[Child document…]から外部文書から参照すれば面倒だがうまくいく。
• LaTeXであれば以下のように、フレームに[fragile]オプションを指定することで実現可能なようだ。
begin{frame}[fragile]
frametitle{Your title}
begin{lstlisting}
code
end{lstlisting}
end{frame}
• 参考
– https://anteru.net/2008/09/15/269/
1.2.2 方法2: Custom Insets(外部モジュールBeamer Fragileの利用)
• 上記のやり方は\begin{frame}にオプション[fragile]をつけているため、LyXから途中でオプションを組み込む方法はない(\frametitleはLyXからオプション付加が可能なのだが)。
• そのため、TeXモードでそのフレームを書くしかなかった。しかし、外部モジュールを使うことでTeXモードを使わずにGUIで比較的可能 。
• ファイルhttp://wiki.lyx.org/uploads/Modules/beamer/beamer-fragile.moduleをC:\Users\Senoo\AppData\Roaming\LyX2.0\layoutsに保存
• その後[Tools]>[Reconfigure]>LyXを再起動
• すると次回以降Beamerクラスを使うとき、[Document]>[Settings…]>[Module]にBeamer Fragileという項目が現れる->これを選択して[Add]->[OK]
• [Insert]->[Custom Insets]にいかの項目が追加される
Fragile: \begin{frame}[fragile] \end{frame}に相当
FragileFrameAllowframebreaks: \begin{frame}[fragile, allowframebreaks] \end{frame}に相当。フレームを自動で改フレーム(改ページ)してくれる
FragileTitle: \frametitle{ }に相当
使い方:
• LyX側でBeginFrameやEndFrameをする必要はない。但し、Fragile Frameを使う直前ではEndFrameを使って\lyxframeのフレームを閉じておくこと。
• [Insert]->[Custom Insets]から次の2つのうちどれかを選ぶ
– Fragile Frame
– FragileFrameAllowframebreaks
• FragileFrame環境中でフレームタイトルをつけるには、[Insert]>[Custom Insets]>[FragileTitle]を選択しその中で書く。
注意:
• FragileFrame環境でTeXモードで\begin{lstlisting} \end{lstlisting}環境で日本語を書くと、改行がうまく反映されない
• 参考
– http://comments.gmane.org/gmane.editors.lyx.general/74654
– http://wiki.lyx.org/Layouts/Modules#toc9
– http://wiki.lyx.org/uploads/Examples/Beamer/Liv/beamer-fragile-sweave-template.pdf
関連