天地有情

[LaTeX] marginfix --- 標準の \marginpar を拡充する

marginfix --- 標準の \marginpar を拡充する

§1 はじめに

欄外脚注(傍注)の多用(overfull margins)での混乱を回避するために,\marginpar にパッチを
適用したパッケージです.\marginpar の他に,いくつかのコマンド(後述)が用意されています.

1.1 インストール

CTAN (http://www.ctan.org/pkg/marginfix) からダウンロードの上,インストールしてください.

こちらでは, C:\w32tex\share\texmf-local\tex\latex にインストールしました.
インストール後は必要に応じて mktexlsr (あるいは texhash) を実行します.

1.2 マニュアル

コマンドラインから texdoc marginfix を実行してください.

§2 使い方

2.1 書式

プリアンブルに
  \usepackage{marginfix}
  を記述します.

2.2 使われそうな主なコマンド

● \marginskip:
  \marginskip{} を呼び出すと,マージンノート間に垂直スキップを挿入します.

● \clearmargin:
  clearmargin は,次のページに空のマージンを生成します.

● \mparshift:
  \mparshift{<長さ>} を呼び出すと,単一のマージンノートの位置を調整します.
  正値の長さはページの下に,負値は上に移動します.

● \extendmargin:
  \extendmargin{}(現在のページのみの場合)指定された長さのマージンを垂直方向に拡張します.
  次ページへのフロートの防止ができます.長さが負値の場合,マージンが縮小されます.

● \blockmargin / \unblockmargin
  \blockmargin はマージンエリアまで張り出して,比較的大きな画像を配置し,その後 \unblockmargin します.
  これらの各コマンドは,オプションの引数をとることができます.
  \blockmargin[] / \unblockmargin[]

§3 サンプル

(1)marginskip の使用例

mginfixprog01.png

mginfix01.png



(2)欄外脚注に画像配置の使用例

mginfixprog02.png

mginfix02.png



(3)\blockmargin / \unblockmargin 欄外脚注に張り出し例

mginfixprog03.png

mginfix03.png

(EOF)
スポンサーサイト
  1. 2015/06/25(木) 07:24:47|
  2. LaTeX Tools

[LaTeX] multienum --- 演習問題の解答番号などを数値配列で作成する

multienum --- 演習問題の解答番号などを数値配列で作成する

§1 はじめに

multienumパッケージは,複数の列の数値配列を生成することができ,オプションとして配列項目は偶数または奇数
のみの番号付けも指定できます.

演習問題などを組版すると,頻繁に多くの短い解答を含む列挙リストを作成する必要があります.
このようなとき,multienumパッケージが一助になります.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc multienum を実行してください.

§2 簡単なサンプル

下表は,典型的な数値配列を示しています.

演習問題などの解答を列挙配列(日本語にも対応しています)

menum01.png


■ 簡単な説明

1行目:4つの項目を配置.
2行目:3番目の項目が長いため4番目まで拡張されている.4番目の項目はブランク.
3行目:1,3番目の項目が長いため,2,4番目の項目はブランク.
4行目:1番目の項目が長いため,2,3,4番目の項目はブランク.

列挙番号は 1,2,3,...の昇順がデフォルトですが,オプションで1,3,5,...の奇数 あるいは 2,4,6,...の
偶数配列も可能です.

上に示した数値配列を生成するために入力は次のようになります.

2.1 書式

プリアンブルに
  \usepackage{multienume}  を記述します.

■■■■■■■■■■■■■■■■■■■■■■■■■■■
% FileName: foo.tex
% encoding: utf-8

\documentclass{ltjsarticle}
\usepackage{multienum}
%
\begin{document}
\begin{multienumerate}
\mitemxxxx{Not}{Linear}{Not}{Quadratic}
\mitemxxxo{Not}{Linear}{Not}
\mitemxx{$(x_1,x_2)=(2+\frac{1}{3}t,t)$ or
$(s,3s-6)$}{$(x_1,x_2,x_3)=(2+\frac{5}{2}s-3t,s,t)$}
\mitemx{$(x_1,x_2,x_3,x_4)=
(\frac{1}{4}+\frac{5}{4}s+\frac{3}{4}t-u,s,t,u)$
or $(s,t,u,\frac{1}{4}-s+\frac{5}{4}t+\frac{3}{4}u)$}
\mitemxxxx{$(2,-1,3)$}{None}{$(2,1,0,1)$}{$(0,0,0,0)$}
\end{multienumerate}
\end{document}
■■■■■■■■■■■■■■■■■■■■■■■■■■■

2.2 コンパイルの仕方(クラスファイルが ltjsarticle の場合)

  luajitlatex foo.tex
  または
  lualatex foo.tex

2.3 コンパイルの結果

  正しくコンパイルできたら foo.pdf が生成されます.

§3 コマンド

3.1 multienumerate環境

● \begin{multienumerate} ... \end{multienumerate}
  連続して数値配列を生成します.

● \begin{multienumerate}[evenlist] ...\end{multienumerate}
  偶数のみを使用して列挙配列を生成します.

● \begin{multienumerate}[oddlist] ...\end{multienumerate}
  奇数のみを使用して,数値配列を生成します.

3.2 コマンド

数値配列は9つのいずれかのコマンドを使用して設定されます.

menum02.png


\mitemx{}      行中に1つの項目.
\mitemxx{}{}     行中に2つの項目.
\mitemxxx{}{}{}   行中に3つの項目.
\mitemxox{}{}    行中に3つの項目の内,その最初の項目は,次の第2の項目空間に拡張できる.
\mitemxxo{}{}    行中に3つの項目の内,第2の項目は,次の第3の項目空間に拡張できる.
\mitemxxxx{}{}{}{}  行中に4つの項目.
\mitemxoxx{}{}{}   行中に4つの項目の内,その最初の項目は,次の第2の項目空間に拡張できる.
\mitemxxox{}{}{}   行中に4つの項目の内,第2の項目は,次の第3の項目空間に拡張できる.
\mitemxxxo{}{}{}   行中に4つの項目の内,第3の項目は,次の第4の項目空間に拡張できる.

(EOF)
  1. 2015/06/20(土) 13:53:47|
  2. LaTeX Tools

[LaTeX] afterpage --- ページの終わりで特定のコマンドやマクロを実行させたい

更新版: 2017/03/19

§1 はじめに

フロート(図や表)を配置するのに苦労したことはありませんか.afterpageパッケージが一助となる
かも知れません.ここでは使い方について説明します.

afterpageパッケージは,\afterpage コマンドを実装します.現在のページが出力された後,その引数で
指定が展開されます.

\afterpage{\clearpage}

のように指定すると,現在のページが次のテキストページが始まる前に,\clearpage コマンドはすべての
フロートをフラッシュします.
従って,フロートが後ろにずれていって,違うセクションに入ってしまわないために,セクション前の
改ページに指定できます

1.1 インストール

TeXLive/W32TeX などには標準でインストールされています.

afterpage.sty の配置はコマンドラインから
> kpsewhich afterpage.sty とすると,
結果は c:/w32tex/share/texmf-dist/tex/latex/tools/afterpage.sty です

1.2 マニュアル

コマンドラインから texdoc afterpage を実行するか,
上記に同梱の afterpage.pdf をお読み下さい.

§2 使い方

2.1プリアンブルに
  \usepackage {afterpage}
  を記述します.

2.2 コマンド

\afterpage:   現在のページが出力された後,その引数で指定が展開されます.


§3 サンプル

3.1 \afterpage{\clearpage}の例

フロートの配置は文章と比べてそれほど空間を占有しなければ比較的うまく動作しますが,あまりにも数が多いと,
ある位置から全部のフロートが文書の最後に回されてしまうこともあります.

未出力のフロートの個数が多すぎて,これ以上 figure 環境・table 環境などを使えない状態になったときなどに
現れるのが,次のエラーメッセージです

  ! LaTeX Error: Too many unprocessed floats.

この防止のため,未処理のフロートを出力する次のコマンドを指定できます.

■ \afterpage{\clearpage}

3.2 longtable環境への対応の例

longtable環境 をフロートさせたい場合にも指定できます.
長さが複数ページにおよぶ可能性があり,そのような表をメモリに保存しておくことは不可能なので,
長い表を囲ったテキストを組む際に問題がある場合や,table環境と同じようにフロートさせることになります.

もし,ltfile.tex というファイルに表が記述されているのであれば次のいずれかの方法が利用できます.

■ \afterpage{\clearpage\input{ltfile}}
■ \afterpage{\clearpage\input{ltfile}\clearpage}

最初の形式は longtable環境 の終わりで同一ページ上にテキストを出力します.
2番目の形式では囲っているテキストが次のページからもう一度始まるよう保証することになります.

3.3 float.sty と併用の例

floatパッケージ と afterpageパッケージ を併用することで,フロートの配置をもっと細かく制御できます.
フロートの配置を支援するため,float.styによって提供されるオプションの引数 [H] があります.

\usepackage{float}
\newfloat{Figure}{htbp}{lof}[section]

などのように事前定義しておいて,

■ \afterpage{\clearpage\begin{Figure}[H] ~ \end{Figure}}

このようにすると,図が次ページの上端に必ず出力されるようになります.

(EOF)

  1. 2015/06/14(日) 11:35:08|
  2. LaTeX Tools

[FOP] Apache FOP --- TeX 以外の組版・レイアウトシステム ~初歩の初歩~

Apache FOP --- TeX 以外の組版・レイアウトシステム ~初歩の初歩~

§1 はじめに

Apache FOP(Formatting Objects Processor)とは,XMLの自動組版を実現するソフトウェアです.
自動組版の処理としては XSL-FO の仕様を実装しており,すべて Java で出来たソフトウェアです.

Apache FOP を利用すれば XSL-FO 文書から PDF 文書を生成するだけでなく,XSTL を使ってXML文書から PDF 文書を
生成することも可能です.

今回は .foファイルから .pdfファイルを生成することを重点に置きます.
なお,Apache FOP ではデフォルトの設定のままでは 日本語フォント を利用することができません.
ユーザ用の fop.xconf ファイル作成することにより,True Typeフォントを簡単に利用できます.

今回は,後述の sample.xconf を作成しました.このファイルの中で
     <auto-detect />
という記述がありますが,c:\windows\fonts の中の True Type フォントを自動的に検索して適用してくれます.
まずは自身の環境で利用できる True Type フォント(.ttf や .ttc という拡張子)を確認してください.

1.1 ダウンロード

DownLoad side(http://www.apache.org/dyn/closer.cgi/xmlgraphics/commons)から
適当なmirror siteを選び,xmlgraphics-commons-2.1-bin.zipを入手します.

当方では,ftp.kddilabs.jp(ftp://ftp.kddilabs.jp/infosystems/apache/xmlgraphics/commons)
を選びダウンロードしました.

1.2 インストール

入手した xmlgraphics-commons-2.0-bin.zip を解凍し,任意のディレクトリに配置します.

当方では,ディレクトリ d:/fop-2.0 を作成し,ここにすべてのファイルを格納しました.
DeskTop上で作業を行うため,path=...,...,d:\fop-2.0; も設定しました.(必須ではない)

1.3 注意

Java がインストールされていることが前提です.当方では java version "1.8.0_45" となっていました.


§2 主な機能

Apache FOP の主な機能としては,XSL-FOに準拠したXML文書を組版して,プリンタに出力したり,PDFファイル形式へ
出力したりすることができます.サポートされている出力形式は次の通りです.

■ Apache FOP 出力フォーマット

•PDF (Portable Document Format)
•PS (Adobe Postscript)
•PCL (Printer Control Language)
•AFP (MO:DCA)
•SVG (Scalable Vector Graphics)
•XML (area tree representation)
•Print
•AWT/Java2D
•MIF
•RTF (Rich Text Format)
•TXT (text)

§3 使用方法

Apache FOP は基本的に コマンドライン から利用します.コマンドラインで使用できるコマンドは次の通りです.

(1)FO文書を変換しPDFとして出力する場合は,以下のように指定します.

    fop [-c foo.xconf] foo.fo foo.pdf

(2)XML文書とXSLによってFOを生成し,それをPDFとして出力する場合は,以下のように指定します.

    fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf

今回は(1)の方法についての説明です.

§4 簡単なサンプル

日本国憲法前文の一部を英文と和文で構成し表示させます.

(1)フォントの選択
   英文のフォントは "Helvetica" を指定していますが,他に "Times Roman" , "Courier" の指定が可能です.
   和文のフォントは "IPAexゴシック" を指定していますが,前述のように c:/windows/fonts に存在する True type
   なら,どれでも利用できます.

(2)用紙サイズは A4サイズ (29.7cm x 21cm)を指定しています.

■ ソースファイル

   File Name = sample.fo  ;  encoding = utf-8

fop02.png
fop03.png
fop04.png


■ Configuration ファイル

   File Name = sample.xconf  ;  encoding = utf-8

fop05A.png



§5 コンパイル

sample.xconf と sample.fo を カレントディレクトリ (ここでは Desktop)に置いて,以下を実行します.

   C:\Users\xxx\Desktop> fop -c sample.xconf sample.fo sample.pdf

§6 結果

fop01.png


(EOF)

  1. 2015/06/09(火) 08:11:20|
  2. FOP

LaTeX] listings --- プログラミング言語やソースリストなどの取り込み

listings --- プログラミング言語やソースリストなどの取り込み

§1 はじめに

listings に対応する類似のスタイルファイルには minted や fancyvrb など多数存在しますが,
機能の豊富さから listings.sty に着目しました.

以下はサンプルをもとに,代表的な使い方を示します.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc listings を実行してください.

§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
  \usepackage{listings}
  を記述します.

2.2 テンプレート

lst01.png

■ クラスファイルは ltjsarticle を使っていますが,j(s)article でも構いません.

■ lstlisting 環境 (\begin{lstlisting} ~ \end{lstlisting})内にソースリストなどを記述します.

■ オプションなどは \lstset{..., ..., ...} にカンマで区切って複数指定できます.
  なお,オプションが少ないときは,\begin{lstlisting}[options] ~ でも構いません.

2.3 コンパイルの仕方
(クラスファイルが ltjsarticle の場合)

  luajitlatex foo.tex
  または
  lualatex foo.tex

2.4 コンパイルの結果
  正しくコンパイルできたら foo.pdf が生成されます.

2.5 インラインコマンドの紹介

LaTeX コマンド \verb はそのまま code snippets(断片)を植字します.
新しいコマンドの \lstinline も,コードをきれいにプリントします.

Example: \lstinline!var i:integer;!

感嘆符(!)で文字列をサンドイッチしていますが,他の任意のシンボルに置き換えることができます.
たとえば,\lstinline$var i:integer;$

§3 サンプル集

よく利用されそうなオプションを使ってみました.

(1)単純な例

lst02.png

オプション language=, はプログラミング言語のときに指定します.サポートされている言語は末尾の
(§4 参考1:事前定義されているプログラム言語)を参照して下さい.この例では Fortran77 です.
単なるソースリストの場合はlanguage=, は不要です.

オプションの一覧は末尾の(§5 参考2:コマンド & オプション一覧)を参照して下さい.

(2)行番号を付加する

lst03.png

オプション numbers=,numberstyle=,numbersep=, などで行番号の付加ができます.

(3)行番号をアレンジする  
オプション [firstnumber=100] を設定すれば,先頭行は 100 から付加されます.
  最後の番号からの継続したければ,[firstnumber=last] を指定します.

lst03A.png

(4)フレームで囲む

オプション frame=, で外枠の付加ができます.
フレームの種類は§5 の ■ Framesの項を参照して下さい.

■ frame=single(一重枠)

lst04.png

■ frame=single(部分的な二重枠)

lst05.png

■ frame=shadowbox および backgroundcolor=\color{pink}

(注) \usepackage{xcolor} を登録してください.

lst06.png

(5)日本語コメント

lst07.png

(6)指定行をプリントする

lst08.png

オプション [firstline=1,lastline=5] で5行をプリントします.

(7)外部ファイルを取り込む(f77.f)

lst09.png

(8)カラー表示

lst10.png

追加:注意事項

大切なことを書き忘れていました.

listings.sty のみを用いた場合,欧文と和文が混じると文字列の順序が反転する場合があります.
例えば,
----------------
\usepackage{listings}

\begin{lstlisting}
あああTESTいいい
\end{lstlisting}
----------------
の場合は結果として

----------------
あああいいい
TEST
----------------

のように表示されます.

これを是正したのが,jlisting で,listings と併用して,次のように使います.

----------------
\usepackage {listings,jlisting}

\begin{lstlisting}
あああTESTいいい
\end{lstlisting}
----------------

結果は
----------------
あああTESTいいい
----------------
のように正しく表示されます.

結論として和文が混在する listings の場合には jlisting を併用するようにします.

jlisting は http://mytexpert.osdn.jp/index.php?Listings からダウンロードできます.







4 参考1:事前定義されているプログラム言語(下線がデフォルト)

lst21A.png
lst21B.png



§5 参考2:コマンド & オプション一覧(右端がデフォルト)

lst31A.png
lst31B.png
lst31C.png
lst31D.png
lst31E.png
lst31F.png

(EOF)
  1. 2015/06/01(月) 12:43:04|
  2. LaTeX Tools