stone-zeng / fduthesis

LaTeX thesis template for Fudan University
LaTeX Project Public License v1.3c
837 stars 208 forks source link

希望加入盲审相关代码 #67

Open jinyu121 opened 5 years ago

jinyu121 commented 5 years ago

既然都有生成封面这种高大上的操作了……就顺便求一下全套东西吧(真的是站着说话不XX)……比如,盲审。

这个应该不着急,毕竟自己也能PDF合并啊啥的。I mean,加上这些会更完整一些。

学校盲审

首先这个是学校盲审的封面样本,下载自EHall和复旦大学研究生院 2019/03/26

盲审版论文封面规范样本.docx

看了一下,好像标题字体不太一样。好像是加粗的宋体,而不是黑体。另外是“编号”而不是“学号”

上海市盲审

当然,希望大家都用不到这个封面😂

下载地址:复旦大学研究生院 2016/09/26

上海市硕士学位论文抽检纸质版盲审论文封面规范样本.docx

盲审相关指令

这个需求的来源是“在校期间发表文章”和“致谢”。 比如\begin{blindreview} XXXXX \end{blindreview}\begin{openreview} XXX \end{openreview},里面的内容只在盲审和非盲审出现。

例子:

\chapter{在校期间发表论文}
\begin{openreview}
    \begin{enumerate}
        \item \textbf{张山}, 李思,王伍. 星际争霸与人工智能. 孵蛋大学人工智能学报
    \end{enumerate}
\end{openreview}
\begin{blindreview}
    \begin{enumerate}
        \item 第一作者. 孵蛋大学人工智能学报
    \end{enumerate}
\end{blindreview}

其他修改

这样的话,auto-make-cover就可以设置成: none/normal/schoolblind/shanghaiblind 了

sonnyhcl commented 5 years ago

这个issue有什么快速使用的workaround么?

sonnyhcl commented 5 years ago

直接改cls/def/template.tex写了个能用的workaround,暂时不会dtx所以改不了模板...所以什么时候能看到@stone-zeng大佬亲自操刀加这个功能

From 3c432a376fee146072082ef9758465c7003568da Mon Sep 17 00:00:00 2001
From: sonnyhcl <sonnyhcl@gmail.com>
Date: Sun, 6 Oct 2019 23:19:11 +0800
Subject: [PATCH] add blind for cls

---
 fduthesis-template.tex | 12 +++++++++-
 fduthesis.cls          | 65 ++++++++++++++++++++++++++++++++++++++++++++++++--
 fduthesis.def          |  2 ++
 3 files changed, 76 insertions(+), 3 deletions(-)

diff --git a/fduthesis-template.tex b/fduthesis-template.tex
index b216b6e..e47675b 100644
--- a/fduthesis-template.tex
+++ b/fduthesis-template.tex
@@ -30,11 +30,12 @@
 %   5. 不需要的注释可以尽情删除
 %*********************************************************************

-\documentclass{fduthesis}
+\documentclass[type=master,twoside,blind=school]{fduthesis}
 % 模板选项:
 %   type = doctor|master|bachelor  论文类型,默认为本科论文
 %   oneside|twoside                论文的单双面模式,默认为 twoside
 %   draft = true|false             是否开启草稿模式,默认关闭
+%   blind = none|school|shanghai   无盲审|学校盲审|上海市盲审,默认无盲审
 % 带选项的用法示例:
 %   \documentclass[oneside]{fduthesis}
 %   \documentclass[twoside, draft=true]{fduthesis}
@@ -379,4 +380,13 @@ $\ket{\downarrow}$。
 % 打印参考文献列表
 \printbibliography

+\chapter{致谢}
+\begin{openreview}
+  openreview
+\end{openreview}
+
+\begin{blindreview}
+  blindreview
+\end{blindreview}
+
 \end{document}
diff --git a/fduthesis.cls b/fduthesis.cls
index 1049a23..69a1bce 100644
--- a/fduthesis.cls
+++ b/fduthesis.cls
@@ -85,6 +85,7 @@
 \tl_new:N    \l__fdu_tmpa_tl
 \tl_new:N    \l__fdu_tmpb_tl
 \int_new:N \g__fdu_thesis_type_int
+\int_new:N \g__fdu_thesis_blind_int
 \clist_new:N \g__fdu_to_ctexbook_clist
 \clist_new:N \g__fdu_to_hyperref_clist
 \bool_new:N \g__fdu_twoside_bool
@@ -177,6 +178,12 @@
       { \bool_set_false:N    \g__fdu_draft_bool },
     draft .default:n = true,
     draft .initial:n = false,
+    blind .choice:,
+    blind .value_required:n = true,
+    blind .choices:nn = 
+      { none, school, shanghai }
+      { \int_set_eq:NN \g__fdu_thesis_blind_int \l_keys_choice_int },
+    blind .initial:n = none,
     config .tl_set:N = \g__fdu_config_tl,
     unknown .code:n = { \__fdu_error:n { unknown-option } }
   }
@@ -221,7 +228,8 @@
     graphicx,
     longtable,
     caption,
-    xcolor
+    xcolor,
+    comment
   }
 \cs_new_protected:Npn \__fdu_check_package:nnn #1#2#3
   {
@@ -1094,7 +1102,10 @@
             \par
           }
         \__fdu_cover_id_aux:n { school_id  } \par
+        \int_compare:nT { \g__fdu_thesis_blind_int == 1 }
+        {
         \__fdu_cover_id_aux:n { student_id }
+        }
       }
     \hbox_to_wd:nn { -24 pt } { }
   }
@@ -1142,6 +1153,8 @@
   {
     \begin{minipage} [ c ] { \textwidth }
       \centering \zihao { 4 }
+      \int_compare:nT { \g__fdu_thesis_blind_int == 1 }
+      {
       \clist_set:Nx \l__fdu_tmpa_clist
         {
           \c__fdu_name_department_tl,
@@ -1158,13 +1171,36 @@
           { \l__fdu_info_supervisor_tl },
           { \l__fdu_info_date_tl       }
         }
+      }
+      \int_compare:nT { \g__fdu_thesis_blind_int == 2 }
+      {
+      \clist_set:Nx \l__fdu_tmpa_clist
+        {
+          \c__fdu_name_blind_id_tl,
+          \c__fdu_name_blind_major_tl,
+          \c__fdu_name_date_tl,
+        }
+      \clist_set:Nx \l__fdu_tmpb_clist
+        {
+          { \l__fdu_info_student_id_tl },
+          { \l__fdu_info_major_tl      },
+          { \l__fdu_info_date_tl       }
+        }
+      }
       \__fdu_get_max_text_width:NN \l__fdu_tmpb_dim \l__fdu_tmpb_clist
       \bool_until_do:nn
         { \clist_if_empty_p:N \l__fdu_tmpa_clist }
         {
           \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl
           \clist_pop:NN \l__fdu_tmpb_clist \l__fdu_tmpb_tl
+          \int_compare:nT { \g__fdu_thesis_blind_int == 1 }
+          {
           \__fdu_spread_box:nn { 6 em } { \l__fdu_tmpa_tl }
+          }
+          \int_compare:nT { \g__fdu_thesis_blind_int == 2 }
+          {
+          \__fdu_spread_box:nn { 9 em } { \l__fdu_tmpa_tl }
+          }
           \c__fdu_fwid_colon_tl
           \__fdu_center_box:Vn \l__fdu_tmpb_dim { \l__fdu_tmpb_tl }
           \skip_vertical:n { 1 ex }
@@ -1402,12 +1438,27 @@
     auto-make-cover .default:n  = true
   }
 \AtBeginDocument
-  {
+  {    
     \bool_if:NT \l__fdu_auto_make_cover_bool
       {
+        \int_compare:nT { \g__fdu_thesis_blind_int == 1 }
+        {
         \begin{titlepage}
           \makecoveri \newpage \makecoverii
         \end{titlepage}
+        }
+        \int_compare:nT { \g__fdu_thesis_blind_int == 2 }
+        {
+        \begin{titlepage}
+          \makecoveri
+        \end{titlepage}
+        }
+        \int_compare:nT { \g__fdu_thesis_blind_int == 3 }
+        {
+        \begin{titlepage}
+          TODO
+        \end{titlepage}
+        }
       }
   }
 \AtEndDocument
@@ -1766,6 +1817,16 @@
 \newtheorem  { example     } { \c__fdu_name_example_tl    }
 \newtheorem  { lemma       } { \c__fdu_name_lemma_tl      }
 \newtheorem  { theorem     } { \c__fdu_name_theorem_tl    }
+\int_compare:nT { \g__fdu_thesis_blind_int != 1 }
+{
+  \includecomment{blindreview}
+  \excludecomment{openreview}
+}
+\int_compare:nT { \g__fdu_thesis_blind_int == 1 }
+{
+  \excludecomment{blindreview}
+  \includecomment{openreview}
+}
 \endinput
 %%
 %% End of file `fduthesis.cls'.
diff --git a/fduthesis.def b/fduthesis.def
index 762010a..3262c1d 100644
--- a/fduthesis.def
+++ b/fduthesis.def
@@ -93,6 +93,8 @@
     { secret_star     } { \textrm { \bigstar }          },
     { school_id       } { 学校代码                      },
     { student_id      } { 学 \qquad 号                  },
+    { blind_id        } { 编号                          },
+    { blind_major     } { 专业学位类别(领域)            },
     { department      } { 院系                          },
     { major           } { 专业                          },
     { author          } { 姓名                          },
-- 
2.7.4
sonnyhcl commented 5 years ago

由于学院提交的盲审版等于查重版,因此盲审版还需要考虑一下查重需要考虑的问题.今天学院查重,发现大家反映会出现这么几个问题

stone-zeng commented 5 years ago

查重有关问题见 #107。

Wen-He commented 3 years ago

@sonnyhcl 抄了你的 diff 结果抄,编译失败了,完全不懂这些,能帮忙看看吗?

我照着这个 diff 修改了clsdef文件之后:

  1. fduthesis-template.tex中设置blind=school
  2. 添加 blind-id = {}blind-major = {}

编译报错: image

其次,还有两个小问题希望能解答一下:

  1. 这段修改的是致谢之后的发表论文成果吗?
    
    \chapter{致谢}
    \begin{openreview}
    openreview
    \end{openreview}

\begin{blindreview} blindreview \end{blindreview}



2. `def` 文件中定义的 map 是 `{ student_id } { 学 \qquad 号 }`,而在`fduthesis-template.tex`中使用的是 `student-id`。下划线和短杠不区分吗?
sikouhjw commented 3 years ago

@sonnyhcl 抄了你的 diff 结果抄,编译失败了,完全不懂这些,能帮忙看看吗?

2019 年的代码,现在能编译通过才奇怪……

1. `def` 文件中定义的 map 是 `{ student_id } { 学 \qquad 号 }`,而在`fduthesis-template.tex`中使用的是 `student-id`。下划线和短杠不区分吗?

内部命令用的是 _,用户命令用的是 -