lstlisting으로 줄바꿈

lstlisting으로 줄바꿈

.breaklines=true

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\lstset{%
  backgroundcolor=\color{lightgray},
  basicstyle=\ttfamily\footnotesize,
  breaklines,
  showspaces
}

\begin{document}
\begin{lstlisting}
K01980;23S ribosomal RNA;11.79648646;17.54756407;16.55812848;7.070375553;9.904088434;10.33047681;11.34235283;12.84408234
K01977;16S ribosomal RNA;7.433653271;11.21805284;10.47502621;4.555449801;6.223779066;6.547853101;7.12047883;8.056722
K03046;DNA-directed RNA polymerase subunit beta' [EC:2.7.7.6];1.279373326;1.843958244;1.291530419;0.91598316;1.444456949;1.370082994;1.471863596;1.274232464
\end{lstlisting}
\end{document}

하지만 출력은 그다지 만족스럽지 않습니다.

여기에 이미지 설명을 입력하세요

  • 끊김이 매우 일찍 발생하므로 첫 번째 줄 끝 부분에 빈 공간이 많고 두 번째 줄은 사용 가능한 텍스트 너비를 초과합니다. 두 번째 줄에는 줄 바꿈이 없습니다.
  • 각 줄 뒤에는 빈 줄이 있습니다.

나는 다음과 같은 것을 갖고 싶습니다 :

K01980;23S ribosomal RNA;11.79648646;17.54756407;16.55812848;
  7.070375553;9.904088434;10.33047681;11.34235283;12.84408234
K01977;16S ribosomal RNA;7.433653271;11.21805284;10.47502621;
  4.555449801;6.223779066;6.547853101;7.12047883;8.056722
K03046;DNA-directed RNA polymerase subunit beta' [EC:2.7.7.6];
  1.279373326;1.843958244;1.291530419;0.91598316;1.444456949;
  1.370082994;1.471863596;1.274232464

답변1

listings동일한 내부 카테고리에 속할 때 문자 덩어리를 분리하지 않습니다. 이 경우,편지,숫자그리고다른카테고리는 특히 중요합니다. 기본적으로 문자는 예상한 대로 카테고리에 할당됩니다. 즉, 문자는 카테고리에 속합니다.편지, 숫자는숫자, 기호는 다음과 같습니다.다른.

언제편지이(가) 발견되었습니다. 모두 다음과 같습니다.편지또는숫자문자는 다음이 아닌 문자가 나올 때까지 읽혀집니다.편지/비-숫자발견되었습니다. 이 시리즈는 하나의 청크로 출력됩니다. 이제 비-캐릭터가 아닌 모든 캐릭터에서도 마찬가지입니다.편지다음까지편지발견되었습니다. 이러한 방식으로 입력을 처리하면 예제의 긴 일련의 숫자, 마침표 및 세미콜론이 깨지는 것을 방지할 수 있습니다.편지새로운 청크를 시작하는 것으로 나타났습니다.

이 문제를 해결하는 방법을 제안하는 방법은 다음과 같습니다.

  • 빌드된 청크가 특정 사용 사례의 논리적 데이터 단위에 해당하도록 문자 범주를 재정렬합니다. 예를 들어 숫자와 마침표도 카테고리로 이동하고 싶을 수 있습니다.편지, 세미콜론은 카테고리로 남겨두고다른. 이 작업은 추가하여 수행할 수 있습니다.

    alsoletter={0123456789.}
    

    에게 \lstset. 이제 모든 십진수 뒤와 세미콜론 뒤에도 줄바꿈이 발생할 수 있습니다.

  • 더 간단한 방법은 옵션을 사용 literate하고 기호 뒤에 줄 바꿈을 허용하는 버전으로 세미콜론을 재정의하는 것입니다.

    literate={;}{{;\allowbreak}}1
    

이제 두 솔루션 모두 더 매력적인 결과를 제공합니다.

여기에 이미지 설명을 입력하세요

관련 정보