Hiển thị code trong Latex với gói minted

code

Latex rất tiện cho soạn thảo toán học và chèn code, sẽ rất đẹp nếu so với chèn trong word vì nó giữ nguyên font chữ, highlight code.

Để hiển thị code trong latex, ta có thể dùng các gói listing và đặc biệt minted là tiện hơn rất nhiều.

Để sử dụng minted, tốt hơn hết là tải gói mới nhất trên mạng về từ địa chỉ: https://github.com/gpoore/minted rồi đặt cùng thư mục với file .tex đang soạn thảo.

Trong file *.tex, báo cho compiler biết cần dùng gói minted:

\usepackage{minted}

Có 2 cách để sử dụng minted.

Cách 1: chèn code trực tiếp:

đoạn code sau là ví dụ từ trang sharelatex

\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
linenos
]
{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}


Cách 2: chèn từ file code
Ta cũng có thể chèn từ file nếu code quá lớn, không muốn làm cho file *.tex thêm phức tạp.

\inputminted[frame=lines,framesep=2mm, baselinestretch=1.2,
                     fontsize=\footnotesize,linenos]{matlab}{codes/6_1.m}


frame=line: vẽ 2 đường ở đầu và cuối code để nhận biết vùng code
framesep=2mm: frame cách 2mm so với code
linenos: hiển thị số thứ tự dòng.


reference:
https://www.sharelatex.com/learn/Code_Highlighting_with_minted
further reading:
http://mirror.unl.edu/ctan/macros/latex/contrib/minted/minted.pdf
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

mlcvGru

Random thoughts on Machine Learning, Deep Learning and (sometimes) Computer Vision

LazyT

Góc nhỏ của Quyền

phanlan

we get what we give, sống là cho đi

Codeaholicguy

software engineer, team lead at #kobiton, blogger at @codeaholicguy

Maths 4 Physics & more...

Blog Toán Cao Cấp (M4Ps)

Vatlyvietnam's Blog

Thế Giới Song Song

Darren Wilkinson's research blog

Statistics, computing, data science, Bayes, stochastic modelling, systems biology and bioinformatics

Ông Xuân Hồng

Chia sẻ kiến thức và thông tin về Machine learning

Từ coder đến developer - Tôi đi code dạo

Lập trình viên giỏi không phải chỉ biết code

Computational Biology and Molecular Modelling

An interface between biology, chemistry and computer science

Moriator - I can do it!

Linux dễ dàng hơn bạn nghĩ!

VinaCode

Lập trình & Cuộc sống

Blog của Chiến

Học. Thực hành. Sáng tạo

Bespoke Blog

Science! Culture! Computational Engines!

Vuhavan's Blog

Just another WordPress.com weblog

%d bloggers like this: