sppmg / TW_Thesis_Template

The LaTeX Template for TW Thesis 台灣碩博士 LaTeX 論文樣板
MIT License
147 stars 39 forks source link

[v1.7]使用algorithm2e的問題 #1

Closed formatchou closed 6 years ago

formatchou commented 6 years ago

你好:

使用1.7版的範本,但遇到要寫演算法的情況,所以使用algorithm2e package 卻發生了 1.迴圈裡面的code 一律靠左的問題 2.line number跟code太套近 附上sample,要麻煩幫看看是哪裡出問題,若是套件衝突,可否告知推薦用那個package來寫演算法,謝謝

Test_1.7.zip

sppmg commented 6 years ago

感謝採用此樣板。

不是套件問題,是你加 package 位置有誤。

請將所有要添加於導言區的套件、指令一律加於 macros_preamble.tex,除非有特殊需求才去改 thesis_base.cls。這是因為 LaTeX 部份套件有先後順序,有些套件須要在一開始載入,有些一定要放在最後面。套件間亦可能有順序要求。

比對後看到你的 thesis_base.clsLaTeX tools 區段添加 11 行指令,其中有部份是樣板已經有的。我把關鍵指令移到 thesis_base.cls 最後面就可以了。不過還是建議你能將其移到 macros_preamble.tex 會比較整齊。

新年快樂! (若沒問題的話我幾天後關閉問題喔!)

formatchou commented 6 years ago

問題已修正,謝謝,另外請教一個問題 諸如封面、abstract後,都會多一頁空白,請問有沒有參數可以控制 1.多那一夜空白沒關係,但不要有頁碼 2.或是乾脆不要多那一頁空白 我知道這樣是為了輸出時方便,但是空白頁確有頁碼不太合理

Hsins commented 6 years ago

可以在不需要頁碼的該頁加上

\thispagestyle{empty}
sppmg commented 6 years ago

感謝 Hsins 回答(老實說我都快忘記 \thispagestyle 了 XD) 不過 \thispagestyle{empty} 作用在當前頁,所以以 chapter 為例,必須使用

\clearpage
\thispagestyle{empty}

結尾才行。

自動修改的方法是在 macros_preamble.tex 添加下面指令:

% Really blank pages between chapters
\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{%
  \clearpage
  {\thispagestyle{empty}\origdoublepage}%
}
\let\cleardoublepage\clearemptydoublepage

這是參考 http://www.tex.ac.uk/FAQ-reallyblank.html 的結果。 (其實用 pagestyle{} 也沒差,應該是 fancyhdr 會自動套用原樣式)

我自己是比較喜歡白頁亦加頁眉、頁碼,不過感覺這是不錯的要求,我下一版會加入這個功能。 (其實剛剛去翻書架,只有一本有白頁,它是完全不含頁碼的。另一方面 memoirKOMA-Script 也是用純白頁)

順帶一提,如果不用雙頁可以在 main.texoneside 設成單頁配置。

\documentclass[oneside]{NCU_thesis}

這樣就不會有白頁 XD

或是用 openany 選項,可以保持雙頁模式但允許由左頁起始新章。

(白頁不是為了輸出方便,是因為要保持 twoside + openright。左右頁格式會有小小差異。)


omg, 剛剛發現原來我的 1.7.1 忘記 push XD 想說你付的範例檔怎會是舊的 1.7(不過大致一樣拉,不用擔心)。

formatchou commented 6 years ago

你好:

基本上沒大問題了,但是遇到Appendix有,就是會遇到那種差一點點空間放不下演算法 導致第一個只有Title,第二頁才秀完整演算法

舉例: Appendix A Quick Sort Algorithm

請問有無方法可以 1.改變Appendix A的Font Size 2.有沒有辦法顯示 Appendix A: Quick Sort Algorithm

sppmg commented 6 years ago

嗯... 不太清楚你的要求。

先要問你:

  1. 你的 Appendix A 是chapter title 嗎?
  2. 你要用英文的格式嗎?(是的話用 *_en 版就好了。)

如果你的 1,2 指的是 chapter (appendix) 編號與標題,那簡單套用英文版即可。如果要英文版又希望能放在同一行顯示(如中文版配置),那要重定義 \@makechapterhead ,可以參考 thesis_base.cls 178行(Chapter title style) 自行修改。看不懂的話可以簡單從中文版把中文替換成英文。

當然,我還是會建議沒必要就保持原本中英樣式吧!:D 至少英文是用原本 LaTeX 預設值,猜測這個格式會比較美觀。(LaTeX 背後考慮很多排版規則了。)

然後重點還是你碰到塞不下的問題。 我猜你就直接用 H 選項了吧!

\begin{algorithm}[H]
.....

algorithm2e 文件第二章指出

The optional arguments [Hhtbp] works like those of figure environment. The H argument forces the algorithm to stay in place. If used, an algorithm is no more a floating object. Caution: algorithms cannot be cut, so if there is not enough place to put an algorithm with H option at a given spot, L A TEX will place a blank and put the algorithm on the following page.

我實際測試,如果 algorithm 前面有文字,那 algorithm 本身文字會受到影響,整體排版會比較難看。

你自己試試去除 [H] 會不會比較好看,如果不行的話,在 \begin{algorithm} 內使用文字大小指令(如: \scriptsize)調整特定區塊的大小。(文件中也有提到 \AlFnt ,看來是設定所有 algorithm 環境的風格。用法如: \SetAlFnt{\scriptsize}

如果你的演算法太長, algorithm2e 可以參考 https://tex.stackexchange.com/questions/18949/algorithm2e-split-over-several-pages 或是改用 algorithmicx (據說是最好的演算法套件?!),參考 https://tex.stackexchange.com/a/85392

不過看來兩種方法都要手動切割.......

2018-01-05 18:06 GMT+08:00 formatchou notifications@github.com:

你好:

基本上沒大問題了,但是遇到Appendix有,就是會遇到那種差一點點空間放不下演算法 導致第一個只有Title,第二頁才秀完整演算法

舉例: Appendix A Quick Sort Algorithm

請問有無方法可以 1.改變Appendix A的Font Size 2.有沒有辦法顯示 Appendix A: Quick Sort Algorithm

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sppmg/TW_Thesis_Template/issues/1#issuecomment-355517770, or mute the thread https://github.com/notifications/unsubscribe-auth/AF0OIXIJE_Urpc15DGvHComP6DUAV8z_ks5tHfQPgaJpZM4RPxSd .