├── .github └── workflows │ └── release.yml ├── .gitignore ├── LICENSE ├── image.png ├── latexmkrc ├── main.pdf ├── main.tex ├── readme.md └── resume.cls /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: Release 4 | 5 | 6 | on: 7 | push: 8 | tags: 9 | - "v*.*.*" 10 | 11 | # A workflow that zip the source code and upload it as a release asset. 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | 20 | - name: Zip source code 21 | run: zip -r resume-ng-zh.zip . 22 | 23 | - name: Release 24 | uses: softprops/action-gh-release@v2 25 | if: startsWith(github.ref, 'refs/tags/') 26 | with: 27 | files: resume-ng-zh.zip 28 | 29 | - name: Checkout 30 | uses: actions/checkout@v4 31 | with: 32 | ref: english 33 | 34 | - name: Zip source code 35 | run: zip -r resume-ng-en.zip . 36 | 37 | - name: Release 38 | uses: softprops/action-gh-release@v2 39 | if: startsWith(github.ref, 'refs/tags/') 40 | with: 41 | files: resume-ng-en.zip -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/latex 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=latex 3 | 4 | ### LaTeX ### 5 | ## Core latex/pdflatex auxiliary files: 6 | *.aux 7 | *.lof 8 | *.log 9 | *.lot 10 | *.fls 11 | *.out 12 | *.toc 13 | *.fmt 14 | *.fot 15 | *.cb 16 | *.cb2 17 | .*.lb 18 | 19 | ## Intermediate documents: 20 | *.dvi 21 | *.xdv 22 | *-converted-to.* 23 | # these rules might exclude image files for figures etc. 24 | # *.ps 25 | # *.eps 26 | # *.pdf 27 | 28 | ## Generated if empty string is given at "Please type another file name for output:" 29 | .pdf 30 | 31 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 32 | *.bbl 33 | *.bcf 34 | *.blg 35 | *-blx.aux 36 | *-blx.bib 37 | *.run.xml 38 | 39 | ## Build tool auxiliary files: 40 | *.fdb_latexmk 41 | *.synctex 42 | *.synctex(busy) 43 | *.synctex.gz 44 | *.synctex.gz(busy) 45 | *.pdfsync 46 | 47 | ## Build tool directories for auxiliary files 48 | # latexrun 49 | latex.out/ 50 | 51 | ## Auxiliary and intermediate files from other packages: 52 | # algorithms 53 | *.alg 54 | *.loa 55 | 56 | # achemso 57 | acs-*.bib 58 | 59 | # amsthm 60 | *.thm 61 | 62 | # beamer 63 | *.nav 64 | *.pre 65 | *.snm 66 | *.vrb 67 | 68 | # changes 69 | *.soc 70 | 71 | # comment 72 | *.cut 73 | 74 | # cprotect 75 | *.cpt 76 | 77 | # elsarticle (documentclass of Elsevier journals) 78 | *.spl 79 | 80 | # endnotes 81 | *.ent 82 | 83 | # fixme 84 | *.lox 85 | 86 | # feynmf/feynmp 87 | *.mf 88 | *.mp 89 | *.t[1-9] 90 | *.t[1-9][0-9] 91 | *.tfm 92 | 93 | #(r)(e)ledmac/(r)(e)ledpar 94 | *.end 95 | *.?end 96 | *.[1-9] 97 | *.[1-9][0-9] 98 | *.[1-9][0-9][0-9] 99 | *.[1-9]R 100 | *.[1-9][0-9]R 101 | *.[1-9][0-9][0-9]R 102 | *.eledsec[1-9] 103 | *.eledsec[1-9]R 104 | *.eledsec[1-9][0-9] 105 | *.eledsec[1-9][0-9]R 106 | *.eledsec[1-9][0-9][0-9] 107 | *.eledsec[1-9][0-9][0-9]R 108 | 109 | # glossaries 110 | *.acn 111 | *.acr 112 | *.glg 113 | *.glo 114 | *.gls 115 | *.glsdefs 116 | *.lzo 117 | *.lzs 118 | *.slg 119 | *.slo 120 | *.sls 121 | 122 | # uncomment this for glossaries-extra (will ignore makeindex's style files!) 123 | # *.ist 124 | 125 | # gnuplot 126 | *.gnuplot 127 | *.table 128 | 129 | # gnuplottex 130 | *-gnuplottex-* 131 | 132 | # gregoriotex 133 | *.gaux 134 | *.glog 135 | *.gtex 136 | 137 | # htlatex 138 | *.4ct 139 | *.4tc 140 | *.idv 141 | *.lg 142 | *.trc 143 | *.xref 144 | 145 | # hyperref 146 | *.brf 147 | 148 | # knitr 149 | *-concordance.tex 150 | # TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files 151 | # *.tikz 152 | *-tikzDictionary 153 | 154 | # listings 155 | *.lol 156 | 157 | # luatexja-ruby 158 | *.ltjruby 159 | 160 | # makeidx 161 | *.idx 162 | *.ilg 163 | *.ind 164 | 165 | # minitoc 166 | *.maf 167 | *.mlf 168 | *.mlt 169 | *.mtc[0-9]* 170 | *.slf[0-9]* 171 | *.slt[0-9]* 172 | *.stc[0-9]* 173 | 174 | # minted 175 | _minted* 176 | *.pyg 177 | 178 | # morewrites 179 | *.mw 180 | 181 | # newpax 182 | *.newpax 183 | 184 | # nomencl 185 | *.nlg 186 | *.nlo 187 | *.nls 188 | 189 | # pax 190 | *.pax 191 | 192 | # pdfpcnotes 193 | *.pdfpc 194 | 195 | # sagetex 196 | *.sagetex.sage 197 | *.sagetex.py 198 | *.sagetex.scmd 199 | 200 | # scrwfile 201 | *.wrt 202 | 203 | # svg 204 | svg-inkscape/ 205 | 206 | # sympy 207 | *.sout 208 | *.sympy 209 | sympy-plots-for-*.tex/ 210 | 211 | # pdfcomment 212 | *.upa 213 | *.upb 214 | 215 | # pythontex 216 | *.pytxcode 217 | pythontex-files-*/ 218 | 219 | # tcolorbox 220 | *.listing 221 | 222 | # thmtools 223 | *.loe 224 | 225 | # TikZ & PGF 226 | *.dpth 227 | *.md5 228 | *.auxlock 229 | 230 | # titletoc 231 | *.ptc 232 | 233 | # todonotes 234 | *.tdo 235 | 236 | # vhistory 237 | *.hst 238 | *.ver 239 | 240 | # easy-todo 241 | *.lod 242 | 243 | # xcolor 244 | *.xcp 245 | 246 | # xmpincl 247 | *.xmpi 248 | 249 | # xindy 250 | *.xdy 251 | 252 | # xypic precompiled matrices and outlines 253 | *.xyc 254 | *.xyd 255 | 256 | # endfloat 257 | *.ttt 258 | *.fff 259 | 260 | # Latexian 261 | TSWLatexianTemp* 262 | 263 | ## Editors: 264 | # WinEdt 265 | *.bak 266 | *.sav 267 | 268 | # Texpad 269 | .texpadtmp 270 | 271 | # LyX 272 | *.lyx~ 273 | 274 | # Kile 275 | *.backup 276 | 277 | # gummi 278 | .*.swp 279 | 280 | # KBibTeX 281 | *~[0-9]* 282 | 283 | # TeXnicCenter 284 | *.tps 285 | 286 | # auto folder when using emacs and auctex 287 | ./auto/* 288 | *.el 289 | 290 | # expex forward references with \gathertags 291 | *-tags.tex 292 | 293 | # standalone packages 294 | *.sta 295 | 296 | # Makeindex log files 297 | *.lpz 298 | 299 | # xwatermark package 300 | *.xwm 301 | 302 | # REVTeX puts footnotes in the bibliography by default, unless the nofootinbib 303 | # option is specified. Footnotes are the stored in a file with suffix Notes.bib. 304 | # Uncomment the next line to have this generated file ignored. 305 | #*Notes.bib 306 | 307 | ### LaTeX Patch ### 308 | # LIPIcs / OASIcs 309 | *.vtc 310 | 311 | # glossaries 312 | *.glstex 313 | 314 | # End of https://www.toptal.com/developers/gitignore/api/latex 315 | 316 | *.zip 317 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The LaTeX Project Public License 2 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 3 | 4 | LPPL Version 1.3c 2008-05-04 5 | 6 | Copyright 1999 2002-2008 LaTeX3 Project 7 | Everyone is allowed to distribute verbatim copies of this 8 | license document, but modification of it is not allowed. 9 | 10 | 11 | PREAMBLE 12 | ======== 13 | 14 | The LaTeX Project Public License (LPPL) is the primary license under 15 | which the LaTeX kernel and the base LaTeX packages are distributed. 16 | 17 | You may use this license for any work of which you hold the copyright 18 | and which you wish to distribute. This license may be particularly 19 | suitable if your work is TeX-related (such as a LaTeX package), but 20 | it is written in such a way that you can use it even if your work is 21 | unrelated to TeX. 22 | 23 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', 24 | below, gives instructions, examples, and recommendations for authors 25 | who are considering distributing their works under this license. 26 | 27 | This license gives conditions under which a work may be distributed 28 | and modified, as well as conditions under which modified versions of 29 | that work may be distributed. 30 | 31 | We, The LaTeX Project, believe that the conditions below give you 32 | the freedom to make and distribute modified versions of your work 33 | that conform with whatever technical specifications you wish while 34 | maintaining the availability, integrity, and reliability of 35 | that work. If you do not see how to achieve your goal while 36 | meeting these conditions, then read the document `cfgguide.tex' 37 | and `modguide.tex' in the base LaTeX distribution for suggestions. 38 | 39 | 40 | DEFINITIONS 41 | =========== 42 | 43 | In this license document the following terms are used: 44 | 45 | `Work' 46 | Any work being distributed under this License. 47 | 48 | `Derived Work' 49 | Any work that under any applicable law is derived from the Work. 50 | 51 | `Modification' 52 | Any procedure that produces a Derived Work under any applicable 53 | law -- for example, the production of a file containing an 54 | original file associated with the Work or a significant portion of 55 | such a file, either verbatim or with modifications and/or 56 | translated into another language. 57 | 58 | `Modify' 59 | To apply any procedure that produces a Derived Work under any 60 | applicable law. 61 | 62 | `Distribution' 63 | Making copies of the Work available from one person to another, in 64 | whole or in part. Distribution includes (but is not limited to) 65 | making any electronic components of the Work accessible by 66 | file transfer protocols such as FTP or HTTP or by shared file 67 | systems such as Sun's Network File System (NFS). 68 | 69 | `Compiled Work' 70 | A version of the Work that has been processed into a form where it 71 | is directly usable on a computer system. This processing may 72 | include using installation facilities provided by the Work, 73 | transformations of the Work, copying of components of the Work, or 74 | other activities. Note that modification of any installation 75 | facilities provided by the Work constitutes modification of the Work. 76 | 77 | `Current Maintainer' 78 | A person or persons nominated as such within the Work. If there is 79 | no such explicit nomination then it is the `Copyright Holder' under 80 | any applicable law. 81 | 82 | `Base Interpreter' 83 | A program or process that is normally needed for running or 84 | interpreting a part or the whole of the Work. 85 | 86 | A Base Interpreter may depend on external components but these 87 | are not considered part of the Base Interpreter provided that each 88 | external component clearly identifies itself whenever it is used 89 | interactively. Unless explicitly specified when applying the 90 | license to the Work, the only applicable Base Interpreter is a 91 | `LaTeX-Format' or in the case of files belonging to the 92 | `LaTeX-format' a program implementing the `TeX language'. 93 | 94 | 95 | 96 | CONDITIONS ON DISTRIBUTION AND MODIFICATION 97 | =========================================== 98 | 99 | 1. Activities other than distribution and/or modification of the Work 100 | are not covered by this license; they are outside its scope. In 101 | particular, the act of running the Work is not restricted and no 102 | requirements are made concerning any offers of support for the Work. 103 | 104 | 2. You may distribute a complete, unmodified copy of the Work as you 105 | received it. Distribution of only part of the Work is considered 106 | modification of the Work, and no right to distribute such a Derived 107 | Work may be assumed under the terms of this clause. 108 | 109 | 3. You may distribute a Compiled Work that has been generated from a 110 | complete, unmodified copy of the Work as distributed under Clause 2 111 | above, as long as that Compiled Work is distributed in such a way that 112 | the recipients may install the Compiled Work on their system exactly 113 | as it would have been installed if they generated a Compiled Work 114 | directly from the Work. 115 | 116 | 4. If you are the Current Maintainer of the Work, you may, without 117 | restriction, modify the Work, thus creating a Derived Work. You may 118 | also distribute the Derived Work without restriction, including 119 | Compiled Works generated from the Derived Work. Derived Works 120 | distributed in this manner by the Current Maintainer are considered to 121 | be updated versions of the Work. 122 | 123 | 5. If you are not the Current Maintainer of the Work, you may modify 124 | your copy of the Work, thus creating a Derived Work based on the Work, 125 | and compile this Derived Work, thus creating a Compiled Work based on 126 | the Derived Work. 127 | 128 | 6. If you are not the Current Maintainer of the Work, you may 129 | distribute a Derived Work provided the following conditions are met 130 | for every component of the Work unless that component clearly states 131 | in the copyright notice that it is exempt from that condition. Only 132 | the Current Maintainer is allowed to add such statements of exemption 133 | to a component of the Work. 134 | 135 | a. If a component of this Derived Work can be a direct replacement 136 | for a component of the Work when that component is used with the 137 | Base Interpreter, then, wherever this component of the Work 138 | identifies itself to the user when used interactively with that 139 | Base Interpreter, the replacement component of this Derived Work 140 | clearly and unambiguously identifies itself as a modified version 141 | of this component to the user when used interactively with that 142 | Base Interpreter. 143 | 144 | b. Every component of the Derived Work contains prominent notices 145 | detailing the nature of the changes to that component, or a 146 | prominent reference to another file that is distributed as part 147 | of the Derived Work and that contains a complete and accurate log 148 | of the changes. 149 | 150 | c. No information in the Derived Work implies that any persons, 151 | including (but not limited to) the authors of the original version 152 | of the Work, provide any support, including (but not limited to) 153 | the reporting and handling of errors, to recipients of the 154 | Derived Work unless those persons have stated explicitly that 155 | they do provide such support for the Derived Work. 156 | 157 | d. You distribute at least one of the following with the Derived Work: 158 | 159 | 1. A complete, unmodified copy of the Work; 160 | if your distribution of a modified component is made by 161 | offering access to copy the modified component from a 162 | designated place, then offering equivalent access to copy 163 | the Work from the same or some similar place meets this 164 | condition, even though third parties are not compelled to 165 | copy the Work along with the modified component; 166 | 167 | 2. Information that is sufficient to obtain a complete, 168 | unmodified copy of the Work. 169 | 170 | 7. If you are not the Current Maintainer of the Work, you may 171 | distribute a Compiled Work generated from a Derived Work, as long as 172 | the Derived Work is distributed to all recipients of the Compiled 173 | Work, and as long as the conditions of Clause 6, above, are met with 174 | regard to the Derived Work. 175 | 176 | 8. The conditions above are not intended to prohibit, and hence do not 177 | apply to, the modification, by any method, of any component so that it 178 | becomes identical to an updated version of that component of the Work as 179 | it is distributed by the Current Maintainer under Clause 4, above. 180 | 181 | 9. Distribution of the Work or any Derived Work in an alternative 182 | format, where the Work or that Derived Work (in whole or in part) is 183 | then produced by applying some process to that format, does not relax or 184 | nullify any sections of this license as they pertain to the results of 185 | applying that process. 186 | 187 | 10. a. A Derived Work may be distributed under a different license 188 | provided that license itself honors the conditions listed in 189 | Clause 6 above, in regard to the Work, though it does not have 190 | to honor the rest of the conditions in this license. 191 | 192 | b. If a Derived Work is distributed under a different license, that 193 | Derived Work must provide sufficient documentation as part of 194 | itself to allow each recipient of that Derived Work to honor the 195 | restrictions in Clause 6 above, concerning changes from the Work. 196 | 197 | 11. This license places no restrictions on works that are unrelated to 198 | the Work, nor does this license place any restrictions on aggregating 199 | such works with the Work by any means. 200 | 201 | 12. Nothing in this license is intended to, or may be used to, prevent 202 | complete compliance by all parties with all applicable laws. 203 | 204 | 205 | NO WARRANTY 206 | =========== 207 | 208 | There is no warranty for the Work. Except when otherwise stated in 209 | writing, the Copyright Holder provides the Work `as is', without 210 | warranty of any kind, either expressed or implied, including, but not 211 | limited to, the implied warranties of merchantability and fitness for a 212 | particular purpose. The entire risk as to the quality and performance 213 | of the Work is with you. Should the Work prove defective, you assume 214 | the cost of all necessary servicing, repair, or correction. 215 | 216 | In no event unless required by applicable law or agreed to in writing 217 | will The Copyright Holder, or any author named in the components of the 218 | Work, or any other party who may distribute and/or modify the Work as 219 | permitted above, be liable to you for damages, including any general, 220 | special, incidental or consequential damages arising out of any use of 221 | the Work or out of inability to use the Work (including, but not limited 222 | to, loss of data, data being rendered inaccurate, or losses sustained by 223 | anyone as a result of any failure of the Work to operate with any other 224 | programs), even if the Copyright Holder or said author or said other 225 | party has been advised of the possibility of such damages. 226 | 227 | 228 | MAINTENANCE OF THE WORK 229 | ======================= 230 | 231 | The Work has the status `author-maintained' if the Copyright Holder 232 | explicitly and prominently states near the primary copyright notice in 233 | the Work that the Work can only be maintained by the Copyright Holder 234 | or simply that it is `author-maintained'. 235 | 236 | The Work has the status `maintained' if there is a Current Maintainer 237 | who has indicated in the Work that they are willing to receive error 238 | reports for the Work (for example, by supplying a valid e-mail 239 | address). It is not required for the Current Maintainer to acknowledge 240 | or act upon these error reports. 241 | 242 | The Work changes from status `maintained' to `unmaintained' if there 243 | is no Current Maintainer, or the person stated to be Current 244 | Maintainer of the work cannot be reached through the indicated means 245 | of communication for a period of six months, and there are no other 246 | significant signs of active maintenance. 247 | 248 | You can become the Current Maintainer of the Work by agreement with 249 | any existing Current Maintainer to take over this role. 250 | 251 | If the Work is unmaintained, you can become the Current Maintainer of 252 | the Work through the following steps: 253 | 254 | 1. Make a reasonable attempt to trace the Current Maintainer (and 255 | the Copyright Holder, if the two differ) through the means of 256 | an Internet or similar search. 257 | 258 | 2. If this search is successful, then enquire whether the Work 259 | is still maintained. 260 | 261 | a. If it is being maintained, then ask the Current Maintainer 262 | to update their communication data within one month. 263 | 264 | b. If the search is unsuccessful or no action to resume active 265 | maintenance is taken by the Current Maintainer, then announce 266 | within the pertinent community your intention to take over 267 | maintenance. (If the Work is a LaTeX work, this could be 268 | done, for example, by posting to comp.text.tex.) 269 | 270 | 3a. If the Current Maintainer is reachable and agrees to pass 271 | maintenance of the Work to you, then this takes effect 272 | immediately upon announcement. 273 | 274 | b. If the Current Maintainer is not reachable and the Copyright 275 | Holder agrees that maintenance of the Work be passed to you, 276 | then this takes effect immediately upon announcement. 277 | 278 | 4. If you make an `intention announcement' as described in 2b. above 279 | and after three months your intention is challenged neither by 280 | the Current Maintainer nor by the Copyright Holder nor by other 281 | people, then you may arrange for the Work to be changed so as 282 | to name you as the (new) Current Maintainer. 283 | 284 | 5. If the previously unreachable Current Maintainer becomes 285 | reachable once more within three months of a change completed 286 | under the terms of 3b) or 4), then that Current Maintainer must 287 | become or remain the Current Maintainer upon request provided 288 | they then update their communication data within one month. 289 | 290 | A change in the Current Maintainer does not, of itself, alter the fact 291 | that the Work is distributed under the LPPL license. 292 | 293 | If you become the Current Maintainer of the Work, you should 294 | immediately provide, within the Work, a prominent and unambiguous 295 | statement of your status as Current Maintainer. You should also 296 | announce your new status to the same pertinent community as 297 | in 2b) above. 298 | 299 | 300 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE 301 | ====================================================== 302 | 303 | This section contains important instructions, examples, and 304 | recommendations for authors who are considering distributing their 305 | works under this license. These authors are addressed as `you' in 306 | this section. 307 | 308 | Choosing This License or Another License 309 | ---------------------------------------- 310 | 311 | If for any part of your work you want or need to use *distribution* 312 | conditions that differ significantly from those in this license, then 313 | do not refer to this license anywhere in your work but, instead, 314 | distribute your work under a different license. You may use the text 315 | of this license as a model for your own license, but your license 316 | should not refer to the LPPL or otherwise give the impression that 317 | your work is distributed under the LPPL. 318 | 319 | The document `modguide.tex' in the base LaTeX distribution explains 320 | the motivation behind the conditions of this license. It explains, 321 | for example, why distributing LaTeX under the GNU General Public 322 | License (GPL) was considered inappropriate. Even if your work is 323 | unrelated to LaTeX, the discussion in `modguide.tex' may still be 324 | relevant, and authors intending to distribute their works under any 325 | license are encouraged to read it. 326 | 327 | A Recommendation on Modification Without Distribution 328 | ----------------------------------------------------- 329 | 330 | It is wise never to modify a component of the Work, even for your own 331 | personal use, without also meeting the above conditions for 332 | distributing the modified component. While you might intend that such 333 | modifications will never be distributed, often this will happen by 334 | accident -- you may forget that you have modified that component; or 335 | it may not occur to you when allowing others to access the modified 336 | version that you are thus distributing it and violating the conditions 337 | of this license in ways that could have legal implications and, worse, 338 | cause problems for the community. It is therefore usually in your 339 | best interest to keep your copy of the Work identical with the public 340 | one. Many works provide ways to control the behavior of that work 341 | without altering any of its licensed components. 342 | 343 | How to Use This License 344 | ----------------------- 345 | 346 | To use this license, place in each of the components of your work both 347 | an explicit copyright notice including your name and the year the work 348 | was authored and/or last substantially modified. Include also a 349 | statement that the distribution and/or modification of that 350 | component is constrained by the conditions in this license. 351 | 352 | Here is an example of such a notice and statement: 353 | 354 | %% pig.dtx 355 | %% Copyright 2005 M. Y. Name 356 | % 357 | % This work may be distributed and/or modified under the 358 | % conditions of the LaTeX Project Public License, either version 1.3 359 | % of this license or (at your option) any later version. 360 | % The latest version of this license is in 361 | % http://www.latex-project.org/lppl.txt 362 | % and version 1.3 or later is part of all distributions of LaTeX 363 | % version 2005/12/01 or later. 364 | % 365 | % This work has the LPPL maintenance status `maintained'. 366 | % 367 | % The Current Maintainer of this work is M. Y. Name. 368 | % 369 | % This work consists of the files pig.dtx and pig.ins 370 | % and the derived file pig.sty. 371 | 372 | Given such a notice and statement in a file, the conditions 373 | given in this license document would apply, with the `Work' referring 374 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being 375 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' 376 | referring to any `LaTeX-Format', and both `Copyright Holder' and 377 | `Current Maintainer' referring to the person `M. Y. Name'. 378 | 379 | If you do not want the Maintenance section of LPPL to apply to your 380 | Work, change `maintained' above into `author-maintained'. 381 | However, we recommend that you use `maintained', as the Maintenance 382 | section was added in order to ensure that your Work remains useful to 383 | the community even when you can no longer maintain and support it 384 | yourself. 385 | 386 | Derived Works That Are Not Replacements 387 | --------------------------------------- 388 | 389 | Several clauses of the LPPL specify means to provide reliability and 390 | stability for the user community. They therefore concern themselves 391 | with the case that a Derived Work is intended to be used as a 392 | (compatible or incompatible) replacement of the original Work. If 393 | this is not the case (e.g., if a few lines of code are reused for a 394 | completely different task), then clauses 6b and 6d shall not apply. 395 | 396 | 397 | Important Recommendations 398 | ------------------------- 399 | 400 | Defining What Constitutes the Work 401 | 402 | The LPPL requires that distributions of the Work contain all the 403 | files of the Work. It is therefore important that you provide a 404 | way for the licensee to determine which files constitute the Work. 405 | This could, for example, be achieved by explicitly listing all the 406 | files of the Work near the copyright notice of each file or by 407 | using a line such as: 408 | 409 | % This work consists of all files listed in manifest.txt. 410 | 411 | in that place. In the absence of an unequivocal list it might be 412 | impossible for the licensee to determine what is considered by you 413 | to comprise the Work and, in such a case, the licensee would be 414 | entitled to make reasonable conjectures as to which files comprise 415 | the Work. 416 | 417 | -------------------------------------------------------------------------------- /image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fky2015/resume-ng/8fb52d64342171d0e3c3ec166495e31fc25271c2/image.png -------------------------------------------------------------------------------- /latexmkrc: -------------------------------------------------------------------------------- 1 | $pdf_mode = 5; 2 | $dvi_mode = 0; 3 | $postscript_mode = 0; 4 | -------------------------------------------------------------------------------- /main.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fky2015/resume-ng/8fb52d64342171d0e3c3ec166495e31fc25271c2/main.pdf -------------------------------------------------------------------------------- /main.tex: -------------------------------------------------------------------------------- 1 | % !TeX TS-program = xelatex 2 | 3 | \documentclass{resume} 4 | \ResumeName{冯开宇} 5 | 6 | % 如果想插入照片,请使用以下两个库。 7 | % \usepackage{graphicx} 8 | % \usepackage{tikz} 9 | 10 | \begin{document} 11 | 12 | \ResumeContacts{ 13 | (+86)188-8888-8888,% 14 | \ResumeUrl{mailto:loveress01@outlook.com}{loveress01@outlook.com},% 15 | \ResumeUrl{https://blog.fkynjyq.com}{blog.fkynjyq.com} \footnote{下划线内容包含超链接。},% 16 | \ResumeUrl{https://github.com/fky2015}{github.com/fky2015}% 17 | } 18 | 19 | % 如果想插入照片,请取消此代码的注释。 20 | % 但是默认不推荐插入照片,因为这不是简历的重点。 21 | % 如果默认的照片插入格式不能满足你的需求,你可以尝试调整照片的大小,或者使用其他的插入照片的方法。 22 | % 不然,也可以先渲染 PDF 简历,然后用其他工具在 PDF 上叠加照片。 23 | % \begin{tikzpicture}[remember picture, overlay] 24 | % \node [anchor=north east, inner sep=1cm] at (current page.north east) 25 | % {\includegraphics[width=2cm]{image.png}}; 26 | % \end{tikzpicture} 27 | 28 | \ResumeTitle 29 | 30 | 31 | \section{教育经历} 32 | \ResumeItem 33 | [北京理工大学|硕士研究生] 34 | {北京理工大学} 35 | [\textnormal{网络空间安全,网络空间安全学院|} 学术型硕士研究生] 36 | [2021.09—2024.06(预计)] 37 | 38 | \textbf{GPA: 3.62/4.0},主要研究方向为\textbf{拜占庭共识算法},在分布式系统领域方面有一定的研究和工程经验。\textbf{2024年应届生}。 39 | 40 | 主要研究成果为:发表在 XXX 期刊上的论文《XXX》。 41 | 42 | \ResumeItem 43 | [北京理工大学|本科生] 44 | {北京理工大学} 45 | [\textnormal{计算机科学与技术,计算机学院|} 工学学士] 46 | [2017.09—2021.06] 47 | 48 | \textbf{GPA: 3.7/4.0(专业前 3\%)},获学业奖学金多次,全国大学生 XYZ 竞赛二等奖(2次),ZYX 竞赛三等奖。 49 | 50 | \section[技术能力]{技术能力\protect\footnote{与求职岗位无关的技能省略或用灰色表示。}} 51 | \begin{itemize} 52 | \item \textbf{语言}: 编程不受特定语言限制。常用 Rust, Golang, Python,C++; 熟悉 C, \GrayText{JavaScript};了解 Lua, Java, \GrayText{TypeScript}。 53 | \item \textbf{工作流}: Linux, Shell, (Neo)Vim, Git, GitHub, GitLab. 54 | \item \textbf{其他}: 有容器化技术的实践经验,熟悉 Kubernetes 的使用。 55 | \end{itemize} 56 | 57 | \section{工作经历} 58 | 59 | \ResumeItem{北京 ABCD 有限公司} 60 | [后端开发实习生/XXXX] 61 | [2020.10—2021.03] 62 | 63 | \begin{itemize} 64 | \item \textbf{独立负责XXX业务后端的设计、开发、测试和部署。}通过 FaaS、Kafka 等平台实现站内信模板渲染服务。向上游提供 SDK 代码,增加或升级了多种离线和在线逻辑。完成了业务对站内信的多样需求。 65 | \item \textbf{参与 XXX 的需求分析,系统技术方案设计;完成需求开发、灰度测试、上线和监控。} 66 | \end{itemize} 67 | 68 | \section{项目经历} 69 | 70 | \ResumeItem{\textbf{BusTub} 基于 C++ 的简易单机数据库} 71 | [ \textnormal{CMU 15-445} 课程] 72 | \begin{itemize} 73 | \item 实现了基于可扩展哈希表和LRU-K的内存池管理。实现了可并发的B+树,支持乐观加锁的读写操作。 74 | \item 采用火山模型实现了查询、修改、连接、聚合等查询执行器,对部分查询进行了改写与下推。 75 | \item 采用 2PL 进行并发控制,支持死锁处理、多种隔离级别、表锁和行锁。 76 | \item 对数据库系统有了基本的认识和实践。 77 | \end{itemize} 78 | 79 | 80 | \ResumeItem{\textbf{Multi-Raft} 分布式 \textbf{KV} 存储系统} 81 | [ \textnormal{MIT 6.824} 课程] 82 | \begin{itemize} 83 | \item 实现了 Raft 协议的选举、日志复制、持久化、日志压缩等基本功能。 84 | \item 基于 Raft 协议实现了满足线性一致性的 KV 数据库。 85 | \item 采用 Multi-Raft 架构,支持数据分片,分片迁移,分片垃圾回收和分片迁移时读写优化。 86 | \item 对分布式系统的设计考量有了更多的认识。 87 | \end{itemize} 88 | 89 | \ResumeItem{\textbf{ZYX} 平台下的某某共识算法设计与实现} 90 | [共识算法设计与实现] 91 | [2021.11—2022.07] 92 | 93 | \begin{itemize} 94 | \item 根据 ZYX (Rust 实现的开源区块链框架) 的架构,\textbf{修改并实现某某某共识算法}。 95 | \item 针对系统进行性能测试,分析瓶颈,并优化吞吐量;TPS 由 1K 达到 6K。 96 | \item 此项目为实验室研究项目的一部分。 97 | \end{itemize} 98 | 99 | \ResumeItem[BIThesis 北京理工大学毕设模板集合(开源项目)] 100 | {\ResumeUrl{https://github.com/BITNP/BIThesis}{\textbf{BIThesis} 北京理工大学毕设 \LaTeX 模板集合}} 101 | [主要维护者(开源项目)] 102 | [2020.04 — 今] 103 | 104 | \begin{itemize} 105 | \item 根据相关排版要求,\textbf{利用 LaTeX3 (expl3) 设计了同时符合各个学位要求且支持灵活配置的宏包及多套模板}。 106 | \item 需求开发和问题修复采用标准工作流,引入了回归测试与基于 GitHub Actions 的测试与持续集成。 107 | \item 负责了什么什么;完成了怎样的结果。 108 | \end{itemize} 109 | 110 | \section{个人总结} 111 | 112 | \begin{itemize} 113 | \item 本人乐观开朗、在校成绩优异、自驱能力强,具有良好的沟通能力和团队合作精神。 114 | \item 可以使用英语进行工作交流(六级成绩 XXX),平时有阅读英文书籍和口语练习的习惯。 115 | \item 有六年 Linux 使用经验,较为丰富的软件开发经验、开源项目贡献和维护经验。善于技术写作,持续关注互联网技术发展。 116 | \end{itemize} 117 | 118 | 119 | \end{document} 120 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Resume-NG 2 | 3 | A LaTeX resume designed for optimal information density and aesthetic appeal. 4 | 5 | > [!IMPORTANT] 6 | > [English Version is in Here!](https://github.com/fky2015/resume-ng/tree/english). 7 | > You can also find a download link in [GitHub Release](https://github.com/fky2015/resume-ng/releases/latest). 8 | 9 | 一个旨在实现最佳的信息密度和美学吸引力的 $\LaTeX$ 简历排版模板项目。 10 | 11 | > [!NOTE] 12 | > 不熟悉 LaTeX?欢迎尝鲜 Typst 版本的 [Resume-NG](https://github.com/fky2015/resume-ng-typst)! 13 | 14 |
15 | 16 |
17 | 18 | 本模板的特性包括: 19 | - 通过调整排版提高简历的信息密度。 20 | - 支持生成 PDF 书签。 21 | - 精简依赖,不默认引入其他字体,不默认引入图标。 22 | - 提供超链接、脚注、非重点内容的排版示例。 23 | - (🖼️)支持插入照片(请看代码注释)。 24 | 25 | ## 使用方法 26 | 27 | ### 本地编译 28 | 29 | 0. 确保已经安装 LaTeX 发行版。 30 | 1. **克隆或下载**本项目代码。 31 | 2. 直接运行 `latexmk` 即可。 32 | 33 | ### Overleaf 在线平台 34 | 35 | 直接访问[此链接][overleaf]即可。 36 | 37 | ## 宏 38 | 39 | 常用用法可参考 `main.tex` 中的示例内容。 40 | 41 | - `\ResumeName{}` 定义简历标题(一般是姓名)。 42 | - `\ResumeContact{}` 添加一个联系方式。 43 | - `\ResumeContacts{itemA, itemB, itemC}` 添加多个联系方式。 44 | - `\ResumeTitle` 渲染标题和联系方式。 45 | - `\section{}` 节标题。 46 | - `\ResumeItem[]{}[][]` 47 | 1. 可选参数,控制 PDF 书签内容。如果不提供则采用参数 2。 48 | 2. 项标题,左对齐。 49 | 3. 可选参数,补充信息,在参数 2 后显示。 50 | 4. 可选参数,右对齐。 51 | - `\GrayText{}` 改变文字内容为灰色。 52 | - `\ResumeUrl{}{}` 带有下划线的 `\href` 命令,与 `\href` 用法相同。 53 | 54 | > `[]` 为可选参数, `{}` 为必需参数。 55 | 56 | ## 包依赖 57 | 58 | **如果你使用 TeXLive/MiKTeX 等主流发行版,可以直接使用本项目,无需手动安装依赖。** 59 | 60 | ## 有用的相关资源 61 | 62 | - [Resume Improvement](https://intdouble.com/resume/) 63 | - GPTs 64 | 65 | ## 致谢 66 | 67 | 该项目主要受到 [hijiangtao/resume](https://github.com/hijiangtao/resume) 的启发, 68 | 并基于“提高一页简历中的信息密度”这一排版思路而进一步改进, 69 | 并采用 $\LaTeX3$ 写成。 70 | 71 | 72 | [overleaf]: https://www.overleaf.com/docs?snip_uri=https://github.com/fky2015/resume-ng/releases/latest/download/resume-ng-zh.zip&engine=xelatex 73 | -------------------------------------------------------------------------------- /resume.cls: -------------------------------------------------------------------------------- 1 | \RequirePackage{expl3,l3keys2e} 2 | \ProvidesExplClass{resume} 3 | {2022-12-26}{0.1.0}{Another Resume Class by Feng Kaiyu} 4 | 5 | % Keep Quiet 6 | \PassOptionsToPackage{quiet}{xeCJK} 7 | \ProcessOptions\relax 8 | \LoadClass[zihao=5,autoindent=0.5em]{ctexart} 9 | 10 | % Define paper size. 11 | \RequirePackage{geometry} 12 | % Remove the default header and footer. 13 | \RequirePackage{fancyhdr} 14 | % Redefine list style. 15 | \RequirePackage{enumitem} 16 | % Align all footnotes in a row. 17 | \RequirePackage[para]{footmisc} 18 | \RequirePackage[colorlinks=false,hidelinks,]{hyperref} 19 | % For the usage of `\CJKunderline`. 20 | \RequirePackage{xeCJKfntef} 21 | % Provide colors. 22 | \RequirePackage{xcolor} 23 | 24 | % Clean pagestyle. 25 | \pagestyle{empty} 26 | 27 | % Adopt A4 style but with smaller margins. 28 | \geometry{a4paper,margin=1cm, bottom=0.5cm} 29 | 30 | %%% Global Variables %%% 31 | 32 | % Store all contacts info. 33 | \seq_new:N \g__resume_contacts_seq 34 | % Store title name. 35 | \tl_new:N \g__resume_title_name_tl 36 | 37 | %%% Global Settings %%% 38 | 39 | % No page number. 40 | \pagenumbering{gobble} 41 | 42 | % Set the style of section title. 43 | \ctexset{ 44 | section = { 45 | nameformat = {}, 46 | number = {}, 47 | format = \noindent \zihao{4} \heiti \__resume_section_title_format:n, 48 | indent = -1em, 49 | afterskip = 0.5em, 50 | beforeskip = 0.2em, 51 | }, 52 | } 53 | 54 | % Set the style of list. 55 | \setlist{ 56 | labelsep=2pt, 57 | labelwidth=5pt, 58 | leftmargin=1.3em, 59 | itemsep=0em, 60 | parsep=0.20em, 61 | topsep=0em, 62 | } 63 | 64 | % Set the line spacing. 65 | \linespread{1.15} 66 | 67 | % New counter for bookmarks. 68 | \newcounter{resumebookmark} 69 | 70 | %%% User Commands %%% 71 | 72 | % Predefined commands. 73 | \cs_new:Npn \__resume_append_concat:n #1 74 | { 75 | \seq_put_right:Nn \g__resume_contacts_seq {#1} 76 | } 77 | 78 | % Predefined commands. 79 | \cs_new:Npn \__resume_section_title_format:n #1 80 | {#1 \vspace{3pt} \hrule} 81 | 82 | 83 | % Add a contant info. 84 | \NewDocumentCommand{\ResumeContact}{m} 85 | { 86 | \__resume_append_concat:n {#1} 87 | } 88 | 89 | % Add multiple contant info. 90 | % ``` 91 | % \ResumeContacts{ itemA, itemB, itemC } 92 | % ``` 93 | \NewDocumentCommand{\ResumeContacts}{m} 94 | { 95 | \seq_set_from_clist:Nn \l__input_seq:N {#1} 96 | \seq_map_inline:Nn \l__input_seq:N 97 | { 98 | \__resume_append_concat:n {##1} 99 | } 100 | } 101 | 102 | % Add your resume title, which generally is your name. 103 | \NewDocumentCommand{\ResumeName}{m} 104 | { 105 | \tl_set:Nn \g__resume_title_name_tl {#1} 106 | } 107 | 108 | % Render the title. 109 | \NewDocumentCommand{\ResumeTitle}{} 110 | { 111 | \begin{center} 112 | \zihao{-2} \heiti \g__resume_title_name_tl 113 | \end{center} 114 | % Reduce the space. 115 | \vspace{-1.4em} 116 | \begin{center} 117 | \seq_use:Nnnn \g__resume_contacts_seq {~|~} {~|~} {~|~} 118 | \end{center} 119 | } 120 | 121 | % Render the section title. 122 | % #1(optional): This content will be used as the bookmark in PDF. 123 | % #2: The title of the section. 124 | % #3(optional): The additional information of the section. 125 | % #4(optional): The right-aligned content, which normally will be the date range. 126 | \NewDocumentCommand{\ResumeItem}{omoo} 127 | { 128 | { 129 | \zihao{-4} 130 | \par 131 | \noindent 132 | { 133 | \heiti 134 | #2 135 | 136 | \IfValueTF{#1} 137 | { 138 | \pdfbookmark[2]{#1}{subsec:\arabic{resumebookmark}} 139 | } 140 | { 141 | \pdfbookmark[2]{#2}{subsec:\arabic{resumebookmark}} 142 | } 143 | \stepcounter{resumebookmark} 144 | } 145 | \IfValueT{#3}{ 146 | \tl_if_empty:nF {#3} { 147 | \ | 148 | \textit{ 149 | #3 150 | } 151 | } 152 | } 153 | \hfill 154 | \IfValueT{#4}{ 155 | #4 156 | } 157 | \par 158 | } 159 | } 160 | 161 | % Gray out the content. 162 | \NewDocumentCommand{\GrayText}{m} 163 | { 164 | \textcolor{gray}{#1} 165 | } 166 | 167 | % Render content with a hyperlink, marked with underline. 168 | \NewDocumentCommand{\ResumeUrl}{mm} 169 | { 170 | \href{#1}{\CJKunderline{#2}} 171 | } 172 | 173 | \endinput 174 | --------------------------------------------------------------------------------