日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案

發布時間:2024/8/1 python 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

坑邊閑話:如何在 Word 里添加代碼片段呢?這個可以通過 VBA 編程實現,加上某些可以導出 HTML 格式的源碼編輯器,基本無縫操作。但是 Word 插入代碼并自動更新,真的是讓人非常惱火,寫完這篇文章,我再回看 Word 中插入代碼,簡直是地獄般的操作,雖然小代碼量不難,也能借助某些操作能做得很好,但是終究不夠優雅。那么,

能做到嗎?如果能的話,如何在

里面添加源代碼并完美呈現呢?

1. 為什么需要在

里面添加源碼

有很多時候,我們需要讓自己的源代碼作為附錄寫在文章里,比如你的學位論文,再比如你的實驗報告。這些時候你單純寫結論上去不是很合適,別人沒有你的代碼是很難評價你的實驗真實性的。

所以源代碼必須要有。

1.1 最終PDF里面的源代碼應該是什么樣子的呢

我個人認為,應該至少滿足如下效果:代碼高亮,而且高亮的顏色可以自己設置;

代碼要使用等寬字體;

字間距也要跟編輯器里的完全一致,我添加幾個空格,你就呈現幾個空格,自動調節字間距的行為堅決不允許;

可以支持 include 導入源代碼。

關于 1~3 很好解釋,那就是我們要求 PDF 里的代碼片段看起來和公式編輯器里的一模一樣。第 4 條可能有人不理解,我在這里解釋一下。如果你的論文已經寫好,只差粘貼代碼進去就搞定,那么你絕對不需要第四條;但是,一旦你覺得有個地方不太對,那你需要在源碼里修改,然后再把修改過來的黏貼進來,這就很難受了!你需要找到對應的修改地方,而且手工很難保證自己

里的代碼和工程里的代碼完全一致!

2. 終極解決方案

這里我們采用時下比較火熱的 Python 進行演示。

有個叫做listings的宏包專門解決代碼展示問題!用了這個庫之后,你的代碼至少可以做到如圖 1 所示的樣子。

圖 1 最終的效果。字體嚴格等寬,代碼有自動高亮。

在這里要想到到上面的效果,需要這種命令:

\usepackage{listings}

\usepackage{ctex}

% 用來設置附錄中代碼的樣式

\lstset{

basicstyle = \sffamily, % 基本代碼風格 keywordstyle = \bfseries, % 關鍵字風格 commentstyle = \rmfamily\itshape, % 注釋的風格,斜體 stringstyle = \ttfamily, % 字符串風格 flexiblecolumns, % 別問為什么,加上這個 numbers = left, % 行號的位置在左邊 showspaces = false, % 是否顯示空格,顯示了有點亂,所以不現實了 numberstyle = \zihao{-5}\ttfamily, % 行號的樣式,小五號,tt等寬字體 showstringspaces = false,

captionpos = t, % 這段代碼的名字所呈現的位置,t指的是top上面 frame = lrtb, % 顯示邊框}

\lstdefinestyle{Python}{

language = Python, % 語言選Python basicstyle = \zihao{-5}\ttfamily,

numberstyle = \zihao{-5}\ttfamily,

keywordstyle = \color{blue},

keywordstyle = [2] \color{teal},

stringstyle = \color{magenta},

commentstyle = \color{red}\ttfamily,

breaklines = true, % 自動換行,建議不要寫太長的行 columns = fixed, % 如果不加這一句,字間距就不固定,很丑,必須加 basewidth = 0.5em,

}

只要把上面的這一段代碼,粘貼到你的

導言區域就可以了,當前,前提是你安裝了 listings 庫,如果沒有,請參見我的另一篇文章:如何安裝 TeXLive 2020。

現在我來解釋一下上面的代碼做了些什么。\usepackage{listings} 不用多說,就是簡單地引用庫;

\lstset 是對庫進行設置,主要是設置某些關鍵的地方,它含有很多字段;

\lstdefinestyle{Python} 是新定義一個叫做Python的樣式,到時候直接引用這個設置就可以;

\lstset 和 \lstdefinestyle{Python} 的東西差不多,不同之處就是優先級不同,后者更高,前者是在你沒有在 Python 中進行相關設定的時候,為你自動設置的一些東西。總而言之,Python 樣式里有的,一定會在 Python 代碼里忠實被執行;Python 樣式里沒有的,系統會檢查 \lstset 里有沒有相關設置,如果有就用,沒有的話就用系統的默認設置。

其他字符自己看注釋

那我如何使用這些設定呢?看代碼

\lstinputlisting[

style = Python,

caption = {\bf ff.py},

label = {ff.py}

]{../src/duke/ff.py}

{../src/duke/ff.py}是我源代碼在本系統中相對于TeX文件的位置;style選擇之前定義過的Python,label是一個可引用的標簽,以后可以使用ref{ff.py}關鍵字引用這段代碼,caption是我要在這個代碼上面顯示的表頭,告訴大家這個代碼有關什么東西,\bf 是加粗,沒什么其他意思。

再上一個圖,看一下長代碼行換行。

圖 2 長代碼換行。

結束語

到這里就結束了,如果你還想知道如何設置 C++、Java 等代碼的風格,可以關注我的專欄「修辭與編程」,我會在后期提供方案。如果這篇文章幫助到了你,請點贊支持我,感謝!

總結

以上是生活随笔為你收集整理的latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。