2009-03-03 7 views
2

私はSphinxをプロジェクトの文書化に使用しています。 LaTeXファイルはrestructured textから生成されます。他の環境に干渉することなく既存のLaTeX環境をカスタマイズする方法

私はヒントノートにグレーの背景色を設定したいと思いますので、私はgraybox環境を作成した後予告環境をカスタマイズした:

\definecolor{MyGray}{rgb}{0.80,0.80,0.80} 

\makeatletter\newenvironment{graybox}{% 
    \begin{lrbox}{\@tempboxa}\begin{minipage}{\columnwidth}}{\end{minipage}\end{lrbox}% 
    \colorbox{MyGray}{\usebox{\@tempboxa}} 
}\makeatother 

\makeatletter 
\renewenvironment{notice}[2]{ 
    \begin{graybox} 
    \bf\it 
    \def\[email protected]{#1} 
    \par\strong{#2} 
    \csname [email protected]@#1\endcsname 
} 
{ 
    \csname [email protected]@\[email protected]\endcsname 
    \end{graybox} 
} 
\makeatother 

すべては私の場合を除いて正常に動作しますfigure環境内には、通知環境内に配置してください。その場合、私はこのエラーを取得する:

LaTeX Error: Not in outer par mode

はその予告環境への灰色の背景を設定する方法はありますか?

+0

このタイトルを「既存のラテックス環境」に変更します。 – ramanujan

答えて

2

は私の質問に答えるために、あなたにgodbykJouniありがとうございます。

問題は、私が直接LaTeXにコードしないことです。私は再構成されたテキストでドキュメントを書き、SphinxはLaTeXファイルを出力します。

しかし、私は解決策を見つけた:私はflowframパッケージからstaticfigureを使用するフィギュア環境を再定義:

\usepackage{flowfram} 

\definecolor{MyGray}{rgb}{0.80,0.80,0.80} 

\makeatletter\newenvironment{graybox}{% 
    \begin{lrbox}{\@tempboxa}\begin{minipage}{\columnwidth}}{\end{minipage}\end{lrbox}% 
    \colorbox{MyGray}{\usebox{\@tempboxa}} 
}\makeatother 

\makeatletter 
\renewenvironment{notice}[2]{ 
    \begin{graybox} 
    \bf\it 
    \def\[email protected]{#1} 
    \par\strong{#2} 
    \csname [email protected]@#1\endcsname 
} 
{ 
    \csname [email protected]@\[email protected]\endcsname 
    \end{graybox} 
} 
\makeatother 

\renewenvironment{figure}[6]{ 
    \begin{staticfigure} 
}{ 
    \end{staticfigure} 
} 

PS:私は時に引数の数に6を入れていました'figure'を再定義する:もし私がそれをしなければ、pdfファイルにhtbpを出力する(私はLaTeXエキスパートではない)。

3

これはFAQです。図形(または出力の他の場所に移動できる他の「浮動小数点数」)を灰色のボックスの中に入れるのは意味がありません。 Figureに灰色のボックスが含まれるようにするには、灰色のボックス環境をFigure環境内に置きます。

1

Jouniが正確に指摘したように、図や表(つまり浮動小数点数)を移動することができ、灰色のボックスにはそれらを入れることはできません。

  1. (ラテックスはそう選択した場合、全体の通知は、ページ上または新しいページに周りに浮上させることができるように)figure環境へのあなたの全体の注意を入れて:所望の効果を達成するには、次の2つのオプションがあります。
  2. は、フロート(figure環境)を使用しないでください - ちょうどnotice環境に直接画像をポップする\includegraphicsを使用しています。ただし、キャプションは図や表の環境内でしか使用できないため、この非数値でキャプションを使用することはできません。あなたは、このイメージに関連したキャプションをしたい場合は、caption packageを使用することができます。

    \documentclass{article} 
    \usepackage{caption}% let's us use captions outside of floats 
    \usepackage{lipsum}% provides filler text 
    \begin{document} 
    \lipsum[1] 
    \begin{center} 
        \includegraphics{mypic} 
        \captionof{figure}{This is my picture.}% makes a caption for non-floats 
        \label{fig:mypic} 
    \end{center} 
    \lipsum[2]   
    \end{document} 
    

私はスフィンクスを使用していないので、私は私がにこれを統合すると、あなたがあまりにも助けることができない怖いですその出力。

関連する問題