sppmg / TW_Thesis_Template

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

參考文獻 APA格式的問題 #2

Closed vergilchiou closed 6 years ago

vergilchiou commented 6 years ago

您好,我參考文獻想使用 apa 的格式,我的作法是先在 macros_preamble.tex 裡面使用『\RequirePackage{apacite}』加入套件,之後再到 config.tex 裡面去把 bibStyle修改成 \def\bibStyle{apacite}。但是一直有錯誤訊息編譯不過去,請問是我還有哪裡沒有調整到嗎? 謝謝您!

sppmg commented 6 years ago

嗯 ...你幫我發現一個 bug,不過應該不會導致你的錯誤訊息。

首先,你要看看你用的文獻處理程式是 BibTeX 還是biber 。我樣板預設使用 biber + BibLaTeX(推薦,要改的話在 config.tex 設定 \bibManType{1})。 你用的 apacite 是 BibTeX 的套件。 如果你可以用 biber 的話(有些期刊可能限制只能用 BibTeX),可以在 config.tex 中直接設定 \bibStyle{apa}

(https://www.sharelatex.com/learn/Biblatex_bibliography_styles 參考一下)

不過呢!我說的 bug 就在這裡了,我的樣本檔 thesis_base.cls 還維持在舊版的狀態。是寫死成 IEEE 樣式。所以要請你到 thesis_base.cls 第 497 和 500 行,將

style=ieee

取代為

style=\bibStyle

或是直接用

style=apa

我剛才稍微測一下,是有 apa 樣式出來,不過因為印象中以前曾試過。似乎 apa 套件會和 xeCJK 有衝突?!

總之你先試試。

對了!有任何錯誤訊息記得附上!無論是用 biber 或是 BibTeX 。

vergilchiou commented 6 years ago

您好,我的編輯器是 Texmaker,文獻處理程式是 Bibtex,所以這個 bug 應該不會影響到我? 之前獨立在單檔寫論文還沒有套上樣板的時候,我都是用 usepackage{apacite} 來編譯的。又看到你的樣板裡面有 BibTex 可以選,才想說繼續用 BibTex來解決。 BibTex

我的作法是:

但似乎還是編譯不過去...

如果真的不行,我再來研究一下 biber + bibLaTex的方法好了 謝謝您!

vergilchiou commented 6 years ago

您好,改成用 biber 之後,如果 style=authoryear 就沒問題,但如果用style=apa 或者style=ieee都會出現Undefined control sequence.的錯誤訊息。

sppmg commented 6 years ago

以下是剛剛研究出來的結果,只有 biber , BiBTeX 等之後有時間再研究 XD

根據手冊 biblatex-apa 2.2 Requirements 描述:

You will need to be using csquotes >= 4.3 and biblatex >= 3.4 The biber backend for biblatex >= 2.5 is also required. This style will not work correctly if using bibtex as the backend for biblatex.

加上這篇

總之,你試試看除了之前提到的改用 apa 外,另在macros_preamble.tex 加入

\RequirePackage[english]{babel}
\RequirePackage{csquotes}
\DeclareLanguageMapping{english}{american-apa}

我測試是ok的,無論是否使用 xeCJK以及包含中文。中文內文似乎沒有被 babel 影響。

vergilchiou commented 6 years ago

您好,成功了!管他 apa 還是 ieee 都沒問題了。感謝!我一定會要把你寫進我論文的誌謝辭!

sppmg commented 6 years ago

不客氣。也要謝謝你幫我發現 \bibStyle 的 bug 。目前已修復,不過也只有改上面說的那些,你就不用載了。

BiBTeX + apacite 我一直沒試成功,也不是中文問題,疑似哪個套件衝到??(在 MWE 裡面測試沒問題) 之後再慢慢找問題好了。

vergilchiou commented 6 years ago

您好,剛才又發現一個小問題。我目錄的標題編譯出來都顯示成是英文的 Contents、List of figures、List of tables。而不是 thesis_base.cls 設定的 目錄、圖目錄、表目錄

重新 Download GItHub 的檔案下來實驗以後發現,似乎跟這三個套件有關,請問是否有解法?

\RequirePackage[english]{babel}
\RequirePackage{csquotes}
\DeclareLanguageMapping{english}{american-apa}
sppmg commented 6 years ago

測試前先問你:

  1. 你用的是 _en 版還是 _zh 版?
  2. 沒有多加的這幾行,並且用 ieee 樣式下,標題是否仍為英文?

vergilchiou notifications@github.com 於 2018年5月11日週五 16:47 寫道:

您好,剛才又發現一個小問題。我目錄的標題編譯出來都顯示成是英文的 Contents、List of figures、List of tables。而不是 thesis_base.cls 設定的 目錄、圖目錄、表目錄。 重新 Download GItHub 的檔案下來實驗以後發現,速乎跟這三個套件有關,請問是否有解法?

\RequirePackage[english]{babel} \RequirePackage{csquotes} \DeclareLanguageMapping{english}{american-apa}

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

vergilchiou commented 6 years ago

您好,我用的是 *_zh 版本。

如果不加這三個套件,編譯會出現! Package babel Error: Unknown language english'. Either you have...Undefined control sequence的error。

加了就可以過,但標題仍為英文。

\RequirePackage[english]{babel}
\RequirePackage{csquotes}
\DeclareLanguageMapping{english}{american-apa}
vergilchiou commented 6 years ago

另外有個奇怪的點是,在重新下載檔案實驗的時候,我是 mac 系統,只要把\OS改成'mac'就可以通過編譯,並且標題是您預設的 目錄、圖目錄、表目錄

但是進去 thesis_base.cls"錄" 改成 "次"以後。編譯就會出現 Undefined control sequence的 error。加入三個套件以後就又可以編譯過去了,不過標題也會因此變成英文。

vergilchiou commented 6 years ago

您好,Google到解法了,這篇說只要在導言區、調用 babel 之後補上\let\captionsenglish\empty\let\dateenglish\empty 這兩行就行了。

所以只要在 macros_preamble.tex 裡面把上面加的三行後面再補上這兩行即可。

\RequirePackage[english]{babel}
\RequirePackage{csquotes}
\DeclareLanguageMapping{english}{american-apa}
\let\captionsenglish\empty 
\let\dateenglish\empty
sppmg commented 6 years ago

哦!不錯的解法。我完全沒用過 babel / polyglossia 這種多語言套件(實際上他們也沒有 Chinese 以及 xeCJK 也不用他們)。

你提供的這個解法看起來是強制將 babel 設定的巨集清空,讓他無作用。

剛剛我再研究一下(試誤 XD)發現其實可以不用 babel

biblatex 手冊裡面,3.1.2.1 節中的 language= 說(預設的)language=autobib 會去抓 bebel的設定,(and fall back to English if babel/polyglossia is not available). It is also possible to select the package language manually.

所以預設上 biblatex 就已經將內容當作英語環境了,所以只要在 macros_preamble.tex 加上

\RequirePackage{csquotes}
\DeclareLanguageMapping{english}{american-apa}

即可。我在 Linux 上測試沒問題,你試試看。

另外,昨天看到 apacite 會要求與 hyperref 套件共用的情況下要放在 hyperref 後面載入。而 biblatex-apa 看來沒有這限制,應該就只有上面提到的依賴 csquotes

vergilchiou commented 6 years ago

我試了以後還是一樣跳 Undefined control sequence 的 error耶? 我覺得 biber + biblatex 完全可以取代,有點沒有繼續往下研究 apacite的動力 XD

另外想請教你的 LaTex 是看哪裡學的阿?可以改出自己想要的樣板。我只會

\begin{document}

!%$%^%@...

\end{document}

而已。

下面是我學校要求的摘要格式,跟中央的似乎差有點多,有辦法從你的 .cls直接改出來嗎?我也想改一個暨大的樣板。

sppmg commented 6 years ago

Undefined control sequence 的 error

指的是 biblatex apa ?

能給我完整 error 嗎? 你的 MacTeX 是最新版嗎?


apacite : 如果沒有相容性問題,像是學校、期刊規定一定要 bibtex,我認為直接用 biber + biblatex 就好了。


然後改樣板方面,就只是 google + 剪剪貼貼而已 XD。要細學的話可以看看我在教學裡面的參考資料或是建議閱讀材料(當然包含我的教學本身囉)。

你提供的樣式其實近似於交大版(NCTU),可以試著自己改改看。

NCTU_thesis.cls \def\abstractHeader Zh/En 中的內容修改成你要的就好了。

這巨集定義放在摘要頁頁首的資訊,其實也就是放入一個 tabularx 表格,你應該很容易就能改好。 我晚點有空也可以試試看(或許沒空 XD,別期待。)

vergilchiou commented 6 years ago

您好,感謝您!我後來複製交大版 NCTU_thesis.cls 裡的 \def\abstractHeader 貼到 thesis_base.cls 裡面去改。

不過 tabularx 表格最左邊那一排(校院系、畢業時間、研究生)一直沒辦法跟論文名稱一起靠左對齊,所以我後來放棄表格直接用 hfill 的方式下去做。

\def\abstractHeaderZh{\raggedright
    \abstractHeaderStyle 論文名稱:\titleZh \par
    校院系:\scdZh             \hfill 頁數:\pageref{LastPage} \par
    畢業時間:\degreedateclose \hfill 學位別:\degree \par
    研究生:\author            \hfill 指導教授:\profs \ 博士 \par
    \vspace*{1ex}
}
sppmg commented 6 years ago

我試著做了一個暨南的版本,晚點會上傳。

sppmg commented 6 years ago

預覽版本在 develop branch。 還有些格式須要微調。

vergilchiou commented 6 years ago

您好,想再請教您, 目錄跟每一章頁首的 第 chapter 章 我已經改出來了,但是目錄的 第X節 一直改不出來?

我的方法是這樣

\titlecontents{section}[\tocNumSpaceS@Before]
{}{\makebox[\tocNumSpaceS@Total][l]
{第\zhnumber{\thecontentslabel}}節}{}
{\titlerule*[0.4pc]{.}\contentspage}%0.4 = 點距

但出來的結果卻變成這樣(下圖) section1.1zhnumber 轉成 第一點一節 的問題一直搞不定。

sppmg commented 6 years ago

不太懂你的意思。你是希望目錄的章顯示成 第一章,節顯示成 第 1.1 節

vergilchiou commented 6 years ago

抱歉,沒說清楚,第一張圖是學校格式的要求範本。 所以我想要的是每一章的 section 顯示成 第一節、第二節、... 第二張圖示我改的,\zhnumbersection1.1、1.2... 直接轉成 一点一、一点二

sppmg commented 6 years ago

這部份會有點麻煩。 一般常見作法好像是直接重定義 \thesection ,但這樣內文的 1.1 章節標記一樣會影響。

我昨晚試著只改 toc 。是可以過濾出節號,但轉 \zhnumber{} 還有點問題。

其實一般來說 1.1 會比 第一節 來得直觀吧?我自己是認為除非格式硬性要求,不然我比較偏好 1.1 形式。

(話說當初我 toc 中文化至少搞了 2 週才搞定....)

2018-05-14 23:40 GMT+08:00 vergilchiou notifications@github.com:

抱歉,沒說清楚,第一張圖是學校格式的要求範本。 所以我想要的是每一章的 section 顯示成 第一節、第二節、... 第二張圖示我改的,\zhnumber 把 section 的 1.1、1.2... 直接轉成 一点一、一点二

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

vergilchiou commented 6 years ago

你好,有可能用 CTeX 去做修改嗎?像是 \CTEXsetup[name={第, 節!}]{section}

(我也覺得 1.1 的格式比較直觀, 第X節 的格式真的很爛...)

vergilchiou commented 6 years ago

CteX 不能改 toc,所以好像沒辦法 。 或許只能直接改定義了,因為我的章節標記根目錄都是要用 第x節 的形式,所以都改到也沒關係。

sppmg commented 6 years ago

CTeX 不熟,不過我猜有困難?

book.cls 定義中

\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {\thechapter.\@arabic\c@section}
\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}

所以 \thesection 就是 1.1 的形式了。 (我之前用 \def 改過,但不知為何沒成功) 你如果要改的話 \thesubsection 可能也要改。

可參考 https://tex.stackexchange.com/a/21135

另外,我看暨南沒有規定要 第x節 形式阿!?

vergilchiou 於 2018-05-16 下午 05:49 寫道:

|CteX| 不能改 toc,所以好像沒辦法 。 或許只能直接改定義了,因為我的章節標記根目錄都是要用 |第x節| 的形式,所 以都改到也沒關係。

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

vergilchiou commented 6 years ago

改出來了,後來直接改定義了 先

\renewcommand \thesection {\arabic{section}}

然後再

\titlecontents{section}[\tocNumSpaceS@Before]
{}{\makebox[\tocNumSpaceS@Total][l]
{第\zhnumber{\thecontentslabel}節}}{}
{\titlerule*[0.4pc]{.}\contentspage}%0.4 = 點距

不過我想直接在 \renewcommand 一起改的話應該也可以吧?

我看學校的格式範本是 第X節 的形式,所以才想說硬著頭皮改改看 去翻前人寫的論文也是這個格式,不過我看 第X節 這個格式很不爽 到時候口試完送審我就先丟 1.1 剛圖書館 argue 看看,搞不好也會過...

真的很感謝你的樣版!讓我可以用 LaTex 優雅的生出我的論文。

sppmg commented 6 years ago

恭喜!

注意一下 section 之後的標記,包含 subsection 等等。 就像我之前說的, subsection 定義是依賴 section ,所以修改定義後 subsection 也會少掉章數值。

 \renewcommand 直接加中文可能不太好。因為這樣所有記號都會包含中文。 有可能出問題的地方像是頁首,TOC 也有可能。原因之一像是 \zhnumber 不能接受數字以外的字元,一旦中文進去就會 error 。

你可以看看 main.toc 檔案,裡面就是 TOC 的資訊。 section 列的數值應改就是你改過的 1 (而非 1.1)型式。因此如果使用中文,這裡就會包含中文。(沒試過)。

我看了一下,教務處只有規定封面和摘要而已,圖書館才有目錄、內文。 而目錄部份,其實完全沒有考慮到小節 (subsection) ,如果用到 subsecton 還要用 第 X.Y 節 就會很怪。

我是覺得你可以以「適合閱讀」為原則試著爭取看看,畢竟這是自己辛苦做出的論文。(我學姊論文用英文14字體,學校規定英文12,他就說用12的話教授根本看不到好嗎!)

而且範例製作者也未必懂得排版,可能完全沒有考慮細節,就像華航會在飛機上用新細明體漆上「帝雉號」一樣。

(教務處範例完全就是 Word 格式... 喔不!是記事本格式...... 以摘要為例,我也在想說以符合格式來說,你用內文(非表格)搭配 \hfill 或許才是最佳解。)

另一方面,其實學校也未必嚴格要求使用訂定格式,只要看起來差不多就好了。

到時候你論文審過後可以給我一份 tex 範例作為已通過參考嗎? 不用內文,只要有相關設定就好。我會在暨南 Readme 感謝你的 :D

vergilchiou 於 2018-05-16 下午 11:48 寫道:

改出來了,後來直接改定義了 先

|\renewcommand \thesection {\arabic{section}} |

然後再

|\titlecontents{section}[\tocNumSpaceS@Before] {}{\makebox[\tocNumSpaceS@Total][l] {第\zhnumber{\thecontentslabel}節}} {} {\titlerule*[0.4pc]{.}\contentspage}%0.4 = 點距 |

不過我想直接在 |\renewcommand| 一起改的話應該也可以吧?

我看學校的格式範本是 |第X節| 的形式,所以才想說硬著頭皮改改看 去翻前人寫的論文也是這個格式,不過我看 |第X節| 這個格式很不爽 到時候口試完送審我就先丟 |1.1| 剛圖書館 argue 看看,搞不好也會過...

真的很感謝你的樣版!讓我可以用 |LaTex| 優雅的生出我的論文。

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

vergilchiou commented 6 years ago

你好,確實如你所說,所以我有連 subsection 一起修改。

我也打算以你說的『適合閱讀』argue 看看,我覺得我們學校規定的格式很不專業、不直觀。

當然沒問題,正有此意!

owen198 commented 5 years ago

您好:因為我的文獻中需要使用citep的格式,例如:(Jones et al., 1990; James et al. 1991) 但編譯過程中出現:undefined control sequence

我嘗試Google以後,似乎要加入natbib這個套件,不知道該加在哪邊呢?

感謝

owen198 commented 5 years ago

您好:因為我的文獻中需要使用citep的格式,例如:(Jones et al., 1990; James et al. 1991) 但編譯過程中出現:undefined control sequence

我嘗試Google以後,似乎要加入natbib這個套件,不知道該加在哪邊呢?

感謝

自問自答,biblatex應該沒有citep這個指令,要改為\parencite https://www.reddit.com/r/LaTeX/comments/5g9kn1/whats_the_difference_between_cite_citep_and_citep/

sppmg commented 5 years ago

嗯!正解無誤。(其實我也沒用過 XD) natbibbiblatex 是同功能(同等級)的套件,所以用了 biblatex 就不用 natbib 。用了不知道是否會出錯。

另外,下次直接開新 issue 吧!