sppmg / TW_Thesis_Template

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

如何修改每一頁章節上方空白的大小 #11

Closed retsohuang closed 4 years ago

retsohuang commented 4 years ago

我嘗試在 NCU_thesis.cls 覆寫了 \geometry{includefoot, top=1cm, bottom=3cm, inner=3cm, outer=3cm}, 但是只有作用在 titlepage, 其他章節的空白還是很大(如下圖),請問要怎麼修改呢?謝謝🙇‍♂️

NCU_zh_pdf__page_17_of_59_
sppmg commented 4 years ago

你須要修改 thesis_base.cls 中,213 行到 260 行 (https://github.com/sppmg/TW_Thesis_Template/blob/29a9ec0e2608c9c1770d986dc22a8709bef57676/NCU_zh/thesis_base.cls#L213 也就是\def\@makechapterhead\def\@makeschapterhead 內容) 的 \vspace*\vskip 數值。

以下兩行均表示向下空出 20 pt 距離:

\vspace*{20\p@}
\vskip 20\p@

我解釋一下 \def\@makechapterhead 在做什麼,後面的英文設定與 \def\@makeschapterhead 一樣就不說了(@makeschapterhead 用於 \chapter*,致謝、目錄類會用到)。

\def\@makechapterhead#1{% 此巨集用於設定 chapter 樣式,因為較複雜,所以我不用 \titleformat 修改,而是從原始 LaTeX `book` 樣式做修改。 
  \vspace*{10\p@} % 先空出 10 pt
% 比對 chapter 是否是摘要,不是的話插入 20 pt
  \ifthenelse{\equal{#1}{摘要}}{{\abstractHeaderZh\par}}
    {\ifthenelse{\equal{#1}{Abstract}}{{\abstractHeaderEn\par}}{\vspace*{20\p@}}} % modify by sppmg
    % \abstractHeader don't forget {} for \centering
  \vspace*{20\p@}%  空出 20pt 對齊 LaTeX 預設位置,因為原始的 `book` 樣式在標題前是直接給 50pt。
  \ifzh{
    % Chinese <-- 中文設定部份
    {\parindent \z@ \centering \normalfont 
        \ifnum \c@secnumdepth >\m@ne
            \if@mainmatter
                \chapterTitleStyle \zhnumber{\thechapter}、\makebox[0.5em]{} 
            \fi
        \fi
        \chapterTitleStyle #1\par\nobreak 
        \vskip 40\p@ % 結束時再空 40 pt
    }
  }{
% 下略

最後,你可以用 [showframe] 選項標出內文框,判斷一下空間來源。 還有,不建議亂動 \geometry ,學校通常都會規定須要的邊距。

retsohuang commented 4 years ago

感謝,已調整完,我之後還是又改了 \geometry 因為我們學校規定邊界 3cm XD

另外發現一個問題,我把 config.tex 裡的 bibManType 改成 0, 但是他還是會去找 demo.bib,我還以為是只有 bibManType=2 才會🤔? ((如果覺得不適合我可以另外再開 issue 問🙇‍♂️

sppmg commented 4 years ago

我之後還是又改了 \geometry 因為我們學校規定邊界 3cm XD

哦哦!符合學校規定就好。

我還以為是只有 bibManType=2 才會?

是這樣沒錯。 我剛剛測試一下也沒問題。 你是不是有殘留一些編譯產生的暫存檔? 或是編譯指令串用到了 biber ? 如果用 Embedded 直接用 XeLaTeX 就好。

retsohuang commented 4 years ago

如果我把暫存檔都刪掉,但是就會變成另外一個 error

ERROR - Cannot find control file 'main.bcf'! - Did latex run successfully on your .tex file before you ran biber?

編譯指令串只有這樣XD xelatex -synctex=1 -interaction=nonstopmode "main".tex -shell-escape

btw, 我是用 macOS + texstudio

sppmg commented 4 years ago

Did latex run successfully on your .tex file before you ran biber?

看起來你還是執行到 biber 了。再檢查一下編譯指令串。

sppmg commented 4 years ago

.... 另外還有一個可能 main.tex line 2

% !BIB program = biber

把整行刪掉試試看。 忘記 texstudio 支援 magic comments 了。當初設這個是讓使用者預設使用 XeLaTeX + biber 的組合。 我編譯時用的編輯器不支援 magic comments ,所以不會有這問題。 試完結果請告訴我,我之後要把他砍掉。 XD

retsohuang commented 4 years ago

刪掉就正常了 👍 ,謝大大