国家自然科学基金的LaTeX模板
本文最后更新于 165 天前,如有失效请评论区留言。

本博客由Faconhost大力赞助!如何更快地访问本站?有需要可加电报群获得更多帮助。本博客用什么VPS?创作不易,请支持苯苯!推荐购买本博客的VIP喔,10元/年即可畅享所有VIP专属内容!

日志

  • 2024-02-26:新增国自然地区科学基金项目LaTeX模板。
  • 2024-02-18:1. 优化正文中文字体选择,这可能影响中文加粗。2. 增强对旧版本TexLive的兼容性:将main.tex中类似{\input{extraTex/1.1.立项依据.tex}}的代码改为\input{extraTex/1.1.立项依据.tex},即去除最外层的大括号。
  • 2024-02-14:优化“LaTeX技巧”教程,包括有序列表、表格等内容。另外,fylimas/nsfc项目正在活跃维护中,很快可以在overleaf中使用(地区/青年/面上),感兴趣的小伙伴可多加关注(~ ̄▽ ̄)~

前言

研究基金标书和毕业论文之类的文书其实很适合用LaTeX完成。今年首战国青,我已经准备使用LaTeX来完成标书写作。之前在网上找到的模板如下:

这两位大佬的模板挺不错的,但自己用起来总是差点意思。因此,在他们的基础上,我结合2024年最新的国家自然科学基金项目的部分Word模板重新地修了一下,具体链接如下:

如果上述链接不可用,也可访问Gitee镜像:

我只是略懂LaTeX,大家有什么建议可以在评论区留言,非常感谢 (~ ̄▽ ̄)~ 这里我也附上我模板的使用技巧,这样可以更容易上手。

测试平台

VScode内置tab已经完善支持LaTeX-PDF相互跳转,不需要特别安装SumatraPDF(如果你不喜欢它)。

安装

我基本上是按照文章《知乎:使用VSCode编写LaTeX》来配置texlive和VScode的环境的。编译环境是: Windows 10 + TexLive 2022,编绎顺序是:xelatex -> bibtex -> xelatex -> xelatex。我使用VSCode的主要原因是我平时写Python等代码时就是用的VSCode;而且外观比较漂亮:

Code_xHJjNQ30cj

操作 – 跳转

VSCode对LaTeX-PDF相互跳转的支持也挺不错的,写作时很方便:

Code_2GTcTFjDxL

从LaTeX搜索PDF:光标置于代码中,然后按下 Alt+Ctrl+J。从PDF搜索LaTeX:按住Ctrl并单击pdf中需要搜索的地方。

快速打开指定tex文件

只要点击文件所在代码,按F12就可以调出;鼠标左键双击就可以锁定在工作窗口上:

Code_NOKu4VsigC

VSCode配置

我的VSCode的setting.json文件中LaTeX配置部分如下 ,仅供参考:

// LaTeX
"latex-workshop.intellisense.package.enabled": true, //根据加载的包,自动完成命令或包  
// "latex-workshop.latex.autoBuild.run": "never", //禁止保存文件时自动build  
"latex-workshop.latex.tools": [
    {
        // 编译工具和命令
        "name": "xelatex",
        "command": "xelatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOCFILE%"
        ]
    },
    {
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOCFILE%"
        ]
    },
    {
        "name": "bibtex",
        "command": "bibtex",
        "args": [
            "%DOCFILE%"
        ]
    },
    {
        // 未能成功运行
        "name": "XeLaTeX+MakeIndex+BibTeX",
        "command": "texify",
        "args": [
            "--synctex=1",
            "--pdf",
            "--clean",
            "--quiet",
            "--tex-option=\"-interaction=nonstopmode\"",
            "--tex-option=\"-c-style-errors\"",
            "--engine=xetex",
            "%DOC%.tex"
        ]
    },
],
"latex-workshop.latex.recipes": [
    {
        "name": "xe->bib->xe->xe",
        "tools": [
            "xelatex",
            "bibtex",
            "xelatex",
            "xelatex"
        ]
    },
    {
        "name": "xelatex",
        "tools": [
            "xelatex"
        ],
    },
    {
        "name": "XeLaTeX+MakeIndex+BibTeX",
        "tools": [
            "XeLaTeX+MakeIndex+BibTeX"
        ]
    },
    {
        "name": "pdflatex",
        "tools": [
            "pdflatex"
        ]
    },
    {
        "name": "pdf->bib->pdf->pdf",
        "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
        ]
    },
],
"latex-workshop.latex.clean.fileTypes": [ //设定清理文件的类型  
    //"*.aux",  
    "*.bbl",
    "*.blg",
    "*.idx",
    "*.ind",
    "*.lof",
    "*.lot",
    //"*.out",  
    "*.toc",
    "*.acn",
    "*.acr",
    "*.alg",
    "*.glg",
    "*.glo",
    "*.gls",
    "*.ist",
    "*.fls",
    "*.log",
    "*.fdb_latexmk",
    "*.nav",
    "*.snm",
    "*.synctex.gz"
],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.internal.synctex.keybinding": "ctrl-click",
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,

大致的意思就是定义xebib的行为,然后构建默认的xe->bib->xe->xe流程。大多数带参考文献的中文LaTeX都需要这4步编译才能正常显示。

模板优势

vs. Ruzim/NSFC-application-template-latex

  • 对数学公式支持更好。
  • 通过类似{\input{extraTex/1.1.立项依据.tex}}的代码引用内容块,从而避免主tex文件过于庞杂;而且很符合一般人的写作思维。尽管这不一定是正确使用方法。
  • 优化图片、超链接、图表(特别是超长图表)的显示。
  • 更灵活地定义section的属性。
  • 根据2024年模板微调:解决了大小标题中数字是宋体而不是楷体的bug、页边距、(建议8000字以内):不加粗等。

LaTeX技巧

子tex

我将不同的内容拆分成子tex,从而实现一定程度的模块化:

msedge_2LuGs4a0f6

如果你正在频繁地更新某一个tex而其它tex相对不变,则可以在测试阶段只编绎那部分tex,这样可以节省编绎时间;只要在主tex文件注释一下类似{\input{extraTex/1.1.立项依据.tex}}的代码就行。另外,对于多人协作文档不同部分可能也有好处。

另外,我认为国自然标书的模板应该高度模块化。类似官方模板样式等自由度较低的特性可以纳入base包;而次级标题的样式、公式、代码等自由度较高的个性化功能的定制,可以参考面向对象编程的思路(比如只需要改一下参数就可以选不同的样式),这样应该可以做出符合更广泛人群需求的模板。这个有机会再折腾吧 (~ ̄▽ ̄)~

section

我基于titlesec定义了不同层次section。完全可以直接copy一个旧的section设置,然后用类似的方法定义它的属性:

\titleclass{\subsubsubsection}{straight}[\subsubsection]
\newcounter{subsubsubsection}[subsubsection]
\renewcommand\thesubsubsubsection{(\arabic{subsubsection})}
\titleformat{\subsubsubsection}
  {\templatefont \bfseries} % format \color{MsBlue} 
  {\hspace{1em} (\arabic{subsubsubsection})} % 类似(1)
  % {\hspace{1em} \arabic{subsection}.\arabic{subsubsection}.\arabic{subsubsubsection}} % 类似1.1.1
  {0.5pt} % separation
  {}   % before-code
\makeatletter
\def\toclevel@subsubsubsection{4}
\def\l@subsubsubsection{\@dottedtocline{4}{7.0em}{4em}}
\makeatother

如果你的标书拥有很多层级,可以尝试这个方法。不过一般都是用2-3个层级就够了。我自己在国自然标书里调了一个层级样式:(一)→1 → 1.1 → (1)

SumatraPDF_UK8pKY9YEp

之所以不选择(一)→1 → 1.1 → 1.1.1,是因为我个人感觉1.1.1更偏理科,对于医学人来说还是(一)→1 → 1.1 → (1)看着比较顺眼 (~ ̄▽ ̄)~ 不过,官方模板并没有严格限制,只是说层次分明,标题突出,所以这里有充分的自由度。大家自己在模板的基础DIY应该难度不大!

图片

我的图片都放在根目录/figures里面,这样会比较容易管理。一般使用photoshop将PDF矢量图组合为300-600ppi格式的psd文件,然后再保存为png格式。我比较少直接引用PDF格式。

我的图片代码基本类似:

\begin{figure}[!th]
    \begin{center}
    \includegraphics[width=6in]{figures/xxx.png}
    \caption{这里写标题。\\
    \raggedright \justifying \noindent
    (如果有的话)这里另起一行来描述图。
}
    \label{xxx}
    \end{center}
\end{figure}

这样图是居中显示,而且差不多可以覆盖整宽。width我觉得5.5-6in都可以。

表格

基金标书中我没有表格。如果你真的要插入表格,建议使用“ivankokan/Excel2LaTeX”之类的插件或工具生成表格的LaTeX代码。这是示例文件中的表格,样式接近出版级别,写标书应该没问题:

SumatraPDF_MiAUfS4CfJ

有序列表

这个也是挺常用的:

SumatraPDF_6E3gFwWQzF

我专门定制了item标题字体:

\newcommand{\itemtitlefont}[1]{\textbf{\color{MsBlue} #1}} % 定义item小标题字体;

联合enumerate就这样用:

\begin{enumerate}
    \item \itemtitlefont{项目1}:描述1 。
    \item \itemtitlefont{项目2}:描述2。
\end{enumerate}

这样\itemtitlefont{}也可以在非enumerate场景中使用,相当于强调。

使用国自然主题色强调的创意是我在单位举办的优秀国自然标书观摩中看到的,个人感觉颜色很舒服,遂在模板定制中予以采纳。

其它

  • 善用\clearpage,经常可以很好地协调图片的相对位置。
  • 灵活使用\vskip -5mm之类的命令调整上方垂直空间的大小。
  • 想到之后慢慢补充。

小结

我2024年写的青基,目前自己这套模板用下来感觉挺好,排版精美、层次分明:

SumatraPDF_xX8UsM6Edd

我会持续维护我的模板,大家有什么问题可以在下面留言。特别欢迎LaTeX大佬们多多指点!最后,祝大家马到功成!

扩展阅读

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍

感谢Faconhost的友情赞助 (ฅ´ω`ฅ) 本博客基于m2w创作。版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。VIP内容严禁转载!由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租请留言 | 博客VPS | 致谢渺软公益CDN |

评论

  1. 天天
    Windows Chrome 122.0.0.0
    9 月前
    2024-3-04 4:10:13

    请问标题里面数字1/2/3的字体怎么才能改成楷体? 我自己的模板搞了半天好像都不行

    • 博主
      天天
      Windows Edge 122.0.0.0
      9 月前
      2024-3-04 23:10:32

      在我的模板里有一段,您可以按实际情况修改:

      \newfontfamily\kaitichar{KaiTi}[AutoFakeBold] 
      \NewDocumentCommand \templatefont   { } { \kaishu \kaitichar }

      然后,标题里使用\templatefont这个字体即可。以section为例:

      \newcommand{\sectionzihao}{\fontsize{14pt}{\baselineskip}\selectfont}
      \titleformat{\section}
        {\color{MsBlue} \sectionzihao \templatefont} % format
        {\hspace{1.45em}  } % label
        {0pt} % separation
        {}   % before-code
      • 天天
        Bensz
        iPhone AppleWebKit 605.1.15
        9 月前
        2024-3-04 23:14:07

        主要就是那个fontspec宏包用不了 试了试其他的tex 已经写好的本子编译不出来。所以还是用回以前的,想请教用ctex写,PDFtex编译可以解决这个问题么

      • 博主
        天天
        Windows Edge 122.0.0.0
        9 月前
        2024-3-04 23:41:15

        我的模板开头指定了编绎的类型顺序: 编译顺序: xelatex -> bibtex -> xelatex -> xelatex。 我并没有在其它环境下测试过。 不过,由于tex版本比较多,它们之间不兼容也很正常。 如果您还是用ctex,用不了fontspec宏包,那么本教程并不适合您。您要想想别的法子(~ ̄▽ ̄)~ 这个超出我能力范围之外了

  2. dzq88
    Android Chrome 109.0.5414.118
    9 月前
    2024-3-01 3:57:42

    向爱学习的人致敬!

    • 博主
      dzq88
      Windows Edge 122.0.0.0
      9 月前
      2024-3-01 21:46:42

      (~ ̄▽ ̄)~ 加油!! 祝大家基金高中!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇