論文を書いていると,
・・・第3節で述べたように,・・・・とか,・・・圧力分布は,式(13)より・・・・
とか,書くことになります.でも,論文を書き進めれば,これらの番号は変わってしまいます.そこで,LyXでは,式などにラベルをつけておき,論文中では
・・・第[別の章につけたラベル]節で述べたように・・・とか,・・・圧力分布は,[式につけたラベル]より・・・・
という風に書いておくと,印刷時に自動的に正しい数字が入るようにできます.これを相互参照と呼びます.相互参照している文章は,他人の文章でも安全にコピペできますが,相互参照していない文章をコピペすると,番号がずれているので,コピペがばれます.とはいえ,てきとーにコピーすると,ラベルが見つからなかったりしますが,それは事前に確認できます.
ラベルの挿入
章節番号にラベルを挿入するには,該当する表題にカーソルを合わせて【挿入】【ラベル】をすると:
こんな感じに,デフォのラベルが登場します.デフォのラベルは,
ラベルの種別:タイトル文字列
になっています.次の規則を守ったほうが健康に良いです:
- ラベルの種別は,決して変更しない(変更すると,自動整形不可)
- タイトル文字列は,簡単な英文のほうが便利
- タイトル文字列には したバー _ とか, ハット ^ とか,数式っぽいのを入れるとバグにハマりやすい
ラベルをつけ終わると,
こんな感じに表示されます.また,【表示】【文章構造面】で【ラベルと参照】を選ぶと,どんなラベルが文章内に存在するか,確認できます:
数式にラベルを付ける場合には,数式内で【挿入】【レベル】します.あるいは二本指でコンテキストメニューを表示し,【数式ラベル】を選択して入力しても良いです.複数行の数式では,行ごとにラベルをつけられますが,常識的に,番号がつくのは最後の式ですよね.
図表番号も,キャプションの中にラベルを作成すればOKです.
一度ラベルを作成したのちも,ラベルの名前は随時変更可能です.ラベルを引用している箇所は,ラベルの名前を変更する際にLyXが開いていれば,自動的に追従してラベルの名前が変更されます.ユーザーがラベルの引用箇所を訂正して回る必要はありません.
ラベルの引用
定義したラベルを文章内に引用する方法はいろいろあります.
【挿入】【相互参照】を選ぶと,利用可能なラベルの一覧が出るので,そこから選択する方法
デフォルトでは,なんかラベルが無秩序に出てくるが,【聖女】を選ぶと美しく表示される:
挿入したいラベルの上で, 二本クリックして【参照としてコピー】し,挿入したいところにペーストする方法もあります.
引用先を間違えた場合,ラベルをクリックして訂正できます.
ラベルの自動整形
挿入したラベルは.印刷時に該当する数字になります.従って,例えば「・・・図参照:fig:limitのように・・・」と書けば,「・・・図3のように・・・」と印刷されます.ですが,これでは引用方法がバラバラになりがちです.そこで,引用を行っているラベルで二本指クリックし,【整形済み参照】にしておけば,統一的に引用できます.つまり「・・・整形済参照:fig:limitのように・・・」としておくわけです.
ただし,この場合,図ならば 図+番号, 表ならば 表+番号, 節ならば 第+番号+節,と整形したいわけで,これを事前に設定する必要がございます.これは,【文書】【設定】【LaTeXプリアンブル】で,次のように設定すれば良いんだニャ.でも,【文書】【設定】【文書クラス】で,【相互参照にrefstyleを使用】のチェックを外しておかないとダメ!(refstyleは日本語に対応していない)
\newrefformat{fig}{図~\ref{#1}} \newrefformat{sec}{\ref{#1}節} \newrefformat{tab}{Table~\ref{#1}} \newrefformat{lem}{補題\ref{#1}} \newrefformat{exa}{例\ref{#1}} \newrefformat{exer}{演習\ref{#1}} \newrefformat{prob}{問題\ref{#1}}
これは,ご覧の通り,ラベルの種別に応じて,番号 \ref{#1} のフォーマットを定めるものです.上の例では
図1,1節,Table 1, 補題1, 演習1, 問題1
というように整形されます.(整形せず,番号だけが欲しい場合には,引用を整形済参照ではなく,単なる参照のままにしておけばよい.)
Refstyle
上でダメ出しされているrefstyleですが,英文では大変便利です.やり方が違うので,メモしておきましょう.
refstyleの良いところは「文脈に応じて Fig. になったりFiguresになったりするんだけど?」というところに対応することです.
- 英文では,文頭に省略記号が来るのはダメです.だから Fig. 2 shows ... とか書き出せなくて,Figure 2 shows と書かなければならんのです.
そこで,プリアンブルに次のように書きます.
\newref{fig}{name=Fig.~,names=Figs.~,Name=Figure~,Names=Figures~} \newref{tab}{name=Table~,names=Tables~,Name=Table~,Names=Tables~} \newref{eq}{name=Eq.~,names=Eqs.~,Name=Equation~,Names=Equations~,refcmd=(\ref{#1})}
雰囲気でわかるように,普通の書式では Fig. となり, 文頭では Figure に, 複数形はsがつくわけです.ですがLyXには現状AIが搭載されていないため,どれを使うのかを,あんたが,指定する必要があります:
ここで複数とか大文字とかを選べるわけね.でも,やっぱり,図1はできても,「第1章」はできなくて「第章1」しかできないのよ.日本語と順番違うしね
LyX2.4.1でのrefstyle
たぶん, 【文書】【設定】【文書クラス】【相互参照にrefstyleを使用】にチェックを入れても, refstyleパッケージの設定はするが,パッケージのロードを忘れている.
しかたないので, 【文書】【設定】【LaTeXぷりあんぶる】で
\usepackage[noconfig]{refstyle}
\newref{fig}{name=.....}
とかしてあげよう.なお,noconfig ってのは,refstyle.cfg とか refstyle.def とかをロードしない.ロードしないと, refstyle.cfgに書いてある,多国語化したええっと「RSうねうね」というのが使えないが,そもそも理解できてないので使えてないので,ロードしていらんので, noconfig できるようになって素晴らしいということにしておこう.ええっとつまり,下の方で書いてある,refstyle.cfg だとか refstyle.def だとかいうあたりは,読み飛ばしてOKってことだ
- さらに, Elsevierスタイルを使うと, elsarticle.cls で\fnref が定義されているのに, refstyle.cfg で \fnref を定義しようとするから, noconfigオプションを与えることができないと, refstyle.cfg を読んでいる途中でバグる.
- クソッタレでおせっかいなcfgは,読まない方が身のためである.
LyX2.0-2.3でのrefstyle
- TeXLive2023だかで, なんか動かなくなったので, これに従って直さないといけないみたい. とはいえ, /usr/local/texlive/2023/texmf-dist/tex/latex/refstyle/refstyle.cfg の変更には管理者権限が必要.
- なので, このファイル(refstyle.def)を文書フォルダーに置いておくと良い. refstyle.cfg を無視して refstyle.defを読むそうだ.
- だが, 直し方が不完全なのか,数式のラベルに_とか^とか,数式っぽいものがあるとバグる.
番号のつけ方
短い文書なら1, 2, .... でOKですが,長い文書なら 章番号.1 というようにつけたいですよね.基本的には
短い文書は jsarticle で書くので,これは数字だけ
長い文書は jsbook で書くので,章番号.数字
と決まっています.【文書】【モジュール】で,【数式番号を節ごとに振る】などを選ぶことも可能です.
ラベルのチェック
ラベルのチェックは,随時行われています.その結果は【表示】【文書構造面】【ラベル】で確認できます.欠落していたり,重複していたりすると,下図のように表示されます.
なお,複数のソースファイルから構成される場合でも,すべてのラベルが統一的にチェックされます.
添付 | サイズ |
---|---|
refstyle.zip | 3.45 KB |