-
Notifications
You must be signed in to change notification settings - Fork 21
/
make.bat
120 lines (104 loc) · 2.41 KB
/
make.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
@echo off
chcp 65001 >nul
set THESIS=main
if "%~1" == "" (
set flag=thesis
) else (
set flag=%1
)
if not "%~2" == "-xelatex" (
if not "%~2" == "-lualatex" (
echo Expected ENGINE in {-xelatex, -lualatex}, Got "%~2"
Set default ENGINE to "-xelatex"
) else (
set ENGINE=-lualatex
)
) else (
set ENGINE=-xelatex
)
if %flag% == thesis (
call :cleanall
call :thesis
if ERRORLEVEL 1 (
echo.
echo Error! Please check the %THESIS%.log for more details . . .
pause
) else (
call :clean
echo Finished!
pause
)
goto :EOF
)
if %flag% == clean (
call :clean
goto :EOF
)
if %flag% == cleanall (
call :cleanall
goto :EOF
)
if %flag% == wordcount (
call :wordcount
goto :EOF
)
:help
echo This is the compile batch script for tongji-undergrad-thesis.
echo Usage:
echo make.bat [option]
echo options:
echo thesis Compile the thesis (default)
echo clean Clean all work files
echo cleanall Clean all work files and main.pdf
echo wordcount Count words in main.pdf
echo help Print this help message
goto :EOF
:thesis
echo Compile . . .
latexmk %ENGINE% -synctex=1 -quiet -interaction=nonstopmode -file-line-error -halt-on-error -shell-escape %THESIS% 2>nul
goto :EOF
:clean
echo Clean files . . .
latexmk -quiet -c %THESIS% 2>nul
goto :EOF
:cleanall
echo Clean all files . . .
latexmk -quiet -C %THESIS% 2>nul
if exist %THESIS%.pdf (
echo Close the file: '%THESIS%.pdf'!
pause
call :cleanall
)
goto :EOF
:wordcount
set found=0
setlocal enabledelayedexpansion
findstr "\\documentclass\[[^\[]*en" %THESIS%.tex > nul
if %errorlevel% equ 0 (
for /f "delims=" %%i in ('texcount %THESIS%.tex -inc -char-only 2^>nul') do (
if !found! equ 1 (
echo 英文字符数 :!%%i!
goto :total
)
echo %%i | findstr "total" > nul && set found=1
)
) else (
for /f "delims=" %%i in ('texcount %THESIS%.tex -inc -ch-only 2^>nul') do (
if !found! equ 1 (
echo 纯中文字数 :!%%i!
goto :total
)
echo %%i | findstr "total" > nul && set found=1
)
)
:total
set found=0
for /f "delims=" %%i in ('texcount %THESIS%.tex -inc -chinese 2^>nul') do (
if !found! equ 1 (
echo 总字数(英文单词 + 中文字) :!%%i!
goto :EOF
)
echo %%i | findstr "total" > nul && set found=1
)
goto :EOF
exit /B 0