はじめに
概要
必要ができたので外部からLaTeXのスタイルファイルを導入しました。
私はLyXユーザーなのでそれに伴ったレイアウト設定も必要になります。
そういったわけで、一連の作業を備忘録的にここに公開します。
なんとなくクラス名はfoobar
に差し替えてあります。
環境
記事執筆時点で
- Windows 10
- TeXLive 2019
- LyX 2.3.3
別途テキストエディタを使用(VSC)
記録
TeXLiveへの導入
然るべき場所からダウンロードしたzipファイルを展開、ファイルを適当な場所に設置します。
参考:TeX のディレクトリ構成 - TeX Wiki
zipの内容物は↓のような感じでした:
- クラスファイル本体(.cls)・付属.styファイル
- BibTeXスタイルファイル(.bst)
- サンプルファイル (.tex,.bib)
サンプルファイルはpdf出力ができてから移動させることにして、残りをtexmf-local/
以下のしかるべき場所に移動。
特段ls-Rの設定も弄ってないのでmktexlsr
を動かして(texlive的には)導入完了。
> mktexlsr
LyXレイアウトファイルの作成
ここからはLyXのヘルプファイルとにらめっこしながらレイアウトファイルを作ります。
まず、.clsファイルの中身から\LoadClass
文を発掘します。
\LoadClass[letterpaper,11pt,twoside]{article}
つまりこのクラスはarticleクラスの設定を援用しているということです。
なのでarticle用のレイアウトファイルarticle.layout
をコピーして別の名前で保存します。
ユーザーディレクトリ(ヘルプ>LyXについて
に記載されている場所、私の場合は~\AppData\Roaming\LyX2.3\
。)に放り込んだlayoutファイルは、環境構成時にLyXがクラス一覧のリストに追加してくれるので、編集したレイアウトファイルを置いてツール>環境構成
を走らせ、ログに以下の行が表示されれば第一段階は達成です。
+checking for document class foobar [foobar]... yes
最低限の変更箇所
文書クラス宣言
# % Do not delete the line below; configure depends on this
# \DeclareLaTeXClass{Article (Standard Class)}
# \DeclareCategory{Articles}
LyXの文書設定画面で表示される文字列および選択メニュー内のカテゴリ配置を決定する大事な行。変えておかないと元のarticleと区別できなくなるので確実に設定しておきます。
4行目以降のコメントアウト行はたぶんコンソール実行時に出力されるテキストなので、適当に差し替え。
hyperrefの設定
クラスファイル中に\RequirePackage{hyperref}
の記述があったので、LyXにhyperrefの定義が既にされていることを教える必要が発生します。
これをサボるとハイパーリンク使用時の出力でOption clashエラーが発生します。
今回の場合だとサンプルファイルのpdf出力ができなくなりました。
そういったわけで、以下の一行を.layoutファイルのどこかに追加します:
Provides hyperref 1
これでサンプルファイルのpdf出力が通るようになりました。ハイパーリンク中のコマンドがエスケープ済みのテキストに変換されてしまっていますが誤差でしょう。
追加の設定
クラスオプション
クラスオプションのデフォルトを適当に設定しておきます。
ClassOptions
Other "<default-options>"
End
プリアンブル設定
レイアウトファイルでプリアンブルを設定すると後々いじるのが面倒なので、プリアンブルだけ専用のものに差し替えた白紙のLyXファイルを作成し、テンプレートとして使うことにしました。
追加コマンド
所属機関の表示を行うコマンド\institute
が新規に定義されているのでLyXでの表示に反映させます。差し当たって設定したパラメータは以下のようになります。
InsetLayout Flex:Institute
LyXType custom
MultiPar 0
LatexName institute
LatexType Command
LabelString "Institute"
End
-
InsetLayout
……Beamerなんかでは段落(Style
)として設定されていますが、今回は差込枠として設定します。 -
LyxType
……ヘルプによるとcharstyle
、custom
、element
、end
の4つの値が取れるらしいです。charstyle
とelement
を選択すると、右クリックメニューの文字様式
内にコマンドが出現します。custom
の場合は挿入>拡張差込枠
に登録されます。 -
MultiPar
……枠内での複数段落の可否を選択します。LyxType
をcharstyle
にすると連動して0に設定されます。また、この項目の設定に対してCustomPars
(段落設定ダイアログの使用可否)とForcePlain
(様式を「標準」に固定)が連動して設定されます。 -
LatexName
……LaTeXに変換したときのコマンド名 or 環境名です。 -
LatexType
……LaTeXに変換するときの挙動を指定します。Command
の場合は\LatexNameコマンドに変換されます。オプションは必要な場合別途指定します。 -
LabelString
……LyXで差込枠を挿入したときのラベル表示です。URL挿入時の「URL」表示部分です。
論文のテキストを流し込む
ちゃんとLyXに認識されているか等のチェックも終わったらひとまず作業は完了です。
あとは手元の論文をスタイルに合わせて流し込むだけですね!(ここからも長い(湧き出るLaTeXエラー(突然の定義競合