이 질문은 다음에서 발전했습니다.긴 클래스 이름과 같이 매우 긴 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