この質問によると:
スペースを含まない非常に長い行を処理するにはどうすればよいですか?
私の問題は、\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 つの手順を実行したら幸運に恵まれました。
- 名前を明示的に分割します。
\lstinline{ThisIsAVeryLongExampleClassName}\lstinline{AndItHasNoLineBreak}
- 前述の内容が(または実際に)
lstset
あることを確認してください。breaklines=true
breaklines