Как работать с очень длинными фразами lstinline, такими как длинные имена классов?

Как работать с очень длинными фразами lstinline, такими как длинные имена классов?

Согласно этому вопросу:

Как быть с очень длинными строками, не содержащими пробелов?

Моя проблема в том, что мои \lstinline-фразы не содержат никаких специальных символов, таких как "-". В моих 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 Я полагаю, \\что второй аргумент \discretionaryв цитируемом вопросе был ошибкой? В любом случае, вышесказанное работает для меня.

решение3

Сегодня мне повезло, я выполнил следующие два шага:

  1. Разбейте имя явно:\lstinline{ThisIsAVeryLongExampleClassName}\lstinline{AndItHasNoLineBreak}
  2. Убедитесь, что ваше предыдущее lstsetимело место breaklines=true(или просто breaklinesна самом деле).

Связанный контент