LaTeX排版总结

$\LaTeX$ 排版总结

写在前面

转到计算机学院之后发现必须要报计算机图形学这门课,跟老师确认之后中途上车,虽然期末考试发挥的不好。

不过成绩大头在论文翻译,自然翻译的结果是要遵循原文排版格式,于是便决定采用 $\LaTeX$ 并使用 $ACM$ 的 acmtog 的模板。虽然可以使用 Overleaf 在线编辑,但是考虑到以后也会经常用到,在电脑里装个 \LaTeX 环境也算是不得不做的事情。

安装&配置

镜像下载与安装

清华大学开源软件镜像站 找到最新的 textlive 安装包,我下载的是 textlive.iso,下载下来之后用 md5 码检测一下(实际上并没有)没有什么问题就可以双击镜像开始安装了。

镜像挂载之后,运行 install-tl-windows.bat 开始安装,会弹出来一个 GUI 界面,选择路径后直接安装即可。(听说可以把多余语言包去掉,反正我 C 盘空间足够随便折腾就不整了,万一哪天就用到了呢?:sweat_smile:)

vscode 配置

vscode 的扩展中搜索 latex 安装 LaTeX Workshop,安装好后直接打开配置文件插入以下内容:

"latex-workshop.latex.tools": [
        {
            // 编译工具和命令
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex",
            "tools": [
                "xelatex"
            ],
        },
        {
            "name": "xe->bib->xe->xe",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "pdflatex",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "pdf->bib->pdf->pdf",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],
    "latex-workshop.view.pdf.viewer": "external",
    "latex-workshop.view.pdf.external.viewer.command": "C:/.../SumatraPDF.exe",
    "latex-workshop.view.pdf.external.viewer.args": [
        "-forward-search",
        "%TEX%",
        "%LINE%",
        "-reuse-instance",
        "-inverse-search",
        "\"C:/.../Microsoft VS Code/Code.exe\" \"C:/.../Microsoft VS Code/resources/app/out/cli.js\" -gr \"%f\":\"%l\"",
        "%PDF%"
    ],

latex-workshop.latex.recipes 这个配置里面,放在第一个的是 LaTeX 文件保存后默认执行配置。如果不涉及参考文献的编号、需要快速预览,推荐将 xelatex 这项放在第一个,只编译一次;而如果涉及模板的编辑、参考文献及图片的编号,则推荐将 xe->bib->xe->xe 放在第一个,这样会进行四次编译,速度较慢(体感一次 1~2min 左右?),常用于正式论文的编写。

使用

在 $\LaTeX$ 中使用中文

使用 ctexart

如果你的文章主要由中文构成,你可以考虑使用 CTeX 中的 ctexart 文档类,下面的例子展示了如何使用 ctexart 文档类来写中文文档:

\documentclass[UTF8]{ctexart}
\usepackage[T1]{fontenc}

\begin{document}
你好,这是一个测试文档。
\end{document}

使用 ctexart 文档类的时候,最好加上 \usepackage[T1]{fontenc},否则某些符号显示不正确。

使用 ctex 宏包

\documentclass{article}
\usepackage[UTF8, scheme=plain, punct=plain, zihao=false]{ctex}
\begin{document}
你好,这是一个测试文档。
\end{document}

只引入 ctex 宏包的话会导致英文字体也被修改,甚至导致不能编译,加上参数后英文字体、字号以及标点会依照文档类的格式。注意,需要使用 xelatex 编译。

减少标题前方的空白

\title{\vspace{-4cm}YourTitle}

$-4\mathrm{cm}$ 可以根据实际需要按需调整

$\LaTeX$ 分双栏

使用宏包:multicol

\documentclass{article}
\usepackage[UTF8, scheme=plain, punct=plain, zihao=false]{ctex}
\usepackage{multicol} %用于实现在同一页中实现不同的分栏
\usepackage{pxrubrica}

\begin{document}

% 第一段不分栏
珂朵莉·诺塔·瑟尼欧里斯 ( \ruby[g]{Chtholly}{クトリ} Nota Seniorious, \ruby{クトリ}{Ku|to|ri}\ruby{ノタ}{No|ta}\ruby{セニオリス}{Se|ni|o|ri|su} )(422 - 438?) 是由枯野瑛创作的一部轻小说《末日时在做什么?有没有空?可以来拯救吗?》及其衍生作品的登场角色。是一名居住在妖精仓库的黄金妖精。她是《末日时在做什么?有没有空?可以来拯救吗?》(第三卷死亡前)的主要角色,并且在《末日时在做什么?能不能再见一面?》中被时常提及。

\columnseprule=1pt         % 实现插入分隔线
\begin{multicols}{2}       % 分两栏 若花括号中为3则是分三列
        初次外出时,她打扮朴素,身穿灰色兜帽与同色大衣,与威廉·克梅修相遇于28号浮空岛的集合市场街(Market medley)。
        
        出场时,珂朵莉在市街高处追逐着口衔胸针的黑猫,因失去平衡从天而降并与威廉相遇。因兜帽丢失,威廉便送了她一顶新的帽子,然后一同前往此岛最高的高塔上俯瞰城市风光。临走时她要求威廉把她忘掉。
        
        在68号浮空岛的仓库外围,她与此时已经成为她的管理员的威廉再次相遇。在几天的日常中,两人情窦初开。一次战斗结束后对威廉说:“假如……我是说假如喔。万一我再过五天就会死,你能不能对我温柔一点?”并要求接吻。之后威廉得知了事件的原因并开始传授珂朵莉圣剑/遗迹兵器(Dagr weapon)的正确使用方法,希望她能平安归来。珂朵莉也将胸针的由来回忆而出。
\end{multicols}

\end{document}

给文字注音

使用宏包:pxrubrica,然后使用 \ruby{クトリ}{ku|to|ri} 即可注音,需要注意的是注音需要用 | 隔开,数量要与前面的文字数量相等,否则会显示异常。

如果需要给所有文字同时注音,比如 $\overset{クトリ}{Chtholly}$​,这样的效果,可以使用 [g] 参数:\ruby[g]{Chtholly}{クトリ}

示例见上一个例子,里面也包含了用法。

插入图片

暂时先放几个链接:

LaTeX排版札记:part 4—插入图片(并排显示、自定义编号) - 知乎 (zhihu.com)

(35条消息) LaTex笔记一:图片的插入及排版方法_yaoyz105-CSDN博客_latex图片排版

ACM模板的使用

下载

作者信息

参考文献

将渲染好的 inproceedings 参考文献恢复为 .bib 格式的正则表达式:(注意要打开大小写敏感)

匹配:(正则匹配了 作者.年份(a|b).标题.In 期刊名.换行

([^(12)\n]+). ([0-9]{4}[ab]?). ([^\n]+). In ([^\n]+).\n

替换为:(最后一行的空行也要保留!)

@inproceedings{,
  author    = { $1 },
  title     = { $3 },
  booktitle = { $4 },
  year      = { $2 }
}

然后再将作者中的 , and , 替换为 and 即完成恢复。

参考链接链接群

Index of /ctan/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

LaTeX:TeXLive2021安装 - 知乎 (zhihu.com)

全面总结如何在 LaTeX 中使用中文 (2020 最新版) - jdhao’s blog

如何用 latex 分双栏(分两列) - SegmentFault 思否

如何在LaTex中给文字注音 - CuoSite (c-uo.github.io)

LaTeX排版札记:part 4—插入图片(并排显示、自定义编号) - 知乎 (zhihu.com)

LaTex笔记一:图片的插入及排版方法_yaoyz105-CSDN博客_latex图片排版

Latex减少title标题前方空白_sunjianxing123的博客-CSDN博客_latex标题上方空白太大