長いクラス名のような非常に長い lstinline フレーズをどのように処理しますか?

長いクラス名のような非常に長い lstinline フレーズをどのように処理しますか?

この質問によると:

スペースを含まない非常に長い行を処理するにはどうすればよいですか?

私の問題は、\lstinline-phrases に「-」のような特殊文字が含まれていないことです。私の lstlinlines には、 のような非常に長いクラス名がありますThisIsAVeryLongExampleClassNameAndItHasNoLineBreak。これらのクラス名から生じる問題は、ボックスがいっぱいになることです。

条件付き改行マークを設定する方法を誰か知っていますか。(\-通常のテキストのように)

答え1

または、完全に自動化するには(あなたの場合):

\documentclass{minimal}
\usepackage{listings}
\begin{document}
\lstinline[
  literate={A}{A}{1\discretionary{}{}{}}
           {B}{B}{1\discretionary{}{}{}}
           {C}{C}{1\discretionary{}{}{}}
           {D}{D}{1\discretionary{}{}{}}
           {E}{E}{1\discretionary{}{}{}}
           {F}{F}{1\discretionary{}{}{}}
           {G}{G}{1\discretionary{}{}{}}
           {H}{H}{1\discretionary{}{}{}}
           {I}{I}{1\discretionary{}{}{}}
           {J}{J}{1\discretionary{}{}{}}
           {K}{K}{1\discretionary{}{}{}}
           {L}{L}{1\discretionary{}{}{}}
           {M}{M}{1\discretionary{}{}{}}
           {N}{N}{1\discretionary{}{}{}}
           {O}{O}{1\discretionary{}{}{}}
           {P}{P}{1\discretionary{}{}{}}
           {Q}{Q}{1\discretionary{}{}{}}
           {R}{R}{1\discretionary{}{}{}}
           {S}{S}{1\discretionary{}{}{}}
           {T}{T}{1\discretionary{}{}{}}
           {U}{U}{1\discretionary{}{}{}}
           {V}{V}{1\discretionary{}{}{}}
           {W}{W}{1\discretionary{}{}{}}
           {X}{X}{1\discretionary{}{}{}}
           {Y}{Y}{1\discretionary{}{}{}}
           {Z}{Z}{1\discretionary{}{}{}}
!ThisIsAVeryLongExampleClassNameAndItHasNoLineBreakThisIsAVeryLongExampleClassNameAndItHasNoLineBreakThisIsAVeryLongExampleClassNameAndItHasNoLineBreakThisIsAVeryLongExampleClassNameAndItHasNoLineBreakThisIsAVeryLongExampleClassNameAndItHasNoLineBreak!

\end{ドキュメント}

明らかに、これはスタイルに合わせる必要があります...

(-行の末尾に到達するには、\discretionary{-}{}{}. を 26 回使用します :-)

答え2

あなたが引用した質問のクールなトリックは、条件付き改行を定義するために使用できます。

\documentclass{minimal}
\usepackage{listings}
\begin{document}
Bla bla blabla blabla bla bla blabla bla blabla bla blabla
bla blabla bla blablablabla bla
\lstinline[literate={\\\-}{}{0\discretionary{-}{}{}}]!ThisIsAVeryLong\-Example\-ClassNameAndItHasNoLineBreak!
bla blabla blabla blabla bla
\end{document}

\\PS 引用した質問の2 番目の引数は間違いだったと思いますか\discretionary? とにかく、上記は私の場合は機能します。

答え3

今夜、次の 2 つの手順を実行したら幸運に恵まれました。

  1. 名前を明示的に分割します。\lstinline{ThisIsAVeryLongExampleClassName}\lstinline{AndItHasNoLineBreak}
  2. 前述の内容が(または実際に)lstsetあることを確認してください。breaklines=truebreaklines

関連情報