%20%E3%81%A7%E6%94%B9%E8%A1%8C%E3%82%92%E8%A8%B1%E5%8F%AF%E3%81%99%E3%82%8B.png)
次の図は私の問題を示しています:
特定の C++ 演算子で行を分割するにはどうすればよいでしょうか\lstinline
? たとえば、FooFactory::instance()->createFoo()
次のように分割する必要があります。
... text FooFactory::
instance()->createFoo()
または
FooFactory::instance()->
createFoo() text text ...
MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[left=6cm,right=7cm]{geometry}
\usepackage{parskip}
\usepackage{showframe}
\usepackage{listings}
\lstset{
language=C++,
basicstyle=\ttfamily,
breaklines=true,
breakatwhitespace=true,
inputencoding=utf8,
extendedchars=true
}
\lstset{literate=% I dont know what I am doing...
{::}{::}{1\discretionary{}{}{}} % line-break at ::
{->}{->}{1\discretionary{}{}{}} % line-break at ->
}
\begin{document}
text text text text text text text text \lstinline{FooFactory::instance()->createFoo()} text text
text text text text
text text text text text text \lstinline{FooFactory::instance()->createFoo()} text text
text text text text
\end{document}
答え1
なぜこれが機能するのかもわかりません。もっと正確に言うと、置換テキスト内ではなく、数字の後に \discretionary を置く必要がある理由がわかりません。
\documentclass{article}
%\usepackage[utf8]{inputenc}% all it does for me is produce warnings
\usepackage[left=6cm,right=7cm]{geometry}
\usepackage{parskip}
\usepackage{showframe}
\usepackage{listings}
\lstset{
language=C++,
basicstyle=\ttfamily,
breaklines=true,
breakatwhitespace=true,
inputencoding=utf8,
extendedchars=true
}
\lstset{literate={::}{}{0\discretionary{::}{}{::}}% line-break at ::
{->}{}{0\discretionary{->}{}{->}}% line-break at ->
}
\begin{document}
text text text text text text text text \lstinline{FooFactory::instance()->createFoo()} text text text text text text
text text text text text text \lstinline{FooFactory::instance()->createFoo()} text text text text text text
\begin{lstlisting}
FooFactory::instance()->createFoo();
\end{lstlisting}
\end{document}