- LaTeX 结构与样式分离,需要避免在正文区进行大量的样式设置。
- 在导言区,
\setlst
命令也可以完成对 lstlisting 环境的设置。
\documentclass{ctexart}
\usepackage{listings}
\usepackage[dvipsnames]{xcolor}
% 在导言区进行样式设置
\lstset{
language=Python, % 设置语言
basicstyle=\ttfamily, % 设置字体族
breaklines=true, % 自动换行
keywordstyle=\bfseries\color{NavyBlue}, % 设置关键字为粗体,颜色为 NavyBlue
morekeywords={}, % 设置更多的关键字,用逗号分隔
emph={self}, % 指定强调词,如果有多个,用逗号隔开
emphstyle=\bfseries\color{Rhodamine}, % 强调词样式设置
commentstyle=\itshape\color{black!50!white}, % 设置注释样式,斜体,浅灰色
stringstyle=\bfseries\color{PineGreen!90!black}, % 设置字符串样式
columns=flexible,
numbers=left, % 显示行号在左边
numbersep=2em, % 设置行号的具体位置
numberstyle=\footnotesize, % 缩小行号
frame=single, % 边框
framesep=1em % 设置代码与边框的距离
% 正文区
\begin{document}
% lstlisting环境
\begin{lstlisting}
import random
import collections
Card = collections.namedtuple('Card', ['rank', 'suit'])
# 一个叫做 FrenchDesk 的类。a class named FrenchDesk.
class FrenchDesk:
ranks = [str(n) for n in range(2, 11)] + list('JQKA')
suits = 'spades diamonds clubs hearts'.split()
def __init__(self):
self._cards = [Card(rank, suit) for rank in self.ranks for suit in self.suits]
def __len__(self):
return len(self._cards)
def __getitem__(self, position):
return self._cards[position]
desk = FrenchDesk()
\end{lstlisting}
\end{document}
这样也有另外一个好处,正文区的每一个 lstlisting 环境都会被设置上相应的样式。针对于特殊情况,我们也可以在特殊的 lstlisting 对相关属性进行重写。
或许在运行本次例子时,你会感觉代码放在了中间并不宽敞的区域。那是因为默认的版心在中间很小的区域。你可以通过以下方法来设置版心为 A4 纸的 80%:
\usepackage{geometry}
\geometry{a4papter,scale=0.8}
本文的所有代码都悄悄地加了此设置。嘻嘻。
LaTeX写东西排代码,记录一下一些代码的格式。目前有C/C++,Python的listing格式。内容转自维基百科、Stack Overflow等地,稍有修改。
C/C++:
\lstdefinestyle{customc}{
belowcaptionskip=1\baselineskip,
breaklines=true,
frame=l,
xleftmargin=\parindent...
docker-lstlisting
如何使用它:
\begin{lstlisting}[language=docker-compose-2,caption={Example docker-compose.yml},breaklines=true,label={code:compose}]
version: '2'
services:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
\end{lstlisting}
Python(htmlBeautiful.py)代码
from bs4 import BeautifulSoup #请先装好bs4包
import sys #用于获取系统参数
def prettifyHtml():
f = open
\usepackage{listings}
\lstset{
breaklines, % 自动将长的代码行换行排版
extendedchars=false, % 解决代码跨页时,章节标题,页眉等汉字不显示的问题
backgroundc
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{
backgro
\begin{lstlisting}
public static class MapClass extends MapReduceBase
implements Mapper {
private final static IntWritable
\usepackage { lstbayes }
然后在清单环境或命令之一中使用BUGS , JAGS或Stan作为语言。 例如,要格式化斯坦模型,
\ begin{lstlisting } [language=Stan]
data {
int<lower> J; // number of schools
real y[J]; // estimated treatment effects
real<lower> sigma[J]; // s.e. of effect estimates
parameters {
real mu;
real<lower> tau;
real eta[J];
对于每门课程(或一组笔记),复制“模板”文件夹。 根据需要编辑文件的“设置”部分。
对于每堂课/笔记会议,制作示例列表块的新副本。 像往常一样在块中输入; 制表符空格和换行符被保留!
要编写方程和数学符号,请将 TeX 格式的数学包含在$符号中。 要编写常规的 LaTeX 代码,请将它们括在~符号中。
示例注释块
\section*{Lecture title}
\begin{lstlisting}
Main bullet point
Sub-point
Some LaTeX command ~\LaTeX~
Some math $ \frac{1}{2} $
\end{lstlisting}