라텍스 소스 코드 목록은 스프링 프레임 워크와 같은 알려진 책과 같은 출력물을 어떻게 생성해야합니까? 라텍스 리스팅 패키지를 사용해 보았지만 아래처럼 멋진 것을 만들 수 없었습니다. 나는을 주로 (매닝에서 아래의 예제처럼 생산 뭔가에 서식 지침에 관심이 있어요 그래서 샘플 장 에 대한 조치 봄 ) :
편집
특히 Tormod Fjeldskår 의 도움으로 원하는 모양을 만드는 전체 스 니펫이 있습니다.
\usepackage{listings}
\usepackage{courier}
\lstset{
basicstyle=\footnotesize\ttfamily, % Default font
% numbers=left, % Location of line numbers
numberstyle=\tiny, % Style of line numbers
% stepnumber=2, % Margin between line numbers
numbersep=5pt, % Margin between line numbers and text
tabsize=2, % Size of tabs
extendedchars=true,
breaklines=true, % Lines will be wrapped
keywordstyle=\color{red},
frame=b,
% keywordstyle=[1]\textbf,
% keywordstyle=[2]\textbf,
% keywordstyle=[3]\textbf,
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}}
stringstyle=\color{white}\ttfamily, % Color of strings
showspaces=false,
showtabs=false,
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
% backgroundcolor=\color{lightgray},
showstringspaces=false
}
\lstloadlanguages{ % Check documentation for further languages ...
% [Visual]Basic,
% Pascal,
% C,
% C++,
% XML,
% HTML,
Java
}
% \DeclareCaptionFont{blue}{\color{blue}}
% \captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
문서에서 이것을 사용하십시오 :
\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}
답변
당신이 정말로 원하는 것은 캡션의 모양을 사용자 정의하는 것 같습니다. 이것은 caption
패키지를 사용하여 가장 쉽게 수행 됩니다. 이 패키지를 사용하는 방법에 대한 지침 은 설명서 (PDF)를 참조하십시오 . 설명서의 4 장에 설명 된대로 사용자 정의 캡션 형식을 만들어야 할 수도 있습니다.
편집 : MikTex로 테스트 :
\documentclass{report}
\usepackage{color}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
% This concludes the preamble
\begin{document}
\begin{lstlisting}[label=some-code,caption=Some Code]
public void here() {
goes().the().code()
}
\end{lstlisting}
\end{document}
결과:
답변
listings
패키지에 만족 합니다 :
구성 방법은 다음과 같습니다.
\lstset{
language=C,
basicstyle=\small\sffamily,
numbers=left,
numberstyle=\tiny,
frame=tb,
columns=fullflexible,
showstringspaces=false
}
나는 이것을 다음과 같이 사용한다 :
\begin{lstlisting}[caption=Caption example.,
label=a_label,
float=t]
// Insert the code here
\end{lstlisting}
답변
그리고 당신이 무엇이든간에 고정 너비 글꼴을 사용하도록 목록 패키지를 구성하십시오 (예 : 문서에서 옵션을 찾을 수 있습니다). 기본 설정은 그림에서 다른 답변에서 볼 수 있듯이 그리드에서 비례 글꼴 유형 세트를 사용합니다. 즉 IMHO는 매우 추악하고 읽을 수 없습니다. 비례 글꼴로 일부 코드 조판을 읽어야 할 때 개인적으로 매우 짜증이납니다.
다음과 같이 고정 너비 글꼴을 설정하십시오.
\lstset{basicstyle=\ttfamily}
답변
아무도 Minted 패키지를 언급하지 않은 이유가 궁금 합니다. LaTeX 리스팅 패키지보다 구문 강조가 훨씬 우수합니다. 피그먼트를 사용 합니다 .
$ pip install Pygments
LaTeX의 예 :
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
for i in range(m-1):
for j in range(i+1, m):
[r,c] = np.where(M2 == M1[i,j])
for k in range(len(r)):
VT[(i)*n + r[k]] = 1;
VT[(i)*n + c[k]] = 1;
VT[(j)*n + r[k]] = 1;
VT[(j)*n + c[k]] = 1;
if M is None:
M = np.copy(VT)
else:
M = np.concatenate((M, VT), 1)
VT = np.zeros((n*m,1), int)
return M
\end{minted}
\end{document}
결과 :
-shell-escape
pdflatex 명령과 함께 플래그를 사용해야합니다 .
자세한 정보 : https://www.sharelatex.com/learn/Code_Highlighting_with_minted
답변
listings
패키지를 사용해보십시오 . 다음은 컬러 자바 목록을 만들기 위해 얼마 전에 사용했던 예입니다.
\usepackage{listings}
[...]
\lstset{language=Java,captionpos=b,tabsize=3,frame=lines,keywordstyle=\color{blue},commentstyle=\color{darkgreen},stringstyle=\color{red},numbers=left,numberstyle=\tiny,numbersep=5pt,breaklines=true,showstringspaces=false,basicstyle=\footnotesize,emph={label}}
[...]
\begin{lstlisting}
public void here() {
goes().the().code()
}
[...]
\end{lstlisting}
당신은 그것을 사용자 정의 할 수 있습니다. 리스팅 패키지에 대한 몇 가지 참조가 있습니다. 그냥 구글.
답변
algorithms
패키지, 특히 algorithm
환경을 살펴보십시오 .
답변
새 글꼴을 선택하는 등 몇 가지 다른 작업을 수행 할 수 있습니다.
\documentclass[10pt,a4paper]{article}
% ... lots of packages e.g. babel, microtype, fontenc, inputenc &c.
\usepackage{color} % Leave this out if you care about B/W printing, obviously.
\usepackage{upquote} % Turns curly quotes in verbatim text into straight quotes.
% People who have to copy/paste code from the PDF output
% will love you for this. Or perhaps more accurately:
% They will not hate you/hate you less.
\usepackage{beramono} % Or some other package that provides a fixed width font. q.v.
% http://www.tug.dk/FontCatalogue/typewriterfonts.html
\usepackage{listings}
\lstset { % A rudimentary config that shows off some features.
language=Java,
basicstyle=\ttfamily, % Without beramono, we'd get cmtt, the teletype font.
commentstyle=\textit, % cmtt doesn't do italics. It might do slanted text though.
\keywordstyle= % Nor does cmtt do bold text.
\color{blue}\bfseries,
\tabsize=4 % Or whatever you use in your editor, I suppose.
}
\begin{document}
\begin{lstlisting}
public final int ourAnswer() { return 42; /* Our final answer */ }
\end{lstlisting}
\end{document}