Этот вопрос возник изКак работать с очень длинными фразами lstinline, такими как длинные имена классов?.
Этот вопрос касается переноса строк внутри \lstinline
фразы. Я предоставил ответ, который автоматически расставляет переносы на заглавных буквах, а затем, в комментарии, я понял, что иногда может быть полезно иметь автоматический перенос и на подчеркиваниях _
.
Мне удалось это реализовать, но осталась одна проблема: я хотел бы предотвратить автоматическую _
расстановку переносов в начале имени (например, в Python это обычная ситуация, поскольку по соглашению внутренние имена начинаются с подчеркивания (или двух)).
\documentclass{article}
\usepackage[paperwidth=10cm,paperheight=5cm]{geometry}
\pagestyle{empty}
\usepackage{lstdoc}
\lstMakeShortInline[literate={\_}{\_}{1\discretionary{\_}{}{}}]|
\begin{document}
\textbf{Good line break:} in this paragraph the line break in the
python's variable |a_python_style_name| is good!
\textbf{Bad line break:} the internal variable |_internal_python_name|
is not hyphenated very nicely in this paragraph.
\end{document}
решение1
Обойти \discretionary
вставку, вставив что-то еще просто для начала. Вот несколько вариантов:
\documentclass{article}
\usepackage[paperwidth=10cm,paperheight=8cm]{geometry}
\pagestyle{empty}
\usepackage{lstdoc}
\lstset{mathescape=true}
\lstMakeShortInline[literate={\_}{\_}{1\discretionary{\_}{}{}} {~}{\_}{1}]|
\newcommand{\preunderscore}{\_}
\begin{document}
\textbf{Good line break:} in this paragraph the line break in the
python's variable |a_python_style_name| is good!
\textbf{Bad line break:} the internal variable |_internal_python_name|\par
|_internal_python_name|
\textbf{Bad line break:} the internal variable |~internal_python_name|\par
|~internal_python_name|
\textbf{Bad line break:} the internal variable |$\preunderscore$internal_python_name|\par
|$\preunderscore$internal_python_name|
\end{document}
С помощью mathescape
можно вставить макрос вместо literate
замены для _
. В качестве альтернативы используйте другой literate
символ для начала. Существуют различия в интервалах.