Lyx でプログラム リストを正しく相互参照する方法

Lyx でプログラム リストを正しく相互参照する方法

別の質問から、コードを含める最良の方法は、プログラム リストを含む子ドキュメントを作成することだと知りました。これは素晴らしいことです。

私の質問は、プログラムリストに正しくラベルを付けるにはどうすればよいかということです。

章の場合はchap:Name、サブセクションの場合は ですsub:Nameが、プログラム一覧の場合は とは何ですか?

正当化とは、相互参照するときに、... section 2.1 ...参照されるときにセクションを参照するときと同等の書式設定を希望することです。(実際には、lyx によって自動生成される「セクション」を記述しているのではなく、リストに同じものを求めています)。

答え1

実際には「正しい」答えはありません。これは自分で定義する必要があるからです。LyX はrefstyleこのようなフォーマットされた参照にパッケージを使用しますが、私の知る限り、これにはプログラム リストの定義がありません。

そこで、ドキュメント > 設定 > LaTeX プリアンブルにそのような定義を追加するのが良いと思います。簡単な例は次のとおりです。

\newref{lst}{
   name   = listing~,
   names  = listing~,
   Name   = Listing~,
   Names  = Listings~,
   rngtxt = {~to~},
   lsttxt = { and }}

この定義では、lst:ラベルのプレフィックスとして を使用する必要があります。他のプレフィックスが必要な場合は、 を任意のプレフィックスに変更しlstます\newref{lst}

ただし、ERT を使用しない場合は、 だけが必要だと思います\newref{lst}{name = listing~}。LyX は他の参照形式をサポートしていないためです (私が間違っていなければ)。

最後に、一般的に、章や節などのラベルの書き方にも正しい方法はありません。、、などの使用はchap単なるsec慣例eqであり、必ずしも行う必要はありません。ない限りパッケージを使用しますrefstyle。実際には、参照されているオブジェクトの種類を判断するために、正しい文字列をプレフィックスとして指定する必要があります。パッケージは、cleveref独自に判断するため、この点ではより賢いと言えます。

関連情報