我想使用帶有 .txt 檔案的清單包來顯示 CSV 檔案中的幾行內容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
兩種解決方案現在都給出了更有吸引力的結果