web-dev-qa-db-ja.com

リストのパッケージで行の折り返しを強制する方法は?

ラテックスのリスティングパッケージに関して問題があります。次のXMLドキュメントのソースコードを埋め込む必要があります http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml 修士論文の付録に挿入します。問題は、パッケージにどのオプションを渡しても、ページに収めることができないようです。リストの行が長すぎて、listingsパッケージがそれらをラップしない、これは奇妙に思われます...どのようなオプションの組み合わせでうまくいくのでしょうか?

現時点では、次のlstset命令を使用しています。

\lstset{
breakindent=0em,
language=XML,
basicstyle=\footnotesize,
numbers=left,
numberstyle=\footnotesize,
stepnumber=2,
numbersep=5pt,
backgroundcolor=\color{white},
showspaces=false,
showstringspaces=false,
showtabs=false,
frame=single,
tabsize=2,
captionpos=b,
breaklines=true,
breakatwhitespace=true,
breakautoindent=true,
escapeinside={\%*}{*)},
linewidth=\textwidth
}

他のオプションを設定せずに、次のコマンドと組み合わせます。

\lstinputlisting{EP_Extensions.xml}

指定されたファイルのソースを次の出力にリストします。 alt text

40
Adam

私はこの問題を抱えていました...

breaklinesは私にとってはうまくいきましたが、trueに設定する必要があります-デフォルトはfalseです:

\lstinputlisting[style=Python,
    caption=My Class,
    label={mine.py},
    breaklines=true,
  ]{../python/mine.py}

私が使用したものとほぼ同じです

58
PeterJCLaw

私はこの問題を抱えていて、このページはグーグルで上位にランクされているので、ここに私のための解決策がありました:

次のものが含まれていました:\usepackage[none]{hyphenat}上記の問題が発生します。ラテックスをWordの途中で自動的に改行する問題を修正するためにそれを使用していました。

この解決策の代替案を多く探した後、適切なものは何も見つからず、適切に改行されたハイフネーションが適切に配置されていませんでした。

10
Aaron

すばらしい回答ではありませんが、1つのアイデアは、ソースコードをインクルードする前にWordでラップすることです。 Linuxを使用している場合は、コマンドfoldを使用できます。テキストが固定幅のフォントである場合、これが最も効果的に機能することは明らかです。コードリストの場合は、これを推奨します。

2
second

Aaronの回答 のフォローアップ。リスティングにbasicstyle=\ttfamilyを使用していました。したがって、変更することで改行を許可することができました

\usepackage[none]{hyphenat}

\usepackage[htt]{hyphenat}
%           ^^^

hyphenat docs は、httオプションが「\textttまたは\ttfamilyを介して...テキストタイプセットのハイフネーションを有効にする」ことを説明しています。私の使用例では、リストにハイフネーションは表示されませんでしたが、問題が発生しました。

1
cxw