ラテックスでは、コマンドを使用して新しいページを作成できます\newpage
。Scribble でこれを直接行う方法はないようです (少なくとも PDF/Latex バックエンドではそうではありません)。
では、scribble を強制的にドキュメントの新しいページにするにはどうすればよいでしょうか?
はい、これは可能です。ただし、これは少し不格好であり、latex ファイル (または pdf ファイル) にレンダリングする場合にのみ機能します。これは Web ページには意味がないためです。私がこれをしなければならなかった元の方法は、LaTeXに行きました。ただし、これを完全に落書きのままにする方法があることがわかりました。どちらを好むかは明らかにコンテキストに依存するため、ここでは両方のオプションを示します。
これが機能する方法は、名前に文字列を含むスクリブルスタイルを使用することです。そうすることで、スタイルが LaTeX 環境またはコマンドに変わります (それを何に入れるかに応じて異なります)。この場合、コマンドが必要なので、element
. 結果のコードは次のようになります。
(define (newpage)
(make-element (style "newpage" '())
'()))
これで、必要な場所で関数を使用できるようにnewpage
なり、ラテックスは\newpage
.
もう 1 つのオプションは、落書きファイルに生のラテックス コードを少し挿入することです。これを行うには、最初に次のようにファイルを作成する必要がありますtextstyle.tex
。
\newcommand{\identity}[1]{#1}
ファイルの名前は問題ではなく、その中に他のコマンドが含まれていても問題ありません。これは、与えられた同じテキストに評価されるラテックス コマンドを作成するためのものです。
次に、落書きコードのどこかに、次の 2 つの関数を作成できます。
(define (exact . items)
(make-element (make-style "identity" '(exact-chars))
items))
(define (newpage)
(exact "\\newpage"))
最初の関数はexact
、latex コードを挿入するために使用できる を定義します。これが機能するのexact-chars
は、スタイルが文字をそのままラテックスに渡し、いかなる種類のプリプロセッサにも渡さないためです。identity
ラテックスにテキストを入れるための框が必要です。
次に、関数はラテックスにnewpage
直接変換されます。コード内の必要な場所で(またはアット式を使用する場合は/として)\newpage
呼び出すだけです。(newpage)
@newpage[]
@(newpage)
最後に、ファイルの場所を scribble に指示する必要がありtexstyle.tex
ます。++style
scribble を実行しているときに、フラグを使用してそれを行うことができます。全体として、コマンドは次のようになります。
scribble --pdf ++style texstyle.tex mydocument.scrbl
さらに、latex/pdf だけでなく、任意のバックエンド用にドキュメントをコンパイルする場合は、cond-element
. そうすれば、他のバックエンドで空の要素にすることができます:
(define (exact-latex . items)
(cond-element [latex
(make-element (make-style "identity" '(exact-chars))
items)]
[else ....]))
(define (newpage)
(exact-latex "\\newpage"))