Skip to content

Commit 952f223

Browse files
fix: 限制盲审模式题名页***长度,以防行溢出
Resolves #649
1 parent df09d4b commit 952f223

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

bithesis.dtx

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
%
137137
% \begin{macro}[added=2023-05-06,updated=2023-07-04]{\@@_secret_info:nn,\@@_secret_info:N,\@@_secret_info:n}
138138
% 普通模式下显示参数一,盲审模式下显示参数二。
139+
% 无参数二时,替换为等量 |\g_@@_const_substitute_symbol_tl|,换行也会被替换。
139140
% \begin{macrocode}
140141
\cs_new:Npn \@@_hide:n #1 {
141142
\g_@@_const_substitute_symbol_tl
@@ -156,7 +157,22 @@
156157
\@@_secret_info:nn {#1} {\tl_map_function:NN {#1} \@@_hide:n }
157158
}
158159
% \end{macrocode}
160+
% \end{macro}
161+
%
162+
% \begin{macro}[added=2025-04-30]{\@@_secret_info_fixed:Nn}
163+
% 普通模式下显示参数一,盲审模式下显示参数二个数的 |\g_@@_const_substitute_symbol_tl|。
164+
% 例外:若参数一为空,也输出空。这样允许 |\@@_render_cover_entry:nn| 隐藏此项。
165+
% 为了实现例外,参数一必须是 N 而非 n,不然难以检测是否真正为空。
159166
%
167+
% \begin{macrocode}
168+
\cs_new:Npn \@@_secret_info_fixed:Nn #1 #2 {
169+
\tl_if_blank:VF #1 {
170+
\@@_secret_info:nn {#1} {
171+
\prg_replicate:nn {#2} {\g_@@_const_substitute_symbol_tl}
172+
}
173+
}
174+
}
175+
% \end{macrocode}
160176
% \end{macro}
161177
%
162178
% \begin{macro}[added=2023-03-16, updated=2025-04-04]{\@@_get_const:n} 获取标题、章节、表格、图形等的常量名称。
@@ -2152,7 +2168,7 @@
21522168
{
21532169
% 渲染信息。
21542170
\clist_set:Nn \l_@@_input_clist {
2155-
{姓名:} {\@@_secret_info:nn{\l_@@_value_author_tl}{\g_@@_const_substitute_symbol_tl\g_@@_const_substitute_symbol_tl\g_@@_const_substitute_symbol_tl}},
2171+
{姓名:} {\@@_secret_info_fixed:Nn \l_@@_value_author_tl {3}},
21562172
{学号:} {\@@_secret_info:N \l_@@_value_student_id_tl},
21572173
{学院:} {\l_@@_value_school_tl},
21582174
}
@@ -2302,12 +2318,13 @@
23022318
}
23032319

23042320
% 渲染信息。
2321+
% 此处必须限制盲审模式替换符号数量,不然会泄露信息,还可能导致行溢出
23052322
\clist_set:Nn \l_@@_input_clist {
2306-
{\c_@@_graduate_label_author_tl} {\@@_secret_info:nn{\l_@@_value_author_tl}{\g_@@_const_substitute_symbol_tl\g_@@_const_substitute_symbol_tl\g_@@_const_substitute_symbol_tl}},
2323+
{\c_@@_graduate_label_author_tl} {\@@_secret_info_fixed:Nn \l_@@_value_author_tl {3}},
23072324
{\c_@@_graduate_label_school_tl} {\l_@@_value_school_tl},
2308-
{\c_@@_graduate_label_supervisor_tl} {\@@_secret_info:N{\l_@@_value_supervisor_tl}},
2309-
{\c_@@_graduate_label_industrial_mentor_tl} {\@@_secret_info:N{\l_@@_value_industrial_mentor_tl}},
2310-
{\c_@@_graduate_label_chairman_tl} {\@@_secret_info:N{\l_@@_value_chairman_tl}},
2325+
{\c_@@_graduate_label_supervisor_tl} {\@@_secret_info_fixed:Nn \l_@@_value_supervisor_tl {5}},
2326+
{\c_@@_graduate_label_industrial_mentor_tl} {\@@_secret_info_fixed:Nn \l_@@_value_industrial_mentor_tl {5}},
2327+
{\c_@@_graduate_label_chairman_tl} {\@@_secret_info_fixed:Nn \l_@@_value_chairman_tl {5}},
23112328
{\g_@@_const_info_degree_tl} {\l_@@_value_degree_tl},
23122329
{\g_@@_const_info_major_tl} {\l_@@_value_major_tl},
23132330
{\c_@@_graduate_label_institute_tl} {\l_@@_value_institute_tl},
@@ -2364,12 +2381,13 @@
23642381
}
23652382

23662383
% 渲染信息。
2384+
% 此处必须限制盲审模式替换符号数量,不然会泄露信息,还可能导致行溢出
23672385
\clist_set:Nn \l_@@_input_clist {
2368-
{\c_@@_graduate_label_author_en_tl} {\@@_secret_info:N{\l_@@_value_author_en_tl}},
2386+
{\c_@@_graduate_label_author_en_tl} {\@@_secret_info_fixed:Nn \l_@@_value_author_en_tl {9}},
23692387
{\c_@@_graduate_label_school_en_tl} {\l_@@_value_school_en_tl},
2370-
{\c_@@_graduate_label_supervisor_en_tl} {\@@_secret_info:N{\l_@@_value_supervisor_en_tl}},
2371-
{\c_@@_graduate_label_industrial_mentor_en_tl} {\@@_secret_info:N{\l_@@_value_industrial_mentor_en_tl}},
2372-
{\c_@@_graduate_label_chairman_en_tl} {\@@_secret_info:N{\l_@@_value_chairman_en_tl}},
2388+
{\c_@@_graduate_label_supervisor_en_tl} {\@@_secret_info_fixed:Nn \l_@@_value_supervisor_en_tl {12}},
2389+
{\c_@@_graduate_label_industrial_mentor_en_tl} {\@@_secret_info_fixed:Nn \l_@@_value_industrial_mentor_en_tl {12}},
2390+
{\c_@@_graduate_label_chairman_en_tl} {\@@_secret_info_fixed:Nn \l_@@_value_chairman_en_tl {12}},
23732391
{\c_@@_graduate_label_degree_en_tl} {\l_@@_value_degree_en_tl},
23742392
{\c_@@_graduate_label_major_en_tl} {\l_@@_value_major_en_tl},
23752393
{\c_@@_graduate_label_institute_en_tl} {\l_@@_value_institute_en_tl},
@@ -2623,16 +2641,17 @@
26232641
}
26242642
}
26252643

2644+
% 此处必须限制盲审模式替换符号数量,不然会泄露信息,还可能导致行溢出
26262645
\clist_set:Nn \l_@@_input_clist {
26272646
{\c_@@_label_semester_tl} {\l_@@_value_semester_tl},
26282647
{\c_@@_label_school_tl} {\l_@@_value_school_tl},
26292648
{\g_@@_const_info_major_tl} {\l_@@_value_major_tl},
26302649
{\c_@@_label_class_tl} {\@@_secret_info:N \l_@@_value_class_tl},
2631-
{\c_@@_label_author_tl} {\@@_secret_info:N \l_@@_value_author_tl},
2650+
{\c_@@_label_author_tl} {\@@_secret_info_fixed:Nn \l_@@_value_author_tl {3}},
26322651
{\c_@@_label_student_id_tl} {\@@_secret_info:N \l_@@_value_student_id_tl},
26332652
{\c_@@_label_course_tl} {\l_@@_value_course_tl},
2634-
{\c_@@_label_supervisor_tl} {\@@_secret_info:N \l_@@_value_supervisor_tl},
2635-
{\c_@@_label_co_supervisor_tl} {\@@_secret_info:N \l_@@_value_external_supervisor_tl},
2653+
{\c_@@_label_supervisor_tl} {\@@_secret_info_fixed:Nn \l_@@_value_supervisor_tl {5}},
2654+
{\c_@@_label_co_supervisor_tl} {\@@_secret_info_fixed:Nn \l_@@_value_external_supervisor_tl {5}},
26362655
{\c_@@_label_teacher_tl} {\l_@@_value_teacher_tl},
26372656
}
26382657

@@ -2728,14 +2747,16 @@
27282747

27292748
\zihao{3}
27302749

2731-
% 渲染信息。
2750+
% 渲染信息。
2751+
% 此处必须限制盲审模式替换符号数量,不然会泄露信息,还可能导致行溢出
27322752
\clist_set:Nn \l_@@_input_clist {
27332753
{\c_@@_label_school_tl} {\l_@@_value_school_tl},
27342754
{\c_@@_label_major_tl} {\l_@@_value_major_tl},
27352755
{\c_@@_label_class_tl} {\@@_secret_info:N \l_@@_value_class_tl},
2736-
{\c_@@_label_author_tl} {\@@_secret_info:N \l_@@_value_author_tl},
2756+
{\c_@@_label_author_tl} {\@@_secret_info_fixed:Nn \l_@@_value_author_tl {3}},
27372757
{\c_@@_label_student_id_tl} {\@@_secret_info:N \l_@@_value_student_id_tl},
2738-
{\c_@@_label_supervisor_tl} {\@@_secret_info:N \l_@@_value_supervisor_tl},
2758+
{\c_@@_label_supervisor_tl} {\@@_secret_info_fixed:Nn \l_@@_value_supervisor_tl {5}},
2759+
% co-supervisor 并非所有人都有,由最终作者自行处理
27392760
{\c_@@_label_co_supervisor_tl} {\@@_secret_info:N \l_@@_value_external_supervisor_tl},
27402761
}
27412762

0 commit comments

Comments
 (0)