學術寫作工作流:環境架設與使用界線
學術寫作
常見需求:已經有一套服務學術寫作或研究計畫的工作流程,需要有人協助把環境架起來並實際跑通,以減少摸索時間。這類工作的重點通常不是再做一個新工具,而是讓既有步驟在你的電腦上真的走得完,並且守住學術倫理。
這次測試到哪裡
draft_check.py 已在本機對一份故意不完整的示範草稿跑過,有找出缺少引用記號、缺少揭露段落,以及「待補」這類佔位文字。它不能判斷抄襲或原創性,也沒有安裝或連線到任何商業寫作服務。
三層怎麼分工
| 層 | 做什麼 |
|---|---|
| 環境 | 固定資料夾、參考文獻格式,以及你被允許使用的工具清單。 |
| 跑通 | 用一篇不會對外提交的練習草稿,把「讀文獻、做筆記、寫段落、檢查引用」走完一遍。 |
| 界線 | 依學校、計畫主持人或期刊的規定,決定工具可以用在哪一步,以及要如何揭露。 |
先寫下規則,再安裝軟體
學術倫理與生成式工具的使用界線,以你所屬學校、實驗室、計畫單位與目標期刊的最新規定為準。有些場合禁止把未發表資料貼進外部服務,有些要求在論文中揭露使用情形,有些只允許用在文法潤飾。本篇不代替這些規定,也不教人用工具代寫再當成自己的研究成果。
建議的資料夾可以很簡單:
示例
project/
notes/ 讀文獻的筆記,每則都留下完整書目
drafts/ 只在本機保存的草稿
bib/ 參考文獻檔
checks/ 檢查結果用清單檢查草稿,而不是判斷好不好
#!/usr/bin/env python3
"""檢查學術草稿是否具備引用、參考文獻與使用揭露段落。不判斷原創性。"""
from __future__ import annotations
import argparse
import re
import sys
from pathlib import Path
def check(text: str) -> list[str]:
issues: list[str] = []
if not re.search(r"^##?\s*參考文獻", text, re.M):
issues.append("找不到「參考文獻」小標")
if not re.search(r"\[@[^]]+\]|\([^)]{1,30}年[^)]*\)|\([^)]{1,30}20\d\d[^)]*\)", text):
issues.append("正文幾乎看不到引用記號(例如 [@作者年] 或(作者, 年份))")
if not re.search(r"揭露|聲明|使用情形|工具說明", text):
issues.append("沒有看到工具使用或生成內容的揭露段落,請依學校或期刊規定決定是否要加")
if re.search(r"lorem ipsum|待補|xxx|TODO", text, re.I):
issues.append("文中仍有待補或佔位文字")
return issues
def main() -> int:
parser = argparse.ArgumentParser(description="學術草稿檢查")
parser.add_argument("file", type=Path)
args = parser.parse_args()
issues = check(args.file.read_text(encoding="utf-8"))
if issues:
print("待處理:")
for item in issues:
print(f"- {item}")
return 1
print("這份清單沒有再找到缺項。這不代表內容已符合學術倫理,仍須自行核對來源與學校規定。")
return 0
if __name__ == "__main__":
sys.exit(main())執行
python draft_check.py sample_draft.md通過這份清單,只表示結構上還看得到引用與參考文獻區塊。引文是否正確、是否遺漏來源、是否涉及不當使用他人或工具產出的文字,都要你自己對原始文獻。不要把未公開的訪談、病歷、學生作業或機密資料貼到你無法控制保存期限的外部服務。
常見錯誤
- 還沒弄清學校或期刊怎麼看待生成式工具,就把正文整段貼進去改寫。
- 參考文獻是有了,但正文裡沒有對應的引用。
- 把工具產生的句子當成已讀過文獻後的結論。
- 環境只裝在某一台電腦,卻沒有留下可重做的步驟說明。