├── 00.如何提问 ├── CHANGELOG.md └── 如何提问.md ├── 01.历史与基本概念 ├── CHANGELOG.md ├── 为什么TeX的Logo是一只狮子.md └── 背景知识与基本概念.md ├── 02.HOT FAQs ├── CHANGELOG.md └── FAQs.md ├── 03.第一次运行 └── CHANGELOG.md ├── 04.如何入门 └── CHANGELOG.md ├── 05.数学公式 └── CHANGELOG.md ├── 06.如何编写符合规范的论文 └── CHANGELOG.md ├── 07.字体配置 └── CHANGELOG.md ├── 08.图表 └── CHANGELOG.md ├── 09.浮动体 └── CHANGELOG.md ├── 10.其它文档元素 └── CHANGELOG.md ├── 11.幻灯片 └── CHANGELOG.md ├── 12.绘图 ├── CHANGELOG.md └── LaTeX绘图相关_Axia.md ├── 13.开发 ├── 0.md ├── 1.newcommand ├── 2.newenvironment ├── 3.Global options ├── 4.if ├── 5.ifcsname └── CHANGELOG.md ├── 14.错误 └── CHANGELOG.md ├── 15.常用宏包及功能 └── CHANGELOG.md ├── 16.Out of TeX └── CHANGELOG.md ├── FAQ-Old ├── .gitattributes ├── .gitignore ├── .vscode │ ├── settings.json │ └── tasks.json ├── BUILD.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── STYLE_GUIDE.md ├── draft │ └── faq.md ├── images │ ├── 5.png │ ├── amxmath_texstudio.png │ ├── bfseries.png │ ├── bm.png │ ├── boldmath.png │ ├── boldsymbol.png │ ├── git-gui.png │ ├── hang.png │ ├── image.png │ ├── mathbf.png │ ├── minted.png │ ├── textbf.png │ ├── tikz-90-1.png │ ├── tikz-90-2.png │ └── weixin.jpg ├── make.lua └── source │ ├── example-style1.sty │ ├── example-style2.sty │ ├── include │ ├── basic.tex │ ├── beamer.tex │ ├── bib.tex │ ├── dev.tex │ ├── doc.tex │ ├── error.tex │ ├── figure.tex │ ├── font.tex │ ├── graphics.tex │ ├── install.tex │ ├── layout.tex │ ├── math-1.tex │ ├── math-i.tex │ ├── math-ii.tex │ ├── preface.tex │ ├── starter.tex │ ├── table.tex │ └── usage.tex │ ├── latex-faq-cn-class.cls │ ├── latex-faq-cn.tex │ └── mathfaq-style.sty └── README.md /00.如何提问/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/00.如何提问/CHANGELOG.md -------------------------------------------------------------------------------- /00.如何提问/如何提问.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## LaTeX 傻瓜式提问模板 4 | 5 | ### 编译遇到错误 6 | 7 | 如果你在编译的时候遇到错误——编译器暂停工作,请看这里: 8 | 9 | > 我编译遇到错误了:这里填入错误信息(从叹号开始,一直到问号提示符) 10 | > 11 | > 我的代码是:请精简你的代码(最小工作示例),通常情况它不应该超过 50 行 12 | > 13 | > 我使用的操作系统是:Windows XP/7/8/Linux/Mac OS 14 | > 15 | > 我使用的 TeX 发行版是:CTeX/MikTeX/TeX Live/MacTeX 16 | > 17 | > 我使用了 WinEdt/TeXworks/TeXmaker/TeXstudio/Kile/TeXshop/Vim/Emacs/Sublime Text 作 18 | > 19 | > 为编辑器,使用的是 UTF-8/GBK 编码,使用 XeLaTeX/pdfLaTeX/LaTeX 进行编译。 20 | > 21 | > 我应该怎么办? 22 | 23 | ### 编译结果和预期不符 24 | 25 | 如果你编译顺利通过,但是出来的效果和你预期的不相符合,请看这里: 26 | 27 | > 我编译之后效果不对:这里填入当前效果截图 28 | > 29 | > 我的代码是:请精简你的代码(最小工作示例),通常情况它不应该超过 50 行,记得在 \begin{document} 前面加上 \listfiles 后编译 30 | > 31 | > 我的日志文件是:提供关键内容(如果你明白的话),或者上传整个 log 文件 32 | > 33 | > 我使用的操作系统是:Windows XP/7/8/Linux/Mac OS 34 | > 35 | > 我使用的 TEX 发行版是:CTeX/MikTeX/TeX Live/MacTeX 36 | > 37 | > 我使用了 WinEdt/TeXworks/TeXmaker/TeXstudio/Kile/TeXshop/Vim/Emacs/Sublime Text 作 38 | > 39 | > 为编辑器,使用的是 UTF-8/GBK 编码,使用 XeLaTeX/pdfLaTeX/LaTeX 进行编译。 40 | > 41 | > 我应该怎么办? 42 | 43 | 44 | 45 | 选自:《关于 LaTeX 的高效提问》作者:chenmeng  2013 年 46 | 47 | ## 什么是最小工作示例(MWE) 48 | 49 | 50 | Minimum Work Example, “最小工作示例”。顾名思义,最小工作示例特点有三 51 | 52 | - **简短** 不包含与问题无关的代码片段; 53 | - **工作** 能够独立运行于他人的电脑上,而不需要添加额外的代码; 54 | - **示例** 在他人计算机上的运行结果,能完整的再现你遇到的问题 55 | 56 | 希望他人帮忙解决问题,首先要让他们理解你遇到了什么问题。因此示例必不可少。 57 | 58 | 如果提供的示例在他人的电脑上无法运行,那么他们也就没有办法知道你遇到了什么问题。所以提供的代码必须能够正常工作。 59 | 60 | 时间对于任何一个人都是一笔宝贵的财富。如果提供的代码冗长,则回答者势必要话费大量时间阅读不必要的代码。这浪费了回答者的时间,也浪费了提问者的时间(等待时间更久),因此有必要让代码足够简短。 61 | 62 | 63 | 64 | **参考资料:** 65 | 66 | - https://zhuanlan.zhihu.com/p/94837029 周宇恺 整理中... 67 | 68 | - 新手请先读我 作者:milksea(刘海洋) 69 | 70 | - Eric S. Raymond and Rick Moen, [How to Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html) 常译作《提问的智慧》,网上有多份翻译,这是[其中之一](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md) 71 | 72 | ## 去哪里去提问交流 73 | 74 | - 能使用英文:[tex.stackexchange.com](https://tex.stackexchange.com/) 75 | 76 | - 中文交流:https://ask.latexstudio.net 77 | - -------------------------------------------------------------------------------- /01.历史与基本概念/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/01.历史与基本概念/CHANGELOG.md -------------------------------------------------------------------------------- /01.历史与基本概念/为什么TeX的Logo是一只狮子.md: -------------------------------------------------------------------------------- 1 | ## 为什么 TeX 的 logo 是一只狮子? 2 | 3 | 众所周知,TeX/LaTeX 的logo(或者说是吉祥物 mascot)是一只狮子。是因为它的创始人,计算机科学家Donald Knuth对狮子有着特殊的喜爱和象征意义。以下是一些关于TeX标志的背景信息: 4 | 5 | 1. Knuth对狮子的喜爱:Knuth在斯坦福大学期间的学位论文中使用了一个狮子的图案。这个图案后来成为了他的个人标志,并出现在他的许多出版物和计算机科学界的相关材料中。 6 | 7 | 2. 狮子的象征意义:狮子通常被视为力量、尊严和权威的象征。Knuth选择了一只狮子来代表TeX,可能是因为他希望TeX成为一种强大、令人尊敬和权威的排版系统。 8 | 9 | 3. 非洲狮子的图像:TeX标志中的狮子形象是根据非洲狮子来设计的。Knuth喜欢非洲野生动物,并且在他的作品中经常提到它们。因此,他选择了非洲狮子的形象作为TeX的标志。 10 | 11 | 总的来说,TeX标志中的狮子是Knuth个人喜好和象征意义的体现。它代表了Knuth对TeX的深情厚意,并且在TeX的推广和使用中成为了一个广为人知的标志。 12 | -------------------------------------------------------------------------------- /01.历史与基本概念/背景知识与基本概念.md: -------------------------------------------------------------------------------- 1 | LaTeX 是一种用于创建专业外观文档的开源排版系统。 它是由 Leslie Lamport 创建的,于 1985 年首次发布。 LaTeX 与 TeX 编译器一起使用,它是一种强大的工具,可用于创建各种文档,包括论文、书籍和手册。 2 | 3 | LaTeX 的关键优势之一是它可以生成高质量的印刷材料。 LaTeX 文档使用 TeX 编译器生成 PDF 文件,这是一种高质量的文件格式,非常适合印刷。 LaTeX 还提供广泛的命令和功能,可用于创建复杂的文档,例如包含图表、表格和数学公式的文档。 4 | 5 | LaTeX 是一种相对复杂的系统,但它可以学习和使用。 有许多资源可帮助您学习 LaTeX,包括在线教程、书籍和社区。 如果您正在寻找创建专业外观文档的强大工具,LaTeX 是一个不错的选择。 6 | 7 | 以下是 LaTeX 的一些优势: 8 | 9 | - 高质量的印刷材料 10 | - 广泛的命令和功能 11 | - 免费和开源 12 | - 庞大的用户社区 13 | 14 | 以下是 LaTeX 的一些缺点: 15 | 16 | - 学习曲线陡峭 17 | - 不如 Microsoft Word 或 LibreOffice 等文本处理器那么直观 18 | - 需要专用编辑器,如 TeXstudio 或 TeXmaker 19 | - 20 | 总体而言,LaTeX 是一种强大的工具,可用于创建专业外观文档。 如果您正在寻找创建高质量文档的强大工具,LaTeX 是一个不错的选择。 但是,如果您正在寻找直观的文本处理器,LaTeX 可能不是您的最佳选择。 21 | 22 | ## 一、背景知识与基本概念 23 | 24 | ### 1. 什么是TeX? 25 | 26 | TeX是由著名的计算机科学家 [Donald E. Knuth](https://www-cs-faculty.stanford.edu/~knuth/)(高德纳)发明的排版系统,他在他的书的前言中曾提到「TeX旨在创造美丽的书籍,特别是那些包含很多数学公式的书」。(如果说TeX仅仅是为了更方便些数学方面的书而生的,那么它就不会像今天这么使用广泛了:事实上,TeX是一个很好的文字排版工具)。 27 | Knuth是美国加州斯坦福大学计算机编程专业的名誉教授,他在1978年开发了第一个版本的TeX用来处理他的“计算机编程艺术”的修订。这个想法特别受欢迎,所以1982年他推出了TeX的第二个版本,也就是们今天所用的TeX的基础。 28 | Knuth开发了一套“识字编程”来编写TeX,他还提供了免费的TeX资源,以及可以将网络资源转化为可以编译或者打印的东西的工具;Knuth做了什么,对人们来说从来都不是什么神秘的事情。TeX以及它的文档都是高度可移植的。 29 | 对于感兴趣的程序员来说,TeX有其迷人之处:没有什么能比得上一个人可以构建这样一个程序,至今它的持续时间比大多数的程序都好,而且已经被移植到了许多不同的计算机构架和操作系统中——许多现代编程所追求的属性。经过处理的“可读”的TeX程序源代码可以在 [TDS structured](https://texfaq.org/FAQ-tds) 版本中找到。 30 | 31 | ### 2. TeX 中常见术语的解释 32 | * **引擎** 33 | 34 | LaTeX/TeX解析引擎,其实就是一个编译器,它输入一个.tex文件作为输入,根据源文件的内容送入解析引擎和渲染引擎进行处理,并将排版的成果——文档编译输出,LaTeX/TeX的解析引擎目前有pdflatex、xelatex、lualatex等,它们都可以输出pdf文档文件(部分解析器可以输出dvi文件),用于在多平台进行分发甚至打印出版。 35 | * **格式** 36 | 37 | TeX是存在各种不同的封装格式的,比如原生的TeX或者LaTeX,我们所使用的LaTeX只是tex封装格式的其中一种,是目前流行的封装规范。 38 | * **发行版** 39 | 40 | LaTeX/TeX都包含了成千上万个宏包,甚至有可能我们需要安装新的宏包,除了手动安装外,最好的方式就是利用发行版的宏包管理器,所谓发行版就是把LaTeX/TeX的相关组件打包,形成一个独立完善的LaTeX/TeX系统,目前流行的发行版有MiKTeX、proTeXt 以及TeXLive。 41 | -------------------------------------------------------------------------------- /02.HOT FAQs/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/02.HOT FAQs/CHANGELOG.md -------------------------------------------------------------------------------- /02.HOT FAQs/FAQs.md: -------------------------------------------------------------------------------- 1 | ## 常见问题集 2 | 3 | > - 本文档用于收集**包括但不限于** LaTeX 交流群中群友的问题 4 | > 5 | > - 由于本人时间有限,目前只会记录本人自己答疑的问题,其他群友答疑的问题暂时不会记录 6 | > 7 | > - 由于本人能力有限 + 群 U 逆天,部分问题并不会给出群友心中完美的解答. 8 | > 9 | > - 由于群友部分问题描述过于模糊/严重违背常理,这类问题不予记录. 10 | > 11 | > - Stay simple, stay fool. 12 | 13 | #### 向量的箭头如何对齐?<2024/03/16 10:47 LaTeX技术交流1群 (91940767)> 14 | 15 | - *对方附了一张编译后的PDF截图用以补充描述* 已知向量 $\vec a,\vec b$ 满足... (图片上很明显向量字母 $\vec a$ 和 $\vec b$ 上方的箭头高度不一) 16 | 17 | - 群友:建议 `\usepackage{bm}` ,然后 `$\bm a$` ,使用加粗方式替代箭头 18 | 19 | - 试试这个,把所有箭头调到字母h的高度(我认为 h 和 b 应该是小写字母里最高的了,t 其次...) 20 | ```tex 21 | \documentclass{article} 22 | \let\nvec\vec 23 | \def\vec#1{\nvec{\vphantom h\smash{#1}}} 24 | 25 | \begin{document} 26 | $\vec{a} + \vec{b}$ 27 | \end{document} 28 | ``` 29 | 30 | - 这个也是自定义命令? 31 | 32 | - 这个是先"备份" `\vec` 这个命令到 `\nvec` 里,然后再重新定义 `\vec` ,让它在以前命令的基础上里面输入的高度为 h 也好, b 也好,这类字母的高度应该是最高的. 33 | 34 | - `vphantom` 就是把字母h包成一个相同高度的空白,但是不让他显示出来,因为空白存在后来新定义 `\vec` 时调用之前备份 `\nvec`,箭头会按照h的高度来显示. 35 | 36 | - 你可以重新定义一些已有的命令也可以新定义其他你想要的命令. 37 | 38 | - 评价 @啸行:我认为这样不好……另外,打印的书籍中,我还是更常见用粗体表示向量的. 39 | 40 | --- 41 | 42 | #### 如何让 `\frac` 重新定义成 `\dfrac` 的效果?<2024/03/16 19:33 LaTeX技术交流1群 (91940767)> 43 | 44 | - 重新 `\frac{}` 定义,具有 `\dfrac{}` 的功能. 45 | - 请教一下,如何将这个命令 `\dfrac{}` ,设置为新命令,自动化. 谢谢. 46 | 47 | - 你是要 `\renewcommand{\dfrac}[2]{…#1…#2…}` 吗… 48 | 49 | - 还是你说的自动化是想无论行间、还是行内公式都像 `dfrac` 的效果?那你可以 `\everymath{\displaystyle}` ,但是不推荐这样,会把行内间距都搞乱掉,一会高一会低的. 50 | - 这样子,是不是将这个命令 `\frac{}` 设置具有 `\dfrac{}` 的功能. 谢谢. 51 | 52 | - 你可以把设置的 `displaystyle` 看成 `frac` 有 `dfrac` 的显示效果,但是除非是比如说你的甲方也好、老板也好、出版社也好有这个癖好,否则不要这样搞,很难看的. 53 | - 你要问行内那不这样太小了咋办?行内分数比如二分之一,直接 `$1/2$` 就好了. 54 | - 补充:他这种情况亦可以 `\let\frac\dfrac` ,用 `\dfrac` 的定义盖掉 `\frac` 的定义;当然 `\renewcommand` 也可以的. 55 | 56 | --- 57 | 58 | #### 调节 `\frac` 的分子、分母和分数线之间的距离 <2024/03/16 20:42 LaTeX技术交流1群 (91940767)> 59 | 60 | - `\frac` 的分子分母与分数线之间的垂直间距可以调吗? 61 | 62 | - 群友:为什么要做这些出力不讨好的调整呢?用默认的,轻松. 63 | 64 | - 实在搞不懂...你可以用 `\frac`, `\dfrac` 和繁分数的 `\cfrac` 65 | 66 | - 如果你实在还想自定义,看这 [Adjusting vertical spacing in fractions?](https://tex.stackexchange.com/questions/500157/adjusting-vertical-spacing-in-fractions) ,解答中大部分也都建议用 `cfrac` 等命令,当然也给出了自定义间距方案——瞎折腾干啥呢... 67 | - 我记得有个大佬发过怎么调的,但是我的收藏里找不到了 68 | 69 | - 送你一个搞笑的解答:用TikZ画——[万物均可TikZ](https://tex.stackexchange.com/a/500341/299948). 70 | 71 | --- 72 | 73 | #### 当目录只有一页时候可以正常显示,当目录页码比较多需要多页显示时,目录就开始显示异常 <2024/03/16 21:26 LaTeX 工作室论坛> 74 | 75 | ##### 问题分析 76 | 77 | - 首先更正一下提问者的描述:应该为“当文档中没有 `\subsection` 时目录可以正常显示,当文档中有 `\subsection` 时,目录就开始显示异常”. 78 | - 这个问题是这个样例的作者设计的缺陷,作者原稿:[排版设计大赛一等奖 -初高中数学衔接教程 书籍设计](https://ask.latexstudio.net/addons/ask/go/index?url=https%3A%2F%2Fwww.latexstudio.net%2Findex%2Fdetails%2Findex%2Fmid%2F951.html) 79 | - 导致整个问题的原因,是原稿作者为了在目录左侧空白加入图片(比如原稿中的一个十字相乘的图) 80 | - 这里是怎么实现的呢?原稿作者巧妙利用了目录中添加的 `\subsection` ,利用`tocloft`包强行让 `\subsection` 在目录中添加很大的 `indent`,甚至还添加了很大的 `skip`,来给要添加的图片预留位置,这一点从代码中便可看出来,代码中对这部分写道 81 | 82 | ```tex 83 | \renewcommand{\cftsubsecindent} {2em} 84 | \renewcommand{\cftbeforesubsecskip}{-1.5cm} 85 | ``` 86 | 87 | - 这下好了,当使用者要添加 `\subsection` 时,目录中的 `\subsection` 就会因为上面两行代码挪位到很奇怪的位置,进而导致乱版. 88 | 89 | ##### 解决方案 90 | 91 | - 首先既然作者设计时没考虑使用者要使用 `\subsection` ,那就干脆不让目录中添加 `\subsection`,将 `tocdepth` 的值从2改为1,即 `\setcounter{tocdepth}{1}` 92 | 93 | - 其次可以自行调整代码中的那两个参数,但是很明显,目录左侧的图片也会跟着移动. 所以如果使用者不需要,也可以干脆不在目录中添加图片. 94 | 95 | ##### 用户追问 96 | 97 | - 怎么设置把在目录中添加图片的功能去掉以正常显示所有目录? 98 | 99 | ##### 追加解答 100 | 101 | - 那张图名为 `13.png` ,那就 `control+F` 查找 `13.png` ,删去 `\addcontentsline{toc}{subsection}{\includegraphics[]{13.png}}` 即可解决. 102 | 103 | - 这行命令的意思就是在目录的 subsection 添加为一张图片. 104 | 105 | 106 | 107 | #### 调节 `\frac` 的分子、分母和分数线之间的距离 <2024/03/18 25:06 LaTeX技术交流1群 (91940767)> 108 | 109 | - 请问一下,我希望调整ctexbook类的section项的样式,希望其字体按照我希望的本地字体加载,但以下两个命令,一个只能控制西文字体,一个只能控制中文字体,但二者同时加载会发生冲突,请问我该如何才能同时控制中西文字体呢?字体文件 `ChironSungHK-H.ttf` 附上. 110 | 111 | ```tex 112 | \documentclass{ctexart} 113 | \usepackage{fontspec} 114 | \newfontfamily{\CSHH}{ChironSungHK-H.ttf} %只能控制西文 115 | %\newCJKfontfamily{\CSHH}{ChironSungHK-H.ttf} %只能控制中文 116 | \ctexset{section={format=\CSHH\raggedright\zihao{-4}}} 117 | 118 | \begin{document} 119 | \section{ABC一二三} 120 | \end{document} 121 | ``` 122 | 123 | 124 | - 解决方案 125 | 126 | ```tex 127 | \documentclass{ctexart} 128 | \usepackage{fontspec} 129 | \usepackage{lipsum,zhlipsum} 130 | 131 | \newfontfamily\CSM{CSMS}[Extension=.ttf] 132 | \setCJKfamilyfont{CSHK}{ChironSungHK-H}[Extension =.ttf] 133 | 134 | \ctexset{section={format=\CJKfamily{CSHK}\raggedright\zihao{-4}}} 135 | 136 | \begin{document} 137 | 138 | \section{第一章} 139 | \lipsum[6] 140 | \CSM\lipsum[6] 141 | \zhlipsum[6] 142 | \CJKfamily{CSHK}\zhlipsum[6] 143 | \end{document} 144 | ``` 145 | 146 | - 你如果是在项目地址导入字体,那么就加入这个 `.ttf` ,然后名字要和 `.ttf` 文件名对应. 147 | 148 | - 如果是直接安装电脑里的,那么你就要把字体名字改为电脑字体管理界面显示的名字. 149 | 150 | #### 调节 `\frac` 的分子、分母和分数线之间的距离 <2024/03/20 20:57 LaTeX技术交流1群 (91940767)> 151 | 152 | - 请教一下 怎么加了 `\displaystyle` 这个公式的积分号还是比较小呢,请问能不能让积分号更大一点呢,我试过了 `\cfrac` 发现效果还是不行. 153 | 154 | ```tex 155 | $$ 156 | C=\frac{A\varepsilon_{0}\varepsilon_{\perp}}{\displaystyle \int_{0}^{l}\frac{dz}{1+\gamma\left(1-\frac{\left(z-\frac{l}{2}\right)^{2}}{R^{2}}\right)}} 157 | $$ 158 | ``` 159 | 160 | $$ 161 | C=\frac{A\varepsilon_{0}\varepsilon_{\perp}}{\displaystyle \int_{0}^{l}\frac{dz}{1+\gamma\left(1-\frac{\left(z-\frac{l}{2}\right)^{2}}{R^{2}}\right)}} 162 | $$ 163 | 164 | - 群友:建议积分号右边用 `tfrac` ,或者上下同乘 `R^2` 165 | - 群友:不要在MD中做这个,它不合适;实在想做就在LaTeX里面做,有无数种的方法. 166 | 167 | - 我知道,我只是调个公式 懒得开 `tex`. 168 | 169 | - 群友:你这嵌套太多了. 170 | 171 | - 效果更不好了,我不知道是不是这个md渲染的问题,我还是开一个 `tex` 试试 172 | 173 | $$ 174 | C=\frac{A\varepsilon_{0}\varepsilon_{\perp}}{\displaystyle \int_0^1\tfrac{dz}{1+\gamma\left (1-\frac{\left (z-\frac{1}{2}\right)^{2}}{R^{2}}\right)}} 175 | $$ 176 | 177 | - 把 `\fracl2` 直接写成 `l/2` 视觉上或许会好些. 178 | 179 | - 群友:上下乘 `R^2` 消掉一层嵌套. 180 | - https://tex.stackexchange.com/questions/39181/big-integral-sign#:~:text=The%20command%20%5Cmathlarger%20of%20the,mathlarger%7B%5Cint%7D%7D%7D%20%2C%20etc. 这大不大? 181 | 182 | - 心满意足,谢谢大神. 183 | - 还是不建议搞太大,否则你不觉得 `dz` 太... 184 | - 好像也对. 185 | - 群友:小马拉大车是吧. 186 | - 他不只是大小的问题,还有位置的问题.. 187 | - 调几个s好像都不是特别合适. 188 | - 群友:你可以调不是那么大,然后向下微移积分号. 189 | - 其实,我建议你这样写:我们物理系的,比如写一些4维积分,都是 `\int d^4x` 这样,被积的放在前面. 190 | 191 | $$ 192 | C=\cfrac{A\varepsilon_0\varepsilon_\bot}{\displaystyle\int\mathrm{d}\,z\left\{1+\gamma\left[1-\dfrac{(z-l/2)^2}{R^2}\right]\right\}^{-1}} 193 | $$ 194 | 195 | - 你这个也是物理系算电动力学里的电容还是什么,建议把变量放前面,这样也更美观了. 196 | 197 | - 你觉得这个咋样?`raisebox` ,满足你的奇怪需求,拿走不谢. 198 | 199 | ```tex 200 | \[C=\cfrac{A\varepsilon_0\varepsilon_\bot}{\displaystyle\bigintss\raisebox{3pt}{$\dfrac{\mathrm{d}\,z}{1+\gamma\left(1-\frac{(z-l/2)^2}{R^2}\right)}$}}\] 201 | ``` 202 | -------------------------------------------------------------------------------- /03.第一次运行/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/03.第一次运行/CHANGELOG.md -------------------------------------------------------------------------------- /04.如何入门/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/04.如何入门/CHANGELOG.md -------------------------------------------------------------------------------- /05.数学公式/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/05.数学公式/CHANGELOG.md -------------------------------------------------------------------------------- /06.如何编写符合规范的论文/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/06.如何编写符合规范的论文/CHANGELOG.md -------------------------------------------------------------------------------- /07.字体配置/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/07.字体配置/CHANGELOG.md -------------------------------------------------------------------------------- /08.图表/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/08.图表/CHANGELOG.md -------------------------------------------------------------------------------- /09.浮动体/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/09.浮动体/CHANGELOG.md -------------------------------------------------------------------------------- /10.其它文档元素/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/10.其它文档元素/CHANGELOG.md -------------------------------------------------------------------------------- /11.幻灯片/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/11.幻灯片/CHANGELOG.md -------------------------------------------------------------------------------- /12.绘图/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/12.绘图/CHANGELOG.md -------------------------------------------------------------------------------- /12.绘图/LaTeX绘图相关_Axia.md: -------------------------------------------------------------------------------- 1 | $\LaTeX$ Tikz绘图相关 2 | === 3 | - 常用命令 4 | * 绘制线段 5 | 6 | `\draw [选项] (坐标1)--(坐标2)--(坐标3)--...--(坐标n);` 7 | * 绘制圆 8 | 9 | `\draw [选项] (圆心坐标) circle (半径);` 10 | * 绘制椭圆 11 | 12 | `\draw [选项] (圆心坐标) ellipse (半长轴 and 半短轴);` 13 | * 标注文本 14 | 15 | `\node [anchor=锚点位置,颜色等] at (标记坐标) {标记内容};` 16 | - `foreach`语句 17 | * ```TeX 18 | \foreach \a in {变量范围} 19 | 绘制命令(内含xx=\a cm);``` 20 | 举例: 21 | ```TeX 22 | \foreach \a in {-10,-8,...,6,8,10} 23 | \foreach \b in {-10,-8,...,6,8,10} 24 | \draw [xshfit=\a cm,yshift=\b cm] (0,0) circle (1); 25 | ``` 26 | 此例子为绘制(-10,-10)到(10,10)区域内的多个圆,foreach语句可叠加使用! -------------------------------------------------------------------------------- /13.开发/0.md: -------------------------------------------------------------------------------- 1 | ## 开发一个宏包/文档类需要哪些知识 2 | 3 | LaTeX 的宏包可以形式地分为如下几类: 4 | - 模板类。即制作文章、书籍模板。基本上是对已有宏包(及功能)的整合。 5 | - 需求类。实现特定需求。如修改版面参数,设置页眉页脚,显示代码,绘图等。 6 | - 辅助类。即实现其它需求的通用前置。如 `etoolbox`、`keyval`、`atbegshi` 等。 7 | - 字体类。增加或修改文档字体。 8 | - 其它。如 `microtype`。 9 | 10 | 然而给出这 5 类宏包只是让读者有一个感性的理解,事实上很难把一个宏包归为某一类,如 `xpatch` 宏包既可以认为是实现某一特定需求,也可以认为是实现其它需求的前置。同时,一个宏包也完全可以同时具有上述多种类别。这里对宏包进行分类只是便于后续的讨论而已。 11 | 12 | 读者可以从第 15 章了解到常见宏包的功能。 13 | 14 | 回到正题上来,开发宏包需要的知识与它们的分类有一定关联。如对于模板类,只需要了解如何修改版面大小如何修改字体等等,这些需求基本上都已有完善的宏包实现它们了,宏包作者只需知道这些需要分别由哪些宏包实现,然后阅读相应宏包的文档即可。对于需求类和辅助类,目前 LaTeX 的宏包已经极为丰富,多数需求都已经有宏包实现,因此如果需要实现某一需求,直接从实现这一需求的宏包中学习即可。此外,还可能需要了解 TeX 和 LaTeX 的基本知识,甚至需要了解 LaTeX 的实现,以及所用的 TeX 引擎和驱动的文档。(本章后文对此有介绍。)例如实现 `multicol`、`paracol` 宏包不仅需要了解 TeX 的分页算法,还需要知道 LaTeX 的输出例程(output routine)。而 `graphics`、`color`、`hyperref` 的实现方式与编译时使用的驱动有关,对于 `xeCJK`、`luatex-ja` 等宏包,它们一方面依赖于具体的引擎,另一方面也基于特定地区的排版规范、标准和惯例,对于 `tikz` 和 `pstricks`,它们的底层基于驱动提供的功能,再使用 TeX 宏包装之,如 `tikz` 的某些功能直接来自于 PDF 标准,`pstricks` 则基于 postscript,由于涉及图形相关的功能,甚至需要了解一点图形学的知识。对于字体类,则需要了解 LaTeX 的字体机制(NFSS),或是 `fontspec` 宏包的使用方式,还需要对字体知识有一定的了解。 15 | 16 | 除此之外,LaTeX 宏包还应注重兼容性。纵向的,即是向后兼容;横向的,即是兼容其它常用宏包。在编写宏包时,最好考虑一下横向兼容性,这有时需要我们了解这些宏包的具体实现。 17 | 18 | ## 如何学习开发宏包/文档类所需的知识 19 | 20 | 前已述及,所需的知识与开发的宏包的类别有关,开发除了模板以外(甚至包括模板)的其它宏包,所需知识总是来自于 TeX 引擎及驱动提供的功能。 21 | 22 | 以下列出推荐阅读的书目或文档: 23 | - The TeXbook。目前常用的引擎都是以 TeX 和 eTeX 为基础,因此 The TeXbook 和 eTeX 手册几乎是开发需求类和辅助类宏包必读的。其中 eTeX 手册可在终端中执行 `texdoc etex` 以打开。 24 | - TeX by Topic。与 The TeXbook 类似的书目,描述 TeX 底层的功能。执行 `texdoc texbytopic` 以打开。 25 | - `clsguide.pdf`。编写宏包和文档类的简短指南。执行 `texdoc clsguide` 以打开。 26 | - `interface3.pdf`。LaTeX3 的说明文档。LaTeX3 可以算作是一套辅助类宏包,它为 TeX 的功能提供了更加一致的、易用的接口,并提供了定义键值接口、处理列表、正则表达式等功能。目前,LaTeX3 已经集成进 LaTeX 内核,越来越多的宏包及文档类使用 LaTeX3 开发。初学者选择 LaTeX3 开发是一个不错的选择。执行 `texdoc interface3` 以打开。 27 | - The LaTeX Companion 第三版。这是目前关于 LaTeX 的最新的书籍。几乎包含 LaTeX 各个方面的知识。内容将近 2000 页,当作手册查阅是个不错的选择。 28 | - 各引擎和驱动的文档。可尝试执行 `texdoc 引擎和驱动的名称` 以打开其文档。 29 | - 其它宏包。见第 15 章。 30 | 31 | 另外,由于 TeX 引擎和 LaTeX 格式均是开源的,LaTeX 宏包又是以纯文本形式发布,因此其源码总是第一手的、最可靠的资料。 32 | 33 | 正如学习其它知识一样,与其等到读完上面这些资料再开始,不如现在立刻动手开始写一个模板,从最简单的开始写起,功能无需多么复杂,在实践中学习、理解和运用。 34 | -------------------------------------------------------------------------------- /13.开发/1.newcommand: -------------------------------------------------------------------------------- 1 | ```\newcommand[n]{\yourconnand}{#1#2...#n}``` 2 | - \newcommand 3 | - \newcommand* 4 | - \renewcommand 5 | - \renewcommand* 6 | -------------------------------------------------------------------------------- /13.开发/2.newenvironment: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /13.开发/3.Global options: -------------------------------------------------------------------------------- 1 | - kvoptions 2 | * \DeclareStringOption 3 | * \DeclareVoidOption 4 | 5 | - etoolbox 6 | -------------------------------------------------------------------------------- /13.开发/4.if: -------------------------------------------------------------------------------- 1 | \ifdefstring{\yourglobalname@option}{option1}{ 2 | \commands 3 | }{\relax} 4 | -------------------------------------------------------------------------------- /13.开发/5.ifcsname: -------------------------------------------------------------------------------- 1 | \ifcsname @command\endcsname 2 | \command1 3 | \else 4 | \command2 5 | \fi 6 | -------------------------------------------------------------------------------- /13.开发/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/13.开发/CHANGELOG.md -------------------------------------------------------------------------------- /14.错误/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/14.错误/CHANGELOG.md -------------------------------------------------------------------------------- /15.常用宏包及功能/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/15.常用宏包及功能/CHANGELOG.md -------------------------------------------------------------------------------- /16.Out of TeX/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/16.Out of TeX/CHANGELOG.md -------------------------------------------------------------------------------- /FAQ-Old/.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core. 2 | * text eol=lf 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | 7 | # Declare files that will always have LF line endings on checkout. 8 | *.sh text eol=lf 9 | 10 | # Declare files that will always have CRLF line endings on checkout. 11 | *.bat text eol=crlf 12 | 13 | # Denote all files that are truly binary and should not be modified. 14 | *.jpg binary 15 | *.pdf binary 16 | *.png binary 17 | -------------------------------------------------------------------------------- /FAQ-Old/.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | *.fmt 10 | *.fot 11 | *.cb 12 | *.cb2 13 | .*.lb 14 | 15 | ## Intermediate documents: 16 | *.dvi 17 | *.xdv 18 | *-converted-to.* 19 | # these rules might exclude image files for figures etc. 20 | *.ps 21 | *.eps 22 | *.pdf 23 | 24 | ## Generated if empty string is given at "Please type another file name for output:" 25 | .pdf 26 | 27 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 28 | *.bbl 29 | *.bcf 30 | *.blg 31 | *-blx.aux 32 | *-blx.bib 33 | *.run.xml 34 | 35 | ## Build tool auxiliary files: 36 | *.fdb_latexmk 37 | *.synctex 38 | *.synctex(busy) 39 | *.synctex.gz 40 | *.synctex.gz(busy) 41 | *.pdfsync 42 | 43 | ## Build tool directories for auxiliary files 44 | # latexrun 45 | latex.out/ 46 | 47 | ## Auxiliary and intermediate files from other packages: 48 | # algorithms 49 | *.alg 50 | *.loa 51 | 52 | # achemso 53 | acs-*.bib 54 | 55 | # amsthm 56 | *.thm 57 | 58 | # beamer 59 | *.nav 60 | *.pre 61 | *.snm 62 | *.vrb 63 | 64 | # changes 65 | *.soc 66 | 67 | # cprotect 68 | *.cpt 69 | 70 | # elsarticle (documentclass of Elsevier journals) 71 | *.spl 72 | 73 | # endnotes 74 | *.ent 75 | 76 | # fixme 77 | *.lox 78 | 79 | # feynmf/feynmp 80 | *.mf 81 | *.mp 82 | *.t[1-9] 83 | *.t[1-9][0-9] 84 | *.tfm 85 | 86 | #(r)(e)ledmac/(r)(e)ledpar 87 | *.end 88 | *.?end 89 | *.[1-9] 90 | *.[1-9][0-9] 91 | *.[1-9][0-9][0-9] 92 | *.[1-9]R 93 | *.[1-9][0-9]R 94 | *.[1-9][0-9][0-9]R 95 | *.eledsec[1-9] 96 | *.eledsec[1-9]R 97 | *.eledsec[1-9][0-9] 98 | *.eledsec[1-9][0-9]R 99 | *.eledsec[1-9][0-9][0-9] 100 | *.eledsec[1-9][0-9][0-9]R 101 | 102 | # glossaries 103 | *.acn 104 | *.acr 105 | *.glg 106 | *.glo 107 | *.gls 108 | *.glsdefs 109 | 110 | # gnuplottex 111 | *-gnuplottex-* 112 | 113 | # gregoriotex 114 | *.gaux 115 | *.gtex 116 | 117 | # htlatex 118 | *.4ct 119 | *.4tc 120 | *.idv 121 | *.lg 122 | *.trc 123 | *.xref 124 | 125 | # hyperref 126 | *.brf 127 | 128 | # knitr 129 | *-concordance.tex 130 | # TODO Comment the next line if you want to keep your tikz graphics files 131 | *.tikz 132 | *-tikzDictionary 133 | 134 | # listings 135 | *.lol 136 | 137 | # makeidx 138 | *.idx 139 | *.ilg 140 | *.ind 141 | *.ist 142 | 143 | # minitoc 144 | *.maf 145 | *.mlf 146 | *.mlt 147 | *.mtc[0-9]* 148 | *.slf[0-9]* 149 | *.slt[0-9]* 150 | *.stc[0-9]* 151 | 152 | # minted 153 | _minted* 154 | *.pyg 155 | 156 | # morewrites 157 | *.mw 158 | 159 | # nomencl 160 | *.nlg 161 | *.nlo 162 | *.nls 163 | 164 | # pax 165 | *.pax 166 | 167 | # pdfpcnotes 168 | *.pdfpc 169 | 170 | # sagetex 171 | *.sagetex.sage 172 | *.sagetex.py 173 | *.sagetex.scmd 174 | 175 | # scrwfile 176 | *.wrt 177 | 178 | # sympy 179 | *.sout 180 | *.sympy 181 | sympy-plots-for-*.tex/ 182 | 183 | # pdfcomment 184 | *.upa 185 | *.upb 186 | 187 | # pythontex 188 | *.pytxcode 189 | pythontex-files-*/ 190 | 191 | # thmtools 192 | *.loe 193 | 194 | # TikZ & PGF 195 | *.dpth 196 | *.md5 197 | *.auxlock 198 | 199 | # todonotes 200 | *.tdo 201 | 202 | # easy-todo 203 | *.lod 204 | 205 | # xmpincl 206 | *.xmpi 207 | 208 | # xindy 209 | *.xdy 210 | 211 | # xypic precompiled matrices 212 | *.xyc 213 | 214 | # endfloat 215 | *.ttt 216 | *.fff 217 | 218 | # Latexian 219 | TSWLatexianTemp* 220 | 221 | ## Editors: 222 | # WinEdt 223 | *.bak 224 | *.sav 225 | 226 | # Texpad 227 | .texpadtmp 228 | 229 | # LyX 230 | *.lyx~ 231 | 232 | # Kile 233 | *.backup 234 | 235 | # KBibTeX 236 | *~[0-9]* 237 | 238 | # auto folder when using emacs and auctex 239 | ./auto/* 240 | *.el 241 | 242 | # expex forward references with \gathertags 243 | *-tags.tex 244 | 245 | # standalone packages 246 | *.sta 247 | 248 | # Fonts 249 | *.ttf 250 | *.otf 251 | *.ttc 252 | 253 | # Other files 254 | *.DS_Store 255 | temp/ 256 | -------------------------------------------------------------------------------- /FAQ-Old/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.insertSpaces": true, 3 | "editor.wordWrapColumn": 100, 4 | "editor.rulers": [100], 5 | "files.associations": { 6 | "*.cls": "latex-expl3", 7 | "*.tex": "latex" 8 | }, 9 | "files.encoding": "utf8", 10 | "files.autoGuessEncoding": false, 11 | "files.eol": "\n", 12 | "latex-workshop.latex.tools": [{ 13 | "name": "latexmk", 14 | "command": "latexmk", 15 | "args": [ 16 | "-xelatex", 17 | "-shell-escape", 18 | "-synctex=1", 19 | "-interaction=nonstopmode", 20 | "-halt-on-error", 21 | "-file-line-error", 22 | "%DOC%" 23 | ] 24 | }], 25 | "todohighlight.include": [ 26 | "**/*.cls", 27 | "**/*.sty", 28 | "**/*.tex", 29 | ], 30 | "todohighlight.keywordsPattern": "TODO|FIXME|\\\\faq\\{.+", 31 | "[latex]": { 32 | "editor.tabSize": 2, 33 | "files.insertFinalNewline": true, 34 | } 35 | } -------------------------------------------------------------------------------- /FAQ-Old/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [{ 6 | "label": "build", 7 | "type": "shell", 8 | "command": "texlua", 9 | "args": [ 10 | "make.lua", 11 | "--build" 12 | ], 13 | "problemMatcher": [], 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | }, 19 | { 20 | "label": "clean", 21 | "type": "shell", 22 | "command": "texlua", 23 | "args": [ 24 | "make.lua", 25 | "--clean" 26 | ], 27 | "problemMatcher": [] 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /FAQ-Old/BUILD.md: -------------------------------------------------------------------------------- 1 | # 编译指南 2 | 3 | 推荐采用 `latexmk` 编译: 4 | 5 | ```sh 6 | cd source/ 7 | latexmk -xelatex -synctex=1 -interaction=nonstopmode -shell-escape latex-faq-cn 8 | ``` 9 | 10 | 您也可以使用 `xelatex` 手动编译。 11 | 12 | ## TeX 发行版 13 | 14 | 推荐使用 TeX Live 2019 或 MiKTeX 最新版。具体安装方法请参考有关文档,此处不再赘述。 15 | 16 | ## 思源字体安装 17 | 18 | 本文档的中文字体使用思源宋体 / 思源黑体系列。由于种种原因,该字体的安装比较复杂,具体见下。 19 | 20 | 为了兼容多种平台,思源字体的打包方式分为 OTC、OTF、Super OTC、Subset OTF 四种。另一方面,思源字体由 Adobe 与 Google 联合发布,二者所用的字体名并不相同。Adobe 使用 Source Han Serif/Sans,而 Google 则使用 Noto Serif/Sans CJK。 21 | 22 | ### 下载链接 23 | 24 | - 思源字体的官方下载地址位于 GitHub: 25 | - 思源宋体: 26 | - 思源黑体: 27 | 28 | - 由于众所周知的原因,在中国大陆地区访问 GitHub 速度较慢。此时,可以通过 [清华大学开源软件镜像站(tuna)](https://mirrors.tuna.tsinghua.edu.cn) 进行下载: 29 | - 思源宋体: 30 | - 思源黑体: 31 | 32 | - 本模板所需的**部分**思源字体也可通过百度网盘获取: 33 | - ,密码:yv5y 34 | 35 | 通过 GitHub 或者 tuna 下载时,OTC 和 OTF 版本分别位于 `OTC/` 和 `OTF/` 目录下。对于 OTF 版本,我们只需要简体中文部分(带有 `SC` 标识)。本文档只需要思源宋体的 Regular 和 Bold 以及思源黑体的 Medium 和 Bold 字重,但若空间允许,请尽量安装所有 7 个字重。 36 | 37 | ### 其他安装方式 38 | 39 | - Ubuntu 系统可以通过安装 `fonts-noto-cjk` 包来使用思源字体: 40 | 41 | ```sh 42 | sudo apt-get install fonts-noto-cjk fonts-noto-cjk-extra 43 | ``` 44 | 45 | - CTAN 上有名为 [`notoCJKsc`](https://ctan.org/pkg/notocjksc) 的字体包,但仅在 MikTeX 中提供。 46 | -------------------------------------------------------------------------------- /FAQ-Old/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # 文档协作指南 2 | 3 | 我们的 FAQ 文档基于 GitHub 部署。文档协作可由以下两种方式进行: 4 | 5 | 1. Fork 本代码仓库后,在自己的代码库中做出修改,并提出 pull request(拉取请求) 6 | 1. 由管理员将您设置为内部协作者(collaborator),然后直接在本仓库中进行操作 7 | 8 | ## 其他参与者 9 | 10 | 作为参与者,参与文档协作的具体步骤为: 11 | 12 | 1. Fork 本代码库,并将您的代码仓库克隆(clone)到本地 13 | 1. 建议新建一个单独的分支(如:`patching`),并在其中对文档做出修改 14 | 1. 提出 pull request 至本仓库 15 | 16 | 您还需要注意: 17 | 18 | 1. 请遵守本项目的 [格式指南](STYLE_GUIDE.md) 19 | 1. 请保持提交历史的整洁 20 | 1. 请避免加入您的个人敏感信息,如 GitHub 账号、密码等 21 | 22 | ## 内部协作者 23 | 24 | 作为内部协作者,您在编辑时需要注意: 25 | 26 | 1. 修改可直接在 `master` 分支中进行 27 | 1. 本地编辑前请先与远程仓库同步 28 | 1. 请勿进行破坏性编辑 29 | 1. 一般情况下,请不要修改历史提交。如有必要,请在讨论后进行 30 | 31 | 在处理参与者的 pull requests 时,需注意: 32 | 33 | 1. 对修改做出审查(review),待修改通过(approved)后方可合并进入 `master` 分支 34 | 1. 视情况采取合并(merge)、变基(rebase)或 cherry-pick 策略 35 | 1. 遇到合并冲突时,请在相应的 pull request 之后讨论 36 | 37 | ## 安装与使用 Git 38 | 39 | Git 的下载与安装方法见 。 40 | 41 | Git 的使用说明见 [Pro Git](https://git-scm.com/book/zh/v2)。 42 | 43 | 对于新手,我们建议同时安装带有图形界面的 Git 客户端,如 [Git Extensions](https://gitextensions.github.io),以辅助使用。 44 | 45 | 很多编辑器,如 Visual Studio Code,会自带 [Git 集成](https://code.visualstudio.com/Docs/editor/versioncontrol),同样对用户较为友好。 46 | 47 | GitHub 的使用说明见其 [帮助页面](https://help.github.com/)。 48 | 49 | ## 注意 50 | 51 | 使用Git拉取代码时,请务必注意当前拉取合并后当前所在的版本是否是最新版本,可以执行如下代码复位并放弃所有本地更改到最新: 52 | ``` 53 | git reset --hard origin/master 54 | ``` 55 | 如果本地还有变动,可以尝试软复位: 56 | ``` 57 | git reset --soft origin/master 58 | ``` 59 | 也可以尝试不带参数的复位命令,如下: 60 | ``` 61 | git reset origin/master 62 | ``` 63 | 他们的区别如下: 64 | - mixed:此为默认方式,不碰工作目录,只复位索引 65 | - soft:保持索引和工作目录不变,只复位提交 66 | - hard:丢弃所有未提交的信息,复位所有工作目录和索引(会丢失所有未提交的信息,可通过创建patch保留,具体查阅git资料) -------------------------------------------------------------------------------- /FAQ-Old/README.md: -------------------------------------------------------------------------------- 1 | # LaTeX 中文 FAQ 2 | 3 | 本项目致力于打造最全面的中文 LaTeX 问题集,欢迎各位参与。 4 | 5 | ## 编译 6 | 7 | 如果您需要在本地自行编译本文档,请参考 [编译指南](BUILD.md)。 8 | 9 | ## 贡献 10 | 11 | 如果您有任何改进意见或者功能需求,欢迎提交 [issue](https://github.com/latexstudio/LaTeXFAQ-cn/issues) 或 [pull request](https://github.com/latexstudio/LaTeXFAQ-cn/pulls)。编辑文档前,请先阅读 [文档协作指南](CONTRIBUTING.md)。 12 | 13 | ## 参与人员 14 | 15 | - [Chang Liu](https://github.com/FSSlc) 16 | - [hzzmail@163.com](https://github.com/hushidong) 17 | - [JACK](https://github.com/jack9603301) 18 | - [OsbertWang](https://github.com/OsbertWang) 19 | - [shanhaiying](https://github.com/shanhaiying) 20 | - [Xiangdong Zeng](https://github.com/Stone-Zeng) 21 | - [YinJC](https://github.com/YinJC) 22 | - [Zeping Lee](https://github.com/zepinglee) 23 | - [有龙则灵](https://github.com/htharoldht) 24 | 25 | ## 链接 26 | 27 | - [问题收集](https://docs.qq.com/doc/BI4qNM3UFv7K0tipXG0gEFLJ2sCo0D3JFU1Z2x4lLY2p7FD621ISRa4mvd8F1eb2vz1ljHxM4) 28 | - [LaTeX 科技排版工作室](http://www.latexstudio.net/) 29 | - [LaTeX 官方主页(英文)](https://www.latex-project.org/) 30 | - [CTAN(英文)](https://ctan.org/) 31 | 32 | ## 许可证 33 | 34 | 本项目遵循 [GNU General Public License Version 3](LICENSE)。 35 | -------------------------------------------------------------------------------- /FAQ-Old/STYLE_GUIDE.md: -------------------------------------------------------------------------------- 1 | # LaTeX 格式指南 2 | 3 | ## 原则 4 | 5 | 1. 注重内容与格式分离 6 | 7 | 1. 尽量遵从 [W3C 中文排版需求](https://w3c.github.io/clreq/) 8 | 9 | 1. 尽量给出规则出现的理由 10 | 11 | ## 总体样式 12 | 13 | 1. 所有文件以 UTF-8(无 BOM)保存,行尾使用 LF 14 | - 理由:TeX 系统大多部署在 Linux 上,以 Linux 格式为准 15 | 16 | 1. 每行不超过 100 字符,其中汉字以两个字符计算 17 | - 理由:便于 Git 管理,同时适用于正常的屏幕尺寸,代码中常用的 80 字符宽对文档来说可能较窄 18 | - 例外:过长的网址,但可采用短域名服务 19 | 20 | 1. 代码中禁止出现除 ASCII 空格(`U+0020`)、换行符(`U+000A`)以外的不可见字符 21 | - 理由:所有字符都应当可被人类阅读 22 | 23 | 1. 编译使用 XeTeX 引擎 24 | - 理由:pdfTeX 对中文的支持基本过时,而 LuaTeX 的中文适配仍略有不完备之处,且编译速度较慢 25 | 26 | ## 标点、符号 27 | 28 | ## 缩进 29 | 30 | 1. 使用空格缩进,不使用 `Tab`。每层次的缩进使用 2 个空格 31 | - 理由:遵循 `l3styleguide` 32 | 33 | 1. 需使用缩进的地方: 34 | - `\begin{...}` 与 `\end{...}` 包围的普通环境 35 | - `{` 与 `}` 包围的代码块 36 | - 折行代码,应比下一层级再多一级缩进: 37 | ```latex 38 | % 下划线 _ 代表空格 39 | \begin{foo}{This is a long sentence, a long sentence, 40 | ____a long sentence...} 41 | __\bar 42 | \end{foo} 43 | ``` 44 | 45 | 1. 不使用缩进的地方: 46 | - 抄录代码块,遵循原始缩进 47 | - `\section`、`\subsection` 等章节标题之后 48 | 49 | ## 空格与空白 50 | 51 | 1. 行尾不允许出现多余空格,空格也不可以独占一行 52 | 53 | 1. 中西文之间留有空格,但标点前后不保留 54 | - 例(下划线 `_` 代表空格): 55 | - 两边都加:`比赛的_deadline_要到了` 56 | - 一边加空格:`……。\TeX{}_是一个……` 57 | - 两边都不加:`高德纳(Donald~E. Knuth)` 58 | 59 | 1. 除非必要,不可使用全宽(全角)空格 60 | 61 | 1. 段落使用空行标记,通常情况不使用 `\par`,更不可以使用 `\\` 62 | - 理由:使用空行标记段落可以大大提高可读性;`\\` 是硬断行,不表示切换段落 63 | 64 | 1. `\section`、`\subsection` 等章节标题前后留出 1 个空行 65 | 66 | 1. 使用不可断行空格(`~`)的地方: 67 | - 交叉引用:`如图~\ref{fig:...}` 68 | - 教名之间:`Donald~E. Knuth` 69 | - 例外: 70 | - `见\faqref{...}` 71 | 72 | ## 公式 73 | 74 | 1. 行内公式使用 `$...$`,不使用 `\(...\)` 75 | 76 | ## 本文档特有 77 | 78 | 1. 问题使用 `\faq` 命令标明,具体用法: 79 | ```latex 80 | \faq[]{}{} 81 | ``` 82 | 这里的 `` 需保证唯一性。 83 | 84 | 1. 对问题的交叉引用使用`\faqref{}`命令。 85 | 86 | 1. 每个问题之间留出 2 个空行 87 | 88 | 1. 行间抄录(代码、命令等)使用 `|...|`(TODO:FAQ 标题中使用\cs{foocmd}或|foocmd|有可能引起显示或编译错误。 89 | 90 | 1. 宏包、文档类分别使用 `\pkg{...}`、`\cls{...}` 标记 91 | 92 | 1. 书籍的中文名称使用 `《...》`,英文名称使用 `\book{...}` 93 | 94 | 1. 录入TeX代码目前可使用texcode、texinlist、texlist环境;录入sh、bat、python、lua、json代码可分别使用shcode、batcode、pycode、luacode、jsoncode环境。 95 | 96 | ## 杂项 97 | 98 | 1. TeX、LaTeX 等使用 `\TeX{}`、`\LaTeX{}`,以保证正确排版以及之后的空格。 99 | - 理由:遵循 `l3styleguide` 100 | - 例外: 101 | - LaTeX3 使用 `\LaTeX3` 102 | - The TeXbook 使用 `The \TeX book` 103 | -------------------------------------------------------------------------------- /FAQ-Old/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/5.png -------------------------------------------------------------------------------- /FAQ-Old/images/amxmath_texstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/amxmath_texstudio.png -------------------------------------------------------------------------------- /FAQ-Old/images/bfseries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/bfseries.png -------------------------------------------------------------------------------- /FAQ-Old/images/bm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/bm.png -------------------------------------------------------------------------------- /FAQ-Old/images/boldmath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/boldmath.png -------------------------------------------------------------------------------- /FAQ-Old/images/boldsymbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/boldsymbol.png -------------------------------------------------------------------------------- /FAQ-Old/images/git-gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/git-gui.png -------------------------------------------------------------------------------- /FAQ-Old/images/hang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/hang.png -------------------------------------------------------------------------------- /FAQ-Old/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/image.png -------------------------------------------------------------------------------- /FAQ-Old/images/mathbf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/mathbf.png -------------------------------------------------------------------------------- /FAQ-Old/images/minted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/minted.png -------------------------------------------------------------------------------- /FAQ-Old/images/textbf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/textbf.png -------------------------------------------------------------------------------- /FAQ-Old/images/tikz-90-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/tikz-90-1.png -------------------------------------------------------------------------------- /FAQ-Old/images/tikz-90-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/tikz-90-2.png -------------------------------------------------------------------------------- /FAQ-Old/images/weixin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latexstudio/LaTeXFAQ-cn/8ff4dc51f0bdfd20f9188ca89dea43e45834b3af/FAQ-Old/images/weixin.jpg -------------------------------------------------------------------------------- /FAQ-Old/make.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | 3 | Copyright (C) 2018 by latexstudio 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | 18 | ]]-- 19 | 20 | job_name = "latex-faq-cn" 21 | source_dir = "source" 22 | aux_files = 23 | { 24 | "aux", 25 | "fdb_latexmk", 26 | "fls", 27 | "lof", 28 | "log", 29 | "lot", 30 | "out", 31 | "synctex", 32 | "synctex.gz", 33 | "xdv" 34 | } 35 | minted_dir = "_minted-" .. job_name 36 | 37 | function get_path(...) 38 | local sep 39 | if os.type == "windows" then 40 | sep = "\\" 41 | else 42 | sep = "/" 43 | end 44 | local arg = {...} 45 | local argc = select("#", ...) 46 | local result = "" 47 | for i = 1, argc - 1 do 48 | result = result .. arg[i] .. sep 49 | end 50 | result = result .. arg[argc] 51 | return result 52 | end 53 | 54 | -- function cwd() 55 | -- if os.type == "windows" then 56 | -- return io.popen("CD"):read() 57 | -- else 58 | -- return io.popen("pwd"):read() 59 | -- end 60 | -- end 61 | 62 | function rm(file) 63 | if os.type == "windows" then 64 | return os.execute("DEL /Q " .. file) 65 | else 66 | return os.execute("rm -f " .. file) 67 | end 68 | end 69 | 70 | function rmdir(dir) 71 | if os.type == "windows" then 72 | return os.execute("RMDIR /S /Q " .. dir) 73 | else 74 | return os.execute("rm -rf " .. dir) 75 | end 76 | end 77 | 78 | function latexmk(file, arg) 79 | return "latexmk " .. arg .. " " .. file 80 | end 81 | 82 | function build(arg) 83 | latexmk_arg = arg or "-xelatex -shell-escape" 84 | cmd = "cd " .. get_path(".", source_dir) .. " && " .. latexmk(job_name, latexmk_arg) 85 | os.execute(cmd) 86 | end 87 | 88 | function clean() 89 | for _, i in ipairs(aux_files) do 90 | rm(get_path(".", source_dir, "*." .. i)) 91 | end 92 | rmdir(get_path(".", source_dir, minted_dir)) 93 | end 94 | 95 | function help() 96 | local help_info = 97 | "\n" .. 98 | " Lua build script for latex-faq-cn Copyright (C) 2018 by latexstudio\n\n" .. 99 | "Usage: " .. arg[0] .. " [-b [arg]|-c|-h]\n\n" .. 100 | " -b, --build Build latex-faq-cn with latexmk.\n" .. 101 | " Can take an optional argument.\n\n" .. 102 | " -c, --clean Delete auxiliary files.\n\n" .. 103 | " -h, --help Print this help message then exit." 104 | return print(help_info) 105 | end 106 | 107 | if arg[1] == "-b" or arg[1] == "--build" then 108 | return build(arg[2]) 109 | elseif arg[1] == "-c" or arg[1] == "--clean" then 110 | return clean() 111 | elseif arg[1] == "-h" or arg[1] == "--help" then 112 | return help() 113 | else 114 | return help() 115 | end 116 | -------------------------------------------------------------------------------- /FAQ-Old/source/example-style1.sty: -------------------------------------------------------------------------------- 1 | % 选自lshort-zh-cn的方法 2 | \NeedsTeXFormat{LaTeX2e} 3 | \ProvidesPackage{example-style1} 4 | 5 | \RequirePackage{colortbl,verbatim} 6 | 7 | % 8 | % 示例环境 example 9 | % 环境中的代码写入临时文件 \jobname-example.aux 10 | % 再从临时文件中读取,分别生成代码盒子和示例盒子 11 | % 12 | \newwrite\example@out 13 | \newlength\savefboxrule 14 | \newlength\savefboxsep 15 | \edef\example@name{\jobname-example.aux} 16 | \newenvironment{example}% 17 | {\begingroup\@bsphack 18 | \immediate\openout\example@out=\example@name 19 | \let\do\@makeother\dospecials\catcode`\^^M\active 20 | \def\verbatim@processline{\immediate\write\example@out{\the\verbatim@line}}% 21 | \verbatim@start}% 22 | {\immediate\closeout\example@out\@esphack\endgroup% 23 | \trivlist\item\relax 24 | \setlength{\savefboxrule}{\fboxrule}% 25 | \setlength{\savefboxsep}{\fboxsep}% 26 | \setlength{\fboxsep}{0.015\textwidth}% 27 | \setlength{\fboxrule}{0.4pt}% 28 | \fcolorbox[gray]{0}{0.95}{% 29 | \begin{minipage}[c]{0.55\textwidth}% 30 | \setlength{\fboxrule}{\savefboxrule}% 31 | \setlength{\fboxsep}{\savefboxsep}% 32 | \small\verbatiminput{\example@name}% 33 | \end{minipage}% 34 | }% 35 | \hfill% 36 | \fbox{% 37 | \begin{minipage}[c]{0.35\textwidth}% 38 | \setlength{\fboxrule}{\savefboxrule}% 39 | \setlength{\fboxsep}{\savefboxsep}% 40 | \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}% 41 | \normalsize\input{\example@name}% 42 | \end{minipage}% 43 | }% 44 | \endtrivlist 45 | } 46 | 47 | \newenvironment{Example}% 48 | {\begingroup\@bsphack 49 | \immediate\openout\example@out=\example@name 50 | \let\do\@makeother\dospecials\catcode`\^^M\active 51 | \def\verbatim@processline{\immediate\write\example@out{\the\verbatim@line}}% 52 | \verbatim@start}% 53 | {\immediate\closeout\example@out\@esphack\endgroup% 54 | \trivlist\item\relax 55 | \setlength{\savefboxrule}{\fboxrule}% 56 | \setlength{\savefboxsep}{\fboxsep}% 57 | \setlength{\fboxsep}{0.015\textwidth}% 58 | \setlength{\fboxrule}{0.4pt}% 59 | \fbox{% 60 | \begin{minipage}[c]{0.35\textwidth}% 61 | \setlength{\fboxrule}{\savefboxrule}% 62 | \setlength{\fboxsep}{\savefboxsep}% 63 | \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}% 64 | \normalsize\input{\example@name}% 65 | \end{minipage}% 66 | }% 67 | \hfill% 68 | \fcolorbox[gray]{0}{0.95}{% 69 | \begin{minipage}[c]{0.55\textwidth}% 70 | \setlength{\fboxrule}{\savefboxrule}% 71 | \setlength{\fboxsep}{\savefboxsep}% 72 | \small\verbatiminput{\example@name}% 73 | \end{minipage}% 74 | }% 75 | \endtrivlist 76 | } 77 | 78 | \endinput -------------------------------------------------------------------------------- /FAQ-Old/source/example-style2.sty: -------------------------------------------------------------------------------- 1 | % 选自mathfaq-1-2的方法 2 | \NeedsTeXFormat{LaTeX2e} 3 | \ProvidesPackage{example-style2} 4 | 5 | % 6 | % 示例环境 example 7 | % 环境中的代码写入临时文件 \example.out 8 | % 9 | 10 | \RequirePackage{xcolor} 11 | %\RequirePackage{minted} 12 | \RequirePackage{boites} 13 | \RequirePackage{fancyvrb,verbatim} 14 | 15 | \definecolor{niceblue}{rgb}{0,0.4,0.7} 16 | 17 | \newenvironment{example} 18 | {\VerbatimEnvironment 19 | \begin{VerbatimOut}{example.out}} 20 | {\end{VerbatimOut} 21 | \par\vspace{1ex} 22 | \setlength{\parindent}{0pt} 23 | \noindent\color{red!50!green!20!blue}% 24 | \framebox[\linewidth][c]{ 25 | \begin{minipage}{0.525\linewidth} 26 | %\footnotesize\input{example.out} 27 | %\small\inputminted{latex}{example.out} 28 | \small\verbatiminput{example.out} 29 | \end{minipage} 30 | \hspace{5pt} 31 | \begin{minipage}{0.425\linewidth} 32 | \small\input{example.out} 33 | \end{minipage}}\par% 34 | \vspace{1ex}} 35 | 36 | \makeatletter 37 | \newenvironment{Example} 38 | {\relax\VerbatimEnvironment 39 | \begin{VerbatimOut}{example.out}} 40 | {\end{VerbatimOut} 41 | \begingroup% 42 | \fboxrule0.4pt% 43 | \let\breakboxparindent\z@% 44 | \def\bkvz@bottom{\hrule\@height\fboxrule}% 45 | \let\bkvz@before@breakbox\relax% 46 | \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}% 47 | \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}% 48 | \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}% 49 | \color{niceblue}\vskip 5pt% 50 | \breakbox 51 | $\vcenter{\hsize\dimexpr0.6\linewidth-\fboxsep-\fboxrule\relax% 52 | \kern3pt\parskip0pt{\normalcolor\small\verbatiminput{example.out}}}% 53 | \vcenter{\kern3pt\hsize\dimexpr\linewidth-0.6\linewidth-\fboxsep-\fboxrule\relax 54 | \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\dimexpr\linewidth-\linewidth-\fboxsep-\fboxrule depth0.1pt}}}% 55 | \normalcolor\small\newlinechar`\^^M\everyeof{\noexpand}\input{example.out}}$ 56 | \endbreakbox 57 | \endgroup} 58 | 59 | \newenvironment{Example*} 60 | {\VerbatimEnvironment\par 61 | \begin{VerbatimOut}{example.out}} 62 | {\end{VerbatimOut} 63 | \begingroup% 64 | \fboxrule0.4pt% 65 | \let\breakboxparindent\z@% 66 | \def\bkvz@bottom{\hrule\@height\fboxrule}% 67 | \let\bkvz@before@breakbox\relax% 68 | \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}% 69 | \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}% 70 | \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}% 71 | \vskip 5pt% 72 | \breakbox% 73 | \kern.5ex\relax 74 | \ttfamily{\small\verbatiminput{example.out}}\par% 75 | \normalfont% 76 | \kern3pt% 77 | \hrule height0.1pt width\linewidth depth0.1pt% 78 | \vskip5pt% 79 | \rightskip0pt plus 1fill% 80 | \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\linewidth depth0.1pt}}}% 81 | \newlinechar`\^^M\everyeof{\noexpand}\input{example.out}\par% 82 | \endbreakbox 83 | \endgroup} 84 | 85 | 86 | \makeatother 87 | \endinput -------------------------------------------------------------------------------- /FAQ-Old/source/include/basic.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{背景知识与基本概念} 4 | \label{sec:basic} 5 | 6 | \faq{什么是 \TeX{}?}{what-is-tex} 7 | 8 | \TeX{} 是由著名计算机科学家 Donald~E. Knuth(高德纳)发明的排版系统。他在 \book{The \TeX book} 一书 9 | 的前言中曾提到:“(\TeX{})旨在创造美丽的书籍,尤其是那些包含很多数学公式的书。” 10 | \footnote{原文如下:“This is a handbook about \TeX{}, a new typesetting system intended for the 11 | creation of beautiful books---and especially for books that contain a lot of mathematics.”} 12 | 13 | 1976 年,Knuth 出版鸿篇巨著《计算机程序设计艺术》(\book{The Art of Computer Programming})第二卷 14 | 的第二版,但当时所用的照排技术却令他非常失望。作为斯坦福大学计算机科学系的教授,Knuth 决定自己开发 15 | 一套高质量的排版系统。1978年,他开发出了 \TeX{} 的第一个版本;随后,又在 1982 年推出了 \TeX{} 的 16 | 第二个版本(\TeX 82),也就是人们今天所用 \TeX{} 的基础。Knuth 将 \TeX{} 的源代码无偿发布在公有领域 17 | \footnote{\TeX{} 使用的许可证为 \href{https://www.ctan.org/license/knuth}{Knuth License}。}, 18 | 这使得他人可以进一步完善这一系统,并增加新的功能。 19 | 20 | 在今天,\TeX{} 既可以指 Knuth 发明的这一套排版系统,也可以指相应的排版语言,有时候也指将其打包、 21 | 整理以方便用户使用的软件套装(发行版)。 22 | 23 | \begin{reference} 24 | \item https://texfaq.org/FAQ-whatTeX 25 | \item \TeX{}, Wikipedia, The Free Encyclopedia, \url{https://en.wikipedia.org/wiki/TeX} 26 | \end{reference} 27 | 28 | 29 | \faq{什么是 \LaTeX{}?}{what-is-latex} 30 | 31 | \LaTeX{} 是 Leslie Lamport 在 \TeX{} 基础上创建的“文档准备系统”。Knuth 的 \TeX{} 虽然可以实现优美的 32 | 排版效果,但作者不得不挣扎在琐碎的排版细节之中。而 \LaTeX{} 则通过文档标记的手段,把很多格式细节 33 | 隐藏了起来,使得文档作者可以专注于内容本身,因此很快在学术界流行开来。 34 | 35 | 由此,我们可以看到,\LaTeX{} 最重要的一个原则,就是\strong{内容与格式分离}。文章作者只需要使用 36 | \cs{title}、\cs{author}、\cs{section} 等命令以及 \env{proof}、\env{table} 这样的环境,而不需要操心 37 | 什么时候应该加粗、什么时候应该用斜体之类的排版细节。 38 | 39 | 然而,现实情况往往麻烦许多。\LaTeX{} 本身提供的功能还不够多,往往需要引入其他宏包来辅助排版; 40 | 另一方面,公式、图表一类的复杂元素远远不是若干文档标记就可以实现,高质量的排版仍离不开作者对各种 41 | 细节的精益求精。总之,如何在合适的层次做出取舍与平衡,正是 \LaTeX{} 进一步发展所需要考虑的。 42 | 43 | \begin{reference} 44 | \item Introduction to \LaTeX{}, \url{https://www.latex-project.org/about} 45 | \item https://texfaq.org/FAQ-latex 46 | \item \LaTeX{}, Wikipedia, The Free Encyclopedia, \url{https://en.wikipedia.org/wiki/LaTeX} 47 | \end{reference} 48 | 49 | 50 | \faq{\TeX{} 中常见术语的解释}{tex-terms} 51 | 52 | \begin{description} 53 | % TODO 54 | \item[引擎] \LaTeX{}/\TeX{} 解析引擎,其实就是一个编译器,它输入一个 |.tex| 文件作为输入,根据 55 | 源文件的内容送入解析引擎和渲染引擎进行处理,并将排版的成果——文档编译输出,\LaTeX{}/\TeX{} 的解 56 | 析引擎目前有\pdfTeX{}、\XeLaTeX{}等。 57 | \item[格式] \TeX{} 是存在各种不同的封装格式的,比如原生的 \TeX{} 或者 \LaTeX{},我们所使用的 58 | \LaTeX{} 只是\TeX{} 封装格式的其中一种,是目前流行的封装规范。 59 | \item[发行版] \LaTeX/\TeX{}都包含了成千上万个宏包,甚至有可能我们需要安装新的宏包,除了手动安装 60 | 外,最好的方式就是利用发行版的宏包管理器,所谓发行版就是把\LaTeX/\TeX{}的相关组件打包,形成一个 61 | 独立完善的\LaTeX/\TeX{}系统,目前流行的发行版有MiKTeX、proTeXt 以及TeXLive。 62 | \item[编译命令] 是实际调用的、结合了引擎和格式的命令。如 |xelatex| 命令是结合\XeTeX{}引擎和 63 | \LaTeX{}格式的一个编译命令。 64 | \end{description} 65 | 66 | 67 | % \faq{不同的TeX封装格式的区别?}[tex-format] 68 | % TODO: 该问题跟上下两个重复 69 | % 70 | % \textbf{原生\TeX{}} 71 | % 72 | % TeX本身是一个基于控制序列的排版系统,它指示TeX如何在页面上放置文本。例如,|\hskip|指在文档中在 73 | % 文档中插入一定数量的水平空间,而|\font|是指给文档中的文字定义一种给定的字体。TeX是完全可编程的, 74 | % 它使用一种集成的宏脚本语言,支持变量,范围,条件执行,控制流和函数定义等。 75 | % 76 | % \textbf{TeX宏包(\TeX{}格式)} 77 | % 78 | % TeX的一些控制序列直接使用是单调乏味的;它们主要作为更高层次的构建快,因此更易于用户使用。例如, 79 | % 在基础TeX中没有办法能够制定一段文字应该排版为更大的字体,相反,你必须了解当前的字体和大小,然后 80 | % 加载一种同样字体但更大字号的字体。幸运的是,TeX是可编程的,它可以通过写一个宏将这些复杂性都隐藏在 81 | % 一个简单的,新的控制序列之后。例如,我们可以通过 |\larger{my text}| 将“my text”定义为比当前更大的 82 | % 字体。一些使用者会写一些完全由自己定义的宏集,然后再一些文档中重复使用,但,常见的还是依赖于由专家 83 | % 编写的TeX宏包——一些宏的集合。为了方便用户,这些宏包通常与基本的TeX引擎结合到一个独立的可执行的 84 | % 文件中。 85 | % 86 | % \textbf{TeXLive、MacTeX、MikTeX、CTex} 87 | % 88 | % TeXLive 由类 UNIX 系统上的 teTeX 发展并取而代之,最终成为跨平台的 TeX 发行版。TeXLive 自 2011 年 89 | % 起以年份作为发行版的版本号,保持了一年一更的频率。MacTeX 是 macOS(OS X)系统下的一个定制化的 90 | % TeXLive 版本,与 TeXLive 同步更新。MikTeX 是主要用于 Windows 平台的一个稳定发展的 TeX 发行版, 91 | % 目前已开发出跨平台版本。中国的 LaTeX 用户应该对“CTeX 套装”比较熟悉,它是一个经过本地化配置的 92 | % MikTeX,目前已不推荐使用。 93 | 94 | 95 | \faq{\TeX{} 有哪些格式?}{tex-format} 96 | 97 | \TeX{} 是一种排版文件的计算机程序,它需要一个计算机文件,根据 \TeX{} 的规则进行准备,并将其转换成 98 | 一种可以在高质量打印机上打印的形式,比如激光打印机,可以打印出一份与高质量的书籍和期刊相媲美的打印 99 | 文档。不包含数学公式或表格的简单文档可以很容易就生成,事实上,所有人都必须直接输入文本(只是遵循 100 | 不同的符号规则)。输入数学公式时比较复杂的,但当考虑到产生一些数学公式的复杂性时,\TeX{} 是相对容易 101 | 使用的,它可以产生大量的数学符号。 102 | 103 | \TeX{} 包括各种不同的“方言”,其中包括 \LaTeX{}。\PlainTeX{} 是 \TeX{} 中最基础的版本,也是其他 104 | “方言”的基础。为了用 \TeX{} 生成文档,我们必须首先在计算机上创建一个合适的输入文件,我们将 \TeX{} 105 | 程序应用到输入文件中,然后再用打印机打印由 \TeX{} 程序生成的所谓的“DVI”文件。 106 | 107 | \begin{description} 108 | \item[\PlainTeX] Knuth 设计了一个名叫 \PlainTeX{} 的基本格式,以与低层次的原始 \TeX{} 呼应。 109 | 这种格式是用 \TeX{} 处理文本时相当基本的部分,以致于我们有时都分不清到底哪条指令是真正的处理 110 | 程序 \TeX{} 的原始命令,哪条是 \PlainTeX{} 格式的。大多数声称只使用 \TeX{} 的人,实际上指的是 111 | 只用 \PlainTeX{}。 112 | 113 | \PlainTeX{} 也是其它格式的基础,这进一步加深了很多人认为 \TeX{} 和 \PlainTeX{} 是同一事物的 114 | 印象。\PlainTeX{} 的重点还只是在于如何排版的层次上,而不是从一位作者的观点出发。对它的深层功能 115 | 的进一步发掘,需要相当丰富的编程技巧。因此它的应用就局限于高级排版和程序设计人员。 116 | 117 | 有关 \PlainTeX{} 的相关信息可见:\url{http://www.ntg.nl/doc/wilkins/pllong.pdf} 118 | 119 | \item[\LaTeX] 有两个版本,分别是 \LaTeXe{} 和 \LaTeX2.09,前者是当前使用的版本,后者是在 1994 年 120 | 首次发布的公开版本,但现已过时。因此,\LaTeX{} 与 \LaTeXe{} 实际上是同义词。 121 | 122 | Leslie Lamport 开发的 \LaTeX{} 是当今世界上最流行和使用最为广泛的 \TeX{} 格式。它构筑在 Plain 123 | \TeX{} 的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用 \TeX{} 的强大功能。使用 124 | \LaTeX{} 基本上不需要使用者自己设计命令和宏等,因为它已经替你做好了。因此,即使使用者并不是很 125 | 了解 \TeX{},也可以在短时间内生成高质量的文档。对于生成复杂的数学公式,\LaTeX{} 也表现得更为 126 | 出色。 127 | 128 | \LaTeX{} 自从二十世纪八十年代初问世以来,也在不断的发展。最初的正式版本为 2.09,在经过几年的 129 | 发展之后,许多新的功能,机制被引入到 \LaTeX{} 中。在享受这些新功能带来的便利的同时,它所伴随的 130 | 副作用也开始显现,这就是不兼容性。标准的 \LaTeX2.09,引入了“新字体选择框架”(NFSS)的 \LaTeX{}、 131 | % TODO 132 | SLiTeX、AMSLaTeX 等等,相互之间并不兼容。这给使用者和维护者都带来很大的麻烦。 133 | 134 | 为结束这种糟糕的状况,Frank Mittelbach 等人成立了 \LaTeX3 项目小组,目标是建立一个最优的、有效 135 | 的、统一的、标准的命令集合,即得到 \LaTeX{} 的一个新版本 3。这是一个长期目标,向这个目标迈出 136 | 第一步就是在 1994 年发布的 \LaTeXe{}。\LaTeXe{} 采用了 NFSS 作为标准,加入了很多新的功能,同时 137 | 还兼容旧的 \LaTeX2.09。\LaTeXe{} 每 6 个月更新一次,修正发现的错误并加入一些新的功能。在 138 | \LaTeX3 最终完成之前,\LaTeXe{} 将是标准的 \LaTeX{} 版本。 139 | 140 | \item[\ConTeXt] \ConTeXt{} 是 \TeX{} 的一种格式,是 Hans Hagen 和荷兰 Pragma-ADE 公司设计的一种 141 | 高端的文档制造工具,官方网站为 \href{http://wiki.contextgarden.net}{\ConTeXt{} Garden}。 142 | \ConTeXt{} 就像 \LaTeX{} 是基于 \TeX{} 排版系统的文档制作系统,如果说 \LaTeX{} 将作者从排版的 143 | 细节中隔离出来,那么 \ConTeXt{} 就是采用一种互补的方法来处理结构化的界面来处理排版,包括对 144 | 颜色、背景、超链接、演示文稿、图形文本集成和条件编译的广泛支持, 对于数学、化学等科技文档的支持 145 | 同等优秀甚至更为方便,而且其为了更容易实现各种华丽排版效果。它可以让用户对格式进行广泛的控制, 146 | 同时又可以在不需要学习 \TeX{} 宏语言的情况下轻松地创建新的布局和样式。 因此 \ConTeXt{} 的图形 147 | 功能要远远强于 \TeX{} 和 \LaTeX{},可以制作非常漂亮的 PDF 文档,特别适合做幻灯片和一些非正式的 148 | 文档。 149 | 150 | \ConTeXt{} 将 \METAFONT{}、\METAPOST{} 的超集以及一个强大的矢量图形系统整合起来。\MetaFun{} 151 | 可以作为一个独立的系统来生成数据,但是它的优势在于用精确的图形元素来增强 \ConTeXt{} 文档。 152 | 153 | 目前,\ConTeXt{} 主要分为两个版本,分别是 Mark II 和 Mark IV(MkII 和 MkIV)。前者已处于稳定 154 | 状态,只进行代码维护;而后者仍在活跃开发中。MkII 默认使用 \pdfTeX{} 引擎;而 MkIV 由于采用了 155 | 新的字体机制,仅支持 \LuaTeX{} 引擎。(\LuaTeX{} 的发展也是由于 \ConTeXt{} 驱动)。 156 | 157 | 注:CTAN 不支持 \ConTeXt{} 的发布。潜在的用户可以去 158 | \href{http://wiki.contextgarden.net/Main_Page}{ConTeXt Garden} 了解当前发行版的详细信息。 159 | 160 | \item[Texinfo] TeXinfo 是一个使用同一个源文件生成在线信息和打印输出的文档系统,所以只需要编写一个 161 | 文档源文件,当工作被修改时,只需要修改源文件即可。其源文件的后缀名为 |texi| 或 |texinfo|。 162 | 163 | TeXinfo 是一门宏语言,就像 \LaTeX{} 一样,但是它的表达能力略弱,它的表观与 \TeX{} 的其他宏语言 164 | 相似,只不过它的宏要以 |@| 开头,而 \TeX{} 系统中用 |\| 开头。 165 | 166 | 你可以在 GNU Emacs 中编写以及将 TeXinfo 文件转化成 info 文件,你也可以在 makeinfo 中将 TeXinfo 167 | 文件转换成 info 文件,然后再 info 中阅读,所以也不是必须依赖于 Emacs。这个发行版包括一个 Perl 168 | 脚本,|texi2html|,可以将 TeXinfo 文件转换成 HTML,这种语言比 \LaTeX{} 更适合 HTML,所以将 169 | \LaTeX{} 转换成 HTML 的痛苦就可以避免了。 170 | 171 | 当然,你也可以用 \pdfTeX{} 将输入文件转换成 PDF 格式。makeinfo 可将 texinfo 文档转换成 HTML、 172 | DocBook、Emacs info、XML 和纯文本。\TeX{}(或者 |texi2dvi| 和 |texi2pdf|),因为 \TeX{} 加载了 173 | 普通的 \TeX{} 宏,而并不是 TeXinfo,所以 TeXinfo 文档必须以 \verb|\input texinfo \verb| 开头来加载 174 | \pkg{texinfo} 包。 175 | 176 | % TODO: 不常用,可删去 177 | \item[Eplain] Eplain 扩展并延伸了 \PlainTeX{} 的定义,它并不像 \ConTeXt{}。 178 | \end{description} 179 | 180 | 181 | \faq{\LaTeX2.09 和 \LaTeXe{} 有什么区别?}{latex2.09-latex2e-diff} 182 | 183 | 后者是前者的改进。从文件内容上看,两者最显著的不同在于 \LaTeX2.09 使用 |\documentstyle| 命令定义 184 | 文档类以及所包含宏包,如: 185 | 186 | \begin{texinlist} 187 | \documentstyle[twoside,epsfig]{article} 188 | \end{texinlist} 189 | 而 \LaTeX2e{} 使用 |\documentclass| 命令设置文档类型,用 |\usepackage| 命令调用宏包。 190 | \strong{\LaTeX2.09 已经过时}。 191 | 192 | 193 | \faq{\TeX{}, \LaTeX{}, pdflatex, xelatex, xetex等的区别和关系,什么时候用什么编译器编译} 194 | {build-all-diff} 195 | % TODO: 非常混乱…… 196 | 197 | LaTeX 其实是目前使用最广泛的 \TeX{} 格式。xeTeX 是一种引擎(编译器),pdfLaTeX (xeLaTeX) 是命令, 198 | 他们分别结合了 pdfTeX(xeTeX) 引擎和 \LaTeX{} 格式。对于刚开始接触的人,建议处理英文时直接使用 199 | pdfLaTeX,处理非英文时使用 XeLaTeX(并且用 UTF-8 编码源文件) 200 | 201 | 202 | %\faq{文本文件编码解读}{encoding} 203 | 204 | 205 | \faq{\LaTeX{} 的源文件有什么要求?}{latex-source-file} 206 | 207 | \LaTeX{} 的源文件是 |.tex| 文件,是指 latex 编译器处理输入文件的源码,latex 编译器会对输入文件进行 208 | 解析,构造解析树,进行渲染,然后输出处理后的文档,完成一次编译过程,由于 \LaTeX{} 解析器可能对中文 209 | 文件名处理存在兼容性问题,不建议将 \LaTeX{} 的源文件的文件名设置为中文。 210 | 211 | 212 | %\faq{连字符如何在 \TeX{} 起作用?}{hyphen} 213 | %% TODO: 不应该放在这里,给的例子也很奇怪 214 | % 215 | %如果 \LaTeX{} 遇到了很长的英文单词,仅在单词之间的位置断行无法生成宽度匀称的行时,就要考虑从单词 216 | %中间断开。对于绝大部分单词,\LaTeX{} 能够找到合适的断词位置,在断开的行尾加上连字符 |-|。如果一些 217 | %单词没能自动断词,我们可以在单词内手动使用 |\-| 命令指定断词的位置,如: 218 | % 219 | %\begin{texinlist} 220 | %I think this is: su\-per\-cal\-% 221 | %i\-frag\-i\-lis\-tic\-ex\-pi\-% 222 | %al\-i\-do\-cious. 223 | %\end{texinlist} 224 | 225 | 226 | %\faq{Unicode 和 \TeX{}}{unicode-and-tex} 227 | 228 | 229 | \faq{常见的 \TeX{} 文件扩展名与文件用途}{extensions} 230 | 231 | \begin{itemize} 232 | \item |.tex| 文件。源文件,需用户编写。 233 | \item |.sty| 宏包文件。宏包的名称就是去掉扩展名的文件名。 234 | \item |.cls| 文档类文件。同样地,文档类名称就是文件名 235 | \item |.bib| \BibTeX{} 参考文献数据库文件。 236 | \item |.bst| \BibTeX{} 用到的参考文献格式模板。 237 | \item |.log| 排版引擎生成的日志文件,供排查错误使用。 238 | \item |.aux| \LaTeX{} 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。 239 | \item |.toc| \LaTeX{} 生成的目录记录文件。 240 | \item |.lof| \LaTeX{} 生成的图片目录记录文件。 241 | \item |.lot| \LaTeX{} 生成的表格目录记录文件。 242 | \item |.bbl| \BibTeX{} 生成的参考文献记录文件。 243 | \item |.blg| \BibTeX{} 生成的日志文件。 244 | \item |.idx| \LaTeX{} 生成的供 \pkg{makeindex} 处理的索引记录文件。 245 | \item |.ind| \pkg{makeindex} 处理 |.idx| 生成的格式化索引记录文件。 246 | \item |.ilg| \pkg{makeindex} 生成的日志文件。 247 | \item |.out| \pkg{hyperref} 宏包生成的 PDF 书签记录文件。 248 | \end{itemize} 249 | 250 | \begin{reference} 251 | \item \url{https://tex.stackexchange.com/q/7770/136923} 252 | \item \url{https://tex.stackexchange.com/q/53240/136923} 253 | \item \url{https://github.com/wspr/latex-auxfiles} 254 | \end{reference} 255 | 256 | 257 | \faq{什么是 DVI 文件?}{what-is-dvi} 258 | % TODO: 部分内容重复 259 | 260 | %DVI(device independent)文件为 \TeX{} 电子排版系统的输出文件。七十年代末,Knuth 在看到其多卷巨著 261 | %《The Art of ComputerProgramming》第二卷的校样时,对由计算机排版的校样的低质量感到无法忍受。因此 262 | %决定自己来开发一个高质量的计算机排版系统,这样就有了 TeX。TeX 的输出文件称为 DVI 文件,即是“Device 263 | %Independent”。一旦 TeX 处理了你的文件,你所得到的 DVI 文件就可以被送到任何输出设备,如打印机、屏幕 264 | %等并且总会得到相同的结果,而这与这些输出设备的限制没有任何关系。这说明 DVI 文件中所有的元素, 265 | %从页面设置到文本中字符的位置都被固定,不能更改。 266 | DVI(device independent)文件为 \TeX{} 电子排版系统的输出文件。 267 | 目前 PDF 文件已经成为主流的输出文件,DVI 文件相对少见。 268 | 269 | \faq{什么是 TDS?}{what-its-tds} 270 | 271 | TDS 全称 \TeX{} Directory Structure,意为 \TeX{} 目录结构,即 \TeX{} 发行版的文件组织结构。大部分 272 | \TeX{} 发行版都将自身的文件组织成相近的路径结构,也就是 TDS。TDS 也称为 TEXMF 树,这是 \TeX{} 与 273 | \METAFONT{} 的合称。很多系统的 TDS 结构都以 |texmf| 或者类似的词作为 TEXMF 树的根目录名,如在 274 | \TeXLive{} 中,安装目录下的 |texmf-dist|、|texmf-var| 等就是两个不同的 TEXMF 树, 275 | 如图~\ref{fig:texmf-dir}。 276 | 277 | \begingroup 278 | \dirtree {% 279 | .1 TEXMF树. 280 | .2 bibtex/\DTcomment{\BibTeX{} 相关文件}. 281 | .3 bib/\DTcomment{公用 bib 数据库}. % TODO: verb 有问题 282 | .3 bst/\DTcomment{格式文件}. 283 | .2 doc/\DTcomment{各类用户文档}. 284 | .3 bibtex/\DTcomment{\BibTeX{} 相关文档}. 285 | .3 fonts/\DTcomment{字体文档}. 286 | .3 generic/\DTcomment{通用于各种格式的文档}. 287 | .4 pgf/. 288 | .5 pgfmanual.pdf\DTcomment{PGF/\TikZ{} 用户手册}. 289 | .3 latex/\DTcomment{用于 \LaTeX{} 格式的文档}. 290 | .4 ctex/. 291 | .5 ctex.pdf\DTcomment{\CTeX{} 宏集用户手册}. 292 | .5 README.md\DTcomment{\CTeX{} 宏集简短介绍}. 293 | .3 texlive/\DTcomment{\TeXLive{} 发行版自身的文档}. 294 | .2 font/\DTcomment{字体相关文件}. 295 | .3 opentype/\DTcomment{OpenType 格式的字体}. 296 | .3 source/\DTcomment{字体源代码}. 297 | .3 truetype/\DTcomment{TrueType 格式的字体}. 298 | .3 type1/\DTcomment{Type1 格式的字体}. 299 | .2 scripts/\DTcomment{可执行脚本}. 300 | .3 l3build/\DTcomment{\LaTeX{} 构建、测试脚本}. 301 | .3 latexmk/\DTcomment{自动编译系统}. 302 | .3 texdoc/\DTcomment{文档查询系统}. 303 | .2 source/\DTcomment{源代码}. 304 | .3 bibtex/\DTcomment{\BibTeX{} 相关宏包代码}. 305 | .3 fonts/\DTcomment{字体源代码}. 306 | .3 generic/\DTcomment{通用于各种格式的宏包代码}. 307 | .3 latex/\DTcomment{用于 \LaTeX{} 格式的宏包代码}. 308 | .4 ctex/\DTcomment{\CTeX{} 宏集源代码}. 309 | .5 ctex.dtx. 310 | .5 ctex.ins. 311 | .5 ctexpuct.spa. 312 | .2 tex/\DTcomment{\TeX{} 宏,可被引擎读入}. 313 | .3 generic/\DTcomment{通用于各种格式}. 314 | .3 latex/\DTcomment{用于 \LaTeX{} 格式}. 315 | .4 base/\DTcomment{\LaTeX{} 的基本宏文件}. 316 | .5 article.cls. 317 | .5 book.cls. 318 | .5 report.cls. 319 | .5 latex.ltx. 320 | .4 beamer/\DTcomment{\cls{beamer} 宏集相关文件}. 321 | .4 ctex/\DTcomment{\CTeX{} 宏集相关文件}. 322 | .5 ctexart.cls. 323 | .5 ctexbeamer.cls. 324 | .5 ctexbook.cls. 325 | .5 ctexrep.cls. 326 | .5 ctex.sty. 327 | .3 plain/\DTcomment{用于 \PlainTeX{} 格式}. 328 | .3 xetex/\DTcomment{用于 \XeTeX{} 引擎}. 329 | .3 xelatex/\DTcomment{用于 \XeTeX{} 引擎下的 \LaTeX{} 格式}. 330 | .4 xecjk/\DTcomment{\pkg{xeCJK} 宏包相关文件}. 331 | .5 xeCJK.sty. 332 | } 333 | \captionof{figure}{TEXMF 树目录结构} 334 | \label{fig:texmf-dir} 335 | \endgroup 336 | (来自刘海洋《LaTeX 入门》) 337 | 338 | %\faq{从TeX编写(文本)文件}{tex-text-write} 339 | 340 | %\faq{\\special命令}{special-command} 341 | 342 | \faq{Overleaf 是什么?如何使用?}{overleaf} 343 | 344 | \href{https://www.overleaf.com}{Overleaf} 是一个在线的 \LaTeX{} 协作平台,可在各大浏览器内运行, 345 | 也就是说,不需要本地安装 \LaTeX{} 套装,就可以撰写编译 \LaTeX{} 文件。2017 年 Overleaf 与另一家 346 | 在线 \LaTeX{} 平台 \href{https://www.sharelatex.com}{ShareLaTeX} 合并,新的 347 | \href{https://v2.overleaf.com}{Overleaf v2 平台} 囊括了两个原先平台的主要功能,而原有的 Overleaf 和 348 | ShareLaTeX 用户可以在 Overleaf v2 上继续编辑原先所有的项目文件。 349 | 350 | 由于个别地区、单位的网络问题或限制,有些用户可能无法顺利登录、访问 Overleaf,在此我们不作 351 | (也不方便)讨论。 352 | 353 | Overleaf v1 目前运行的是 \TeXLive{} 2016,Overleaf v2 则是 \TeXLive{} 2017。升级 \TeXLive{} 2018 354 | 可能需要等到 2019 年。Overleaf v1 和 v2 都支持 \LaTeX{} + dvipdf、\pdfLaTeX{}、\XeLaTeX{}、 355 | \LuaLaTeX{} 等多种编译方式;通过 \pkg{latexmkrc} 设置也可用 \pTeX{} 等其它编译器。支持中文,可以用 356 | 传统手段 \pkg{CJK} 宏包 357 | \footnote{示例见 \url{https://www.overleaf.com/read/xhzmbjjnbfrq}。}, 358 | 也可用 \CTeX{} 宏集的新一代解决方案 359 | \footnote{示例见 \url{https://www.overleaf.com/read/gndvpvsmjcqx}。}, 360 | 当然我们比较推荐后者。由于字库版权问题,Overleaf 上不会有 Windows 中文字体可用,因此如果一定要用 361 | Windows 中文字体的话(高校论文要求等原因),则还是建议本地编译。毕竟字库文件太大,逐个上传还是 362 | 比较麻烦。 363 | 364 | Overleaf 用的服务器系统是 Ubuntu Linux,因此文件名区分大小写。编译时用的是 \pkg{latexmk},因此在 365 | Overleaf上每“编译”一次,其实可能已经运行了 4 次 \pkg{xelatex} + 1 次 \pkg{bibtex} + 1 次 \pkg{makeglossaries} 366 | 等等,把所有交叉引用、文献引用等等都解决掉,也可以自动调用 \pkg{biber} 或 \pkg{biblatex},或自动编译 367 | \pkg{chapterbib}、\pkg{multibib} 所导出的多个文献列表。 368 | 369 | Overleaf 编译也自动启用 |--shell-escape|,因此 \pkg{minted}、\pkg{tikz-externalize} 370 | 等都可以使用。|--shell-escape| 本来是有安全隐忧的,但是每个 Overleaf 文件项目都是一个单独的 Docker 371 | 容器(container),因此若是有谁想玩什么把戏,也不会波及其它项目。 372 | 373 | %【其它重点功能介绍明天,不,有空时再补充:multi-authors collaboration, RichText mode, 374 | %Overleaf Gallery and templates, one-click submission to journals, git bridge and github sync, 375 | %history tracking, 文件项目空间上限】 376 | 377 | 如果对 Overleaf 有任何问题,建议直接发送电子邮件至 378 | \href{mailto:support@overleaf.com}{support@overleaf.com} 询问,不必过多自行揣测。若是担心语言沟通 379 | 问题,大可放心——有熟悉中文的 Overleaf 技术支援人员。 380 | 381 | \begin{reference} 382 | \item \href{https://www.overleaf.com/read/qphhfvnsddbs}{Overleaf 中使用 \pkg{minted} 示例} 383 | \item \href{https://www.overleaf.com/help/297}{Overleaf v1 文件数目及项目大小限制} 384 | \item \href{https://www.sharelatex.com/learn/Uploading_a_project#Limitations_on_Uploads}{Overleaf v2 文件数目及项目大小限制} 385 | \item \href{https://www.overleaf.com/help/187}{Overleaf v1 支持两层及以上的文件夹} 386 | \end{reference} 387 | 388 | 389 | \faq{编译器与编辑器的区别是什么?}{ide-compile-diff} 390 | 391 | 按照 \pkg{lshort-zh-cn} 中的解释,所谓编译器,真正的名称叫排版引擎,是读入源代码并编译生成文档的 392 | 程序,如 \pdfTeX{}、\XeTeX{} 等。 393 | 394 | 编辑器,其实是用户书写源代码的工具,例如 Windows 下的记事本、Ubuntu 下的 gedit 等等。目前很多编辑器 395 | 都提供了“编译”按钮,本质上是基于命令行调用了编译器。 396 | 397 | \faq{目前常见的 IDE,有哪些可以满足 \LaTeX{} 的所见即所得?}{} 398 | 399 | gmmi 和 emacs 都能够做到“所见即所得”,然而其背后依然需要不断编译。 400 | 如果真的做到了“所见即所得”,那就不是 \LaTeX{} 而是别的软件了,只是借用了 \LaTeX{} 的排版算法而已。 401 | 402 | 403 | % \faq{什么是“决议”(resolutions)} 404 | % \faq{什么是(\TeX{})宏} 405 | % \faq{什么是\LaTeX{}类和工具包} 406 | % \faq{什么是PK文件} 407 | % \faq{什么是TFM文件} 408 | % \faq{什么是编码} 409 | % \faq{什么是EC字体} 410 | % \faq{什么是虚拟字体} 411 | % \faq{什么是“Encapsulated PostScript”(EPS)} 412 | % \faq{什么是DVI驱动程序} 413 | % \faq{什么是“Berry命名方案”} 414 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/beamer.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{Beamer篇} 4 | 5 | 6 | \faq{129.隐藏导航栏}{high-NavigationBar} 7 | 8 | Beamer 9 | 自带的导航符号看起来很不错,但是实际上使用的并不多,为了让文稿的显示面积增加,减少干扰元素,我们可以隐藏下方的导航栏符号,两个方法如下: 10 | 11 | \begin{texinlist} 12 | \setbeamertemplate{navigation symbols}{} 13 | \beamertemplatenavigationsymbolsempty % both ok 14 | \end{texinlist} 15 | 16 | 如果需要去掉下方 title,Author 等信息的话,可以用 17 | 18 | \begin{texinlist} 19 | \setbeamertemplate{footline} 20 | \end{texinlist} 21 | 22 | 23 | \faq{向 Beamer 中添加参考文献}{beamer-add-bib} 24 | 25 | 我们可以使用下面的命令添加参考文献,最好放在 `appendix' 后面。 26 | 27 | \begin{texinlist} 28 | \begin{frame}[allowframebreaks]{References} 29 | \def\newblock{} 30 | \bibliographystyle{plain} 31 | \bibliography{mybib} 32 | \end{frame} 33 | \end{texinlist} 34 | 35 | 36 | \faq{每节显示目录}{show-toc} 37 | 38 | 在我们做一个比较长的报告时,我们可能会想在每一节添加一个目录,让听众清楚内容讲到哪了,我们可以在导言区添加如下的命令。 39 | 40 | \begin{texinlist} 41 | \setbeamerfont{myTOC}{series=\bfseries,size=\Large} 42 | \AtBeginSection[]{\frame{\frametitle{Outline}% 43 | \usebeamerfont{myTOC}\tableofcontents[current]}} 44 | \end{texinlist} 45 | 46 | 为了得到节的标题信息,我们会在帧与帧之间添加 47 | `\textbackslash{}section{[}short\_title{]}\{long\_title\}', 其中 48 | short\_title 是短标题,用于 ``页眉'' 49 | 信息(header)显示。如果你不想要显示每帧的页眉信息(header),可以使用下面的命令。 50 | 51 | \begin{texinlist} 52 | \setbeamertemplate{headline}{} 53 | \end{texinlist} 54 | 55 | 56 | \faq{多栏显示}{beamer-mulicol} 57 | 58 | 有时候我们有图需要并排摆放,一个好方法是使用分栏,尤其是当两个图不同的高度的时候,然后在每一栏插入我们需要的图片。代码如下: 59 | 60 | \begin{texinlist} 61 | \begin{columns}[c] % Columns centered vertically. 62 | \column{5.5cm} % Adjust column width to taste. 63 | \includegraphics ... 64 | \column{5cm} 65 | \includegraphics ... 66 | \end{columns} 67 | \end{texinlist} 68 | 69 | 70 | \faq{添加 LOGO}{beamer-add-logo} 71 | 72 | 在右下方添加 logo,直接用系统默认的命令就可以。 73 | 74 | \begin{texinlist} 75 | \logo{\includegraphics[width=0.08\textwidth]{logo500}} 76 | \end{texinlist} 77 | 78 | 如果需要在右上方添加 logo,可以用 TikZ 命令(需要用到 tikz 宏包)在 79 | Frametitle 上添加。 80 | 81 | \begin{texinlist} 82 | \addtobeamertemplate{frametitle}{}{% 83 | \begin{tikzpicture}[remember picture,overlay] 84 | \node[anchor=north east,yshift=2pt] at (current page.north east) {\includegraphics[width=0.09\textwidth]{logo500}}; 85 | \end{tikzpicture}} 86 | \end{texinlist} 87 | 88 | 89 | \faq{想在 beamer 中新建一个包含 frame 的环境 question,该怎么做?}{beamer-frame-question} 90 | 91 | 直接给代码 92 | 93 | \begin{texinlist} 94 | \newenvironment{question} 95 | {\begin{frame}[environment=question,fragile] 96 | \begin{theorem} 97 | } 98 | {\end{theorem} 99 | \end{frame} 100 | } 101 | \end{texinlist} 102 | 103 | \faq{Beamer 中如何添加跨页的定理盒子?}{} 104 | 105 | 可以自定义一个适用于跨页的盒子。 106 | 107 | \begin{texlist} 108 | \documentclass{beamer} 109 | \theoremstyle{definition} 110 | \newtheorem{splittheorem}{Theorem} 111 | \setbeamertemplate{theorem begin} 112 | {% 113 | \par\vskip\medskipamount% 114 | \begin{beamercolorbox}[colsep*=.75ex]{block title} 115 | \usebeamerfont*{block title}% 116 | \inserttheoremname 117 | \ifx\inserttheoremaddition\empty\else\ (\inserttheoremaddition)\fi% 118 | \end{beamercolorbox}% 119 | {\parskip0pt\par}% 120 | \ifbeamercolorempty[bg]{block title} 121 | {} 122 | {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}% 123 | \usebeamerfont{block body}% 124 | \vskip-.25ex\vbox{}% 125 | } 126 | \setbeamertemplate{theorem end}{} 127 | \usepackage{lipsum} 128 | \begin{document} 129 | \begin{frame}[allowframebreaks] 130 | \begin{splittheorem} 131 | \lipsum[1] 132 | \lipsum[2] 133 | \end{splittheorem} 134 | \end{frame} 135 | \end{document} 136 | \end{texlist} 137 | 138 | \begin{reference} 139 | \item \url{https://tex.stackexchange.com/questions/50436/allow-theorem-split-in-many-frames-in-beamer} 140 | \end{reference} 141 | 142 | \faq{使用 beamer 时如何更改无序列表 itemize 标记}{} 143 | 144 | 可以使用 145 | \begin{texinlist} 146 | \setbeamertemplate{itemize items}[] 147 | \end{texinlist} 148 | 进行更改。下面给出一个 MWE 149 | 150 | \begin{texinlist} 151 | \documentclass{beamer} 152 | %\setbeamertemplate{itemize items}[triangle] 153 | \setbeamertemplate{itemize items}[ball] 154 | %\setbeamertemplate{itemize items}[default] 155 | \begin{document} 156 | \begin{frame} 157 | \begin{itemize} 158 | \item one 159 | \item two 160 | \end{itemize} 161 | \end{frame} 162 | \end{document} 163 | \end{texinlist} 164 | 用户可以根据需要变换 |[]| 中的内容,参考 beamer 手册中有关 itemize items 的内容。 165 | 166 | \faq{beamer 中将脚注数字加上方括号}{} 167 | 168 | 我们可以直接修改 169 | |\@makefnmark|, 170 | 它是 171 | |\insertfootnotemark| 172 | 实际调用的内容。 173 | MWE 如下: 174 | \begin{texinlist} 175 | \documentclass{beamer} 176 | \begin{document} 177 | \makeatletter 178 | \renewcommand{\@makefnmark}{\hbox{\@textsuperscript{\usebeamercolor[fg]{footnote mark}\usebeamerfont*{footnote mark}{[\@thefnmark]}}}} 179 | \makeatother 180 | \begin{frame} 181 | hello world\footnote{first footnote} 182 | \end{frame} 183 | \end{document} 184 | \end{texinlist} 185 | % \faq{如何在默认模板的基础上,定制自己的beamer模板}{beamer-default-Customized} 186 | 187 | 188 | % \faq{如何更改beamer中logo的位置,在使用default的模板和主题下,使用\cs{logo},发现不能更改logo所在位置}{} 189 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/bib.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{参考文献篇} 4 | 5 | 6 | \faq{如何排版参考文献?}{} 7 | 8 | 传统的基于bibtex的参考文献生成方法: 9 | 10 | \begin{enumerate} 11 | 12 | \item 13 | 准备一份 BibTeX 数据库,假设数据库文件名为 books.bib,和 LaTeX 14 | 源代码一般位于同一个目录下。 15 | \item 16 | 在源代码中添加必要的命令,如 |\bliographystyle{abbrv}|,|\bibliography{books}|。假设源代码名为 17 | demo.tex。其中,\cs{bibliographystyle}设定参考文献的格式。 18 | \cs{bibliography} 19 | 告诉系统使用哪个数据库和参考文献列在哪个位置。 20 | \item 21 | 写好了以上两个文件之后,我们就可以开始编译了。例如在命令行中执行以下命令 22 | 23 | \begin{texinlist} 24 | xelatex demo 25 | bibtex demo 26 | xelatex demo 27 | xelatex demo 28 | \end{texinlist} 29 | \end{enumerate} 30 | 31 | 32 | 33 | 或者选择一个可以自动检测是否有参考文献的编辑器,如果有,它会自动执行以上四个命令,但是有时候会遇到检测不到的情况,这时你只需要清理一下辅助文件即可。 34 | 35 | 基于biblatex的参考文献生成方法,与基于bibtex的方法类似,只是文献数据处理程序需要换成biber: 36 | 37 | \begin{enumerate} 38 | \item 首先准备BibTeX格式文献数据库,即bib文件 39 | 40 | \item 接着完成tex源代码,即tex文件,其中参考文献样式引入用biblatex宏包,打印文献用printbibliography命令,比如: 41 | 42 | \begin{texinlist} 43 | \documentclass[twoside]{article} 44 | \usepackage[backend=biber,style=alphabetic]{biblatex} 45 | \addbibresource{youbib.bib} 46 | 47 | \begin{document} 48 | \section{references of alphabetic style} 49 | 50 | \nocite{*} 51 | 52 | \printbibliography 53 | \end{document} 54 | \end{texinlist} 55 | 56 | \item 最后编译文档,命令如下: 57 | 58 | \begin{texinlist} 59 | xelatex demo 60 | biber demo 61 | xelatex demo 62 | xelatex demo 63 | \end{texinlist} 64 | 65 | \end{enumerate} 66 | 67 | 68 | \faq{编译参考文献后在文献引用处出现问号,或者文献的引用关键字,或者文献表不显示?}{} 69 | 70 | 这些信息都显示参文献并没有编译正确。可以从以下几个步骤进行检查和排除: 71 | \begin{enumerate} 72 | \item 是否正确完成了编译步骤?编译方法见上一问题 73 | 74 | \item 检查.blg文件内容,看是否存在如下问题: 75 | 76 | \begin{itemize} 77 | \item bibtex或biber是否找到样式文件? 78 | \item bibtex或biber是否找到文献数据库及bib文件? 79 | \item 数据文件是否存在问题?其中是否包含引用的文献? 80 | \item 引用的文献的数据是否有效? 81 | \end{itemize} 82 | 83 | \item 排除上述问题后,清楚辅助文件,重新进行完整编译。 84 | 85 | \end{enumerate} 86 | 87 | 88 | 89 | \faq{有没有关于参考文献生成的入门资料?}{} 90 | 91 | \begin{enumerate} 92 | \item 传统的基于bibtex的参考文献生成方法的资料包括: 93 | 94 | \begin{itemize} 95 | \item lshort(从ctan下载) 96 | \item lshort-zh-cn(从github下载) 97 | \item btxdoc(从ctan的bibtex宏包下载) 98 | \item btxFAQ(从ctan的bibtex宏包下载) 99 | \item 刘海洋和胡伟的书(可购) 100 | \end{itemize} 101 | 102 | \item 基于biblatex的参考文献生成方法的资料包括: 103 | 104 | \begin{itemize} 105 | \item biblatex(从ctan下载) 106 | \item biblatex-zh-cn(从github下载) 107 | \item biblatex-tutorial(从github下载) 108 | \item biblatex-solution-to-latex-bibliography-master(从github下载) 109 | \end{itemize} 110 | 111 | \end{enumerate} 112 | 113 | 此外 tex exchange上面有大量关于bibtex,biblatex方面的提问和回答,很多都是前辈大佬们的精心总结,很值得一看。国内latexstudio和ctex论坛上面也有很多好的资料和内容可以详细学习。 114 | 115 | 116 | \faq{是否可以处理非英文的参考文献?}{} 117 | 118 | 传统的基于bibtex的参考文献生成方法,中文的参考文献条目,与英文条目并没有什么差别,只是注意编码。目前处理中文推荐用xelatex 编译 utf8 编码的文件。因此中文的 bib 条目也应该用 utf8 编码。bibkey也能用中文,处理好编码格式,无殊。 119 | 120 | 基于biblatex的参考文献生成方法,支持多语言参考文献。可以利用babel等宏包实现西文文献的无缝切换,可以实现多语言共存的文献表。东亚语言的参考文献,可以利用英文文献的机制生成,基于参考文献样式的设计,可以实现中英文对照的文献表。biblatex完全既支持unicode编码,也支持其他编码,因此可以处理任何语言的参考文献。 121 | 122 | 123 | \faq{BibTeX 参考文献数据库}{} 124 | 125 | BibTeX 的 bib 文件是一个记录已阅文献的数据库,但是通常不建议手动编译 bib 126 | 文件,建议: 127 | 128 | \begin{enumerate} 129 | \def\labelenumi{\arabic{enumi}.} 130 | 131 | \item 132 | 使用 JabRef 或 Zotero 等文献管理工具导出 bib 文件创 133 | \item 134 | 使用 \href{https://scholar.google.com/}{Google Scholar} 或 135 | \href{https://cn.bing.com/academic}{Bing 学术}导出 bib 条目建 136 | \end{enumerate} 137 | 138 | 引文的信息还有很多国内外网站可以获取包括: 139 | \begin{itemize} 140 | 141 | \item 百度学术 142 | 143 | \item 搜狗学术 144 | 145 | \item CNKI 146 | 147 | \item 万方 148 | 149 | \item 维普 150 | 151 | \item Citeulike 152 | 153 | \item amazon 154 | 155 | \item nelson beebe's collection 156 | 157 | \item bibsonomy 158 | 159 | \item mathscinet 160 | 161 | \item acm catalog 162 | 163 | \item ieee catalog 164 | 165 | \item collection of CS bibliographies 166 | 167 | \item DBLP 168 | 169 | \item SPIRES 170 | 171 | \item CITING Wikepedia itself 172 | 173 | \item texmed 174 | 175 | \end{itemize} 176 | 177 | 178 | \faq{BibTeX 文献手写很困难,有没有什么工具能够生成?}{} 179 | 180 | 多数时候,我们无需自己手写 BibTeX 文献条目。从 181 | \url{https://scholar.google.com/}、\url{https://academic.microsoft.com/}、 182 | \url{https://cn.bing.com/academic?mkt=zh-CN} 183 | 或者期刊、数据库的网站上都能够导出 BibTeX 文献条目。 184 | 185 | 老牌的文献管理软件 186 | EndNote 也支持生成 BibTeX 格式的数据库,详情见 187 | 官网\url{https://endnote.com/}。 188 | 189 | 开源软件 JabRef 甚至支持 BibTeX 190 | 文献条目的导入、导出和管理,详情见 官网\url{http://www.jabref.org/}。 191 | 192 | Zetero 使用起来也非常方便,详情见官网 \url{https://www.zotero.org/}。 193 | 194 | 谷歌学术、知网、百度学术、万方数据库等在线数据库也是可以支持导出 .bib 195 | 文件的,至于哪家的数据条目更全,就得你自己去甄别了。 196 | 197 | 198 | \faq{bib文件的重建}{} 199 | 200 | 用文本编辑器如Notepad++, Sublime 201 | Text或WinEdt或专门文献管理软件JabRef,BibDesk等创建文件,改名为 ref.bib 202 | 文件,往里头添加参考文献目录。参考如下: 203 | % \includegraphics{https://images-cdn.shimo.im/VKQ8uAycksg1zPlo/image.png!thumbnail} 204 | 205 | 在.bib文件中,可以采用 TeXStudio 提供的参考文献格式,在自行修改内容 206 | % \includegraphics{https://images-cdn.shimo.im/0OgCsRQoufMTDJ75/1.png!thumbnail} 207 | 208 | 上面的类型有两种选择 BibTeX 和 BibLaTeX ,后者的选择更为广泛。 209 | 210 | 参考文献一般不自己书写,而是有可以直接导入。 一般直接 Google 学术搜索出来的文献或者引用知网,如下: 211 | % \includegraphics{https://images-cdn.shimo.im/L1fAEZmW9tYDVTYT/VRI1FEC62J_C6_QSK_P0_0.png!thumbnail} 212 | 213 | 点击上图红圈的引号-\textgreater{} 214 | % \includegraphics{https://images-cdn.shimo.im/N8tFzuXsCM8rOPjF/image.png!thumbnail} 215 | 216 | 在点击最左侧的 BibTeX -\textgreater{} 217 | % \includegraphics{https://images-cdn.shimo.im/81Z6BGei8ycQf1uK/image.png!thumbnail} 218 | 219 | 将其复制黏贴到你的 ref.bib 文件中即可。 220 | 221 | 在知网上的文献查询需要下载安装如下软件: 222 | % \includegraphics{https://images-cdn.shimo.im/ZsikCVGdjGIKBqSN/image.png!thumbnail} 223 | 224 | 两个都装好了之后,该软件需要自行注册登陆使用。然后打开知网,会看到如下: 225 | % \includegraphics{https://images-cdn.shimo.im/DVEoaSyHJKwmbSjH/2.png!thumbnail} 226 | 227 | 右上角红圈圈到的就是为浏览器安装的 Zotero Connector插件,在此需要打开 Zotero 软件,点击之后显示下图,选择需要的文献。 228 | % \includegraphics{https://images-cdn.shimo.im/w4eu1WOehS05gJ0g/image.png!thumbnail} 229 | 230 | 然后 Zotero 软件如下显示 231 | % \includegraphics{https://images-cdn.shimo.im/VFUjYs5MvKQz522e/image.png!thumbnail} 232 | 233 | 然后文件-\textgreater{}导出文献库-\textgreater{}导出格式 BibTeX 确定保存生成的bib文件,可以将这个 bib 文件中的参考文献全部复制黏贴到你的 ref.bib 文件中,也可以单独作为一个新的bib文件,在正文区则需要添加多个bib文件就可以,用命令: 234 | 235 | \begin{texlist} 236 | \bibliography{test,ref} 237 | \end{texlist} 238 | 239 | 多个bib文件用逗号分隔即可。同时为引用的参考文献需要命令 \verb|\nocite{*}| 来将未引用的文件全部排版出来。 240 | 241 | 注:百度学术、万方数据库等也支持导出 .bib文件。 242 | 243 | \faq{如何从一个大的bib数据库中导出一个小的由当前文档引用的文献构成的bib文件?}{} 244 | 245 | 传统的基于bibtex的参考文献生成方法,可以使用 \verb|bibtool| 这一命令行工具, 246 | 可以根据 \verb|.AUX| 文件中的引用信息导出一个bib文件。 247 | 248 | 基于biblatex的参考文献生成方法,直接使用biber可以导出当前文档引用文献的bib文件,命令为: 249 | 250 | \begin{texlist} 251 | biber jobname --output-format=bibtex 252 | \end{texlist} 253 | 254 | 255 | \faq{参考文献中的特殊字符或字母}{} 256 | 257 | 258 | 参考文献信息中大体可能有几类特殊的字符或字母: 259 | 260 | 一是 \%\&\#这里键盘上直接能输入的字符,那么使用tex对特殊字符的输入方法,比如\verb|\%|,\verb|\&|,\verb|\#|。类似带重音符号的字符,也可以用花括号进行保护。 261 | 262 | 二是数学类的字符,那么使用数学环境来输入,比如\verb|$\mathbf{R}$|,\verb|$\mathbb{L}$| 263 | 264 | 三是单纯的unicode字符,那么直接输入它,比如$\phi$。但要注意要显示这些unicode字符,需要能显示该字符的字体的支持,比如 CMU Serif等。 265 | 266 | 267 | \faq{BibTeX 不理解的作者列表}{} 268 | 269 | BibTeX 只支持三种姓名格式: * First von Last * von Last, First * von 270 | Last, Jr, First 271 | 272 | 多个姓名之间必须使用``and''连接,如 273 | 274 | \begin{texlist} 275 | author = {Knuth, Donald E. and Lamport, Leslie}, 276 | \end{texlist} 277 | 278 | 当有更多作者省略时,可以加上“and others”,比如: 279 | 280 | \begin{texlist} 281 | author = {Knuth, Donald E. and Lamport, Leslie and others}, 282 | \end{texlist} 283 | 284 | 285 | \faq{BibTeX 中的大写字母}{} 286 | 287 | 英文标题中常使用的大小写方式有: 288 | 289 | \begin{enumerate} 290 | \def\labelenumi{\arabic{enumi}.} 291 | 292 | \item 293 | Title case: 294 | 句首字母大写,并且除冠词、连词和短介词以外的词首字母大写,这里说的``短''介词一般指不超过 295 | 4 个字母的介词。比如``The Quick Brown Fox Jumps over the Lazy Dog''; 296 | \item 297 | Sentence case: 298 | 句首字母和一些专有名词的首字母大写,同普通的英文句子大小写方式一样,如``The 299 | quick brown fox jumps over the lazy dog''。 300 | \end{enumerate} 301 | 302 | BibTeX 根据 bst 样式文件可以将题名保留原大小写,或转为 sentence 303 | case。所以用户在 bib 数据库中著录标题的正确方式是,统一使用 title 304 | case,并将需要专有名词用大括号括起来。 305 | 306 | \begin{texlist} 307 | title = {Finite Element Methods for {Maxwell's} Equations}, 308 | \end{texlist} 309 | 310 | 注意尽量避免将一个词中个别字母用大括号括起来,如``\{M\}axwell's'',这可能会导致字母的间距有问题,建议将整个词括起来,如``\{Maxwell's\}''。 311 | 312 | 基于biblatex的参考文献生成方法,同样支持这种用花括号保护字母大小写的机制。一般情况下,文献各部分内容的大小写,会由参考文献样式来决定,当有特殊要求的时候,比如使用专有名词等,才需要采用这种保护机制。 313 | 314 | 315 | 316 | \faq{bib文件中怎么进行注释?}{} 317 | 318 | 对于条目来说,去掉条目类型前的 @ 符号就可以将整个条目注释掉。 319 | 对于域来说,将域的名称修改为bibtex不认识的域名,就可以将该域注释掉。 320 | 321 | 322 | 323 | \faq{bibtex中的多字母缩写}{} 324 | 325 | 有时需要从多个词构成的字符串中提取各个词的首字母,以大写形式构成一个缩写信息。在目前的latex中,无论基于bibtex的方法,还是基于biblatex的方法,均没有提供这种现成工具。但是用户可以手动提供的一个缩写信息,比如; 326 | 327 | \begin{texlist} 328 | author ={{National Aeronautics and Space Administration}}, 329 | shortauthor={NASA}, 330 | \end{texlist} 331 | 332 | 其中shortauthor就是author的缩写信息。缩写信息的使用则由参考文献样式决定,一般情况下,标注、缩略信息表中使用shortauthor,而参考文献表中使用author,但这些并不是绝对的,因为样式都是可以定制的。 333 | 334 | 335 | \faq{不同 journal 给出的 bibtex 文件格式不一致,如何批量快速格式化多个.bib 文件}{} 336 | 337 | bib文件的管理可以使用工具比如jabref等进行。而且bib文件本质上一个文本文件,因此可以利用文本处理工具进行处理,比如notepad++软件,利用搜索替换,利用正则表达式,可以进行高效修改。 338 | 339 | 340 | 341 | \faq{制作参考文献的HTML}{} 342 | 343 | bib文件转换为HTML,可以使用如下工具: 344 | \begin{itemize} 345 | \item bibutils 346 | 347 | \item bibteXML 348 | 349 | \item bib2xhtml 350 | 351 | \item bib2html 352 | 353 | \item bibtex2html 354 | 355 | \item bibtex-xml-html 356 | \end{itemize} 357 | 358 | 359 | 360 | \faq{如何选择参考文献的风格}{} 361 | 362 | 参考文献的风格一般是期刊或会议模板指定 bst 的,作者应仔细阅读投稿要求和模板使用说明,根据规定使用合适的bst。通常有以下方式: 363 | 364 | \begin{enumerate} 365 | \item 366 | 在文档中声明 |\bibliographystyle{ieeetran}| 367 | \item 368 | 在模板的文档类选项中使用合适的参数,如 |\documentclass[authoryear]{ustcthesis}|。 369 | \end{enumerate} 370 | 371 | 基于biblatex的参考文献生成方法,文献表的著录格式和正文中的引用标注也都是由样式文件决定的,不同于bibtex的bst文件,biblatex的样式使用bbx和cbx为后缀名。选择某种文献风格(规范/标准),就是选择符合该风格的样式,比如要采用ieee的风格,在导言区做如下声明: 372 | 373 | \begin{texlist} 374 | \usepackage[backend=biber,style=ieee]{biblatex} 375 | \end{texlist} 376 | 377 | 其中,选择的 \verb|style=ieee|样式,实质上是使用了ieee.bbx和ieee.cbx两个样式文件。 378 | 379 | 380 | 381 | \faq{创建参考文献风格}{} 382 | 383 | BibTeX 的风格文件 bst 是使用一种后缀语言写的代码,如果对编程能力比较自信的话,可以阅读 BibTeX 的文档 btxdoc 和 btxhak,btxbst.doc 文件提供了标准 bst 风格的代码注释,另外还可以阅读 ttb 和 The LaTeX Companion 等资料。如果不习惯 bst 的编程语言,可以使用 custom-bib 工具,在命令行下运行latex makebst,回答一系列问题生成自己的bst。 384 | 385 | 另外还可以考虑使用 biblatex,它提供更方便的接口用于自定义参考文献格式。 386 | 基于 biblatex 的参考文献生成方法,文献格式由参考文献样式文件控制,即前面提到过的bbx和cbx文件。尽管biblatex 的参考文献样式定制相对简单,但作为一般用户,首先要做的是查看是否有现成的参考文献样式可以使用,因为除了biblatex自带的各种标准样式外,还有更多第三方提供的样式可用,比如 trad-usrt,ieee,apa,mla,gb7714-2015 等等。实在没法使用现成资源,再考虑创建 biblatex 的参考文献样式,具体的方法可以参考 biblatex 手册及其\href{https://github.com/hushidong/biblatex-zh-cn}{中译版}。 387 | 388 | 389 | 390 | 391 | 392 | \faq{怎么在一个文档中生成多个参考文献表}{} 393 | 394 | 传统的基于bibtex参考文献生成方法,natbib宏包与Donald Arseneau和Niel Kempson编写的chapterbib宏包兼容,该宏包允许在一个文档内有多个独立的参考文献列表。通常用法是一本书的各章有独立的参考文献列表,尤其是在各章由不同作者独立编写时。此外还有multibib,splitbib,bibunits等宏包可以使用,各个包功能特性略有不同,适用场合也略有不同。 395 | 396 | 基于biblatex的参考文献生成方法,可以由printbibliography命令在文档任意位置生成任意数量的文献表。就分章文献表而言,biblatex提供了refsection环境来划分参考文献节,每一节都可以生成一个独立的文献表: 397 | 398 | \begin{texlist} 399 | \chapter{one} 400 | \begin{refsection} 401 | citation for chapter one\cite{bibkey1} 402 | \printbibliography 403 | \end{refsection} 404 | 405 | \chapter{two} 406 | \begin{refsection} 407 | citation for chapter two\cite{bibkey2} 408 | \printbibliography 409 | \end{refsection} 410 | \end{texlist} 411 | 412 | 其中,两章内容分别生成一个文献表,第一章的文献表打印文献bibkey1,第二章打印bibkey2。 413 | 414 | \faq{按照章节分开参考文献条目}{} 415 | 416 | 参见上一问题。 417 | 418 | 传统的基于 bibtex 的参考文献生成方法,可以使用chapterbib,bibnunits等宏包。 419 | 420 | 基于 biblatex 的参考文献生成方法,可以使用refsection,refsegment等环境。 421 | 422 | 423 | \faq{插入参考文献列表有几种方式?如何定义其样式?如何定义正文引用样式?}{} 424 | 425 | 426 | 传统的基于bibtex参考文献生成方法,文献表样式由bst文件决定,定义格式就是要设计bst文件,引用样式通常由使用的latex宏包决定,比如natbib等。 427 | 428 | 基于biblatex的参考文献生成方法,使用 \verb|\printbibliography| 打印参考文献的完整信息列表,利用 \verb|\printbiblist| 打印参考文献的缩略信息列表。 429 | 430 | 列表内部各条目的著录格式以及整个列表的段落格式由参考文献样式决定。其中整个列表的段落格式由 \verb|\defbibenvironment| 定义的环境控制。而正文的引用样式由cbx样式文件决定。 431 | 432 | 433 | \faq{如何在文献表中打印未引用的文献}{} 434 | 435 | 科技论文通常要求参考文献表中的文献必须在正文中引用,但是在某些特殊情况下仅需要列出 bib 数据库中的文献,可以使用 \verb|\nocite{*}| 命令列出调用的bib中所有条目,或者使用类似 \verb|\nocite{ref1,ref2,ref3}| 命令列出需要显示的条目。 436 | 437 | 基于biblatex的参考文献生成方法同样支持这种机制,可以利用 nocite 命令将未在正文引用的文献引入到文献表中。 438 | 439 | 440 | \faq{如何分开打印文档中引用和未引用的文献表}{} 441 | 442 | 基于biblatex的参考文献生成方法可以利用分类筛选机制来完成,比如利用category来实现。 443 | 444 | 445 | \faq{同一位置引用多篇文献以及分组文献集合}{} 446 | 447 | 只需要将多篇文献的bibkey用英文半角逗号分隔写在一个cite指令的选项里即可。如: 448 | 449 | \begin{texlist} 450 | \cite{knuth84,lamport86} 451 | \end{texlist} 452 | 453 | 基于biblatex的参考文献生成方法,同样支持这种逗号分隔列表的机制。比如: 454 | \begin{texlist} 455 | \cite{bibkey1,bibkey2,bibkey3,bibkey4} 456 | \supercite{bibkey1,bibkey2,bibkey3,bibkey4} 457 | \parencite{bibkey1,bibkey2,bibkey3,bibkey4} 458 | \textcite{bibkey1,bibkey2,bibkey3,bibkey4} 459 | \end{texlist} 460 | 461 | 当同一位置引用的多篇文献需要构成一个集合时,即在文献表中以分组的形式集中在一起打印,且标注标签以集合的形式仅显示一个。 462 | 463 | 传统的基于bibtex参考文献生成方法,是利用mcite宏包,使用如下命令: 464 | 465 | \begin{texlist} 466 | \cite{paper0,paper1,*paper2,*paper3} 467 | \end{texlist} 468 | 469 | 其中*符号表示将paper2,paper3与paper1构成集合打印且标注只有一个标签,如果paper0标签为[1],那么paper1,paper2,paper3构成的集合的标签为[2]。 470 | 471 | 基于biblatex的参考文献生成方法,支持类似的机制,但命令略有不同,当启用mcite模块时,可以使用如下命令: 472 | 473 | \begin{texlist} 474 | \mcite{paper0,set1,*paper1,*paper2,*paper3} 475 | \end{texlist} 476 | 477 | 其中:biblatex用一个set1显式的表明这是一个集合,其由后面跟着的带*号的key的文献构成。 478 | 需要注意的是,集合的著录格式由样式文件决定。 479 | 480 | 481 | 482 | \faq{bibtex 排序和名字前缀}{} 483 | 484 | 参考文献的排序一般由参考文献样式决定。即: 485 | 486 | 对于传统的基于bibtex参考文献生成方法,排序由bst决定。 487 | 488 | 对于使用biblatex的参考文献生成方法,排序由biblatex的样式决定。 489 | 490 | 名字的前缀在排序中扮演的角色由这些参考文献样式设定。 491 | 492 | 493 | 494 | 495 | \faq{引文的排序及压缩}{} 496 | 497 | 当在同一处引用多篇文献时,可能涉及到不同文献的排序,以及序号标签的压缩,比如[1,2,3,4]压缩成[1-4]。 498 | 499 | 传统的基于bibtex参考文献生成方法,排序和压缩取决于使用的宏包,常用的natbib宏包可以使用sort或者sort\&compress选项激活相应的排序或排序并压缩功能。 500 | 501 | 基于biblatex的参考文献生成方法,文献表的排序由sorting选项控制,而引用的标注标签中的排序则有sortcites选项控制,引用标注标签的压缩则由所采用的标注样式决定,类似numeric-comp这样带comp的biblatex 标准样式通常使用压缩方式。 502 | 503 | 504 | 505 | \faq{引文列表(文献表)排序}{} 506 | 507 | 传统的基于bibtex参考文献生成方法,排序取决于bst,一般模板都有指定的bst,用户无需调整。但使用thebibliography环境直接写文献表的用户可能会遇到文献表排序的问题,因为bibtex只支持自己生成内容的排序,因此用户只能手动调整。 508 | 509 | 基于biblatex的参考文献生成方法,引文列表排序,由sorting选项控制,一般情况下,各个参考文献样式做了默认设置,无需调整。 510 | 511 | 512 | 513 | \faq{在章节标题中引用文献并加入到目录导致“unsrt”规则失效}{} 514 | 515 | 使用unsrt规则时,文献表中的文献时按文献在正文中的引用顺序排序的,但是当引用出现在章节标题中,并且引入到目录中时,引用在正文中的顺序被改变了,文献的排序顺序不再是正文中的顺序,而是包含了目录后的顺序。 516 | 517 | 传统的基于bibtex参考文献生成方法,可以采用手动方法解决,当按常规的编译方法编译文档稳定后,采取如下步骤: 518 | 519 | (a) 删除aux,toc,lof,lot文件 520 | 521 | (b) 运行latex 522 | 523 | (c) 最后一次运行bibtex 524 | 525 | (d) 多运行几次latex直至文档稳定 526 | 527 | 如果不想手动处理,也可以使用notoccite宏包。 528 | 529 | 基于biblatex的参考文献生成方法,顺序编码类的样式能使用“unsrt”规则,包括numeric,numeric-comp,以及对应传统unsrt的bst文件的样式trad-unsrt等等。biblatex不存在目录导致unsrt规则失效的问题,只要使用了sorting=none选项,biblatex就能正确处理好顺序。 530 | 比如: 531 | 532 | \begin{texlist} 533 | \documentclass[twoside]{article} 534 | %\usepackage[backend=biber,style=trad-unsrt]{biblatex}% 535 | \usepackage[backend=biber,style=numeric,sorting=none]{biblatex}% 536 | %\usepackage[backend=biber,style=gb7714-2015]{biblatex}% 537 | \usepackage{filecontents} 538 | \begin{filecontents}{\jobname.bib} 539 | @inbook{IEEEexample:repeatedauthortwo, 540 | author = "W. Dai and H. V. Pham and O. Milenkovic", 541 | title = "comparative study of quantized compressive sensing schemes", 542 | booktitle = 543 | "IEEE Information Theory Workshop on Networking and Information Theory", 544 | year = "2009" 545 | } 546 | 547 | @thesis{IEEEexample:masterstype, 548 | author = "A. Karnik", 549 | title = "Performance of {TCP} Congestion Control with Rate 550 | Feedback: {TCP/ABR} and Rate Adaptive {TCP/IP}", 551 | institution = "Indian Institute of Science", 552 | type = "M. Eng. thesis", 553 | location = "Bangalore, India", 554 | year = "1999-01" 555 | } 556 | 557 | @ARTICLE{bernanke1989agency, 558 | AUTHOR = {Bernanke, Ben and Gertler, Mark}, 559 | PUBLISHER = {JSTOR}, 560 | DATE = {1989}, 561 | JOURNALTITLE = {The American Economic Review}, 562 | shortjournal={AER}, 563 | KEYWORDS = {bernanke1989agency}, 564 | PAGES = {14--31}, 565 | TITLE = {Agency costs, net worth, and business fluctuations}, 566 | } 567 | \end{filecontents} 568 | \addbibresource{\jobname.bib} 569 | 570 | \begin{document} 571 | \tableofcontents 572 | 573 | \section{one} 574 | ref: \cite{bernanke1989agency} 575 | 576 | \section{two\cite{IEEEexample:masterstype}} 577 | 578 | \section{three} 579 | ref:\cite{IEEEexample:repeatedauthortwo} 580 | 581 | \printbibliography 582 | \end{document} 583 | \end{texlist} 584 | 585 | 586 | \faq{如何将参考文献条目引入到正文中?}{} 587 | 588 | 理工科类论文很少用。人文类的期刊和出版物可能会有这样的需求,有时需要将引用文献的整个条目放入正文或者正文的脚注中。 589 | 590 | 传统的基于bibtex参考文献生成方法中,可以参考使用bibentry、inlinebib、jurabib等宏包,配合使用的bst样式文件,将文献条目放入正文。 591 | 而要把文献放入脚注可以使用footbib、inlinebib、jurabib等宏包。 592 | 593 | 基于biblatex的参考文献生成方法,可以把文献表(或者说详细的文献信息)放到文档的任何位置,包括正文中、文后、页脚处、边注处等等位置。这些要求一般由相应的文献样式来实现。比如: 594 | 595 | \begin{texlist} 596 | \documentclass[twoside]{article} 597 | \usepackage[backend=biber,citestyle=verbose-note,bibstyle=verbose]{biblatex}%alphabetic 598 | \usepackage{filecontents} 599 | \begin{filecontents}{\jobname.bib} 600 | @ARTICLE{bernanke1989agency, 601 | AUTHOR = {Bernanke, Ben and Gertler, Mark}, 602 | PUBLISHER = {JSTOR}, 603 | DATE = {1989}, 604 | JOURNALTITLE = {The American Economic Review}, 605 | shortjournal={AER}, 606 | KEYWORDS = {bernanke1989agency}, 607 | PAGES = {14--31}, 608 | TITLE = {Agency costs, net worth, and business fluctuations}, 609 | } 610 | \end{filecontents} 611 | \addbibresource{\jobname.bib} 612 | 613 | \begin{document} 614 | \section{references of verbose-note style} 615 | 616 | first time: \footnote{\cite{bernanke1989agency}} 617 | second time:\footnote{\cite{bernanke1989agency}} 618 | 619 | \end{document} 620 | \end{texlist} 621 | 622 | 其中,标注样式verbose-note实现了在脚注中给出完整参考文献信息的方法,而如果将其换成verbose,那么将在正文中引入完整的文献信息。 623 | 624 | 625 | \faq{如何将参考文献引入到目录中?}{} 626 | 627 | 传统的基于bibtex的参考文献生成方法,可以使用tocbibind宏包进行控制,或者使用addcontentsline 命令手动加入。 628 | 629 | 基于biblatex的参考文献生成方法,可以使用printbibliography命令的选项来设定: 630 | 631 | \begin{texlist} 632 | \printbibliography[heading=bibliography] %不加入目录 633 | \printbibliography[heading=bibintoc] %加入目录 634 | \end{texlist} 635 | 636 | 637 | 638 | \faq{参考文献中的数字编号(标签)格式}{} 639 | 640 | 传统的基于bibtex的参考文献生成方法,参考文献表中的数字标签格式是由 \verb|\@biblabel| 控制的,可以通过重定义该命令来修改格式。比如将数字修改为左对齐: 641 | \begin{texlist} 642 | \makeatletter 643 | \renewcommand\@biblabel[1]{[#1]\hfill} 644 | \makeatother 645 | \end{texlist} 646 | 647 | 基于biblatex的参考文献生成方法,文献表中的数字标签格式,通常由参考文献样式决定。如果需要手动调整,可以采用修改域格式的方法,比如: 648 | \begin{texlist} 649 | \DeclareFieldFormat{labelnumberwidth}{\ttfamily\mkbibbrackets{#1}\hfill} 650 | \end{texlist} 651 | 其中\#1是标签数字,ttfamily 设置了标签的字族,mkbibbrackets 设置用方括号包围数字,hfill 设置左对齐。 652 | 653 | 654 | 655 | \faq{参考文献编号如何左对齐,右对齐?}{} 656 | 657 | 基于biblatex的参考文献生成方法,默认情况下使用list环境来构造文献表,因此文献的数字编号标签是右对齐的。但可以通过对标签数字域格式的修改进行调整,比如: 658 | \begin{texlist} 659 | \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}\hfill} 660 | \end{texlist} 661 | 其中将带方括号的数字标签设置左对齐。 662 | 需要注意:通常标签的格式是由参考文献样式决定的,用户一般不需要做修改。 663 | 664 | 665 | 666 | 667 | \faq{如何控制参考文献表中文献作者的数量?}{} 668 | 669 | 传统的基于bibtex的参考文献生成方法,需要修改样式,即修改bst文件。 670 | 671 | 基于biblatex的参考文献生成方法,可以通过设置宏包选项来实现,maxbibnames=3设置最多出现的作者数为3,minbibnames=3设置当作者数超过maxbibnames值时,数量需减少至minbibnames。 672 | 673 | 674 | 675 | 676 | 677 | \faq{如何减少参考文献条目行间距}{} 678 | 679 | 传统基于bibtex的参考文献生成方法,文献条目间距为 \cs{itemsep},默认值4.5pt plus 2pt minus 680 | 1pt,可通过指令 |\addtolength{\itemsep}{距离}| 调整。 681 | 当使用natbib包时,也可以利用设置间距\verb|\bibsep|来调整。 682 | 683 | 基于biblatex的参考文献生成方法,由\verb|\bibitemsep| 控制各条目的垂直间距,此外还有 684 | \verb|\bibnamesep|,\verb|\bibinitsep| 用于控制插入在两条姓名不同的条目之间的垂直间距和插入在两条首字母不同的条目之间的垂直间距。三个尺寸遵守\verb|\addvspace| 的规则所得到的垂直间距取为三个间距中的最大值。 685 | 686 | 687 | \faq{参考文献列表行距如何设置?}{} 688 | 689 | 一般情况下,参考文献列表的行距与正文是一致的。由于文献表本质上与正文是一致的,因此所有正文中设置行距的方法均对其有效,而且可以将这些设置用编组局部化,避免影响文档的其它内容。关于各条目的垂直间距问题见前面的问题“如何减少参考文献条目行间距”。 690 | 691 | 692 | 693 | 694 | \faq{从文献表到引用标注的反向超链接}{} 695 | 696 | 传统的基于bibtex的参考文献生成方法,要使用反向超链接,可以使用backref或citeref宏包,其中backref是hyperref宏集的一部分,因此兼容性可能更好。 697 | 698 | 而基于biblatex的参考文献生成方法,只要在加载biblatex时,使用backref=true选项,那么就能使用反向超链接。 699 | 700 | 701 | \faq{BibTeX参考文献中的URL和DOI}{} 702 | 703 | 传统的基于bibtex的参考文献生成方法,调用url或者xurl宏包即可正常使用url,也可以看看href宏包。对于doi则可以使用doi宏包。 704 | 705 | 基于biblatex的参考文献生成方法,由于biblatex自动载入url宏包,并利用biburlnumpenalty、biburlucpenalty、biburllcpenalty 三个计数器的值来控制url在数字/大写字母/小写字母处进行断行。计数器取值大于等于0但小于10000,等于0表示不断行。而是否在文献表中输出url由宏包选项url控制,url的格式则由所选样式中设置的域格式控制,url的字体由url宏包的字体控制命令设置。biblatex 中 doi格式与url格式相同。 706 | 707 | 708 | 709 | \faq{使用超链接,如何去除颜色边框?}{} 710 | 711 | 直接在引用 hyperref 宏包的时候使用以下命令之一 712 | 713 | \begin{texlist} 714 | \usepackage[hidelinks]{hyperref} 715 | \usepackage[colorlinks]{hyperref} 716 | \end{texlist} 717 | 718 | 第一种方法是隐藏链接,即隐藏颜色和边框。 719 | 第二种方法是用不同颜色来替换默认的边框强调超链接的方式,但是这种方法会使得链接具有不同的颜色。如果需要设置各种链接的颜色可以参考 720 | hyprref 721 | 的说明文档,值得庆幸的是,该宏包已经有了一个 722 | \href{https://github.com/latexstudio/LaTeXPackages-CN/blob/master/hyperref/hyperref-zh-cn.pdf}{中文翻译版}。 723 | 724 | 725 | 726 | \faq{参考文献列表的字体字号如何设置?}{} 727 | 728 | 传统的基于bibtex的参考文献生成方法,有两种方法,一是直接加命令,比如: 729 | 730 | \begin{texlist} 731 | { 732 | \small 733 | \bibliography{bibfile} 734 | 735 | } 736 | \end{texlist} 737 | 738 | 二是使用natbib宏包,比如: 739 | 740 | \begin{texlist} 741 | \def\bibfont{\small} 742 | \end{texlist} 743 | 744 | 基于biblatex的参考文献生成方法,字体字号由命令bibfont控制,重定义该命令即做出设置,比如: 745 | 746 | \begin{texlist} 747 | \renewcommand{\bibfont}{\fangsong\zihao{6}} 748 | \end{texlist} 749 | 750 | 其中设置参考文献表内容的默认字体为仿宋,字号为6. 751 | 752 | 753 | 754 | \faq{基于bibtex的方法和基于biblatex的方法各有哪些特点和优点?}{} 755 | 756 | 基于bibtex的方法和基于biblatex的方法都是成熟的latex的参考文献生成方法,两者各有特点,要了解最好的方法是去看作者给出的资料,比如btxdoc和biblatex。当然前辈们给出意见也可以参考,下面综合一下tex exchange上各位大佬说法。 757 | 758 | 首先厘清一下术语。bibtex有两种意思,一种是BibTeX格式,即参考文献数据库bib文件的格式。另一种是处理参考文献数据的程序bibtex。其中BibTeX格式由于bibtex 程序而得名。由于biblatex也支持bibtex格式,因此默认情况下我们讨论的bibtex通常是bibtex 程序。因此比较两种方法,其实是对bibtex程序和biblatex宏包使用的biber程序,以及常与bibtex程序配合使用的natbib宏包与biblatex宏包进行比较: 759 | 760 | 761 | natbib是长期维护的latex宏包,使用广泛,稳定可靠。具有如下优缺点: 762 | \begin{itemize} 763 | \item 可以配合很多期刊和出版商开发的bst样式使用 764 | 765 | \item natbib作者提供的makebst工具可以用于bst样式开发 766 | 767 | \item 生产的参考文献列表代码可以直接拷贝进文档使用 768 | 769 | \item 由于依赖于bibtex,使用bst文件,其编程语言学习困难 770 | 771 | \item 引用标准主要包括作者年制和数字顺序编码制缺乏人文社科类文献常用的作者标题制或者脚注样式 772 | 773 | \item 文档中打印多各文献表需要使用其它宏包 774 | 775 | \item 由于依赖于bibtex,因此也继承了bibtex的所有缺点 776 | \end{itemize} 777 | 778 | 当要提交的文档需要使用给定bst时或者当有要求使用natbib时可以使用该宏包。 779 | 780 | biblatex则是包含biber程序的一个大型宏包,其优缺点有: 781 | \begin{itemize} 782 | \item 包含人文社科类常用的样式 783 | 784 | \item 支持更多更广的条目类型和域 785 | 786 | \item 更便捷的参考文献格式控制 787 | 788 | \item 提供了覆盖natbib的功能 789 | 790 | \item 所有的样式都是有tex宏控制容易学习和修改 791 | 792 | \item 多文献表,分类筛选非常容易 793 | 794 | \item 但一些期刊和出版商可能不接收使用biblatex的文档 795 | \end{itemize} 796 | 797 | bibtex的优缺点: 798 | 799 | \begin{itemize} 800 | \item 稳定且使用广泛 801 | 802 | \item 但修改样式困难,因为需要学习一门不同于tex的语言 803 | 804 | \item 能支持utf-8编码的bib文件,但不支持非ASCII字符的排序 805 | \end{itemize} 806 | 807 | biber的优缺点: 808 | \begin{itemize} 809 | \item 能处理bib文件中更多样的条目类型和域 810 | 811 | \item 可以处理utf-8编码的bib文件,也支持unicode字符的排序,更支持本地语言的排序调整,比如中文的按笔画数排序等 812 | 813 | \item 支持处bibtex格式外的更多格式的文献数据库文件 814 | 815 | \item 支持远程的数据库 816 | 817 | \item 支持其他格式的文献数据的输出 818 | 819 | \item 完全的unicode支持 820 | 821 | \item 可定制的排序机制 822 | 823 | \item 自动的姓名和姓名列表歧义处理 824 | 825 | \item 可定制的数据继承规则 826 | 827 | \item 自动的编码转换 828 | 829 | \item 非常灵活的数据映射(动态处理) 830 | 831 | \item 但只能与biblatex配合使用 832 | \end{itemize} 833 | 834 | 835 | 836 | 837 | \faq{要从基于bibtex的方法转换到基于biblatex的方法,需要做哪些改变?}{} 838 | 839 | \begin{enumerate} 840 | 841 | \item 源文档中的命令需要改变,见前面的第一个问题。 842 | 843 | \item bib文件一般不用改变,biblatex完全支持bibtex格式的bib文件。但如果需要应用一些biblatex特有的功能,可以做一些改动,比如:多语言处理是的langid域,比如列表形式的域比如出版地列表中各个出版地之间用and连接,比如使用date代替year,month,day,比如新的域如subtitle,titleaddon,maintitle,editortype等,比如使用bookauthor代替会议文件的editor等。 844 | 845 | \item 编译命令需要改变从bibtex转换到biber,见前面的第一个问题。但如果使用latexmk编译,那么用户操作无任何变化。 846 | \end{enumerate} 847 | 848 | 849 | 850 | 851 | \faq{常用的biblatex参考文献样式}{} 852 | 853 | biblatex除了可以使用自带的标准样式外,还可以应用其他作者提供的第三方样式,比如国外的APA,MLA,国内的GB7714-2015等。这里以表格形式介绍一些常用的样式: 854 | 855 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 856 | \begin{table}[!htb] 857 | \centering 858 | \caption{常用的biblatex文献样式}\label{tab:styles:blx} 859 | \footnotesize 860 | \begin{tabular}{p{2cm}p{3cm}p{3cm}p{6cm}} 861 | \hline 862 | 样式名 & 对应的bibtex样式 & 作者介绍 & 样式说明 \\ \hline 863 | trad-plain & plain & MarcoDaniel and MoritzWemheuer,后者是biblatex维护者之一 & 将引文按字母顺序排序,比较次序为作者姓氏、出版年份和题名,如果不能顺序,将以在正文中的引用顺序为准。 \\ 864 | trad-unsrt & unsrt & MarcoDaniel and MoritzWemheuer & 按照在正文中引用文献的先后顺序排列文献,其排版格式与trad-plain基本相同 \\ 865 | trad-alpha & alpha & MarcoDaniel and MoritzWemheuer & 用文献的作者姓氏前三个字母加出版年份的后两位数作为文献序号,如果出现相同的序号,则会根据排序结果在序号后追加字母以示区别,排序方法和排版格式与trad-plain相同 \\ 866 | trad-abbrv & abbrv & MarcoDaniel and MoritzWemheuer & 将文献中作者名和月份名的拼写改为缩写, 显得文献信息紧凑简洁, 其排序方法和排版格式与trad-plain相同 \\ 867 | ieee & IEEEtran & Joseph Wright,biblatex 维护者之一 & 国际电气电子工程师协会IEEE期刊文献格式 \\ 868 | apa & apalike & Philip Kime,biblatex 作者之一 & American Psychological Association 的文献格式 \\ 869 | Chicago & Chicago & David Fussner & for the Chicago Manual of Style \\ 870 | iso-numeric & & Michal Hoftich & ISO690 international standard numeric system \\ 871 | iso-iso-authoryear & & Michal Hoftich & ISO690 international standard nameanddate system,so-called Harvard style \\ 872 | gb7714-2015 & gbt7714-unsrt.bst by zepinglee & hushidong & 中文文献著录标准 GB/T 7714-2015 顺序编码制 \\ 873 | gb7714-2015ay & gbt7714-plain.bst by zepinglee & hushidong & 中文文献著录标准 GB/T 7714-2015 著者年份制 \\ 874 | caspervector & & Casper vector & 一种中文文献格式 \\ 875 | nature & & Joseph Wright & for Nature \\ 876 | science & & Joseph Wright & for Science \\ 877 | chem-acs & & Joseph Wright & covers most American Chemistry Society journals \\ 878 | chem-angew & & Joseph Wright & covers Angewandte Chemie Chemistry–A European Journal. \\ 879 | chem-biochem & & Joseph Wright & covers Biochemistry and asmallnumber of other American Chemistry Society journals \\ 880 | chem-rsc & & Joseph Wright & covers all Royal Society of Chemistry journals \\ 881 | phys & & Joseph Wright & for AIP and APS \\ 882 | nejm & & MarcoDaniel & for New England Journal of Medicine \\ 883 | mla & & James Clawson & for Modern Language Association \\ 884 | authortitle-dw & & Dominik Waßenhoven & for Humanities \\ 885 | footnote-dw & & Dominik Waßenhoven & for Humanities \\ \hline 886 | \end{tabular} 887 | \end{table}% 888 | 889 | 890 | \faq{更换biblatex参考文献样式后为什么编译出错?}{} 891 | 892 | 基于biblatex的参考文献生成方法,由于样式文件的定制性,每个样式使用了定制了一些不同的内容,比如选项、域等等,可能导致相互间的不兼容,因此当出现错误时,清除一下旧的辅助文件,再次编译即可。 893 | 894 | 895 | \faq{基于Plain TeX的BibTeX的使用}{} 896 | 897 | 这个问题没有遇到过,不懂。 898 | 899 | 900 | 901 | 902 | \faq{BibTeX中过长的字符串}{} 903 | 904 | 这个问题的真正需求不明确。没有遇到过。 905 | 906 | 907 | 908 | 909 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/dev.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{开发篇-含LaTeX3} 4 | 5 | 介绍宏开发技巧,宏包和模板类开发的常见问题。 6 | 7 | 8 | \faq{在阅读已有的宏包或者文类时,遇到未知的命令应如何处理}{} 9 | 10 | 可以参照胡伟的《LaTeX2e文类和宏包学习手册》中的第四章-命令集注。 11 | 12 | 13 | \faq{文档类中键值对的实现}{} 14 | 15 | 使用 xkeyval 宏包。 16 | 该宏包主要定义了以下四个命令 17 | \begin{itemize} 18 | \item Ordinary keys 19 | 20 | 最基础的键值对定义方式。说明文档中,这部分主要介绍的是 xkeyval 定义出来的宏的参数和命令。 21 | 22 | \item Command keys 23 | 24 | 用于定义存放数据的宏,如美赛模板中运用了该命令来存放参赛队伍编号。 25 | 26 | \item Choice keys 27 | 28 | 用于定义一个具有选择性的宏,例如以下宏 29 | \begin{texlist} 30 | \define@choicekey{HTNotes.cls}{cvcolor}% 31 | [\val\ar]{green,orange,violet,blue}[blue]{ 32 | \ifcase\ar\relax 33 | \definecolor{themecolor}{HTML}{92D14F} 34 | \definecolor{cvtext}{HTML}{92909B} 35 | \or 36 | \definecolor{themecolor}{RGB}{230,140,20} 37 | \definecolor{cvtext}{RGB}{100,100,100} 38 | \or 39 | \definecolor{themecolor}{RGB}{178,10,142} 40 | \definecolor{cvtext}{RGB}{100,100,100} 41 | \else 42 | \definecolor{themecolor}{RGB}{0,164,215} 43 | \definecolor{cvtext}{RGB}{100,100,100} 44 | \fi 45 | } 46 | \end{texlist} 47 | 该宏实现的是cvcolor的选择性,可以选择 green, orange, violet, blue 等参数,且 blue 为默认参数。 48 | 49 | \item Boolean keys 50 | 51 | 用于定义布尔宏,用于设置开关代码。美赛模板中大部分使用的是该宏。 52 | \end{itemize} 53 | 54 | 具体用法请参考其说明文档。 55 | 56 | 使用了 xkeyval 后,如何进行参数传递之类的呢? 57 | \begin{texlist} 58 | \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{book}} 59 | \ProcessOptionsX\relax 60 | \LoadClass[twoside,11pt]{book} 61 | \end{texlist} 62 | 63 | 那么,如何定义默认参数呢? 64 | \begin{texlist} 65 | \ExecuteOptionsX{ 66 | cvcolor = {blue}, 67 | ... 68 | } 69 | \end{texlist} 70 | 71 | 如何设置接口呢? 72 | \begin{texlist} 73 | \newcommand{\HTset}[1]{\setkeys{HTNotes.cls}{#1}} 74 | \end{texlist} 75 | 76 | 如何检测宏是否有内容呢?并依次为基础设置开关命令? 77 | \begin{texlist} 78 | % 宏定义为 79 | % \define@cmdkey{HTNotes.cls}[Book@]{Writer} 80 | \ifdefempty{\Book@Writer}{\@author}{\Book@Writer} 81 | \end{texlist} 82 | 该命令实现的是检测 \verb|\Book@Writer| 宏是否有内容,如果有则使用其存储的内容,无则使用 \verb|\@author| 存储的参数。 83 | 84 | 用 xkeyval 提供的键值对实现方式,基本不会出现宏包冲突的问题,因为其前缀是由其特定的包含方式的,前提是选取适当。 85 | 86 | \faq{有没有 cls 文件开发的相关教程文档}{} 87 | 88 | 很遗憾,没有。但有两个答案或许能够帮助用户进行 cls 的开发。见以下参考文献。 89 | 90 | \begin{reference} 91 | \item \href{https://www.zhihu.com/question/27679135/answer/37610214}{开发维护一个 TeX 宏包是怎样的体验?} 92 | \item \href{https://www.zhihu.com/question/27017364/answer/34932199}{开发一个 LaTeX 宏包需要多少知识?} 93 | \end{reference} -------------------------------------------------------------------------------- /FAQ-Old/source/include/doc.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{文档编辑} 4 | 5 | 6 | \faq{\LaTeXTeX{} 教程}{latex-tex-tutorial} 7 | lshort-zh 是一本比较薄的针对中文用户的 \LaTeX{} 入门教程,该教程已在发行版中,用户可以在命令行中执行 8 | \begin{shcode} 9 | texdoc lshort-zh 10 | \end{shcode} 11 | 来查阅。 \LaTeX wikibook 是 12 | % \href{https://www.latex-project.org/help/books/}{https://www.latex-project.org/} 13 | \url{https://www.latex-project.org/help/books/} 中列出的 \TeX{} and \LaTeX{} Books 之一,用户可访问 14 | \url{https://en.wikibooks.org/wiki/LaTeX} 进行查阅。 15 | 除此之外,用户还可以购买胡伟、刘海洋等编著书籍,这里不再赘述。 16 | 17 | 18 | \faq{关于 \LaTeX{} 的书籍}{latex-books} 19 | \begin{itemize} 20 | \item \LaTeX{} 入门,刘海洋, 电子工业出版社; 21 | \item \LaTeX{2$\varepsilon$} 完全学习手册(第 2 版),胡伟,清华大学出版社; 22 | \item \LaTeX{} 入门与提高(第二版) ,陈志杰等,高等教育出版社(注:此书出版逾十年,部分内容已经过时); 23 | \item \LaTeX{} Beginner's Guide, Stefan Kottwit, Packt Publishing. 24 | \end{itemize} 25 | 26 | 27 | \faq{\LaTeX{} 支持中文有哪些方式,如何选择}{latex-chinese-how-to-choose} 28 | 历史上,\LaTeX{} 支持中文的方式包括中西文点点通、天元、CCT、CJK 等。目前流行的方式是使用 \CTeX{} 宏集,详情请见 29 | \url{https://mirrors.tuna.tsinghua.edu.cn/CTAN/language/chinese/ctex/ctex.pdf} 30 | 31 | 32 | %\faq{关于教程,用户比较容易获取的有两个:lshort 和 \LaTeX{} wikibook。}{lshort-latex-wikibook} 33 | 34 | 35 | % \faq{关于\TeX{}, Plain \TeX{} 及相关书籍}{tex-plain-tex-books} 36 | 37 | 38 | % \faq{关于类型的书籍}{kind-related-books} 39 | 40 | 41 | % \faq{关于其他TeX相关事项的书籍}{other-tex-books} 42 | 43 | 44 | \faq{工具包文档}{package-document} 45 | 46 | 每个工具包自带的文档是最全面最权威的文档,一般可以通过 texdoc命令+工具包名的方式 47 | 找到相应工具包的文档。一些常用的工具包有不少爱好者写了自己使用过程中的经验,也可 48 | 以找来看看。 49 | 50 | 51 | \faq{可免费提供的 \LaTeXTeX{} 书籍}{free-latex-tex-books} 52 | 53 | \begin{itemize} 54 | \item \LaTeX{} 常用数学符号 55 | \item \LaTeX{} Note 包太雷 56 | \item 一份不太简短的 \LaTeX{2e} 介绍 57 | \item \TeX{} Live 指南 2018 58 | \end{itemize} 59 | 60 | 61 | \faq{获取在线帮助}{gain-online-help} 62 | 63 | 一般资料可以去 wikibook 上面查询,网址是 64 | \url{https://en.wikibooks.org/wiki/LaTeX}。 65 | 提问可以先到 \LaTeX{} Stack Exchange 看看,网址是 66 | \url{https://tex.stackexchange.com/}。 67 | 68 | 69 | \faq{如何提出问题}{how-to-ask-questions} 70 | 71 | 在问问题的时候,要先自己尝试,先问自己如何解决,清晰有效的组织自己想问的问题,究竟想表达什么?没有人会为你不知所谓的问题 72 | 浪费时间,就算有人愿意理你,也会因为你的问题不清晰甚至完全无效的问题而伤透脑筋,为了自己,也为了别人,建议大家可以参考下 73 | \href{https://www.jianshu.com/p/f96aa7f7bf59}{《提问的艺术》}这篇文字,清晰有效的提出自己的问题。迷你范例(MWE) 74 | 是为别人帮助解决你的问题提供最大化便利的有效手段之一。 75 | 76 | 最后,需要强调的是,我们愿意在我们的能力范围内为你的问题进行讨论,尽全力帮你解决问题,但这并不是我们的义务,应当尊重别人 77 | 拒绝提供帮助的权利。另外,在 QQ 群提出问题所使用的代码最好代码粘贴的网站,如 78 | \href{https://paste.ubuntu.com/}{Ubuntu Pastebin} 79 | 或 80 | \href{https://pastebin.com/}{Pastebin} 81 | 暂存,避免刷屏,影响效率。 82 | 83 | 84 | \faq{如何制作一个迷你范例(MWE)}{how-to-make-MWE} 85 | 迷你范例即最小工作示例,英文简称 MWE,以下内容摘自刘海洋的《\LaTeX{} 入门》。 86 | 87 | 最小工作示例就是一个精简到最小长度的、可以说明所需问题的 \TeX{} 源文件。一方面,最小工作示例应该是一个完整的、可以直接 88 | 编译的文件,利用示例可以方便地再现遇到的问题,不需要添加额外的代码;另一方面,示例文件应该尽可能地短小(一个典型的 MWE 89 | 一般不超过 10 行),不包含额外的文件,也没有与问题无关的文字代码干扰相对错误的分析。完整的 MWE 应当包括如下信息: 90 | \begin{itemize} 91 | \item 编译环境,至少应当包括使用的操作系统(如 Windows,macOS,Ubuntu)、安装的发行版(如 \CTeX{},\TeX{} Liv 92 | e,\MacTeX{} )和使用的集成开发环境(IDE)或编辑器(如 WinEdit,TeXstudio,TeXshop) 93 | \item 完整的编译命令,如使用的排版引擎(如 \LaTeX{},\XeLaTeX{}) 94 | \item 源文件使用的编码,不同的编辑器的默认编码设置不同,没有事先声明可能会造成复现 bug 困难或出现其他 bug 95 | \item 完整的代码,但应尽量删除与错误无关的部分,即保证代码可以直接运行的前提下,删除所有与错误部分无关的内容和信息, 96 | 足以重现出现的错误信息和问题即可。不要截图!使别人可以直接复制粘贴你的代码到编译器中,直接重现问题,而不是将时间浪费在 97 | 码字上 98 | \item 编译错误信息,或你发现与预期不符的 PDF 效果 99 | \item 如使用了模板,还需附上模板的相关信息,如下载链接和使用说明 100 | \end{itemize} 101 | 102 | 103 | \faq{学习如何撰写 \LaTeX{} 类及工具包}{learn-how-to-write-latex-and-tools} 104 | 105 | 可以用命令行使用 |texdoc| 查看 clsguide,dtxtut,macros2e;classes,source2e,The TeXBook;expl3,interface3, 106 | l3styleguide,source3(参考自\href{https://www.zhihu.com/question/27017364}{知乎})。以及《\LaTeX{2e} 107 | 文类和宏包学习手册》(胡伟,清华大学出版社)。 108 | 109 | 110 | % \faq{MetaFont 和 MetaPost 教程}{metafont-metapost-tutorial} 111 | 112 | 113 | % \faq{在线介绍:\LaTeX{}}{} 114 | 115 | 116 | % \faq{在线介绍:Plain \TeX{}}{} 117 | 118 | 119 | \faq{如何让参考文献满足国标GB7714-2015样式要求}{how-to-reference-GB} 120 | 121 | 有两种比较简单的方式。 122 | \begin{itemize} 123 | \item 利用 biblatex,一个典型示例如下 124 | \begin{texlist} 125 | \documentclass{ctexart} 126 | \usepackage[backend=biber,style=gb7714-2015]{biblatex} 127 | \addbibresource{bibfilename.bib} 128 | \begin{document} 129 | 引用文献\cite{bibkey1,bibkey2} 130 | \printbibliography 131 | \end{document} 132 | \end{texlist} 133 | \item 利用 BiB\TeX,一个典型示例如下 134 | \begin{texlist} 135 | \documentclass{ctexart} 136 | \usepackage{gbt7714} 137 | \begin{document} 138 | 引用文献\cite{bibkey1,bibkey2} 139 | \bibliography{bibfilename} 140 | \end{document} 141 | \end{texlist} 142 | \end{itemize} 143 | 144 | 145 | % \faq{专家邮件列表}{} 146 | 147 | 148 | % \faq{Pic\TeX{} 手册}{} 149 | 150 | 151 | % \faq{基于 \TeX{} 系统的教程}{} 152 | 153 | 154 | % \faq{排版教程}{} 155 | 156 | 157 | \faq{关于 \TeX{} 的 Wiki 书籍}{tex-wiki-books} 158 | 159 | \LaTeX{} wikibook 是 \url{https://www.latex-project.org/} 中列出的 \TeX{} and \LaTeX{} Books 之一,用户 160 | 可访问 \url{https://en.wikibooks.org/wiki/LaTeX} 进行查阅。 161 | 162 | \faq{有时英文单词不能自动断行该怎么办?}{hyphen} 163 | 164 | 如果 \LaTeX{} 遇到了很长的英文单词,仅在单词之间的位置断行无法生成宽度匀称的行时,就要考虑从单词 165 | 中间断开。对于绝大部分单词,\LaTeX{} 能够找到合适的断词位置,在断开的行尾加上连字符 |-|。如果一些 166 | 单词没能自动断词,我们可以在单词内手动使用 |\-| 命令指定断词的位置。 167 | 一个极端的例子是: 168 | 169 | \begin{texinlist} 170 | I think this is: su\-per\-cal\-i\-frag\-i\-lis\-tic\-ex\-pi\-al\-i\-do\-cious. 171 | \end{texinlist} 172 | 173 | \faq{如何找到\ldots{}符号:}{how-to-find-symbols} 174 | 175 | 在 \LaTeX{} 中插入符号主要有两种思路。一种方式是加载符号宏包,利用宏包提供的命令插入符号;而对于 \XeTeX{} 引擎,目前 176 | 使用的多为 Unicode 编码的字体,直接加载 Unicode 字体,插入 Unicode 符号也是一种很好的办法。下面分别介绍: 177 | \begin{itemize} 178 | \item 179 | 加载符号宏包:\emph{The Comprehensive LATEX Symbol List} 收录了上万文本或数学符号,在命令行中键入 180 | \begin{shcode} 181 | texdoc symbols-a4 182 | \end{shcode} 183 | 即可打开该文档。此外,\url{http://detexify.kirelabs.org/classify.html} 提供了手写识别前述文档中所有符号的功能, 184 | 十分便捷,它可直接符号所在宏包。在 macOS 下可以直接使用 detexify 的 app。另外 185 | \url{https://webdemo.myscript.com/views/main/math.html} 可将手写公式转化为 \LaTeX{} 或 MathML 代码 186 | 187 | \item 插入Unicode符号:可以从各种Unicode码表或字符映射表中找到所需要的符号,查出 188 | 其编码,加载支持该码位的字体,直接在编辑器中输入该符号即可。如果符号在源代码编 189 | 辑器中无法正常显示,还可以使用\LaTeX{}的 |symbol| 命令输入。|symbol| 命令的具体 190 | 用法是 191 | \begin{texlist} 192 | \symbol{<十进制编码>} 193 | \symbol{'<八进制编码>} 194 | \symbol{"<十六进制编码>} 195 | \symbol{`<字符形式(特殊符号须加转义符 \ )>} 196 | \end{texlist} 197 | 如 198 | \begin{texlist} 199 | \documentclass{ctexart} 200 | \begin{document} 201 | \symbol{61} 202 | \symbol{'75} 203 | \symbol{"3D} 204 | \end{document} 205 | \end{texlist} 206 | 均可编译出\( = \)。 207 | \end{itemize} 208 | 209 | % \faq{如何找到 FAQs}{} 210 | 211 | 212 | \faq{如何控制章节编号的深度}{how-to-control-section-depth} 213 | 214 | \LaTeX{} 标准文档类对章节划分了层级: 215 | \begin{itemize} 216 | \item 在 report/book 文档类里 part 为 $-1$,chapter 为 $0$,section 为 $1$, 217 | subsection为 $2$,subsubsection为 $3$,paragraph为 $4$,subparagraph为 $5$。 218 | \item 在 article 文档类里 part 为 $0$,section 为 $1$,依此类推。 219 | \end{itemize} 220 | 221 | secnumdepth 计数器控制章节编号的深度,如果章节的层级大于 secnumdepth,那么章节的 222 | 标题、在目录和页眉页脚的标题都不编号(照常生成目录和页眉页脚),章节计数器也不计 223 | 数。可以用 |setcounter| 命令设置 secnumdepth 为较大的数使得层级比较深的章节也编号, 224 | 如设置为4令 |paragraph| 也编号;或者设置一个较小的数以取消编号,如设置 225 | 为-1 令 |chapter| 不编号。后者是生成不编号的章节的一个妙招,免去了手动使 226 | 用 |addcontentsline| 和 |markboth| 的麻烦。secnumdepth 计数器在 article 文档类里 227 | 默认为3(subsubsection 一级);在 report 和 book 文档类里默认为2(subsection 一级)。 228 | 229 | 下面给出一个具体的例子: 230 | 231 | \begin{texlist} 232 | \documentclass{book} 233 | \setcounter{secnumdepth}{4} 234 | \begin{document} 235 | \part{Part} 236 | \chapter{Chapter} 237 | \section{Section} 238 | \subsection{Subsection} 239 | \subsubsection{Subsubsection} 240 | \paragraph{Paragraph} 241 | \end{document} 242 | \end{texlist} 243 | 244 | \faq{如何控制目录编号的深度}{} 245 | 246 | 控制目录页排版显示深度可以使用 |\setcounter{tocdepth}{*}|,|*| 表示你准备显示的深度。 247 | 248 | 249 | \faq{如何下载 arXiv 上面的 \TeX{} 源文件}{how-to-download-arxiv-tex} 250 | 先访问 arXiv 上面的文章,在右边找到 Downloads $\rightarrow$ Other formats,点击进入下载页,点击 Download source。 251 | 将文件下载到本地后,重命名文件,文件后缀名是 .tar.gz。接下来解压缩 .tar.gz 文件,即可获得 \TeX{} 源文件。 252 | 253 | 254 | \faq{Windows 系统下用 TeXstudio 打开中文编写的源文件遇到乱码怎么办}{windows-texstudio-chinese-GBK} 255 | 256 | 直接使用 TeXstudio将文件转码为 UTF-8。 257 | 这里我们默认文件的编码是 GBK。首先打开文件,在 TeXstudio 右下角找到 encoding 位置的内容, 258 | 有时系统显示为 ISO-8859-1。点击那里,进入 More encodings,在列表中点击 GBK,然后点击按钮 view with。 259 | 正常来讲,乱码应该都会消失。 接下来,继续进入 More encodings,在列表中点击 UTF-8,然后点击按钮 change to。 260 | 经过这些操作,源文件就重新变成了 UTF-8 编码。 261 | 262 | 263 | \faq{如何在listing抄录环境中显示公式}{how-to-listing-show-equations} 264 | 265 | 有时对抄录环境中的代码进行说明时,要用显示公式,这时只要进选项texcl设为true即可。 266 | 267 | \begin{texlist} 268 | \begin{lstlisting}[ 269 | numbers=left, 270 | upquote=true, 271 | basicstyle=\ttfamily, 272 | texcl=true, 273 | language=Python 274 | ] 275 | #Generates Graphs $G^{(12)} ---  G^{(17)}$ 276 | sGL6=['E@QW', 'EHQW', 'E@`w', 'E@]o', 'E@Rw', 'EAMw'] 277 | GL=[Graph(s) for s in sGL6] 278 | \end{lstlisting} 279 | \end{texlist} 280 | % 281 | % % \begin{figure} 282 | % % \centering 283 | % % \includegraphics{https://images-cdn.shimo.im/LttXT6sECbcak9Qi/image.png!thumbnail} 284 | % % \caption{图片} 285 | % % \end{figure} 286 | % 287 | 288 | 或者设置mathescape~选项为true。 289 | 290 | \begin{texlist} 291 | \begin{lstlisting}[mathescape=true] 292 | if foo 293 | list= { $S_1,S_2,S_3$ } 294 | \end{lstlisting} 295 | \end{texlist} 296 | 297 | 298 | % \faq{能不能介绍一下排版试卷的方法与技巧,比如选择题,密封线设置等。}{how-to-latex-papers} 299 | 300 | 301 | \faq{一个文档,如何在不同部分使用不同的页眉页脚}{how-to-set-different-geometry} 302 | 303 | 参考 geometry 宏包的自定义命令。比较常用的有如下四个命令 304 | \begin{texlist} 305 | \newgeometry{} 306 | \restoregeometry 307 | \savegeometry{} 308 | \loadgeometry{} 309 | \end{texlist} 310 | 具体可参见该宏包的说明文档。 311 | 312 | 313 | \faq{如何给中文文本加注音符号?}{how-to-pinyin} 314 | 315 | xpinyin 宏包。 316 | 317 | 318 | % \faq{在book类文档中边注用什么宏包?边注的宽度能调整吗?}{book-geometry} 319 | 320 | 321 | % \faq{如何使用ctex相关类或者宏包制定章节样式,目录样式?}{ctex-tableofcontents} 322 | 323 | 324 | % \faq{如何给章节标题,目录列表加盒子边框?}{} 325 | 326 | 327 | \faq{如何使用带圈数字?}{how-to-use-circle-number} 328 | 329 | 注:百分号后的内容在导言区使用。 330 | \begin{itemize} 331 | \item 有序列表 332 | \begin{texlist} 333 | % \usepackage{enumerate,pifont} 334 | \begin{enumerate}[label={\ding{\value*}},start=172] 335 | \item 第一 336 | \item 第二 337 | \end{enumerate} 338 | \end{texlist} 339 | \item 脚注中使用 340 | \begin{texlist} 341 | % \usepackage{pifont} 342 | % \RenewDocumentCommand{\thefootnote}{}{ 343 | % \ding{numexpr171+\value{footnote}} 344 | % } 345 | 346 | \footnote{text} 347 | \end{texlist} 348 | \end{itemize} 349 | 350 | 351 | \faq{如何改变列表标签样式,行距,缩进等各种相关间距?}{how-to-change-list-style} 352 | 353 | enumitem 宏包 354 | 355 | 356 | \faq{换行与换段的区别,有几种方式?}{change-line-paragraph} 357 | 358 | 换行是 |\\| 换段是 |\par|,或者空一行。 359 | 换行与分段最大的区别在于语义上是否形成一段完整的阐述、叙述,多读两遍你写的文字,如果你觉得问题没有叙述完,那么应该用换行, 360 | 反之则应该用分段。 361 | 362 | 363 | \faq{在使用较早版本的CTeX里面附带的WinEdt出现打不开UTF-8编码文档的情况,如何处理?}{early-version-ctex-winedit-utf8} 364 | 365 | 使用记事本之类文本编辑器打开,转换编码方式另存一份即可。有时候需要注意BOM问题,一般没啥问题。 366 | 367 | 368 | \faq{如何改变计数器样式为中文数字、罗马数字、阿拉伯数字或拉丁字母?}{how-to-change-listing-number} 369 | 370 | 可以通过重定义命令的方式修改默认的计数器样式,例如 371 | \begin{texinlist} 372 | \renewcommand{\thechapter}{\Roman{chapter}} 373 | \end{texinlist} 374 | 会将章序号计数器改为大写罗马数字计数形式。更多对应关系如下所示: 375 | 376 | \begin{table}[h] 377 | \centering 378 | \begin{tabular}{cc} 379 | |\arabic| & 阿拉伯数字 \\ 380 | |\alph| & 小写英文字母,数值应小于27 \\ 381 | |\Alph| & 大写英文字母,数值应小于27 \\ 382 | |\chinese| & 中文小写数字,需要调用\CTeX{}宏包 \\ 383 | |\roman| & 小写罗马数字 \\ 384 | |\Roman| & 大写罗马数字 \\ 385 | |\fnsymbol| & 脚注标识符,数值应小于10 386 | \end{tabular} 387 | \end{table} 388 | 389 | 详情可以参阅刘海洋、胡伟等编写的相应书籍,也可以查阅Wiki百科。 390 | 391 | 392 | \faq{列表环境 (enumerate/itemize/description)的条目间距太大了,怎么改小一些?}{how-to-change-listing-linespace} 393 | 394 | 可以使用 paralist 宏包,它提供了一系列压缩了行间距的列表。对应的环境名称分别是 compactenum/compactitem/compactdesc, 395 | 也可以使用 enumitem 宏包修改三个列表环境的格式。 396 | 397 | 398 | \faq{列表的条目项内容很短,可以让他们在一行内排版么?}{listing-short-oneline} 399 | 400 | 可以使用 paralist 宏包,这个宏包提供了 inparenum/inparitem/inpardesc 环境,可以在行内输出列表内容; 401 | 也可以带上 inline 选项使用 enumitem 宏包,可以使用带*形式的三个列表环境,即在行内输出列表内容。 402 | 403 | \faq{如何自定义一个列表环境}{} 404 | 405 | 实际上自定义列表环境可以用 list 环境来实现,这里给出一个比较复杂的例子,该例中定义了一个解列表,并且使用独立的计数器。 406 | \begin{texinlist} 407 | \documentclass{ctexart} 408 | \usepackage{ifthen} 409 | \newcounter{solutioncounter} 410 | \newenvironment{solution} 411 | { 412 | \vspace{\baselineskip} 413 | \noindent 414 | \begin{list} 415 | { 416 | \ifthenelse{\value{solutioncounter}>1}{(\arabic{solutioncounter})}{\textbf{解}:\ (\arabic{solutioncounter})} 417 | } 418 | { 419 | \usecounter{solutioncounter} 420 | \setlength{\labelwidth}{6em} 421 | \setlength{\labelsep}{0pt} 422 | \setlength{\leftmargin}{\labelwidth} 423 | \setlength{\rightmargin}{0em} 424 | \setlength{\parsep}{0ex} 425 | \setlength{\itemsep}{0ex} 426 | \setlength{\itemindent}{0em} 427 | \setlength{\listparindent}{0em} 428 | } 429 | } 430 | { 431 | \end{list} 432 | } 433 | 434 | \begin{document} 435 | \begin{solution} 436 | \item 第一题答案 437 | \item 第二题答案 438 | \item 第三题答案 439 | \end{solution} 440 | \end{document} 441 | \end{texinlist} 442 | 443 | \begin{reference} 444 | \item \url{http://troubleshooters.com/linux/lyx/ownlists.htm} 445 | \end{reference} 446 | 447 | \faq{enumerate宏包修改列表标签格式很方便,但是这个宏包和enumitem宏包冲突,有什么解决办法么?}{enumerate-fight-enumitem} 448 | 449 | 如果只是需要使用这种短标签表示方法,利用 \pkg{enumitem} 宏包同样能够做到,只需要带上shortlabels选项加载 \pkg{enumitem} 宏包即可。 450 | 同时,enumitem宏包提供了自定义短标签名称和格式的宏命令,你也可以自己定义一些有趣的标签形式。 451 | 452 | 453 | \faq{如何使用带圈数字作为 enumerate 列表的标签?}{circle-number-enumerate} 454 | 455 | \LaTeX{} 自带一个带圈字符的命令 |\textcircled|,不过,这个命令的排版效果非常差,几乎很少有人会直接使用。 456 | 带圈数字可以通过unicode字符实现,也可通过pifont宏包中|ding|命令实现(但是只能用到10以内的数字), 457 | 甚至可以通过tikz 自己绘制一个。使用带圈数字做enumerate的标签,可以通过 enumitem 宏包设置。 458 | 这里给出一个使用 unicode 字符实现带圈数字的方法,并将其应用于enumerate 的标签。 459 | 460 | \begin{texlist} 461 | \documentclass{article} 462 | \usepackage{xeCJK,xunicode,calc} 463 | \usepackage[shortlabels]{enumitem} 464 | \newcommand{\Cnum}[1]{% 465 | \ifnum #1<21 466 | \edef\a{\the\numexpr #1+9311} 467 | \else 468 | \ifnum #1<36 469 | \edef\a{\the\numexpr #1+12860} 470 | \else 471 | \ifnum #1<51 472 | \edef\a{\the\numexpr #1+12941} 473 | \else 474 | \PackageError{your package}{Number too large}{} 475 | \fi 476 | \fi 477 | \fi 478 | {\CJKfontspec{Noto Serif CJK SC}\fontspec{Noto Serif CJK SC}\symbol\a}} 479 | \SetEnumerateShortLabel{o}{\protect\Cnum{\arabic*}} 480 | \begin{document} 481 | \Cnum{12} \Cnum{32} \Cnum{46} 482 | 483 | \begin{enumerate}[o] 484 | \item The first item. 485 | \item The second item. 486 | \item The Third One. 487 | \end{enumerate} 488 | \end{document} 489 | \end{texlist} 490 | 491 | 492 | \faq{如何让列表横向排列?}{} 493 | 494 | 可以使用 \pkg{enumitem} 的 inline 选项,同时选项间的距离可通过 itemjoin 来控制。 495 | 496 | \begin{texlist} 497 | \documentclass{ctexart} 498 | \usepackage[inline]{enumitem} 499 | \begin{document} 500 | \begin{enumerate*}[itemjoin=\quad] 501 | \item A 502 | \item B 503 | \end{enumerate*} 504 | \end{document} 505 | \end{texlist} 506 | 507 | \faq{如何给目录中的章节都带上引导点来连接页码?}{tableofcontents-dotdotdot} 508 | 509 | 其实级别较高的章节结构,如book/report中的chapter和arcticle中的section,是不需要这种引导点来连接页码的,有这种需求 510 | 的多是受Microsoft Word的影响。如果一定要这种引导点,可以在导言区增加这样一段代码。 511 | \begin{texlist} 512 | \makeatletter 513 | \def\@bfdottedtocline#1#2#3#4#5{% 514 | \ifnum #1>\c@tocdepth \else 515 | \vskip \z@ \@plus.2\p@ 516 | {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip 517 | \parindent #2\relax\@afterindenttrue 518 | \interlinepenalty\@M 519 | \leavevmode \bfseries 520 | \@tempdima #3\relax 521 | \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip 522 | {#4}\normalfont\nobreak 523 | \leaders\hbox{$\m@th 524 | \mkern \@dotsep mu\hbox{.}\mkern \@dotsep 525 | mu$}\hfill 526 | \nobreak 527 | \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% 528 | \par}% 529 | \fi} 530 | \renewcommand*\l@section{\@bfdottedtocline{0}{0em}{1.5em}} 531 | \makeatother 532 | \end{texlist} 533 | 当然,最后一句应根据实际的文档类型来重定义 |\l@chapter| 或 |\l@section|。 534 | 535 | 也可以借助于 tocloft 宏包简单实现这一功能。 536 | \begin{texlist} 537 | \usepackage{tocloft} 538 | \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % article 的目录中,section也加点。 539 | % \renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % book/report 的目录中,chapter也加点。 540 | \end{texlist} 541 | 542 | 543 | % \faq{如何临时切换页面大小?}{} 544 | 545 | 546 | \faq{没有编号的章节标题如何添加到目录里?}{no-number-chapter-tableofcontents} 547 | 548 | 使用 |\addcontentsline{toc}{}{}|;举个例子: 549 | \begin{texlist} 550 | \section*{译者序}\addcontentsline{toc}{section}{译者序} 551 | \end{texlist} 552 | 这样在目录中译者序是没有编号的,对应等级是section,标题是译者序。参考:《lshort》目录章节。 553 | 554 | \faq{如何额外做一个另外一种语言的目录}{} 555 | 556 | 直接给一个例子,该例子由 TeX-SX 的 \href{https://tex.stackexchange.com/a/170963/79060}{回答} 修改而来。。 557 | \begin{texlist} 558 | \documentclass{ctexart} 559 | 560 | \makeatletter 561 | \newcommand\englishtableofcontents{% 562 | \if@twocolumn 563 | \@restonecoltrue\onecolumn 564 | \else 565 | \@restonecolfalse 566 | \fi 567 | {\def\contentsname{Contents}% 568 | \section*{% 569 | \contentsname 570 | \@mkboth{\MakeUppercase\contentsname} 571 | {\MakeUppercase\contentsname}% 572 | }}% 573 | \@starttoc{tec}% 574 | \if@restonecol\twocolumn\fi 575 | } 576 | \newcommand{\addetoc}[2]{% 577 | \addcontentsline{tec}{#1}{\protect\numberline{\csname the#1\endcsname}#2}% 578 | } 579 | \makeatother 580 | 581 | \begin{document} 582 | \tableofcontents 583 | \englishtableofcontents 584 | 585 | \section{介绍} 586 | \addetoc{section}{Introduction} 587 | 588 | \subsection{方法和材料} 589 | \addetoc{subsection}{Methods and materials} 590 | \end{document} 591 | \end{texlist} 592 | 593 | 594 | \faq{怎样定义“第几页/共几页”的页码样式?}{how-to-define-pagenumber} 595 | 596 | 可以调用末页标签宏包 lastpage,并将页码设置如下: 597 | \begin{texlist} 598 | 第 \thepage 页 / 共 \pageref{LastPage} 页 599 | \end{texlist} 600 | 601 | 如果不想调用这个宏包,还可以自己DIY,虽然ugly,但是可以达到目的 ):在文档末尾设置一个标签, 602 | 例如在 |\end{doucument}| 前加一句 |\label{AllPage}|,然后将页码设置为: 603 | \begin{texlist} 604 | 第 \thepage 页 / 共 \pageref{AllPage} 页 605 | \end{texlist} 606 | 607 | 608 | \faq{超链接如何断行?}{url-how-to-multilines} 609 | 610 | 先写 611 | \begin{texlist} 612 | \PassOptionsToPackage{hyphens}{url} 613 | \end{texlist} 614 | 615 | 再写 616 | \begin{texlist} 617 | \usepackage{hyperref} 618 | \end{texlist} 619 | 620 | 621 | \faq{如何在axmath转换代码到 \LaTeX ?}{how-to-axmath-exchange-to-latex} 622 | 623 | 点击下图中第10个按钮,或者键入Ctrl+Tab即可将数学公式转换为\LaTeX{}代码,复制即可。 624 | 625 | \includegraphics[width=0.9\textwidth]{../images/amxmath_texstudio} 626 | 627 | 628 | \faq{双栏文档中,如何可以让左边先写完,然后再切换到右边,而不是左右一样长?}{twocolumn-left-first} 629 | 630 | 如果是采用文档类 twocolumn 选项实现的双栏模式,正文的排版就是先将左边排完,再从右边开始排。而采用 631 | multicol 宏包的 muticols 环境则是左右两边底部对齐的。 632 | 633 | 634 | \faq{如何输入中文破折号?}{input-chinese---} 635 | 636 | 输入法输入咯,英文的破折号 --- 用于中文不合适。 637 | 638 | 639 | \faq{input和include有何区别?}{input-include-difference} 640 | 641 | \begin{itemize} 642 | \item \cs{include} 在读入文件之前会另起一页。\cs{input} 命令纯粹是把文件里的内容插入 643 | \item \cs{include} 不可用于导言区,而且导言区使用了 \cs{includeonly} 命令后, 644 | \cs{include} 仅会引入由 \cs{includeonly} 指定的文件。 645 | \item \cs{include} 引入的文件中,不可以再次使用 \cs{include} 命令。 646 | \end{itemize} 647 | 648 | 649 | \faq{subfiles有什么用?}{subfiles-usage} 650 | 651 | 详细功能可以查看此宏包自带的文档。编辑由一个主文档若干个子文档构成的多文档项目时使用此宏包会更方便。用户可以正常编译使用 652 | |\input| 导入子文档的主文档,也可以直接编译子文档本身,此时子文档使用跟主文档相同的导言区而成为完整的一份\TeX{}文档。 653 | 654 | 655 | % \faq{如何使用latexmk编译文档?}{} 656 | 657 | 658 | % \faq{定理环境要怎么使用?}{} 659 | 660 | 661 | % \faq{算法环境如何使用?}{} 662 | 663 | 664 | % \faq{在lstlisting环境中如何输出破折号?}{} 665 | 666 | 667 | % \faq{minted里面Tab键为什么会输出成\^{}\^{}T,如何解决?}{} 668 | 669 | 670 | % \faq{一段代码粘贴到TeXstudio里面就没有了缩进,如何解决?}{} 671 | 672 | 673 | % \faq{在\LaTeX{}或Tikz中,能否输入随机且字数随机可控的文字?}{} 674 | 675 | 676 | \faq{如何输入罗马数字等?}{how-to-input-roman-numbers} 677 | 678 | 一种方式是定义宏显示罗马数字,代码如下: 679 | \begin{texlist} 680 | \newcommand{\Myroman}[1]{\romannumeral #1} 681 | \newcommand{\MyRoman}[1]{\expandafter\@slowromancap\romannumeral #1@} 682 | \end{texlist} 683 | 正文中使用 684 | \begin{texlist} 685 | \MyRoman{3} \Myroman{5} 686 | \end{texlist} 687 | 688 | 另一种投机取巧的方式是你可以先定义一个counter,然后给这个counter的数值设置成需要表达的数值, 689 | 再用 |\Roman| 或 |\roman| 显示这个计数器。举例如下: 690 | \begin{texlist} 691 | \newcounter{romannum} 692 | \newcommand{\MyRoman}[1]{\setcounter{romannum}{#1}\Roman{romannum}} 693 | \newcommand{\Myroman}[1]{\setcounter{romannum}{#1}\roman{romannum}} 694 | \end{texlist} 695 | 使用方法相同。 696 | 697 | 698 | \faq{如何在等号中插入问号?}{how-to-input-.-in-questionmark} 699 | 700 | \begin{texlist} 701 | \stackrel{?}{=} 702 | \end{texlist} 703 | 704 | 705 | \faq{如何在插入的图片上标记引注?}{input-mark-in-pictures} 706 | 707 | 可以看看overpic之类的宏包。 708 | 709 | 710 | \faq{如何让一个很长很长的字符串(中间不带空格)自动换行?}{how-to-disable-long-string-multilines} 711 | 712 | 了解下分词断行机制就不会有此问题了。 713 | 714 | 715 | % \faq{\cs{bf}、\cs{sf}、\cs{it}、\cs{sl}这些命令都很短小,为什么不建议继续使用了?}{} 716 | 717 | 718 | % \faq{如何自动化打包 \LaTeX{} 文档发送给别人以确保宏包、字体是完整的,便于他人顺利编译、减少麻烦。}{} 719 | 720 | 721 | % \faq{如何编译网站上下载的他人的模板,一般是不知道对应的编译器应该选择什么,还有编译顺序是什么, 722 | % 希望在提供模板的同时说明应该如何编译。}{} 723 | 724 | 725 | % \faq{我以book文档类为基础新写一个文档类,book文档类的选项会自动适用于我新建的文档类么?}{} 726 | 727 | 728 | % \faq{\cs{def} 和 \cs{newcommand} 有什么区别,我创建新命令的时候究竟应该用哪个?}{} 729 | 730 | 731 | \faq{怎样创建一个带*的命令?}{newcommand-with-*} 732 | 733 | 有以下几种方法: 734 | \begin{itemize} 735 | \item 最基本的方法,使用 \LaTeX{} 内部命令 |\@ifstar| 判断 736 | \begin{texlist} 737 | \makeatletter 738 | \newcommand{\mycommand}{% 739 |   \@ifstar 740 |     \mycommandStar% 741 |     \mycommandNoStar% 742 | } 743 | \makeatother 744 | \newcommand{\mycommandStar}{starred version} 745 | \newcommand{\mycommandNoStar}{normal version} 746 | \end{texlist} 747 | \item 比较简单的方法,使用 ifthen 宏包 748 | \begin{texlist} 749 | \usepackage{ifthen} 750 | \newcommand{\mycommand}[1]{\ifthenelse{\equal{#1}{*}}% 751 |   {\mycommandStar}% 752 |   {\mycommandNoStar{#1}}% 753 | } 754 | \newcommand{\mycommandStar}{starred version} 755 | \newcommand{\mycommandNoStar}[1]{normal version} 756 | \end{texlist} 757 | \item 使用\LaTeX{3}的机制 758 | \begin{texlist} 759 | \usepackage{xparse} 760 | \NewDocumentCommand\mycommand{s}{% 761 |   \IfBooleanTF#1% 762 |     {starred version}% 763 |     {normal version}% 764 | } 765 | \end{texlist} 766 | \end{itemize} 767 | 768 | 769 | % \faq{类似 \cs{macro[<option1>][<option2>]\{<arg>\}} 这样的宏命令,当我只使用一个可选参数时,\LaTeX{}把它看做哪个参数?\LaTeX{}会自动判断么?}{} 770 | 771 | 772 | \faq{\cs{newcommand} 创建的命令,仅有第一个命令可以成为可选参数,如果我想创建具有两个可选参数的命令,应该如何去写?} 773 | {newcommand-multi-optional} 774 | 775 | 可以用一个小把戏实现: 776 | \begin{texlist} 777 | \newcommand{\mycmd}[1][option1]{% 778 |   \def\ArgI{{#1}}% 779 |   \mycmdoptii 780 | } 781 | \newcommand\mycmdoptii[1][option2]{% 782 |   ... 783 | } 784 | \end{texlist} 785 | 786 | 或者使用\LaTeX{3}的机制: 787 | \begin{texlist} 788 | \usepackage{xparse} 789 | \NewDocumentCommand\mycmd{O{option1} O{option2} m}{% 790 | #1#2#3 791 | } 792 | \end{texlist} 793 | 794 | 795 | % \faq{有些命令的参数是使用 () 扩起来的,这类命令是如何定义的?}{} 796 | 797 | 798 | \faq{我想新建一个带有可选参数的命令,可选参数的缺省值与必选参数值一样,这样的命令如何创建?}{} 799 | 800 | 第一种方法: 801 | \begin{texlist} 802 | \newcommand{\mycmd}[2][\DefaultOpt]{% 803 |   \def\DefaultOpt{#2}% 804 |   optional arg: #1,  mandatory arg: #2% 805 | } 806 | \end{texlist} 807 | 808 | 第二种方法: 809 | \begin{texlist} 810 | \def\mycmd{\futurelet\testchar\WithOptCmd} 811 | \def\WithOptCmd{% 812 |   \ifx[\testchar  813 |     \let\next\OptCmd  814 |   \else  815 |     \let\next\NoOptCmd  816 |   \fi\next} 817 | \def\OptCmd[#1]#2{optional arg: #1,  mandatory arg: #2} 818 | \def\NoOptCmd#1{optional arg: #1,  mandatory arg: #1} 819 | \end{texlist} 820 | 821 | 822 | \faq{想用minted包写文档,怕别人用不来不会设置-shell-escape咋办}{} 823 | 824 | 教给别人怎么用,或者不用这个宏包。 825 | 826 | 827 | % \faq{如何给整个页面加边框?}{} 828 | 829 | 830 | \faq{每一部分第一段段首如何空两格,区别于下面段落的自动换行。}{} 831 | 832 | 使用 |\usepackage{indentfirst}| 833 | 834 | 835 | % \faq{如何在section中使用box}{} 836 | 837 | 838 | % \faq{\cs{lstinputlisting}在\XeLaTeX{}下如何支持中文?}{} 839 | 840 | 841 | % \faq{Excel里的矢量图怎么存为eps并插入\TeX{}中?\& Matlab 导出图片无白边?}{} 842 | 843 | 844 | % \faq{如何结合使用 Pandoc 和 \LaTeX{},提高文档编写效率?(或如何结合使用 Markdown 和 LaTeX?)}{} 845 | 846 | 847 | % \faq{\cs{label\{key\}}可以用中文吗,如\cs{label\{第一章\}}}{} 848 | 849 | 850 | % \faq{如何将算法代码的行编号放到外边框的里面?}{} 851 | 852 | 853 | % \faq{如何编辑页眉和页脚,添加页码}{} 854 | 855 | 856 | % \faq{\LaTeX{}写毕业论文时,直接写编译速度慢,用dvi会不会简便些?}{} 857 | 858 | 859 | \faq{文字用 \cs{underline} 加了下划线后为什么没法换行?}{underlinebox} 860 | 861 | \cs{underline}与 \cs{hbox}、\cs{mbox}等均工作在\textit{受限的水平模式(Restricted 862 | horizontal mode)}下,不能自动换行。 863 | 864 | 可以尝试使用 ulem 宏包的\cs{uline}或 XeCJK 宏包的\cs{CJKunderline}实现换行,但这 865 | 两者目前对math mode(尤其是displaystyle的math mode)支持有限。 866 | 867 | \begin{reference} 868 | \item \url{https://tex.stackexchange.com/questions/13177/what-are-vertical-and-horizontal-modes} 869 | \end{reference} 870 | 871 | \faq{想要在文档中将键盘按键特殊标识出来该怎么办?}{use-menukeys} 872 | 873 | 可以考虑使用 \cs{menukeys} 宏包。下面给出一个例子: 874 | 875 | \begin{texlist} 876 | \documentclass{ctexart} 877 | \usepackage[os=win]{menukeys} % 这里假设操作系统是 Windows 878 | \renewmenumacro{\keys}[+]{shadowedroundedkeys} % 这里改变了键盘按键显示样式 879 | \begin{document} 880 | \keys{\ctrl + Z} 表示撤销。 881 | \end{document} 882 | \end{texlist} 883 | 884 | \faq{想要显示键盘上的微软键该怎么办?}{use-menukeys-windows} 885 | 886 | 可以考虑 \cs{menukeys} 和 \cs{fontawesome} 的搭配。下面给出一个例子: 887 | 888 | \begin{texlist} 889 | \documentclass{ctexart} 890 | \usepackage[os=win]{menukeys} 891 | \usepackage{fontawesome} 892 | \renewmenumacro{\keys}[+]{shadowedroundedkeys} 893 | \makeatletter 894 | \tw@make@key@box{OS@win}{\faWindows} 895 | \tw@make@key@macro*{\OS} 896 | \makeatother 897 | \begin{document} 898 | \keys{\OSwin} 表示微软键。 899 | \end{document} 900 | \end{texlist} 901 | 902 | \faq{怎么给插入的PDF页添加页码}{} 903 | 904 | 考虑用 pdfpages 包吧。例如 905 | 906 | \begin{texinlist} 907 | \documentclass{article} 908 | \usepackage{pdfpages} 909 | \begin{document} 910 | \includepdf[pagecommand={}]{test.pdf} 911 | \end{document} 912 | \end{texinlist} 913 | 914 | \faq{如果我在论文中使用的单位没有包含在 siunitx 包怎么办}{} 915 | 916 | 单位是可以自定义的。例如 917 | 918 | \begin{texlist} 919 | \documentclass{article} 920 | \usepackage{siunitx} 921 | \DeclareSIUnit{\annum}{a} 922 | \DeclareSIUnit{\year}{yr} 923 | \begin{document} 924 | 距今 \SI{1}{\giga\annum} 的地质现象持续了 \SI{1}{\mega\year}. 925 | \end{document} 926 | \end{texlist} 927 | 928 | % \faq{如何使用带圈数字做脚注编号?}{} 929 | 930 | 931 | % \faq{怎样判断当前页是奇数页还是偶数页?}{} 932 | 933 | 934 | % \faq{如何加粗Listing中的一行文本?}{} 935 | 936 | 937 | % \faq{如何根据不同的编译引擎选择执行不同的宏命令?}{} 938 | 939 | 940 | % \faq{我怎么能把页码改成以三位数字(前导的0也显示出来)表示?}{} 941 | 942 | 943 | % \faq{標點符號如何分類設置樣式?比如逗號、句號、頓號等設爲一類,歎號、問號設爲一類,引號、書名號設爲一類,等等。}{} 944 | 945 | 946 | % \faq{请问交叉引用用\cs{ref\{\}}引用的表格,图片,在PDF上点击数字时没有反应,不能跳转到相应的表格、图片位置, 947 | % 生成的目录点击时也跳转不到指定的页码,在书上没有查到原因,我用的\TeXLive{} 2017+TeXstudio,是设置的问题还是其他问题?}{} 948 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/error.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{常见错误提示} 4 | 5 | \begin{itemize} 6 | \item 7 | ! LaTeX Error: File `xxx.sty' not found. 8 | \cs{usepackage}时,引用错误宏包名称或者本机未下载相应的宏包。解决方法为检查拼写,或TeXLive使用tlmgr安装宏包。 9 | \item 10 | ! LaTeX Error: File `xxx.cls' not found. 11 | \cs{documentclass}时,引用错误文类名称或者本机未下载相应的文类。解决方法为检查拼写,或TeXLive使用tlmgr安装文类。 12 | \item 13 | ! Undefined control sequence. 14 | 编译遇到不存在的命令(未定义的控制序列)。解决方法为检查拼写,引用相应的宏包,或者定义该命令。 15 | \item 16 | ! Missing \{ inserted. 或者 ! Missing \} inserted. 17 | 缺少分组的某个花括号。解决方法为仔细查找上下文对应的花括号。 18 | \item 19 | ! Missing \$ inserted. 20 | 缺少数学环境,通常为把数学环境专用的命令用在普通文本模式。 21 | \item 22 | ! LaTeX Error: Can be used only in preamble. 23 | 有许多命令只能用于导言区,如果在document 24 | 环境中用了这些命令,将显示上面的错误信息。 25 | \item 26 | ! LaTeX Error: Counter too large. 27 | 计数器数值太大,一般是在需要以字母形式显示的计数器其数值超过了26。 28 | \item 29 | ! LaTeX Error: \cs{include} cannot be nested. 30 | 在一个已经要用 \cs{include} 引入的文件中又使用了 31 | \cs{include} 命令。 32 | \item 33 | ! LaTeX Error: Missing |\begin{document}| 34 | 这种情况可能是忘了输入 |\begin{document}|,或者是在导言区中有可打印的文本,还有可能是编译中断时在 35 | aux 等辅助文件中写入错误,对于后者,可以清理辅助文件后重新进行编译。 36 | \item 37 | ! LaTeX Error: No counter `xxx' defined. 38 | 调用某计数器,但该计数器并不存在。 39 | \item 40 | ! LaTeX Error: No \cs{title} given. 在给出 41 | \cs{title} 声明之前就使用了 \cs{maketitle} 命令。 42 | \item 43 | ! LaTeX Error: Something's wrong--perhaps a missing \cs{item}. 44 | 导致这个问题一般是在列表环境中的文本不是由 \cs{item} 开始的。 45 | \item 46 | ! LaTeX Error: There's no line here to end. 47 | 在 \cs{par} 或空行后调用命令 \cs{newline} 或 |\\|。 48 | 这里它们没有任何意义,如果需要额外竖直间距,应使用 \cs{vspace} 命令。 49 | \item 50 | ! LaTeX Error: Lonely \cs{item} -- perhaps a missing list enviroment. 51 | 在列表环境外使用了 \cs{item} 命令。 52 | \end{itemize} 53 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/figure.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{图片篇} 4 | 5 | 6 | \faq{LaTeX可以插图哪些类型的图片?}{latex-figure} 7 | 8 | 我们通常使用LaTeX、PDFTeX、XeTeX编译源文件。各种编译方式下图形格式支持如下 9 | \begin{itemize} 10 | \item LaTeX直接支持EPS、PS图形文件,间接支持JPEG、PNG等格式 11 | \item PDFTeX直接支持PNG、PDF、JPEG格式图形文件,间接支持EPS 12 | \item XeLaTeX直接支持BMP、JPEG、PNG、EPS、PDF图形格式。如果你使用MacOS,那么 13 | XeLaTeX 还会支持 GIF、PICT、PSD、SGA、TGA、TIFF 等格式 。 14 | \end{itemize} 15 | 16 | 【注意】在使用PDFLaTeX时,如果要插入EPS,可以先把EPS转化为其他格式(比如PDF、JPEG、PNG、EPS),或者在导言区加载epstopdf,此宏包需要在graphicx宏包之后调用。更改图片格式可以使用ImageMagick或者类似\href{http://www.gaitubao.com}{改图宝}等在线改图软件。 17 | eps 和 pdf 两种格式。eps 是一种在 TeX 中很常用的矢量绘图格式。支持导出 18 | eps 格式的绘图软件包括:MATLAB、Mathematica、GNUPlot、 Asymptote 等。 19 | 如果需要使用 pdf 文档中的现成的矢量图,不要使用截屏软件截取,否则 20 | 会生成位图,造成失真。可以用 Acrobat 等软件进行提取,剪切。如果使 用 21 | MacOS 系统,可以通过 Skim 阅览器选取, 22 | 复制,从剪切板生成笔记的方法导出图像。 23 | 24 | \faq{图片的路径如何自动设置,不用正文一个个设置路径?}{figure-path-set} 25 | 26 | 可以使用指令graphicspath来设置图片路径,如: 27 | \begin{texinlist} 28 | \graphicspath{{./figures/}} 29 | \end{texinlist} 30 | 31 | 即设定图片路径为当前目录下子文件夹figures。 32 | 33 | 34 | \faq{在子文档中想用主文档所在文件夹下的子文件夹内的图片?}{subdoc-figure} 35 | 36 | 关键在于找到图片,借助于编辑器的魔法注释,直接暴力使用指定路径。 37 | 假设 38 | \begingroup 39 | \dirtree {% 40 | .1 main.tex.\DTcomment{主文件}. 41 | .2 subfile/\DTcomment{子文件所在文件夹}. 42 | .2 figure/\DTcomment{图片所在文件夹}. 43 | } 44 | \endgroup 45 | 46 | 有如下代码: 47 | 48 | main.tex: 49 | \begin{texlist} 50 | \documentclass{article} 51 | \usepackage{graphicx} 52 | \begin{document} 53 | \include{./subfile/sub} 54 | \end{document} 55 | \end{texlist} 56 | 57 | sub.tex: 58 | \begin{texlist} 59 | % !TeX root = ../file.tex 60 | \section{test} 61 | hello! \LaTeX{}! 62 | \includegraphics[width=\linewidth]{../figure/figure.png} 63 | \end{texlist} 64 | 65 | 此种情况不能够使用 \cs{graphicspath}指定插图路径。 66 | 67 | \faq{图片浮动如何控制?各自参数如何使用?}{figure-control} 68 | 69 | 插图(figure)、表格(table)等浮动体浮动位置有四个选项可以控制,分别是 h -- 70 | here(当前位置), t -- top (页面顶部), b -- bottom(页面底部)和 p -- 71 | page(单独一个浮动页)。这四个位置选项的输入顺序是无所谓的,也就是说 72 | {[}htbp{]} 和 {[}btph{]} 的效果是一样的。LaTeX 73 | 总是按照h-t-b-p的顺序依次尝试浮动,直到找到合适的位置。LaTeX 74 | 标准文档类中对位置参数的默认值是{[}tbp{]},可以通过重定义内部命令 75 | \cs{fps@figure} 和\cs{fps@table} 来修改。 76 | 77 | \begin{texinlist} 78 | \makeatletter 79 | \def\fps@figure{htbp} 80 | \def\fps@table{htbp} 81 | \makeatother 82 | \end{texinlist} 83 | 84 | LaTeX 放置浮动体时,浮动体不能造成页面溢出(overfull 85 | page),且只能放置于当前页或后面的页面中,浮动体根据其类型必须按源码内出现的顺序出现,也就是说,只有当之前的插图都被处理之后才能对下一幅插图进行处理,那么,只要前面有未处理的插图,当前位置就不会放置插图,一幅不可放置的插图将阻碍其后的图形放置,直到文件结束或出现|\clearpage| 等处理所有未处理浮动体的命令出现之处。 86 | 87 | 需要说明的是,对于两种浮动体类型,表格的排版和插图的排版是相互独立处理的,未处理的表格不会影响插图的布置。一般来说,给出的参数越多,排版的结果就越好,单个参数选项极容易引发问题,一旦浮动体不适合指定位置,将被搁置并阻碍接下来其他浮动体的处理,一旦被阻塞的浮动体超过LaTeX允许的最大值,还将产生错误。 88 | 89 | LaTeX还设定了一些计数器来限制页面上浮动体的数量,见表 \ref{figure-counter}。 90 | 91 | \begin{table}[ht!] 92 | \centering 93 | \begin{tabular}{|c|c|} 94 | \hline 95 | 计数器 & 含义 \\ 96 | \hline 97 | dbltopnumber & twocolumn 模式下可以位于页面顶部的浮动体最大数目(缺省为2) \\ 98 | \hline 99 | topnumber & 可以位于页面顶部的浮动体最大数目(缺省为2) \\ 100 | \hline 101 | bottomnumber & 可以位于页面底部的浮动体最大数目(缺省为1)\\ 102 | \hline 103 | totalnumber & 可以位于文本页中的浮动体最大数目(缺省为3) \\ 104 | \hline 105 | \end{tabular} 106 | \caption{浮动体计数器含义} 107 | \label{figure-counter} 108 | \end{table} 109 | 110 | LaTeX 还设定了一些比例参数控制浮动体的放置,见表 \ref{figure-params}。 111 | 112 | \begin{table}[ht!] 113 | \centering 114 | \begin{tabular}{|c|c|} 115 | \hline 116 | 参数 & 含义 \\ 117 | \hline 118 | |\textfraction| & 文本页上文本最小比例(默认0.2) \\ 119 | \hline 120 | |\topfraction| & 页面顶部浮动体高度比例(默认0.7) \\ 121 | \hline 122 | |\bottomfraction| & 页面底部浮动体高度比例(默认0.3) \\ 123 | \hline 124 | |\floatpagefraction| & 浮动页浮动体高度比例(默认0.5) \\ 125 | \hline 126 | |\dbltopfraction| & twocolumn 模式下页面顶部浮动体高度比例(默认0.7)\\ 127 | \hline 128 | |\dblfloatpagefraction| & twocolumn 模式下浮动页浮动体高度比例(默认0.5) \\ 129 | \hline 130 | \end{tabular} 131 | \caption{浮动体参数含义} 132 | \label{figure-params} 133 | \end{table} 134 | 135 | 136 | 这些计数器和比例值可以通过 \cs{setcounter} 和\cs{renewcommand} 137 | 分别进行调整。但调整时应特别小心,不适当的比例值会导致非常糟糕的排版或大量未处理的浮动体。如果只是需要LaTeX在处理某一浮动体时忽略以上这些限制条件,可以在浮动体位置选项参数中加!即可。注意,! 138 | 对 浮动页限制条件的忽略无效。 139 | 140 | \begin{texinlist} 141 | \begin{table}[!hbt] 142 | the contents of the table ... 143 | \end{table} 144 | \end{texinlist} 145 | 146 | 147 | \faq{图文混排用什么方法实现?}{figure-text-inline} 148 | 149 | 大概有好几个宏包:picinpar、wrapfig,以及过时了的 picins 150 | 宏包。但是都有或多或少的问题,都不能够做得比较智能。等着后来人的修订以及更好的实现方式吧。 151 | 152 | \begin{itemize} 153 | \item wrapfig 用法 154 | \begin{texinlist} 155 | \begin{wrapfigure}{行数}{位置}{超出长度}{宽度} 156 | <图形> 157 | \end{wrapfigure} 158 | \end{texinlist} 159 | \begin{itemize} 160 | \item 行数 161 | 是指图形高度所占的文本行的数目,如果不给出此选项, wrapfig 会自动计算。 162 | \item 位置 163 | 是指图形相对于文本的位置,须给定下面四项的一个。 164 | \begin{description} 165 | \item[r,R] 表示图形位于文本的左边。 166 | \item[l,L] 表示图形位于文本的右边。 167 | \item[i,R] 表示图形位于页面靠里的一边(用在双面格式里)。 168 | \item[o,O] 表示图形位于页面靠外的一边。 169 | \end{description} 170 | \item 超出长度 171 | 是指图形超出文本边界的长度,缺省为 0pt。 172 | \item 宽度 173 | 指图形的宽度。 wrapfig 会自动计算 图形的高度。不过,我们也可设定图形的高度,具体可见 wrapfig.sty 内 的说明。 174 | \end{itemize} 175 | \item picinpar 用法 \\ 176 | picinpar 宏包定义了一个基本的环境 window,还有两个变体 figwindow 和 tabwindow。允许在文本段落中打开一个``窗口 '', 在其中放入图形、文字和表格等。这里我们主要讨论将图形放入文本段落 的用法,其它的用法可参考 picinpar 的说明。 177 | \begin{texinlist} 178 | \begin{window} [行数,对齐方式,内容,内容说明]\end{window} 179 | \begin{figwindow} [行数,对齐方式,图形,标题]\end{figwindow} 180 | \end{texinlist} 181 | \begin{itemize} 182 | \item 行数是指“窗口”开始前的行数。 183 | \item 对齐方式是指在段落中“窗口'“的对齐方式。缺省为 l, 即左对齐。 另外两种是 c :居中和 r :右对齐 。 184 | \item 第三个参数是出现在“窗口”中的“内容”,这在 figwindow 中就是 要插入的图形。第四个参数则是对``窗口''内容的说明性文字,这在 figwindow 中就是图形的标题。 185 | \end{itemize} 186 | \end{itemize} 187 | 188 | 189 | \faq{并列插图如何进行排版}{col-figure-install} 190 | 191 | 并列插图有几种情况: 192 | 193 | \begin{itemize} 194 | \item 并排摆放,各有标题。\\ 195 | 可以在figure环境中使用两个minipage环境,每个里面插入一幅插图。 196 | 197 | \begin{texinlist} 198 | \documentclass{ctexart} 199 | \usepackage{mwe} 200 | \begin{document} 201 | \begin{figure} 202 | \centering 203 | \begin{minipage}{0.45\linewidth} 204 | \centering 205 | \includegraphics[width=0.9\linewidth]{example-image-a.pdf} 206 | \caption{左边图} 207 | \end{minipage} 208 | \hfill 209 | \begin{minipage}{0.45\linewidth} 210 | \centering 211 | \includegraphics[width=0.9\linewidth]{example-image-b.pdf} 212 | \caption{右边图} 213 | \end{minipage} 214 | \end{figure} 215 | \end{document} 216 | \end{texinlist} 217 | 218 | \item 并排摆放,共享标题。\\ 219 | 通过使用两个 \cs{includegraphics} 命令 220 | \begin{texinlist} 221 | \documentclass{ctexart} 222 | \usepackage{mwe} 223 | \begin{document} 224 | \begin{figure} 225 | \centering 226 | \includegraphics[width=0.45\linewidth]{example-image-a.png} 227 | \hfill 228 | \includegraphics[width=0.45\linewidth]{example-image-b.png} 229 | \caption{总标题} 230 | \end{figure} 231 | \end{document} 232 | \end{texinlist} 233 | 234 | \item 并排摆放,共享标题,并且有各自的子标题 \\ 235 | 如果想要两幅并排的图片共享一个标题,并且各有自己的子标题,可以使用 subfig 宏包或者 subcaption 宏包。 236 | 237 | \begin{texinlist} 238 | \documentclass{ctexart} 239 | \usepackage{subfig} 240 | \usepackage{mwe} 241 | \begin{document} 242 | \begin{figure} 243 | \centering 244 | \subfloat[左图标题]{\includegraphics[width=0.4\linewidth]{example-image-a.pdf}} 245 | \hfill 246 | \subfloat[右图标题]{\includegraphics[width=0.4\linewidth]{example-image-b.pdf}} 247 | \caption{总标题} 248 | \end{figure} 249 | \end{document} 250 | \end{texinlist} 251 | 252 | \begin{texinlist} 253 | \documentclass{ctexart} 254 | \usepackage{subcaption} 255 | \usepackage{mwe} 256 | \begin{document} 257 | \begin{figure} 258 | \begin{subfigure}{0.5\linewidth} 259 | \centering 260 | \includegraphics[width=0.9\linewidth]{example-image-a.pdf} 261 | \caption{左图标题} 262 | \end{subfigure} 263 | \hfill 264 | \begin{subfigure}{0.5\linewidth} 265 | \centering 266 | \includegraphics[width=0.9\linewidth]{example-image-b.pdf} 267 | \caption{右图标题} 268 | \end{subfigure} 269 | \caption{总标题} 270 | \end{figure} 271 | \end{document} 272 | \end{texinlist} 273 | \end{itemize} 274 | 275 | 此外,还可考虑floatrow宏包的一些功能。 276 | 277 | 278 | %\faq{并列子图如何进行排版}{col-sub-figure} 279 | % 280 | %并列子图可以看看subfigure,subfloat、subcaption等宏包。 281 | 282 | 283 | \faq{如果想让图片的题注在图片右侧,应该怎么做}{figure-right} 284 | 285 | 可以利用盒子来实现这个功能。下面给出一个例子 286 | 287 | \begin{texinlist} 288 | \documentclass{article} 289 | \usepackage{graphicx} 290 | \begin{document} 291 | \begin{figure} 292 | \centering 293 | \includegraphics[width=0.45\linewidth]{figure.png} 294 | \parbox[b]{0.45\linewidth}{\caption{the content of caption}} 295 | \end{figure} 296 | \end{document} 297 | \end{texinlist} 298 | 299 | 若要让题注在图片左侧,只需将 \textbackslash{}parbox 那段代码移到 300 | \textbackslash{}includegraphics 之前。 301 | 302 | 303 | \faq{在插图较多,文字较少的情况下,正文会产生较多空白,或者单个图片占一页的情况,如何处理?}{ins-fig-or-text} 304 | 305 | 尽量避免这样的行文方式,比如可以将图片以附录形式集中排版。单个图片占一页在绝大多数情况下都不需要处理,浮动体页是很常见的形式。只有当图片恰好出现在一章的结尾,正文正好排满一页后换页,而图表本身尺寸又不大的时候,图表以浮动页排版方式排在页面正中有些突兀,这时可以通过浮动选项设置{[}!ht{]}要求其在页面顶部排版,并忽略latex从美学角度出发对浮动体做出的一些限制。 306 | 307 | 308 | \faq{在双栏文档中,如何插入单栏图片,表格?}{col-ins-fig-tab} 309 | 310 | 要看双栏文档是如何实现的。若双栏文档的实现方式是文档类的 twocolumn 311 | 选项实现的,那么用带*形式的浮动体环境替代原浮动体环境即可,这时的浮动选项只有tp有效;若双栏文档是以 312 | multicol 宏包的 multicols 环境实现的,那么,在 multicols 313 | 环境内不支持浮动体,当需要插入单栏图片表格时,可结束multicols环境,待插入图片、表格后,重新开启multicols 314 | 环境。 315 | 316 | 317 | \faq{不想让图片浮动,又想使用caption,如何二者兼得?}{fig-cap} 318 | 319 | caption宏包提供了一个\cs{captionof}命令,可以在浮动体环境外使用,命令的语法格式是:\cs{captionof}\oarg{floattype}\oarg{list entry}\marg{heading},举例如下: 320 | 321 | \begin{texinlist} 322 | \begin{center} 323 | \includegraphics{example-image.pdf} 324 | \captionof{figure}{the example} 325 | \end{center} 326 | \end{texinlist} 327 | 328 | 不过非常不建议使用这种方式,浮动体是一种很好的处理图表的方式。 329 | 330 | 331 | \faq{有没有办法把图片固定在某位置}{fig-on-this-pos} 332 | 333 | 不使用浮动体就会在你指定的位置出现了,但是非常非常不可取,一般不建议这么搞。 334 | 335 | \faq{图片的题注很长,如何调整格式}{} 336 | 337 | 可以考虑使用 caption 包,例如题注内容进行悬挂缩进,最后一行居中,可以用如下代码: 338 | 339 | \begin{texlist} 340 | \documentclass{article} 341 | \usepackage{mwe} 342 | \usepackage[justification=centerlast,format=hang]{caption} 343 | \begin{document} 344 | \begin{figure} 345 | \centering 346 | \includegraphics{example-image.pdf} 347 | \caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut puruselit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravidamauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectuset netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverrametus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phaselluseu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretiumquis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aeneanfaucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Cur-abitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congueeu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissimrutrum.} 348 | \label{fig:my_label} 349 | \end{figure} 350 | \end{document} 351 | \end{texlist} 352 | 353 | \faq{图片双语标题要如何实现?}{} 354 | 355 | 可以考虑 caption 包和 bicaption 的搭配用法。 356 | 这里给出一个示例: 357 | 358 | \begin{texlist} 359 | \documentclass{ctexart} 360 | \usepackage{caption} 361 | \usepackage{bicaption} 362 | \usepackage{subcaption} 363 | \captionsetup[bi-first]{bi-first} 364 | \captionsetup[bi-second]{bi-second} 365 | \DeclareCaptionOption{bi-first}[]{\def\figurename{图}} 366 | \DeclareCaptionOption{bi-second}[]{\def\figurename{Figure}} 367 | \renewcommand{\thefigure}{\thesection--\arabic{figure}} 368 | \usepackage{mwe} 369 | \begin{document} 370 | \section{第一节} 371 | \begin{figure} 372 | \centering 373 | \includegraphics[width=\linewidth]{example-image.pdf} 374 | \bicaption{示意图}{Example image} 375 | \label{fig} 376 | \end{figure} 377 | 图 \ref{fig} 是一个示意图。 378 | \end{document} 379 | \end{texlist} 380 | 381 | %\faq{如何可以写一段话,放张图片,再写一段话,再放图片。}{} 382 | 383 | 384 | %\faq{如何在一张图片上再叠放另外一张图片?如下图,在图中小孩的白板上分别加一个对号和叉号。}{} 385 | 386 | % \includegraphics{https://qqadapt.qpic.cn/txdocpic/0/cb8fb575407168ba7c289778e7f7c526/0} 387 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/font.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{字体篇} 4 | 5 | \faq{\LaTeX{} 字体是如何处理的}{NFSS} 6 | 7 | \LaTeX{2e} 目前的字体机制称为“新字体选择机制”(New Font Selection 8 | Scheme,NFSS)。它将文本字体分为五个互不干扰的属性(数学字体初学者不必过早了解): 9 | \begin{itemize} 10 | \item 编码(encoding)。这个属性初学者暂时不必了解。在 (pdf)\LaTeX{} 和 up\LaTeX 中,默认的西文编码称为OT1;在 \XeLaTeX 中,默认的编码称为 EU2,就是 Unicode。 11 | \item 字族(family)。一套成风格的字型的统称,如 cmr、ptm(times)等。\LaTeX2e{} 预先定义了三个切换字族的命令:|rmfamily|(衬线体)、|sffamily|(无衬线体)、|ttfamily|(等宽体)。 12 | \item 系列(series)。在一般的字体中一般表示字重(weight)。如粗体命令为 |bfseries|,正常粗细为 |mdseries|。 13 | \item 字形(shape)。在同一字族、同一系列下的风格差异,如斜体 |slshape|、意大利斜体 |itshape|、正体 |upshape|、小型大写 |scshape|。 14 | \item 字号(size)。以上四种变化是字型(typeface)的变化,而这是同一字型下不同大小的变化。\LaTeX2e{} 提供了成套的字号命令,如 |normalsize|、|small|、|scriptsize| 等。 15 | \end{itemize} 16 | 17 | 中文字体的方面,不同的中文解决方案的处理也有不同,这里就不介绍了。 18 | 19 | 20 | \faq{获取位图字体}{get-bitmap-fonts} 21 | 22 | 23 | \faq{PDF 格式图片插入过程中的字形缺失}{lack-font-when-insert-pdf-figure} 24 | 25 | 26 | \faq{为数学排版选择 Type 1 字体}{choose-type-1-fonts-for-math-typesetting} 27 | 28 | 29 | 30 | \faq{Type 1字体如何安装配置}{set-up-type-1-fonts} 31 | 32 | 一些Type1字体包提供了相应的调用命令,详情请参考它们的文档。 33 | TODO:我不清楚这块内容,只找到了参考文献,还请他人来完善这个问题。 34 | \begin{reference} 35 | \item Philipp Lehman. The Font Installation Guide.(\cs{texdoc fontinstallationguid}) 36 | \end{reference} 37 | 38 | 39 | \faq{切换到 T1 时字体变得模糊}{change-to-type-1-font-blurred} 40 | 41 | 42 | \faq{由于 Ghostscript 太旧造成字体模糊}{old-Ghostscript-font-blurred} 43 | 44 | 45 | \faq{如何查看本机 \LaTeX{} 已找到的字体?}{local-fonts-list} 46 | 47 | 按字体族名(font family name)输出本机 \LaTeX{} 已找到的字体: 48 | \begin{shcode} 49 | fc-list -f '%{family}\n' :lang=zh | sort > fontfamilylist.txt 50 | \end{shcode} 51 | 52 | 按字体文件名(font file name)输出本机 \LaTeX{} 已找到的字体: 53 | 输出本机LaTeX能找到的字体(font file name): 54 | \begin{shcode} 55 | fc-list -f '%{file}\n' :lang=zh | sort > fontfilelist.txt 56 | \end{shcode} 57 | 58 | 以上指定了|:lang=zh|过滤器只输出中文字体,可以去掉这一部分输出所有字体,或指定 59 | lang为其他语言。 60 | 61 | 62 | \faq{如何设置文档默认字体?}{set-default-local-fonts} 63 | 64 | \TeX{} 引擎多使用字体族名或字体文件名来调用字体,不同 \TeX{} 引擎调用方式有差别。 65 | 在可行的情况下推荐使用字体族名进行字体设定,以防止同一字体因文件名有差异造成通用 66 | 方面的问题。 67 | 68 | \XeLaTeX{} 和 \LuaLaTeX{} 中,可以使用\pkg{fontspec}来简单设置默认字体,它支持 69 | TrueType及OpenType字体。 70 | \begin{texlist} 71 | % fontspec宏包中对西文默认衬线字体、无衬线字体及等宽字体的设定 72 | \setmainfont{Libertinus Serif} 73 | \setsansfont{TeX Gyre Heros} 74 | \setmonofont{Libertinus Mono} 75 | \end{texlist} 76 | 77 | \pkg{ctex}中的子包\pkg{xecjk}构建于\pkg{fontspec}之上,提供了相应的中文字体设置命 78 | 令。 79 | 80 | \pkg{ctex}默认根据用户不同的操作系统环境来选择对应的fontset文件来设定默认中文字体, 81 | 你也可以自定义fontset文件,详情请|texdoc ctex|。 82 | 83 | 如果您想手动指定默认字体的话,可以使用\pkg{ctex}提供的命令: 84 | \begin{texlist} 85 | % ctex宏包对CJK 默认衬线字体、无衬线字体及等宽字体的设定 86 | % 文档默认字体为思源宋体,默认字体|\itshape|时使用方正新楷体替代。 87 | \setCJKmainfont [ItalicFont = FZNewKai-Z03S]{Source Han Serif CN} 88 | % 普通无衬线字体为思源黑体的Normal字重,加粗时使用Medium字重。 89 | \setCJKsansfont [BoldFont=Source Han Sans CN Medium]{Source Han Sans CN Normal} 90 | % 中文等宽字体使用方正仿宋体。 91 | \setCJKmonofont {FZFangSong-Z02S} 92 | \end{texlist} 93 | 94 | TODO:math mode的字体调用复杂多样,暂不赘述。 95 | 96 | 97 | \faq{如何调用已被 \TeX{} 找到但仍未被配置的字体?}{set-local-fonts} 98 | 99 | \pkg{fontspec}为 \XeLaTeX{} 和 \LuaLaTeX{} 提供了方便的字体调用命令 |fontspec| , 100 | 详情请|texdoc fontspec|。 101 | \begin{texlist} 102 | % \fontspec[<font features>]{<font name>} % 直接指定字体 103 | % \newfontfamily<cmd>[<font features>]{<font name>} % 提供调用字体的命令<cmd>, 104 | % 方便多次调用。 105 | \newfontfamily\fontCMUtv{CMU Typewriter Text Variable Width} 106 | 107 | I am the default font. \\ 108 | \fontspec{texgyreschola-regular.otf} Haha, I am texgyreschola. \\ 109 | \fontCMUtv and now CMU Typewriter Text Variable Width is me. 110 | \end{texlist} 111 | 112 | \pkg{ctex}宏包构建于\pkg{fontspec}之上,提供了相应的CJK字体设定命令,并为 CJK 字体 113 | 加入了一些特性和功能)。 114 | \begin{texlist} 115 | 116 | % \CJKfontspec{<font name>}[<font features>] % 直接指定字体 117 | % \newCJKfontfamily<cmd>{<font name>}[<font features>] 提供调用字体族的命令。 118 | 119 | \newCJKfontfamily\gothic{IPAexGothic} % 定义调用 IPAexGothic 字体的命令为 \gophic 120 | \gothic 日本語 121 | \songti 哇哈哈,我又回到了中文宋体。 122 | \end{texlist} 123 | 124 | \begin{reference} 125 | \item fontspec及ctex文档。 126 | \item 刘海洋 and 李阿玲. \LaTeX{} 如何混合排版中文与日文?(此链接还额外包 127 | 含\pTeX{} 字体设定的一些内容). 128 | \url{https://www.zhihu.com/question/68393040/answer/263348121} 129 | \end{reference} 130 | 131 | 132 | \faq{如何使用斜体}{how-to-use-italic-or-slanted-fonts} 133 | 134 | 斜体一般是西文字体用的,在中文中不用斜体。在实际使用中,对采用何种中文字体与西文意 135 | 大利体(italic)搭配并不存在统一或权威意见,但较多数人使用楷体与意大利体搭配。 136 | 在使用\pkg{ctex}包的情况下,可通过设定ItalicFonts选项选择你所想与意大利体搭配的 137 | 中文字体。例: 138 | \begin{texlist} 139 | % FZNewKai-Z03S为方正新楷体的字体族(font family name)名,Source Han Serif CN 140 | % 为思源宋体的Region-specific Subset OTF版本。具体使用请根据本机环境定义。 141 | \setCJKmainfont [ItalicFont = FZNewKai-Z03S]{Source Han Serif CN} 142 | \end{texlist} 143 | 144 | 斜体这个名字比较误导,因为它对应英文的两个名字:倾斜体(slanted,指字形风格大致相同但是倾斜)和意大利体(italic,指字形设计为接近手写的形态,同时也就出现了倾斜)。 145 | 146 | 两种情况下分别有 |slshape| 和 |itshape| 两个命令,使用例如 |\slshape slanted| 及 |\itshape italic|; 147 | 也有把斜体内容作为参数的命令(推荐使用这种),如 \textsl{slanted} 及 \textit{italic}。 148 | 149 | 150 | %TODO:为了演示例子,想添加 amsmath bm amsbsy 等宏包,但都添加的话会出错,例如 \alpha 会变成方框等 151 | % 演示代码那个有什么其他的环境吗?或许可以参考 刘海洋 那本书里面的演示代码,左边代码,右边结果 152 | \faq{如何使用粗体}{how-to-use-bold-fonts} 153 | 154 | \begin{itemize} 155 | \item |mathbf|:会将数学模式取消再来取用字型,因此它加粗的不是数学符号,而是公式里的一般文字。|mathbf| 只能在公式内部使用: 156 | \begin{texlist} 157 | \documentclass{article} 158 | \begin{document} 159 | $\mathbf{equation: f(x,y) = \alpha x^2 + \beta y^2}$ 160 | \end{document} 161 | \end{texlist} 162 | % 效果如下:$ \mathbf{equation: f(x,y) =} \symbf{\alpha} \mathbf{x^2 +} \symbf{\beta} \mathbf{y^2} $ 163 | \item |boldmath|:|boldmath| 可以将整套数学字体切换为粗体版本,这个命令只能在公式外使用: 164 | \begin{texlist} 165 | \documentclass{article} 166 | \begin{document} 167 | \boldmath{$f(x,y) = \alpha x^2 + \beta y^2$} 168 | \end{document} 169 | \end{texlist} 170 | % 效果如下: 171 | % \boldmath{$f(x,y) = \alpha x^2 + \beta y^2$} 172 | \item |boldsymbol|:\pkg{amsmath} 提供了一个 |boldsymbol| 命令(由调用的 \pkg{amsbsy} 宏包提供),用于打破 |boldmath| 的限制,在公式内部将一部分符号切换为粗体: 173 | \begin{texlist} 174 | \documentclass{article} 175 | \usepackage{amsbsy} % 或者直接调用常用宏包 amsmath 176 | \begin{document} 177 | \[ f(x,y) = \boldsymbol{\alpha x^2 + \beta y^2} \] 178 | \end{document} 179 | \end{texlist} 180 | % 效果如下: 181 | % \[ f(x,y) = \boldsymbol{\alpha x^2 + \beta y^2} \] 182 | \item |bm|: 183 | \begin{texlist} 184 | \documentclass{article} 185 | \usepackage{bm} 186 | \begin{document} 187 | $\sum x_i y_i$, 188 | $\bm{\sum x_i y_i}$, 189 | ${\bm \sum}{\bm x_i}{\bm y_i}$. 190 | \end{document} 191 | \end{texlist} 192 | % 效果如下: 193 | %TODO: bm 宏包和其他的 amsbsy 有冲突 194 | % \[ \sum x_i y_i, 195 | % \bm{\sum x_i y_i}, 196 | % {\bm \sum}{\bm x_i}{\bm y_i} \] 197 | \item |pmb|:需使用 \pkg{amsmath} 宏包。 198 | \item |\textbf|:文本加粗 199 | \begin{texlist} 200 | \documentclass{article} 201 | \begin{document} 202 | \textbf{equation: $f(x,y)=\alpha x^2+\beta y^2$} 203 | \end{document} 204 | \end{texlist} 205 | % 效果如下: 206 | % \textbf{equation: $f(x,y)=\alpha x^2+\beta y^2$} 207 | \item |bfseries|:|bfseries| 影响之后所有的字符,如果想让它在局部生效,需使用花括号分组: 208 | \begin{texlist} 209 | \documentclass{article} 210 | \begin{document} 211 | {\bfseries equation: $f(x,y) = \alpha x^2 + \beta y^2$}\\ 212 | equation: $f(x,y) = \alpha x^2 + \beta y^2$.\\ 213 | \bfseries equation: $f(x,y) = \alpha x^2 + \beta y^2$\\ 214 | equation: $f(x,y) = \alpha x^2 + \beta y^2$.\\ 215 | \end{document} 216 | \end{texlist} 217 | % 效果如下: 218 | % {\bfseries equation: $f(x,y) = \alpha x^2 + \beta y^2$}\\ 219 | % equation: $f(x,y) = \alpha x^2 + \beta y^2$.\\ 220 | % \bfseries equation: $f(x,y) = \alpha x^2 + \beta y^2$\\ 221 | % equation: $f(x,y) = \alpha x^2 + \beta y^2$.\\ 222 | \end{itemize} 223 | 224 | \begin{reference} 225 | \item Ishort-zh-cn 226 | \item LaTeX入门,刘海洋 227 | \item \url{http://blog.sina.com.cn/s/blog_5e16f1770100nqwx.html} 228 | \end{reference} 229 | 230 | 231 | 232 | \faq{如何通过字体文件名来调用未安装本机字体?}{call-local-fonts-by-chinese-name} 233 | (TODO:不明白这个问题的意思。) 234 | 235 | 236 | \faq{字体大小经常出现警告,该引用什么宏包解决?}{how-to-solve-warnnings-of-fonts-size} 237 | 238 | 239 | \faq{有些特殊文字怎么加入 \LaTeX{} 文档,为什么 \backslash symbol\{"FF0E\} 编译后为空白}{how-to-add-special-symbol} 240 | 241 | \LaTeX{} 提供了 |symbol| 命令,可以直接借助于字符编码插入字符,参考本书\faqref{how-to-find-symbols}。 242 | 243 | |\symbol{"FF0E}| 编译后为空白是因你所使用的当前字体不包含这一字符,请指定包含这 244 | 一字符的字体来显示。 245 | \begin{texlist} 246 | \newCJKfontfamily\cjksans{Noto Sans CJK SC} 247 | \cjksans \symbol{"FF0E} 248 | \end{texlist} 249 | 250 | 251 | \faq{如何查看字体和行间距,然后怎样修改}{how-to-check-and-modify-fonts-skip} 252 | 253 | 254 | %TODO:这里为了演示表格,需要添加 tabularx 和 diagbox 两个宏包 255 | \faq{字体相对大小指令}{some-relative-font-size} 256 | 257 | |\small| 等命令对应的字体大小与文章 |documentlcass| 中指定的字体有关,对应 258 | 10, 11, 12 pt 三种全局字体大小的情况如下表所示: 259 | \begin{center} 260 | \begin{tabular}{|c|r|r|r|} 261 | \hline 262 | \diagbox{指令}{字体大小}{全局字体设定} & 10 pt & 11 pt & 12 pt \\ 263 | \hline 264 | |\tiny| & 5 pt & 6 pt & 6 pt \\ 265 | \hline 266 | |\scriptsize| & 7 pt & 8 pt & 8 pt \\ 267 | \hline 268 | |\footnotesize| & 8 pt & 9 pt & 10 pt \\ 269 | \hline 270 | |\small| & 9 pt & 10 pt & 10.95 pt \\ 271 | \hline 272 | |\normalsize| & 10 pt & 10.95 pt & 12 pt \\ 273 | \hline 274 | |\large| & 12 pt & 12 pt & 14.4 pt \\ 275 | \hline 276 | |\Large| & 14.4 pt & 14.4 pt & 17.28 pt \\ 277 | \hline 278 | |\LARGE| & 17.28 pt & 17.28 pt & 20.74 pt \\ 279 | \hline 280 | |\huge| & 20.74 pt & 20.74 pt & 24.88 pt \\ 281 | \hline 282 | |\Huge| & 24.88 pt & 24.88 pt & 24.88 pt \\ 283 | \hline 284 | \end{tabular} 285 | \end{center} 286 | 287 | 288 | \faq{在 \LaTeX{} 公式中如何将某一个字母或者希腊符号设置成某一个字体?}{how-to-set-up-some-character-to-special-font} 289 | 290 | %TODO:这里使用了 verb 环境就会出错 291 | %\faq{怎样在一篇文档中使用多种字体?如何自定义字体大小?(不使用已经定义的 |\huge|、|\Huge|、|\large| 等)}{how-to-use-multiply-fonts-in-one-document} 292 | 293 | 294 | \faq{如何使用 Font Awesome 提供的免费字体图标? }{how-to-using-fontawesome-in-latex} 295 | 直接应用 \pkg{fontawesome} 宏包就可以了。 296 | 297 | %TODO:这里使用了 verb 环境就会出错,好像是因为verb ||的问题不被pdf bookmark识别。 298 | %\faq{\LaTeX{} 中,\pkg{xecjk} 提供了汉字分区设置 |\xeCJKDeclareSubCJKBlock|,英文有类似操作吗?}{similar-command-in-english-as-xeCJKDeclareSubCJKBlock} 299 | 300 | 301 | \faq{word 的字体和 \LaTeX{} 大小如何对应呢?}{what-is-the-relation-of-fonts-size-in-word-and-in-latex} 302 | 303 | \pkg{ctex} 提供了 |zihao| 命令与word 常用的字号相对应,详情请运行命令|texdoc ctex|。 304 | \begin{reference} 305 | \item 刘海洋 and 李阿玲. \LaTeX{} 如何混合排版中文与日文?(此链接还包含 306 | \pTeX{} 设定的一些内容). 307 | \url{https://www.zhihu.com/question/68393040/answer/263348121} 308 | \end{reference} 309 | 310 | 311 | \faq{LaTeX 中如何设置定理环境中的字体?}{how-to-set-up-fonts-in-theorem- 312 | environment} 313 | 314 | 315 | \faq{有没有什么字符比较全的字体包推荐?}{fonts-contains-many-character} 316 | 317 | 318 | \faq{\pdfLaTeX{} 如何使用 truetype 西文字体?}{using-truetype-fonts-in-pdflatex} 319 | 320 | 321 | \faq{在latex公式中如何将某一个字母或者希腊符号设置成某一个字体?}{} 322 | 323 | 324 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/graphics.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{绘图篇} 4 | 5 | 6 | \faq{如何利用Tikz画超过360º的角,并做好标注}{draw angle} 7 | 8 | 下面解答来自\url{https://tex.stackexchange.com/questions/60295/drawing-angles-greater-than-360\%C2\%BA-intikz} 9 | 10 | \begin{texinlist} 11 | \documentclass[11pt]{scrartcl} 12 | \usepackage{tikz} 13 | \usetikzlibrary{arrows} 14 | \begin{document} 15 | \newcommand\bigangle[2][]{% 16 | \draw[->,domain=0:#2,variable=\t,samples=200,>=latex,#1] 17 | plot ({(\t+#2)*cos(\t)/(#2)}, 18 | {(\t+#2)*sin(\t)/(#2)}) node[right=.5cm] {$#2^\circ$} 19 | ;} 20 | \begin{tikzpicture} 21 | \draw [thick] ( 0,0) -- (3,0); 22 | \draw [thick] ( 0,0) -- (0,3); 23 | \draw [red,thick] ( 0,0) -- (400:3); 24 | \bigangle[blue,dashed]{400} 25 | \end{tikzpicture} 26 | \end{document} 27 | \end{texinlist} 28 | 29 | % \includegraphics{https://i.stack.imgur.com/4RO8Y.png}{图片图片} 30 | 31 | 32 | %\faq{如何画交换图?}{draw commutative diagram} 33 | 34 | 35 | \faq{如何在插入的图(\cs{includegraphics}\Arg{...})的特定位置插入符号或图}{insert symbols or graphs} 36 | 37 | 可以使用 overpic 宏包,在 overpic 环境内进行图形绘制,环境内可以使用 38 | latex 自生 picture 环境的绘图语句进行绘制。以下面给出一个例子: 39 | 40 | \begin{texinlist} 41 | \documentclass{article} 42 | \usepackage{graphicx} 43 | \usepackage{overpic} 44 | \begin{document} 45 | \begin{overpic}[width=0.8\textwidth 46 | %,grid,tics=10 % 取消注释可以产生网格线帮助定位,完成后再将其注释。 47 | ]{1.png} 48 | \put(35,10){\LaTeX} 49 | \put(80,0){\includegraphics[width=0.16\textwidth]{1.png}} 50 | \end{overpic} 51 | \end{document} 52 | \end{texinlist} 53 | 54 | %下面左边是原图,右边是代码处理后的图片: 55 | % \includegraphics{https://images-cdn.shimo.im/VFe2jSxjmoMZpr2B/1.png!thumbnail} 56 | % \includegraphics{https://images-cdn.shimo.im/4qswwF2P4u44JNYB/2.png!thumbnail} 57 | 58 | 当然还有一种方法可以使用 tikz 宏包,在 tikzpicture 59 | 环境引入图片,并在此基础上进行绘图,这样的优点是绘图语句更为丰富,功能更强大。下面举个例子: 60 | 61 | %\begin{texinlist} 62 | % ![图片](https://images-cdn.shimo.im/LrJDsfrVZIAerfPW/image.png!thumbnail) ![图片](https://images-cdn.shimo.im/sVlNCmljor0SctYs/image.png!thumbnail) 63 | %\end{texinlist} 64 | 65 | 第一个为原图,第二个是在原图基础上添加一个标号和边. 66 | 其中的格线是用来辅助做图的。 67 | 68 | \begin{texinlist} 69 | \documentclass{article} 70 | \usepackage{tikz} 71 | \begin{document} 72 | \pgfdeclarelayer{foreground} 73 | \pgfdeclarelayer{background} 74 | \pgfsetlayers{background,main,foreground} 75 | \begin{tikzpicture} 76 | \begin{pgfonlayer}{background} 77 | \path[xshift=-1.24pt,yshift=4pt] (0,0) node (o) { 78 | \includegraphics[width=2.8cm]{graph.pdf}}; 79 | \end{pgfonlayer} 80 | \begin{pgfonlayer}{foreground} 81 | \node at (0,0) [label={[label distance=-2mm]40:$u$}]{}; 82 | \draw[step=.5cm,help lines] (-1.4,-1.4) grid (1.4,1.4); 83 | \coordinate (A) at (0,1.36); 84 | \coordinate (B) at (0.91,-1.14); 85 | \fill[color=red] (B) circle (1pt); 86 | \draw[line width=0.6pt](A)--(B); 87 | \end{pgfonlayer} 88 | \end{tikzpicture} 89 | \end{document} 90 | \end{texinlist} 91 | 92 | \faq{如何让 \cs{tikz} 绘制的图像缩放}{tikz scale} 93 | 94 | 可以使用 \cs{transform shape} 和 \cs{scale},例如我要让图缩至0.6倍,可以用以下代码: 95 | \begin{texinlist} 96 | \begin{tikzpicture}[transform shape,scale=0.6] 97 | ... 98 | \end{tikzpicture} 99 | \end{texinlist} 100 | \cs{transform shape} 保证了图中按坐标指定位置的点也可以同时缩放相对距离 101 | 102 | \faq{使用 \cs{xymatrix} 画图时,图像总不能居中,该如何处理?}{} 103 | 104 | 这里需要用 \cs{centerline},给出一个例子: 105 | 106 | \begin{texlist} 107 | \documentclass{ctexart} 108 | \usepackage[all,pdf]{xy} 109 | \usepackage{zhlipsum} 110 | \begin{document} 111 | \zhlipsum[1][name=zhufu] 112 | 113 | \begin{figure} 114 | \centerline{ 115 | \xymatrix{ 116 | A'\ar[rd]\ar[rr]&&B'\ar[rd]\\ 117 | &A\ar[rr]&&B\\ 118 | C'\ar[rd]\ar[uu]\ar[rr]|\hole&&D'\ar[rd]\ar[uu]|\hole\\ 119 | &C\ar[uu]&&D\ar[ll]\ar[uu]\\ 120 | } 121 | } 122 | \end{figure} 123 | \end{document} 124 | \end{texlist} -------------------------------------------------------------------------------- /FAQ-Old/source/include/install.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{安装与配置问题} 4 | \label{sec:install} 5 | 6 | \faq{如何下载 \TeXLive{}?}{download-texlive} 7 | 8 | \TeXLive{} 分为在线安装和 ISO 镜像安装两种方式。在线安装时,需保证网络连接良好,一旦网络异常,很有 9 | 可能前功尽弃。因此对于普通用户,我们建议先行下载 \TeXLive{} 的 ISO 镜像文件至本地,再进行安装。 10 | 11 | \TeXLive{} 的 ISO 镜像文件可以在这一网址找到:\url{http://mirror.ctan.org/systems/texlive/Images/}。 12 | 打开链接后,您可能会找到若干个 ISO 文件,如 \file{texlive.iso}、\file{texlive2018.iso}、 13 | \file{texlive2018-20180414.iso} 等,除了名称的差别,它们是完全一样的。 14 | 15 | 如果需要进行在线安装,可以打开这一网址:\url{http://mirror.ctan.org/systems/texlive/tlnet/}。 16 | 其中包含的这些文件可用于安装 \TeXLive{}: 17 | 18 | \begin{itemize} 19 | \item \file{install-tl-windows.exe}:适用于 Windows 系统下的安装程序,可直接双击打开; 20 | \item \file{install-tl-unx.tar.gz}:适用于类 Unix 系统,解压后需要以脚本方式执行安装; 21 | \item \file{install-tl.zip}:同时支持 Windows 和类 Unix 系统,解压后同样需要以脚本方式安装。 22 | \end{itemize} 23 | 24 | Linux各发行版的包管理系统中一般都包括\TeXLive{},一些发行版更新速度也较快,可以用 25 | 其自身的包管理命令安装而无需下载镜像文件。如Debian类系统(包括Ubuntu)可以通过以下命令安装 26 | texlive完全版本及与其相关的依赖包: 27 | \begin{shcode} 28 | aptitude install ~n^texlive 29 | \end{shcode} 30 | 31 | 32 | \faq{如何安装 \TeXLive{}}{install-texlive} 33 | 34 | \TeXLive{} 为用户提供了官方安装手册,其中文版地址是: 35 | \url{https://tug.org/texlive/doc/texlive-zh-cn/texlive-zh-cn.pdf} 36 | 建议有余力的用户通读手册,以了解更多内容。 37 | 38 | 也可以参照以下网址 \url{https://www.tug.org/texlive/quickinstall.html} 39 | 40 | \faq{如何下载 \MiKTeX{} 安装包?}{install-miktex} 41 | 42 | 访问以下链接即可 \url{https://miktex.org/} 43 | 44 | \faq{如何下载 \MacTeX{} 安装包?}{install-mactex} 45 | 46 | \MacTeX{} 安装包下载地址 \url{http://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg} 47 | 48 | 49 | \faq{如何下载 pro\TeX{}t 安装包?}{download-protext} 50 | 51 | 访问以下链接即可 \url{http://mirror.ctan.org/systems/protext/protext.exe} 52 | 53 | 54 | \faq{如何挂载镜像文件:}{mount-iso} 55 | 56 | 目前市面上有很多虚拟光驱软件可供用户选择,例如 UltraISO。 57 | 58 | 特别一提,在 Windows 8、Windows 10 59 | 操作系统中,默认被双击后,镜像文件将会直接挂载。 60 | 61 | 在 Linux 操作系统中,可使用命令行挂载镜像文件: 62 | \begin{shcode} 63 | mount -o loop ~/download/texlive.iso ~/iso 64 | \end{shcode} 65 | 66 | 67 | \faq{挂载镜像文件后该如何做?}{after-mount} 68 | 69 | windows 用户可以双击 \file{install-tl-windows.bat} 文件来进行安装。 70 | 71 | Linux 用户请在命令行执行 |./install-tl| 进入 no gui 安装模式 72 | 73 | 74 | \faq{双击 install-tl-windows.bat 出现错误怎么办?}{error-install} 75 | 76 | 使用命令行。同时按下 win 键和 R 键,打开“运行”窗口,在窗口的“打开”处, 77 | 输入 cmd 打开命令行窗口(黑窗)。 78 | 79 | 在黑窗内输入 80 | \begin{shcode} 81 | cd /d ~ 82 | \end{shcode} 83 | 后按 Enter 键(即执行该命令),此处 |~| 代指 \file{install-tl-windows.bat} 84 | 所在目录, 85 | 例如 \file{C:/Downloads} 等,注意命令中的空格。 86 | 87 | 进入目录后继续执行 88 | \begin{shcode} 89 | install-tl-windows.bat -no-gui 90 | \end{shcode} 91 | 开启纯命令行安装模式。默认状态下,点击 I 键,安装便会开始。 92 | 若用户想改变安装路径或其他设置,只需根据屏幕提示进行更改即可。 93 | 特别强调,安装路径一定是不带空格的纯英文路径。 94 | 95 | 96 | \faq{使用命令行安装 \TeXLive{} 出现 goodbye 怎么办?}{error-goodbye} 97 | 98 | 主要是因为缺少环境变量。将 \verb|C:\Windows\system32| 添加到系统环境变 99 | 量中即可。或者在命令行中执行 100 | \begin{shcode} 101 | path=%path%;C:\Windows\system32 102 | \end{shcode} 103 | 后再尝试安装。也可能由于下载文件损坏而造成安装失败,这时应重新下载。 104 | 105 | 106 | \faq{想在 Linux 系统中使用 GUI 模式安装该怎么做?}{linux-gui} 107 | 108 | 自行安装 perl,详细办法请上网自行搜索。然后执行命令 109 | \begin{shcode} 110 | ./install-tl -gui wizard 111 | \end{shcode} 112 | 或 113 | \begin{shcode} 114 | ./install-tl -gui perltk 115 | \end{shcode} 116 | 117 | 118 | \faq{如何配置 \TeXLive{} 的环境变量?}{texlive-path} 119 | 120 | Windows 用户一般不必担忧这个问题。因为 \TeXLive{} 已经自动将环境变量写入,用户不必自己手动修改。 121 | 122 | Linux 用户需要手动配置环境变量。例如,将 123 | \begin{shcode} 124 | TEXDIR=/usr/local/texlive/2018 125 | if [ -d $TEXDIR ]; then 126 | export PATH="$TEXDIR/bin/x86_64-linux:$PATH"; 127 | export MANPATH="$TEXDIR/texmf-dist/doc/man:$MANPATH"; 128 | export INFOPATH="$TEXDIR/texmf-dist/doc/info:$INFOPATH"; 129 | fi; 130 | \end{shcode} 131 | 132 | 写入 \file{~/.profile}。注意本例中的 2018 可以根据需要修改。 133 | 例如部分用户还在使用 \TeXLive{} 2017,就可将 2018 改为 2017 等等。 134 | 135 | 136 | \faq{如何判断 \TeXLive{} 安装成功?}{texlive-success} 137 | 138 | 在新打开的命令行窗口中执行 139 | \begin{shcode} 140 | tex -v 141 | \end{shcode} 142 | 若命令行窗口中显示“TeX Live 2018”等内容,即说明安装成功。 143 | 144 | 145 | \faq{如何删除 \TeXLive{}}{uninstall-texlive} 146 | 147 | Windows 用户请找卸载批命令文件,如 |C:\texlive\2018\tlpkg\installer\uninst.bat| 148 | 149 | Linux 用户请直接删除文件夹,如执行 150 | \begin{shcode} 151 | rm -rf /usr/local/texlive/2018 152 | rm -rf ~/.texlive2018 153 | \end{shcode} 154 | 并且手动清理环境变量。 155 | 156 | \faq{\TeXLive{} 如何升级宏包?}{texlive-update} 157 | 158 | 建议使用命令行升级宏包。 159 | 160 | 首先指定源,执行命令 161 | \begin{shcode} 162 | tlmgr option repository ~ 163 | \end{shcode} 164 | 这里的 \verb|~| 指代地址,如 \verb|ctan| 即为让系统自动寻源; 165 | \verb|http://mirrors.tuna.tsinghua.edu.cn| 166 | \verb|/CTAN/systems/texlive/tlnet| 即为手动指定清华的源。 167 | 168 | 接下来,执行命令 169 | \begin{shcode} 170 | tlmgr update --self 171 | \end{shcode} 172 | 升级 tlmgr 本身。 然后,我们就可以升级宏包了。实际上,tlmgr 173 | 升级所有宏包的代码非常简单,执行命令 174 | \begin{shcode} 175 | tlmgr update --all 176 | \end{shcode} 177 | 升级过程中如果遇到问题,可以执行 178 | \begin{shcode} 179 | tlmgr update −−reinstall−forcibly−removed --all 180 | \end{shcode} 181 | 182 | \faq{在 Ubuntu 系统中使用升级宏包,系统显示未找到该命令该如何做}{ubuntu-tlmgr} 183 | 首先,执行命令 184 | \begin{shcode} 185 | sudo visudo 186 | \end{shcode} 187 | 打开一个窗口,窗口中找到 188 | \begin{shcode} 189 | Defaults secure_path="/usr/local/sbin..." 190 | \end{shcode} 191 | 将其改为(假设是64位操作系统) 192 | \begin{shcode} 193 | Defaults secure_path="/usr/local/texlive/2018/bin/x86_64-linux:/usr/local/..." 194 | \end{shcode} 195 | 然后按 \verb|ctrl+X| 保存退出即可。 196 | 197 | \faq{\MiKTeX{} 如何升级宏包}{miktex-update} 198 | 199 | \MiKTeX{} 200 | 可以用界面升级宏包,也可以使用命令行升级宏包: 201 | \begin{shcode} 202 | mpm --admin --update 203 | \end{shcode} 204 | 205 | 有些用户经常升级失败是因为源不稳定造成的。建议到 206 | \url{https://miktex.org/pkg/repositories} 找稳定的源。 207 | 指定更新源地址的命令是 208 | \begin{shcode} 209 | mpm --admin --set-repository=http://.../CTAN/systems/win32/miktex/tm/packages 210 | \end{shcode} 211 | 212 | \faq{如何自动升级 \TeXLive{} 宏包?}{texlive-autoupdate} 213 | 214 | \href{http://pd10ibe5c.bkt.clouddn.com/TeXLive\%E5\%AE\%8F\%E5\%8C\%85\%E6\%AF\%8F\%E6\%9C\%88\%E8\%87\%AA\%E5\%8A\%A8\%E6\%9B\%B4\%E6\%96\%B0.zip}{这里可以下载每月自动升级\TeXLive{}宏包的脚本}。 215 | \href{http://htharoldht.com/texlive-package-automatically-upgrades-every-month/}{这里是该脚本的说明}。 216 | 217 | 218 | \faq{不同平台 \LaTeX{} 编辑器推荐}{editors} 219 | 220 | 用户编写的 tex 文件,本质上是文本文件,因此很多编辑器都可以对 tex 文件进行更改。 221 | 某些编辑器,如 Notepad++,VSCode,Sublime Text 等,还对 tex 文件进行了语法高亮, 222 | 甚至可以利用插件做成一个 IDE。 223 | 224 | TeXworks 是集成在 \TeXLive{} 和 \MiKTeX{} 中的编辑器(\MacTeX{} 则集成了类似的 225 | TeXShop), 226 | 轻量简洁,适合新手学习。 227 | 228 | TeXStudio 是一款跨平台的开源 \LaTeX{} IDE(集成开发环境)。 229 | 对于大部分用户而言,它的功能足以满足需要,下载可访问 230 | \url{https://github.com/texstudio-org/texstudio/releases}。 231 | 232 | Texmaker 是一款免费、现代、跨平台的 \LaTeX{} 编辑器。 它能够在 Linux,macOS 和 233 | Windows 系统中使用, 234 | 并且将很多开发 \LaTeX{} 文件的工具集成在了一个应用当中。 235 | 详情见官网:\url{http://www.xm1math.net/texmaker/}。 236 | 237 | WinEdt 是一款功能强大且多样的 Windows 专用文本编辑器,具有很强的创建和编辑 \LaTeX{} 238 | 文档的能力, 239 | 可与TeX系统(如\MiKTeX{}或 240 | \TeXLive{})无缝集成。详情见官网:\url{http://www.winedt.com/}。 241 | 242 | Texpad 是运行于 macOS/iOS 在线平台的编辑器,带自动编译,支持多人联合编辑,更多内容可 243 | 访问 244 | \url{https://www.texpad.com} 245 | 246 | Visual Studio Code(vscode),是一款强大的跨平台编辑器。 247 | 安装 LaTeX Workshop 插件即可进行编译工作。Visual Studio Code 官网见 248 | \url{https://code.visualstudio.com/}。 249 | 配置可参考 \href{https://github.com/EthanDeng/vscode-latex}{LaTeX 编译环境配置:Visual Studio Code 配置简介} 和 \href{https://github.com/James-Yu/LaTeX-Workshop/wiki}{LaTeX-Workshop 的 Wiki}。 250 | 251 | 252 | \faq{如何在 Sublime 上配置 \LaTeX{} 编译环境}{sublime-latex} 253 | 可以参考 \href{https://github.com/EthanDeng/sublime-text-latex}{Sublime Text 搭建 LaTeX 编写环境}。 254 | 255 | 256 | \faq{\LaTeX{} 文档能转成 Microsoft Word 格式吗}{tex2word} 257 | 258 | 严格来讲,可以做,例如利用 pandoc 等工具进行自动转换,但结果往往不尽如人意,因此十分不 259 | 建议这样做。 260 | 261 | 262 | \faq{新手应该选择什么发行版,什么编辑器最省心}{tex-beginner} 263 | 264 | 其实选择什么发行版都可以啦,只不过大家说的最多的是 \TeXLive{},其次是 \MiKTeX{}。 265 | 编辑器也随意,像 \TeXLive{} 和 \MiKTeX{} 里自带的 TeXworks, 266 | 第三方的 TeXMaker,TeXStudio 等都是免费的编辑器。 267 | 有付费习惯的 Windows 用户也可以选择 WinEdt。 268 | Mac 用户通常使用的是 \MacTeX{},它里面集成了 TeXShop 编辑器。 269 | 270 | 271 | \faq{清华大学的 \TeXLive{} 镜像没有其他语言版?}{} 272 | 273 | 不仅清华大学的没有,其他镜像的也没有。\TeXLive{} 本身不存在语言的问题。 274 | 对于一般用户而言,能通过命令行调用 \TeXLive{} 的引擎的人都不多,命令行需要尽量避开中文。 275 | 你可能好奇的是编辑器如何变成中文。这个需要看编辑器本身的设置。 276 | 277 | 278 | \faq{TeXStudio 怎么自定义快捷键?}{} 279 | 280 | options $\to$ configure texstudio $\to$ shortcuts 281 | 282 | 283 | \faq{有哪些支持实时刷新的 pdf 阅读器?}{} 284 | 285 | \begin{itemize} 286 | \item Windows 下可以使用 \href{https://www.sumatrapdfreader.org/free-pdf-reader.html}{SumatraPDF} 287 | \item Mac 下可以使用 \href{http://skim-app.sourceforge.net/}{Skim}。 288 | \item Linux 下的 \href{https://gitlab.gnome.org/GNOME/evince}{Evince} 和 289 | \href{https://okular.kde.org/}{Okular} 也支持实时更新 pdf。 290 | \end{itemize} 291 | 292 | 293 | \faq{不同编辑器和不同 pdf 阅读器如何设置正反向搜索?}{} 294 | 295 | 配置 Sublime Text: 296 | \begin{itemize} 297 | \item 298 | 手写编译命令: 299 | \begin{jsoncode}[breaklines=true] 300 | { 301 | "shell_cmd": "xelatex -synctex=1 \"${file}\" && evince \"$file_base_name.pdf\"", 302 | } 303 | \end{jsoncode} 304 | 说明: 添加 |-synctex=1| 参数生成 \file{synctex.gz} 文件,以支持正反向搜索。 305 | 306 | |evince "$file_base_name.pdf"| 用 Evince 文档查看器打开生成的 PDF 文档, 307 | 或者你可以换成其它 PDF 查看器。 308 | 309 | |$file_base_name| 获取不包括后缀的文件名。 310 | 两条命令需要前面执行完正确再执行后面,用 |&&| 分隔开。 311 | \item 312 | 通过 Package Control 安装插件 LaTeXTools。 313 | 314 | TeXStudio不用配置,只需要按住 Ctrl,鼠标左键分别点击代码窗口和内置 pdf 阅读器页面, 315 | 会分别定位到 pdf 和代码窗口。 316 | \end{itemize} 317 | 318 | 319 | \faq{使用 \pkg{minted} 之前要如何配置环境?}{} 320 | 321 | 详细的配置在 \pkg{minted} 宏包文档中有介绍。 322 | 安装 python,选定安装 pip。打开命令行,执行 323 | \begin{shcode} 324 | setx path=%path%;[Python];[\Python\Scripts] 325 | \end{shcode} 326 | 这里的 |[Python]| 和 |[\Python\Scripts]| 代指你安装 python 的路径和该路径下的 scripts 文件夹。 327 | 如 |D:\Python\Python36| 和 |D:\Python\Python36\Scripts|。 328 | 然后在命令行中执行 329 | \begin{shcode} 330 | pip install Pygments 331 | \end{shcode} 332 | 进行安装。 333 | 最后在编译文档的时候添加 |-shell-escape| 选项。 334 | 335 | 336 | \faq{\TeXLive{}为什么要采取每年一个大版本的制度?}{} 337 | 338 | 参考 \url{https://tex.stackexchange.com/questions/107017/why-does-tex-live-require-yearly-updates} 339 | 340 | 341 | %\faq{在经常使用某个非 CTAN 收录的宏包的情况下。怎样安装这种非字体宏包?}{} 342 | 343 | 344 | %\faq{怎样安装字体宏包?}{} 345 | 346 | 347 | \faq{为了预防 \TeX{} 源文件用不同的编辑器,不同的系统下打开,产生乱码,无法撤回修改,有什么建议?}{} 348 | 349 | 目前大力建议用户使用 UTF-8 编码,尤其是中文用户,同一系统下的乱码,多是因为软件升级之间默认打开编码不匹配导致的,比如WinEdt7.0版本到WinEdt10版本以上会出现类似问题,推荐用自动检测编码的文本编辑器打开比如notepad++。 350 | 不同系统之间,如windows到linux系统下,Linux和Windows下汉字编码不一样,Linux下默认使用UTF-8,这样保证了系统之间编码传递不会出现乱码了。 351 | 352 | 353 | \faq{TeXStudio 里面某些命令明明没有打错,也可以正常编译,为什么编辑框会显示为红的?}{} 354 | 355 | TeXStudio 编辑器并没有把所有的命令都写入它的格式文件,即 |cwl| 文件。还有很多时候是语法检查的问题,要么设置相应的语言 356 | 包,要么关闭语法检查功能。 357 | 358 | 359 | \faq{\TeXLive{}怎么手动添加其他宏包?}{} 360 | 361 | 一般而言 \TeXLive{} 默认把宏包都安装在本地,如果是用户自定义的宏包,只需放置于工作目录。 362 | 363 | 364 | %\faq{在 macOS 系统下怎么配置中文,很多中文模板用不了?}{} 365 | 366 | 367 | %\faq{WinEdt 编辑器中如何搜索并高亮出全部的关键词?自己尝试只标记出一个来。}{} 368 | 369 | 370 | \faq{不同IDE写的源文档相互编译会不会出现不兼容情况?比如用 WinEdt 写的文档,用 xelatex 编译,当文档换到TeXstudio中也用xelatex编译时会不会出现兼容性的错误?}{} 371 | 372 | 只要文档编码、编译引擎一致,就不会出问题。 373 | 374 | %\faq{TeXstudio相比于Winedt有哪些优势?}{} 375 | 376 | %\faq{Mactex端打开别模板经常乱码要如何处理?}{} 377 | 378 | %\faq{tex2017版的安装 一直安装不了 这个版本和之前的有什么区别吗?改进很多吗?xetex的运行 具体应该怎么运行?尝试过几次,都没有成功}{} 379 | 380 | %\faq{Texstudio的菜单栏能否自定义?如何自定义?}{} 381 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/layout.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{版面设计篇} 4 | 5 | \faq{如何用fancyhdr宏包实现一粗一细的双线页眉}{fancyhdrtwoline} 6 | 7 | \begin{texinlist} 8 | \usepackage{fancyhdr} 9 | \newcommand{\makeheadrule}{%  10 | \makebox[0pt][l]{\rule[.7\baselineskip]{\headwidth}{0.8pt}}% 11 | \rule[.6\baselineskip]{\headwidth}{0.4pt}\vskip-.8\baselineskip} 12 | \makeatletter \renewcommand{\headrule}{%  13 | {\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi \makeheadrule}}\makeatother 14 | \begin{document} 15 | \pagestyle{fancy} 16 | .... 17 | \end{document} 18 | \end{texinlist} 19 | 20 | %\faq{如何用fancyhdr宏包实现一粗一细的双线页眉}{fancyhdrtwoline} 21 | 22 | 23 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/math-1.tex: -------------------------------------------------------------------------------- 1 | \DeclareMathOperator*{\esssup}{ess\,sup} 2 | 3 | \usepackage{ifthen} 4 | \newcounter{qlst} 5 | \newenvironment{EqDesc}[2][式中]{% 6 | \begin{list}{} 7 | {% 8 | \usecounter{qlst} 9 | \settowidth{\labelwidth}{#1,\ \ #2\ --- \ } 10 | \setlength{\labelsep}{0pt} 11 | \setlength{\leftmargin}{\labelwidth} 12 | \setlength{\rightmargin}{0em} 13 | \setlength{\parsep}{0ex} 14 | \setlength{\itemsep}{0ex} 15 | \setlength{\itemindent}{0em} 16 | \setlength{\listparindent}{0em} 17 | \renewcommand{\makelabel}[1] 18 | {\stepcounter{qlst} 19 | \ifthenelse{\value{qlst}>1}{\hfill ##1\ --- \ }{#1,\hfill ##1\ --- \ } 20 | } 21 | }% 22 | }% 23 | {\end{list}} 24 | 25 | \makeatletter 26 | \def\ExtendSymbol#1#2#3#4#5{\ext@arrow 0099{\arrowfill@#1#2#3}{#4}{#5}} 27 | \def\RightExtendSymbol#1#2#3#4#5{\ext@arrow 0359{\arrowfill@#1#2#3}{#4}{#5}} 28 | \def\LeftExtendSymbol#1#2#3#4#5{\ext@arrow 6095{\arrowfill@#1#2#3}{#4}{#5}} 29 | \makeatother 30 | 31 | \newcommand\myRightarrow[2][]{\RightExtendSymbol{|}{=}{\Rightarrow}{#1}{#2}} 32 | \newcommand\myArrow[2][]{\ExtendSymbol{\Leftarrow}{=}{\Rightarrow}{#1}{#2}} 33 | 34 | \newenvironment{shrinkeq}[1] 35 | { \bgroup 36 | \addtolength\abovedisplayshortskip{#1} 37 | \addtolength\abovedisplayskip{#1} 38 | \addtolength\belowdisplayshortskip{#1} 39 | \addtolength\belowdisplayskip{#1}} 40 | {\egroup\ignorespacesafterend} 41 | 42 | \newcommand{\abs}[1]{\vert #1 \vert} -------------------------------------------------------------------------------- /FAQ-Old/source/include/math-ii.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{数学公式(二)} 4 | \label{sec:math-ii} 5 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/preface.tex: -------------------------------------------------------------------------------- 1 | \section*{前言} 2 | 本手册致力于打造最全面的中文 \LaTeX{}-faq。 3 | 在此感谢全体贡献手册内容的朋友。 4 | 建议使用 5 | \begin{shcode} 6 | latexmk -pdfxe -synctex=1 -file-line-error latex-faq-cn 7 | \end{shcode} 8 | 编译本文档。 9 | 10 | 如果您也是致力于发展中文 \LaTeX{} 的爱好者,请加入 \href{https://github.com/latexstudio/LaTeXFAQ-cn}{LaTeXFAQ-cn} 11 | \clearpage -------------------------------------------------------------------------------- /FAQ-Old/source/include/starter.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{最常出现的问题} 4 | \label{sec:starter} 5 | 6 | \faq{论文 / 比赛的 deadline 要到了,如何在一天 / 两天 / 三天之内入门 \LaTeX{}?}% 7 | {get-started-in-a-short-time} 8 | 9 | 非常遗憾,这几乎是不可能完成的任务。在时间紧张、压力巨大的情形下,入门 \LaTeX{} 对您来说没有意义。 10 | 作为排版工具,\LaTeX{} 实现的效果远没有文章的内容重要,所以请不要在这种情况下把您的精力投入在学习 11 | \LaTeX{} 上。 12 | 13 | 通常来说,我们建议您至少通过三个月的时间来学习 \LaTeX{},并在之后的工作、学习中不断深入理解、 14 | 积累经验。 15 | 16 | 如果确有必要在短时间内掌握 \LaTeX{} 的使用方法,请联系靠谱且有经验的人。 17 | 18 | \begin{note} 19 | 很多“学长”、“老师”都是不靠谱的。 20 | \end{note} 21 | 22 | 23 | \faq{我是新手,学习 \LaTeX{} 应该怎么入门?}{get-started} 24 | 25 | 首先,您需要确保自己有较为充裕的时间。接下来,我们推荐您阅读一些 \LaTeX{} 入门材料,比较知名的有 26 | \href{http://mirrors.ctan.org/info/lshort/chinese/lshort-zh-cn.pdf}{《一份不太简短的 \LaTeXe{} 介绍》} 27 | (\href{http://mirrors.ctan.org/info/lshort/english/lshort.pdf}{\book{The Not So Short In­tro­duc­tion to \LaTeXe{}}}), 28 | 即 \pkg{lshort}。此外,您还需要在电脑上安装一套 \TeX{} 发行版(见\faqref{install-latex}),或使用 29 | 在线服务,如 \href{https://www.overleaf.com/}{Overleaf}。 30 | 原在线服务 \href{https://www.sharelatex.com}{ShareLaTeX} 已与 \href{https://www.overleaf.com/}{Overleaf} 合并为 \href{https://v2.overleaf.com}{Overleaf v2 平台} 。 31 | 32 | 进一步的学习还需要阅读更多的书籍和文档,例如刘海洋《\LaTeX{} 入门》~\footnote{如作者所言,“虽然书名 33 | 是《入门》,不过其实我并非完全是按新手入门的节奏在写,除了第一章是零基础入门,后面的内容编排并不 34 | 完全是从基础到深入的顺序,而是按主题划分;实际内容上也包含一些比较专门的东西”,这本书内容丰富、 35 | 讲解深入,但对新手未必友好;而且需注意,关于中文处理的部分可能略显过时。}。此外,善用 36 | 搜索引擎~\footnote{对于技术方面的问题,我们不推荐百度。谷歌在大多数时候都可以获得更好的搜索结果; 37 | 当然,如果您身处大陆地区,必应很可能是更好的选择。} 也是必备技能。最后,我们强烈建议您提高英语水平, 38 | 因为 \LaTeX{} 的相关材料,除了与中文排版相关的内容外,几乎都使用英文撰写。 39 | 40 | \begin{reference} 41 | \item 刘海洋.自学 \LaTeX{} 可以读什么书入门? 42 | \url{https://www.zhihu.com/question/26645810/answer/33515971} 43 | \end{reference} 44 | 45 | 46 | \faq{如何“安装 \LaTeX{}”?}{install-latex} 47 | 48 | 回答这一问题,首先需要澄清一些概念,见\faqref{tex-related-things}。简短来说,\LaTeX{} 本身是 49 | 一种标记语言,而不是 Microsoft Word 一样现成的软件。因此,社区将相关的支持文件、可执行程序、文档等 50 | 打包在了一起,形成了可供用户下载、安装的\strong{发行版(distribution)}。一般而言,“安装 \LaTeX{}” 51 | 指的就是安装发行版。 52 | 53 | 目前,可供使用的主流发行版有以下这些: 54 | 55 | \begin{itemize} 56 | \item \TeXLive{} 57 | \item \MacTeX{},它实际上是 \TeXLive{} 的再次封装 58 | \item \MiKTeX{} 59 | \end{itemize} 60 | % 见\faqref{install-texlive} 61 | % \item \MiKTeX{},见\faqref{install-miktex} 62 | % \item \MacTeX{},适用于 macOS,见\faqref{install-mactex} 63 | % \item pro\TeX{}t,见\faqref{download-protext} 64 | % % TODO: 更多的发行版介绍 65 | % \item 【有待整理】 66 | 67 | 68 | \faq{我应该在哪里编写 \LaTeX{} 文档?}{where-to-write-latex} 69 | 70 | \LaTeX{} 文档是纯文本文件,因此原则上可以在任意的\strong{文本编辑器}中编写。支持 \LaTeX{} 的常见 71 | 编辑器有以下这些: 72 | 73 | \begin{itemize} 74 | \item TeXworks、TeXstudio、Texpad、WinEdt 等,它们是专门为编写 \LaTeX{} 设计的; 75 | \item Visual Studio Code、Sublime Text、Atom 等,它们是基于 Web 技术的现代编辑器,依靠插件支持 76 | \LaTeX{} 语言; 77 | \item Vim、Emacs,它们是具有强大可扩展性、可定制性但学习曲线也很陡峭的编程利器, 78 | 同样依靠插件支持。 79 | \end{itemize} 80 | 81 | \begin{note} 82 | 由于 Windows 系统中记事本(Notepad)的编码问题,请不要在其中编辑任何含有非 ASCII 字符的文件。 83 | \end{note} 84 | 85 | 86 | \faq{我的 \CTeX{} 为什么……}{why-ctex} 87 | 88 | 您在这里提到的“\CTeX{}”,指的很可能是由中国 \TeX{} 社区(即 \CTeX{} 社区)所发布的、以 \MiKTeX{} 89 | 为基础的一个发行版,全称为 \href{http://www.ctex.org/CTeX}{\CTeX{} 套装}。这一发行版目前已\strong{停止 90 | 维护},所以除非必要,请不要再使用。\TeXLive{} 以及 \MiKTeX{} 都是可靠的替代方案。 91 | 92 | \CTeX{} 社区另发布了一个同名的 93 | \href{https://www.ctan.org/pkg/ctex}{\CTeX{} 宏集},这是目前在 \LaTeX{} 中使用中文排版的推荐方案。 94 | 如果您需要获取相关信息,请查阅其文档。\CTeX{} 宏集的有关问题,在本文之后也有涉及。 95 | 96 | 97 | \faq{那些含有 \TeX{}、\LaTeX{} 的都是什么东西?}{tex-related-things} 98 | 99 | \TeX{} 本身是由 Knuth 发明的一套排版系统,同时也指相应的排版语言(见\faqref{what-is-tex})。 100 | Knuth 还设计了一个名为 \PlainTeX{} 的格式。所谓\strong{格式},是指对原始 \TeX{} 命令的封装,是 101 | 一种更高层次的抽象。它可以让用户在一定程度上摆脱排版中的繁琐细节,从而专注于文章写作。\LaTeX{} 就是 102 | 应用最为广泛的一种格式,它由 Leslie Lamport 发明,提供了 \TeX{} 的强大排版能力,但又足够易用,因此 103 | 深得人们的认可。现代比较流行的格式除 \PlainTeX{} 与 \LaTeX{} 之外,还有 \ConTeXt{}。 104 | 105 | 作为应用程序的 \TeX{} 也称之为\strong{排版引擎}。随着技术的发展,原始的 \TeX{} 程序逐渐不能满足 106 | 人们的需要。于是,新的引擎便被发明了出来,包括 \eTeX{}、\pdfTeX{}、\XeTeX{}、\LuaTeX{} 等。它们增加 107 | 了许多新的功能,比如 PDF 生成、Unicode 支持、OpenType 支持等。 108 | 109 | \TeX{} 以及 \LaTeX{} 的使用涉及很多的应用程序;另一方面,社区又通过\strong{宏包}的形式引入了许多 110 | 额外功能。正如\faqref{install-latex} 中所介绍的那样,为了方便安装与使用,\strong{\TeX{} 发行版}将 111 | 程序、宏包以及相应的文档等打包在了一起,并以特定的结构(TDS,见\faqref{what-its-tds})进行管理。 112 | 113 | 排版引擎通常会与特定的格式组合起来,我们有时也简单地把它们叫做\strong{编译器}。前面所介绍的 114 | \pdfTeX{}、\XeTeX{}、\LuaTeX{} 等默认都使用 \PlainTeX{} 格式,而使用 \LaTeX{} 格式的则相应地写为 115 | \pdfLaTeX{}、\XeLaTeX{}、\LuaLaTeX{} 等。 116 | 117 | 在 \TeX{} 发行版中,实际上我们使用的都是一些可执行程序,具体见表~\ref{tab:engine-format-exe}。 118 | 119 | \begin{table}[htb] 120 | \caption{各类引擎、格式及相应的可执行程序(命令)} 121 | \label{tab:engine-format-exe} 122 | \centering 123 | \begin{tabular}{*{5}{|c}|} 124 | \hline 125 | \diagbox{格式}{命令}{引擎} & \TeX & \pdfTeX & \XeTeX & \LuaTeX \\ 126 | \hline 127 | \PlainTeX & |tex| & |etex| / |pdftex| & |xetex| & |luatex| \\ 128 | \LaTeX & --- & |latex| / |pdflatex| & |xelatex| & |lualatex| \\ 129 | \ConTeXt & --- & |texexec| & !TODO! & |context| \\ 130 | \hline 131 | \end{tabular} 132 | \end{table} 133 | 134 | 135 | \faq{怎样实现我想要的样式?}{get-my-style} 136 | 137 | \LaTeX{} 推崇的原则称为“内容与格式分离”,如果您是刚入门的新手,请先专注于内容的编辑,而不是考虑如何 138 | 更改文章的样貌。一般而言,您所使用的模板都会预先实现所需的样式,而无需您自己想办法解决。 139 | 140 | 如果您对 \LaTeX{} 已经比较熟悉,并且需要自定义样式乃至制作新的模板,此问题自然也就不适用了。本文 141 | 之后的内容也许会对您有所帮助。 142 | 143 | 144 | \faq{\LaTeX{} 生成的是什么文件?}{latex-generated-file} 145 | 146 | 现代 \TeX{} 引擎生成的都是 PDF 文件。在 Knuth 和 Lamport 的年代,PDF 还未被发明,因而传统上 \TeX{} 147 | 以 DVI 文件~\footnote{全称为 Device independent file format,注意与 DVI 数字视频接口(Digital 148 | Visual Interface)区分。} 作为输出。曾经的一段时间里,PostScript(PS)格式也很流行,因而有 DVI 149 | 转换到 PS 的程序;当 PDF 流行起来之后,又出现了 PS 到 PDF 的转换程序。不过目前,这种复杂的工具链 150 | 都被淘汰了。 151 | 152 | 153 | \faq{我应该用什么模板?}{how-to-use-template} 154 | 155 | “模板”这个词往往带有歧义。我们说的模板,通常有以下几个意思: 156 | 157 | \begin{itemize} 158 | \item 论文或者期刊文章的模板,如 \cls{thuthesis}、\cls{REVTeX} 等。它们已经定义好了样式,用户只 159 | 需要填写内容。有些甚至提供了比较完善的示例,可以直接在此基础上修改、编辑。 160 | \item 表格模板、公式模板,这种并不很长的代码片段其实更应该叫做“示例”。我们鼓励新手学习、参考别人 161 | 已有的代码,但并不鼓励直接照抄。一方面无助于提高自己水平,另一方面别人的代码片段可能与其他部分 162 | 冲突,而且往往很难解决。 163 | \item 也有人用模板指代宏包或者文档类,不过这属于滥用术语,与别人交流还是用“某某宏包”、“某某文档 164 | 类”比较合适。 165 | \item \cls{beamer} 文档类与 \LaTeX3 中的 \pkg{xtemplate} 宏包提供了更为抽象的模板机制,但这并不 166 | 是给普通用户使用的。 167 | \end{itemize} 168 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/table.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{表格篇} 4 | 5 | 6 | \faq{如何指定表格的总宽度}{tab-width} 7 | 8 | 可以看看tabularx、tabu等宏包。 9 | 10 | 11 | \faq{指定列宽度的表格如何使单元格内容居中}{tabc} 12 | 13 | 指定宽度的表格列一般采用 |p{}| 14 | 形式的列格式,这种列格式下,表格内容是两端对齐的,如果想使其成为居中对齐需要借助 15 | array 宏包提供的功能,示例如下: 16 | 17 | \begin{texinlist} 18 | \begin{tabular}{c|>{\centering\arraybackslash}p{4cm}} 19 | \hline 20 | 1 & 3.530 \\ 21 | 2 & 456.0 \\ 22 | 3 & 78.945 \\ 23 | 4 & 3.65 \\ 24 | \hline 25 | \end{tabular} 26 | \end{texinlist} 27 | 28 | 而 |p{}>{}| 29 | 这样的格式在文档的应用过程中是非常不方便的,array 宏包同时提供了 30 | \cs{newcolumntype} 宏命令可以将其定义为一个较为简短的格式,如: 31 | 32 | \begin{texinlist} 33 | \newcolumntype{z}[1]{>{\centering\arraybackslash}p{#1}} 34 | \end{texinlist} 35 | 36 | 从而可以在正文中使用 37 | 38 | \begin{texinlist} 39 | \begin{tabular}{c|z{4cm}} 40 | \hline 41 | 42 | 1 & 3.530 \\ 43 | 2 & 456.0 \\ 44 | 3 & 78.945 \\ 45 | 4 & 3.65 \\ 46 | \hline 47 | \end{tabular} 48 | \end{texinlist} 49 | 50 | 类似的,采用 \cs{raggedright} 或 51 | \cs{raggedleft} 替换\cs{centering} 可以使得单元格内容变成左对齐或右对齐。 52 | 53 | 54 | \faq{tabularx 中的 X 列格式如何居中对齐}{tabularx-x} 55 | 56 | 同样采用 array 宏包的 |>|\marg{format} 方法,并利用 57 | \cs{newcolumntype} 定义新的列格式,如: 58 | 59 | \begin{texinlist} 60 | \usepackage{array,tabularx} % this line in preamble 61 | \newcolumntype{Z}{>{\centering\arraybackslash}X} % this line in preamble 62 | \begin{tabularx}{\linewidth}{ZZ} 63 | \hline 64 | 65 | 1 & 3.530 \\ 66 | 2 & 456.0 \\ 67 | 3 & 78.945 \\ 68 | 4 & 3.65 \\ 69 | \hline 70 | \end{tabularx} 71 | \end{texinlist} 72 | 73 | 74 | \faq{tabularx 中的 X 列格式,当单元格内容发生换行时,如何使同一行其他列的单元格垂直居中对齐?}{tabularx-x-format} 75 | 76 | 对于指定宽度的表格列格式 77 | |p{}|,单元格内一旦进行换行,该单元格同一行内其他列的单元格内容均为垂直方向上顶端对齐,我们可以使用 78 | array 宏包,以 m\{\} 列格式或者 b\{\} 列格式 替代 p\{\} 79 | 格式即可实现垂直居中对齐或垂直底部对齐。对于 tabularx 中的 X 80 | 列格式,也是采用同样的思路实现,只是这里需要对 81 | \cs{tabularxcolumn} 宏进行重定义如下: 82 | 83 | \begin{texinlist} 84 | \usepackage{array,tabularx} % this line in preamble 85 | \renewcommand{\tabularxcolumn}[1]{m{#1}} % this line in preamble 86 | \end{texinlist} 87 | 88 | 以上则将同行的其他列单元格设置为垂直居中对齐。显然的,垂直底部对齐的设置方法是将重定义宏命令中的 89 | m\{\#1\} 替换为 b\{\#1\} 即可。 90 | 91 | 92 | \faq{booktabs的三线表,竖线为什么是不连续的?}{booktabs} 93 | 94 | 宏包的作者为表格线的前后都增加了额外的sep,而且,宏包的作者认为三线表是不应该有竖线的。当然,如果你一定想要使用竖线,不妨以下面两个命令将表格线前后的sep设置为0pt。 95 | 96 | \begin{texinlist} 97 | \usepackage{booktabs} % this line in preamble 98 | \setlength{\belowrulesep}{0pt} 99 | \setlength{\aboverulesep}{0pt} 100 | \end{texinlist} 101 | 102 | 103 | \faq{表格的一列全是公式,有什么办法能输入简单些?}{table-formula} 104 | 105 | 可以使用 array 宏包,|>{}| 与|<{}| 106 | 可以为一列数据前后加上特定的宏命令。在一列数据前后均加上 |$| 则把这列数据放入数学模式中,举例如下: 107 | 108 | \begin{texinlist} 109 | \usepackage{array} % this line in preamble 110 | \begin{tabular}{>{$}c<{$} c} 111 | \hline 112 | \multicolumn{1}{c}{function} & value \\ 113 | g(x) & 3.65 \\ 114 | f(x) & 2.58 \\ 115 | \sin(x) & 14.7 \\ 116 | \hline 117 | \end{tabular} 118 | \end{texinlist} 119 | 120 | 第一列数据省去了输入数学模式起止符号 |$| 的痛苦。对于不需要放入数学模式的单元格,比如表头,需要用 |\multicolumn{1}{c}{xxx}| 的方式来保护一下,重新指定对齐方式。 121 | 122 | 123 | \faq{我的表格单元格内容是一个列表环境 (enumerate/itemize),它和表格横线之间间距好大啊,怎么能把这些间距去掉?}{enumerate-itemize} 124 | 125 | 把列表环境放入到 minipage 环境中即可,即使表格列格式采用的是p{<width>}格式。 126 | 127 | 128 | \faq{如果想让表格中数字小数点对齐要怎么做}{tab-num-align} 129 | 130 | 可以借助 @ 的功能,如 131 | 132 | \begin{texinlist} 133 | \begin{tabular}{r@{.}l} 134 | \hline 135 | 1 & 0 \\ 136 | 23 & 1 \\ 137 | \hline 138 | \end{tabular} 139 | \end{texinlist} 140 | 141 | 或者借助 warpcol 宏包提供的功能,如 142 | \begin{texinlist} 143 | \documentclass{article} 144 | \usepackage{warpcol} 145 | \begin{document} 146 | \begin{tabular}{P{3.1}P{-2.1}} 147 | \hline 148 | \multicolumn{1}{c}{Label 1} & \multicolumn{1}{c}{Label 2} \\ 149 | \hline 150 | 123.4 & -12.3 \\ 151 | 12.3 & 12.3 \\ 152 | 1.2 & 1.2 \\ 153 | \hline 154 | \end{tabular} 155 | \end{document} 156 | \end{texinlist} 157 | 158 | 还可以借助 array 和 dcolumn 的配合,如 159 | 160 | \begin{texinlist} 161 | \documentclass{article} 162 | \usepackage{array,dcolumn} 163 | \newcolumntype{d}[1]{D{.}{.}{#1}} 164 | \begin{document} 165 | \begin{tabular}{cd{3}} 166 | \hline 167 | 1 & 3.14 \\ 168 | 2 & 27.12 \\ 169 | 3 & 78.095 \\ 170 | \hline 171 | \end{tabular} 172 | \end{document} 173 | \end{texinlist} 174 | 175 | 176 | 还可以借助 array 和 dcolumn 的配合,如 177 | 178 | \begin{texinlist} 179 | \documentclass{article} 180 | \usepackage{array,dcolumn} 181 | \newcolumntype{d}[1]{D{.}{.}{#1}} 182 | \begin{document} 183 | \begin{tabular}{cd{3}} 184 | \hline 185 | 1 & 3.14 \\ 186 | 2 & 27.12 \\ 187 | 3 & 78.095 \\ 188 | \hline 189 | \end{tabular} 190 | \end{document} 191 | \end{texinlist} 192 | 193 | 194 | \faq{表格竖排}{tab-Vert} 195 | 196 | \begin{texinlist} 197 | \documentclass{ctexart} 198 | \usepackage[usestackEOL]{stackengine} 199 | 200 | \begin{document} 201 | 202 | \setlength\normalbaselineskip{11pt} 203 | \strutlongstacks{T} 204 | \begin{tabular}{|c|c|c|} 205 | \hline 206 | Foo bar & {\Centerstack{ 这 \\ 一 \\ 列 \\ 竖 \\ 排 }} & Foo bar \\ 207 | \hline 208 | \end{tabular} 209 | 210 | \end{document} 211 | \end{texinlist} 212 | 213 | 214 | \faq{跨页长表格}{longtable} 215 | 216 | \begin{texinlist} 217 | \usepackage{longtable} 218 | \end{texinlist} 219 | 220 | ,做好对长表格跨页时的设置 221 | 222 | 223 | \faq{双栏中表格过大怎么调整?}{twocol-big} 224 | 225 | \begin{itemize} 226 | 227 | \item 方法一:用 graphicx 宏包提供的 \cs{resizebox} 命令: 228 | \begin{texinlist} 229 | \resizebox{width}{height}{function} 230 | \end{texinlist} 231 | resizebox 会放缩 function 中的内容到 width 宽度、height 232 | 高度。需要注意的是,同时指定宽度和高度,一般会导致缩放的内容变形,你也可以指定其中一项,\sout{另一个用!占位,}这样系统会自适应另一个参数,即相当于scale命令。 233 | \item 方法二:用 \texttt{table*} 取代 table 环境,针对的是单栏表格。 234 | \item 方法三:将表格中的字体缩小。 235 | \item 方法四:使用横排:使用 rotating 宏包 236 | \end{itemize} 237 | 238 | \faq{如何制作列数可变的表格,例如试卷的计分表?}{col-tab-variable} 239 | 240 | 主要是使用 makecell 和 interfaces-makecell 宏包。下面给出一个 MWE。 241 | 242 | \begin{texinlist} 243 | \documentclass{standalone} 244 | \usepackage{ctex,calc,makecell,interfaces-makecell,CJKnumb,tabularx,multirow} 245 | 246 | \newcounter{TotalPart} 247 | \newcounter{SubColumn} 248 | \newcounter{EmptyColumn} 249 | 250 | \setcounter{TotalPart}{1} 251 | 252 | % 计分表制作 253 | \newcommand{\ScoreTable}{ 254 | \setcounter{SubColumn}{\value{TotalPart}+2} 255 | \setcounter{EmptyColumn}{\value{TotalPart}+4} 256 | \begin{tabularx}{\textwidth}{|*{\theSubColumn}{X<{\centering}|}*{3}{c|}} 257 | \hline 258 | \multicolumn{\theSubColumn}{|c|}{\multirow{2}{*}{试卷卷面成绩}} 259 | & \multicolumn{1}{c|}{\multirow{3}{3em}{课程考核成绩占~\%}} 260 | & \multicolumn{1}{c|}{\multirow{3}{3em}{平时成绩占\,\%}} 261 | & \multicolumn{1}{c|}{\multirow{3}{3em}{课程考核成绩}} 262 | \\ 263 | \multicolumn{\theSubColumn}{|c|}{} 264 | & & & 265 | \\ 266 | \cline{1-\theSubColumn} 267 | \hfill 题 \hfill 号 \hfill~ 268 | & \repeatcell{\theTotalPart}{text=\CJKnumber{\column}} 269 | & \hfill 小 \hfill 计 \hfill~ 270 | & & & 271 | \\ 272 | \hline 273 | \hfill 得 \hfill 分 \hfill~ 274 | & \eline{\theEmptyColumn} 275 | \\ 276 | \hline 277 | \end{tabularx} 278 | } 279 | 280 | \begin{document} 281 | 282 | \ScoreTable 283 | 284 | \end{document} 285 | \end{texinlist} 286 | 287 | CJKnumb 宏包是为了把阿拉伯数字转换为小写汉字序号。 calc 288 | 宏包是为了做四则运算。 tabularx 宏包是为了做列宽自动扩展的表格。 289 | multirow 宏包是为了合并单元格。 makecell 是制作表格。 290 | interfaces-makecell 291 | 宏包提供了一系列命令,使得制作可变表格称为可能,同时简化了表格制作。 292 | 293 | 294 | \faq{如何固定表格的总宽度?}{table-col-fixed} 295 | 296 | 使用 tabular* 环境或 tabularx 297 | 宏包提供的同名环境即可固定表格的总宽度,宏包 tabu 298 | 功能更为强大,用法也更为复杂,可参见相应宏包文档说明。 299 | 300 | 301 | \faq{表格在单元格内如何换行?}{tab-newline} 302 | 303 | 可以通过限制列宽实现,例如下面的例子 304 | 305 | \begin{texinlist} 306 | \begin{tabular}{|c|c|m{50mm}|}%这里用m则必须调用array宏包 307 | \hline 308 | a & b & \LaTeX{}表格固定列宽自动换行自动换行自动换行自动换行自动换行\\ 309 | \hline 310 | a & b & \LaTeX{}表格固定列宽自动换行自动换行自动换行自动换行自动换行\\ 311 | \hline 312 | a & b & \LaTeX{}表格固定列宽自动换行自动换行自动换行自动换行自动换行\\ 313 | \hline 314 | \end{tabular} 315 | \end{texinlist} 316 | 317 | 318 | \faq{如何插入子图/表,各自分别带子标题,不带子标题?}{tab-subfigure-insert} 319 | 320 | 可参见并列图形、并列子图的排列 321 | 322 | 323 | \faq{如何减小表格,插图,公式,列表等前后空白?}{tab-blank} 324 | 325 | 表格、插图、公式、列表的前后空白很多是由于不良的文本结构引起的,比如太短篇幅的正文,接连几级标题之间没有正文内容,甚至标题之间只有插图和表格等浮动体而没有任何说明的正文,这些都是不好的行文习惯,应杜绝这样的行文方式。此外,一些不良的代码写法也会引入较大的空白,如: 326 | 327 | \begin{texinlist} 328 | \begin{center} 329 | \begin{figure} 330 | ... 331 | \end{figure} 332 | \end{center} 333 | \end{texinlist} 334 | 335 | 或者 336 | 337 | \begin{texinlist} 338 | \begin{figure} 339 | \begin{center} 340 | \includegraphics{x.pdf} 341 | \caption{the title} 342 | \end{center} 343 | \end{figure} 344 | \end{texinlist} 345 | 346 | 而应该采用的方式是: 347 | 348 | \begin{texinlist} 349 | \begin{figure} 350 | \centering 351 | \includegraphics{x.pdf} 352 | \caption{the title} 353 | \end{figure} 354 | \end{texinlist} 355 | 356 | 这是因为 center 环境本身就是一个 list 357 | 列表环境,其与上下文之间就有垂直间距,加上figure 358 | 浮动体与正文之间的间距,插图与正文之间的间距自然就变大了。 359 | 360 | 361 | \faq{表格如何分页?}{tab-newpage} 362 | 363 | 这个问题可见跨页长表格。 364 | 365 | 366 | \faq{表格怎样可以旋转90度?}{tab-90} 367 | 368 | 希望旋转90度的表格多半是由于过宽而需要进行横排,这里一个方法是使用 369 | rotating 宏包,使用方法非常简单,用 sidewaytable 替代 table 370 | 即可,但这种表格不能实现跨页长表格(当然又宽又长的表格确实很少见);另一个方法是使用lscape 371 | 宏包提供的 landscape 372 | 环境,进入横排状态,在其中使用相应的环境即可,这种方法可以实现跨页表格,但进入和退出landscape环境时总是会新开一页再进行排版,因此,在其之前的页面可能会留有大量的空白。两种方法各有利弊,可以根据实际需要进行选择。 373 | 374 | 375 | \faq{如何使用图表目录?}{tab-toc} 376 | 377 | \begin{itemize} 378 | \item \cs{listoftables} 379 | \item \cs{listoffigures} 380 | \end{itemize} 381 | 382 | 383 | \faq{图表如何使用双语标题}{tab-fig-two-lang} 384 | 385 | 使用 bicaption 宏包或 ccaption 宏包。 386 | 387 | 388 | \faq{如何产生表格的竖线,在模板的三线表中产生竖线?}{tab-vertical-line} 389 | 390 | 竖线的产生与否与表格的环境无关,在定义表格列时以 \textbar{} 391 | 分隔列格式即可产生竖线。 392 | \begin{texinlist} 393 | \begin{tabular}{l|c|r|} 394 | ... 395 | \end{tabular} 396 | \end{texinlist} 397 | 398 | 399 | % \faq{如何在长表格\{longtable\}环境中设置文字自动换行或者固定列宽?}{} 400 | 401 | 402 | % \faq{如何实现表格的奇偶行不同的颜色,长表格也要适用。}{} 403 | 404 | 405 | \faq{如何使表格单元的左对齐?}{table-left} 406 | 407 | 不知道这个问题是啥意思。。。 408 | 难道不是在列格式中选择lcr分别表示左中右么? 409 | 410 | \faq{表格中如何划对角线?}{table-diag} 411 | 412 | 有宏包 slashbox 或 diagbox 可以制作表格对角线,不过slashbox 413 | 由于没有明确的自由许可信息,已经不为 TeXLive 414 | 所收录了。一个好消息是:diagbox 415 | 有中文版的说明文档,作者的说明总比这里的说明更为准确,直接查阅宏包文档是更好的选择。 416 | -------------------------------------------------------------------------------- /FAQ-Old/source/include/usage.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../latex-faq-cn.tex 2 | 3 | \section{用法惯例} 4 | 5 | 6 | \faq{TeX编辑器中的魔法注释}{} 7 | 8 | 在TeX中有单行注释命令为\%,其后的文本主要是对源代码进行一些说明,它们会被TeX,LaTeX等排版引擎所忽略。但有些 9 | 注释对专门的TeX相关编辑器来说,可能用特别的意义。在不同的TeX编辑器中,这魔法注释(magic comments)可能是不同 10 | 的。 下面是一些例子: 11 | \begin{itemize} 12 | \item 指定\TeX{}编译器 13 | \begin{texlist} 14 | TeXStudio,TeXworks, Sublime Text 15 | % !TeX program = xelatex 16 | 17 | TeXShop 18 | %!TEX TS-program = xelatex 19 | \end{texlist} 20 | 21 | 同理,将 xelatex 变为 pdflatex,就可以强制调用 pdfLaTeX 编译器。在代码中需要使 22 | 用ifxetex宏包进行条件判断。 23 | 24 | \item 指定文档为 |UTF-8| 编码 25 | \begin{texlist} 26 | TeXworks,TeXStudio, Sublime Text 27 | % !TeX encoding = utf8 28 | 29 | Winedt 30 | % !Mode:: "TeX:UTF-8" 31 | or 32 | % -*- coding: utf-8 -*- 33 | 34 | TeXShop 35 | %!TEX encoding = UTF-8 Unicode 36 | \end{texlist} 37 | 由于Winedt对编码自动识别能力较弱,使用此注释比较必要,不然要手动设置。 38 | \item 指定主文档 39 | \begin{texlist} 40 | TeXStudio, Sublime Text 41 | % !TeX root = filename 42 | \end{texlist} 43 | 若需要指定上一层次的文件,则应该使用以下命令 44 | \begin{texlist} 45 | TeXStudio, Sublime Text 46 | % !TeX root = ../main.tex 47 | \end{texlist} 48 | 用两点表示返回上一层次,如果还需要再返回一个层次,则需要 49 | \begin{texlist} 50 | TeXStudio, Sublime Text 51 | % !TeX root = ../../main.tex 52 | \end{texlist} 53 | \item 指定bib处理程序 54 | \begin{texlist} 55 | TeXStudio 56 | % !TeX TXS-program:bibliography = txs:///biber 57 | \end{texlist} 58 | 源文件添加如上代码即可用biber处理bib文件。将biber改为bibtex,即可指定\BibTeX{}处理bib文件。 59 | \item 60 | 为\TeX{}编译器指定参数 61 | \begin{texlist} 62 | TeXStudio 63 | % !TeX TXS-program:compile = txs:///xelatex/[--shell-escape] 64 | 65 | sublime text - latextools 66 | %!TEX options = --shell-escape 67 | 68 | texshop 69 | -shell-escape 70 | \end{texlist} 71 | 有时在使用某些宏包时我们需要额外调用一些编译参数,例如 minted 宏包需要使用 --shell-escape,这时可用以上魔法注释实现该功能 72 | \end{itemize} 73 | 74 | 各种编辑器对魔法注释的支持情况见表~\ref{magiccommands} 75 | \begin{table} 76 | \centering 77 | \caption{各种编辑器对魔法注释的支持情况。x表示支持;o表示不支持;?表示不确定}\label{magiccommands} 78 | \begin{tabular}{|l|*{4}{c|}} 79 | \hline 80 | & Encoding & Program & Root & Spellcheck \\ 81 | \hline 82 | TeXShop & x & x & x & x \\ 83 | \hline 84 | TeXStudio & x & x & x & x \\ 85 | \hline 86 | TextMate & ? & x & x & ? \\ 87 | \hline 88 | TeXworks & x & x & x & x \\ 89 | \hline 90 | SublimeText & x & x & x & x \\ 91 | \hline 92 | VSCode & x & x & ? & ? \\ 93 | \hline 94 | Atom & o & x & x & o \\ 95 | \hline 96 | Vim 97 | (vimtex) & o & x & x & o \\ 98 | \hline 99 | Texpad & o & o & ? & ? \\ 100 | \hline 101 | \end{tabular} 102 | \end{table} 103 | 104 | \section{其它} 105 | 106 | \faq{LaTeX与数学软件(Mathematica, Maple,Sagemath等)}{} 107 | 108 | 109 | \faq{LaTeX与公式编辑器}{} 110 | 111 | 公式编辑器MathType设置下就可以输入TeX指令得到公式,也可以复制公式得到TeX指令,但是得到的指令是所谓的机器代 112 | 码,可读性实在不敢恭维。 113 | 114 | \faq{MathJax}{} 115 | MathJax是一个JavaScript引擎,用来显示网络上的数学公式。它支持LaTeX、MathML、AsciiMath符号。查阅MathJax支 116 | 持的LaTeX命令请参考 \url{http://onemathematicalcat.org/MathJaxDocumentation/TeXSyntax.htm} 117 | 118 | \faq{如何查询代码中的不可见字符}{invisible-char} 119 | 可以试试把代码放入网站 \url{https://www.soscisurvey.de/tools/view-chars.php} 或 \url{https://r12a.github.io/app-conversion} 查看是否存在一些不可见的字符。 120 | -------------------------------------------------------------------------------- /FAQ-Old/source/latex-faq-cn-class.cls: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \RequirePackage{expl3} 3 | \ProvidesExplClass{latex-faq-cn-class}{2018/08/09}{0.1}{Chinese LaTeX FAQ document class} 4 | 5 | % 见 https://github.com/CTeX-org/ctex-kit/issues/286 6 | \tex_XeTeXgenerateactualtext:D = 1 7 | 8 | \PassOptionsToPackage { log-declarations = false } { xparse } 9 | \PassOptionsToPackage { no-math } { fontspec } 10 | \RequirePackage { xparse, xtemplate, l3keys2e } 11 | 12 | \cs_new:Npn \@@_msg_new:nn { \msg_new:nnn { faqcn } } 13 | \cs_new:Npn \@@_warning:nnn { \msg_warning:nnnn { faqcn } } 14 | 15 | % 文档类选项 16 | \bool_new:N \g_@@_use_customized_fonts_bool 17 | \keys_define:nn { faqcn / option } 18 | { 19 | use-customized-fonts .bool_gset:N = \g_@@_use_customized_fonts_bool, 20 | use-customized-fonts .initial:n = true 21 | } 22 | \ProcessKeysOptions { faqcn / option } 23 | 24 | % 根据是否使用自定义字体来决定 ctex 文档类的载入方式 25 | \bool_if:NTF \g_@@_use_customized_fonts_bool 26 | { \LoadClass [ fontset = none ] { ctexart } } 27 | { \LoadClass { ctexart } } 28 | 29 | % 载入相关宏包 30 | \PassOptionsToPackage { table } { xcolor } 31 | \PassOptionsToPackage { hyphens } { url } 32 | \RequirePackage 33 | { 34 | amsmath, 35 | caption, 36 | diagbox, 37 | dirtree, 38 | enumitem, 39 | fancyvrb, 40 | fontawesome5, 41 | geometry, 42 | graphicx, 43 | hologo, 44 | listings, 45 | % longtable, 46 | % tabularx, 47 | unicode-math, 48 | xcolor, 49 | xunicode, 50 | xurl, 51 | zref-abspage, 52 | hyperref 53 | } 54 | 55 | % 西文字体 56 | \bool_if:NT \g_@@_use_customized_fonts_bool 57 | { 58 | \setmainfont { LibertinusSerif } 59 | [ 60 | Extension = .otf, 61 | UprightFont = *-Regular, 62 | BoldFont = *-Bold, 63 | ItalicFont = *-Italic, 64 | BoldItalicFont = *-BoldItalic 65 | ] 66 | \setsansfont { Roboto } 67 | [ 68 | Extension = .otf, 69 | UprightFont = *-Regular, 70 | BoldFont = *-Bold, 71 | ItalicFont = *-Italic, 72 | BoldItalicFont = *-BoldItalic 73 | ] 74 | \setmonofont { cmun } 75 | [ 76 | Extension = .otf, 77 | UprightFont = * btl, 78 | BoldFont = * tb, 79 | SlantedFont = * bto, 80 | HyphenChar = None 81 | ] 82 | \setmathfont { LibertinusMath-Regular.otf } 83 | } 84 | 85 | % 中文字体 86 | 87 | % 设置思源字体系列。由于命名比较复杂,这里需要做多次判断 88 | % TTC 格式封装的思源字体中,简体中文位于第 3 个,因此 FontIndex = 2 89 | % #1: \setCJK...font 命令 90 | % #2, #3, #4, #5: OTC/OTF 文件名 91 | % #6: Super OTC 字体名 92 | % #7: 选项 93 | \cs_new_protected:Npn \@@_set_cjk_font:Nnnnnnn #1#2#3#4#5#6#7 94 | { 95 | \bool_set_false:N \l_@@_source_han_super_otc_bool 96 | \@@_source_han_otc_otf:Nnnnnn #1 {#2} {#3} {#4} {#5} {#7} 97 | \bool_if:NT \l_@@_source_han_super_otc_bool 98 | { \@@_source_han_super_otc:Nnn #1 {#6} {#7} } 99 | } 100 | \cs_new_protected:Npn \@@_source_han_otc_otf:Nnnnnn #1#2#3#4#5#6 101 | { 102 | \IfFontExistsTF { #2-Regular.ttc } 103 | { #1 {#2} [ Extension = .ttc, FontIndex = 2, #6 ] } 104 | { 105 | \IfFontExistsTF { #3-Regular.ttc } 106 | { #1 {#3} [ Extension = .ttc, FontIndex = 2, #6 ] } 107 | { 108 | \IfFontExistsTF { #4-Regular.otf } 109 | { #1 {#4} [ Extension = .otf, #6 ] } 110 | { 111 | \IfFontExistsTF { #5-Regular.otf } 112 | { #1 {#5} [ Extension = .otf, #6 ] } 113 | { \bool_set_true:N \l_@@_source_han_super_otc_bool } 114 | } 115 | } 116 | } 117 | } 118 | \bool_new:N \l_@@_source_han_super_otc_bool 119 | \cs_new_protected:Npn \@@_source_han_super_otc:Nnn #1#2#3 120 | { 121 | \IfFontExistsTF {#2} 122 | { #1 {#2} [#3] } 123 | { \BOOM } 124 | } 125 | \bool_if:NT \g_@@_use_customized_fonts_bool 126 | { 127 | \@@_set_cjk_font:Nnnnnnn \setCJKmainfont 128 | { NotoSerifCJK } { SourceHanSerif } { NotoSerifCJKsc } { SourceHanSerifSC } 129 | { Source~ Han~ Serif~ SC } 130 | { 131 | UprightFont = *-Regular, 132 | BoldFont = *-Bold, 133 | ItalicFont = *-Regular, 134 | BoldItalicFont = *-Bold 135 | } 136 | \@@_set_cjk_font:Nnnnnnn \setCJKsansfont 137 | { NotoSansCJK } { SourceHanSans } { NotoSansCJKsc } { SourceHanSansSC } 138 | { Source~ Han~ Sans~ SC } 139 | { 140 | UprightFont = *-Medium, 141 | BoldFont = *-Bold, 142 | ItalicFont = *-Medium, 143 | BoldItalicFont = *-Bold 144 | } 145 | \@@_set_cjk_font:Nnnnnnn \setCJKmonofont 146 | { NotoSansCJK } { SourceHanSans } { NotoSansCJKsc } { SourceHanSansSC } 147 | { Source~ Han~ Sans~ SC } 148 | { 149 | UprightFont = *-Light, 150 | BoldFont = *-Medium, 151 | AutoFakeSlant = 0.2 152 | } 153 | } 154 | 155 | % 其他字体 156 | \bool_if:NTF \g_@@_use_customized_fonts_bool 157 | { 158 | % 用于代码环境 159 | \newfontfamily \CodeFont { RobotoMono } 160 | [ 161 | Extension = .otf, 162 | UprightFont = *-Regular, 163 | BoldFont = *-Bold, 164 | ItalicFont = *-Italic, 165 | BoldItalicFont = *-BoldItalic 166 | ] 167 | % 用于 METAFONT logo 等 168 | % 只选择 10 号 169 | \newfontfamily \LogoFont { ffm } 170 | [ 171 | Extension = .otf, 172 | UprightFont = * r10, 173 | BoldFont = * b10, 174 | ItalicFont = * o10, 175 | BoldItalicFont = * bo10 176 | ] 177 | } 178 | { 179 | \cs_set_eq:NN \CodeFont \ttfamily 180 | \cs_set_eq:NN \LogoFont \sffamily 181 | } 182 | 183 | % 中文版式设置 184 | \ctexset 185 | { 186 | % punct = kaiming, 187 | section / number = \Alph { section }, 188 | section / format = \Large \normalfont \sffamily \centering 189 | } 190 | 191 | % 列表环境 192 | \setlist 193 | { 194 | itemsep = 0 pt, 195 | parsep = 0 pt, 196 | topsep = 0 pt, 197 | listparindent = \parindent, 198 | leftmargin = \parindent, 199 | itemindent = 0 pt 200 | } 201 | 202 | % 页面尺寸 203 | \geometry 204 | { 205 | paper = a4paper, 206 | vmargin = 2.54 cm, 207 | hmargin = 3.18 cm, 208 | headheight = 15 pt, 209 | % showframe 210 | } 211 | 212 | % 浮动体标题样式 213 | \captionsetup [ figure ] 214 | { 215 | font = small, 216 | labelsep = quad 217 | } 218 | \captionsetup [ table ] 219 | { 220 | font = { small, sf }, 221 | labelsep = quad 222 | } 223 | 224 | % hyperref 有关设置 225 | \hypersetup 226 | { 227 | bookmarksnumbered = true, 228 | colorlinks = true, 229 | pdftitle = \faqTitle, 230 | pdfauthor = \faqAuthor 231 | } 232 | 233 | % 脚注 234 | \cs_set:Npn \thefootnote { \@@_footnote_symbol:n { \int_use:N \c@footnote } } 235 | \cs_new_protected:Npn \@@_footnote_symbol:n #1 236 | { 237 | \int_compare:nTF { #1 >= 21 } 238 | { 239 | \int_compare:nTF { #1 >= 47 } 240 | { \symbol { \int_eval:n { "24B6 - 47 + #1 } } } 241 | { \symbol { \int_eval:n { "24D0 - 21 + #1 } } } 242 | } 243 | { \symbol { \int_eval:n { "2460 - 1 + #1 } } } 244 | } 245 | \cs_set:Npn \@makefntext #1 246 | { 247 | \mode_leave_vertical: 248 | \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil } 249 | #1 250 | } 251 | 252 | % 问答环境 253 | % #1: 选项 254 | % #2: 长名称 255 | % #3: 短名称 256 | \NewDocumentCommand \faq { o m m } 257 | { 258 | % TODO: 选项准备仿照 l3doc,如 added、updated 选项 259 | \@@_faq:nn {#2} {#3} 260 | } 261 | \cs_new_protected:Npn \@@_faq:nn #1#2 262 | { 263 | \tl_set:Nn \l_@@_faq_title_tl { \textbf { \int_use:N \g_@@_count_int \quad #1 } } 264 | \tl_if_empty:nTF {#2} 265 | { 266 | \tl_set:Nn \l_@@_faq_name_tl { faq: no-tag- \int_use:N \g_@@_no_tag_count_int } 267 | \int_gincr:N \g_@@_no_tag_count_int 268 | } 269 | { \tl_set:Nn \l_@@_faq_name_tl { faq: #2 } } 270 | % 问题之间留空 271 | \skip_vertical:n { 2 ex } 272 | % 排版标题,以及交叉引用 273 | \hypertarget { \tl_use:N \l_@@_faq_name_tl } { \noindent \tl_use:N \l_@@_faq_title_tl } 274 | \zref@labelbylist { \tl_use:N \l_@@_faq_name_tl } { faqcn } 275 | % PDF 书签 276 | \pdfbookmark [2] 277 | { \int_use:N \g_@@_count_int \ #1 } 278 | { \tl_use:N \l_@@_faq_name_tl } 279 | \int_gincr:N \g_@@_count_int 280 | \par 281 | } 282 | \tl_new:N \l_@@_faq_title_tl 283 | \tl_new:N \l_@@_faq_name_tl 284 | \int_new:N \g_@@_count_int 285 | \int_new:N \g_@@_no_tag_count_int 286 | \int_set_eq:NN \g_@@_count_int \c_one 287 | \int_set_eq:NN \g_@@_no_tag_count_int \c_one 288 | 289 | \zref@newlist { faqcn } 290 | \zref@newprop { faq@num } { \int_use:N \g_@@_count_int } 291 | \zref@addprop { faqcn } { faq@num } 292 | 293 | % 问答环境交叉引用 294 | \NewDocumentCommand \faqref { m } 295 | { 问题 \nobreakspace \@@_ref:n {#1} } 296 | \cs_new_protected:Npn \@@_ref:n #1 297 | { \hyperlink { faq @ #1 } { \zref@extract { faq: #1 } { faq@num } } } 298 | 299 | % 问答环境参考文献 300 | \NewDocumentEnvironment { reference } { } 301 | { 302 | \skip_vertical:n { 2 ex } 303 | \small 304 | \noindent \textsf{ 参考文献 } \marginpar { \raggedleft \faBook } 305 | \enumerate [ topsep = 0pt ] 306 | % \ignorespaces 307 | } 308 | { \endenumerate } 309 | 310 | \NewDocumentEnvironment { note } { } 311 | { 312 | \skip_vertical:n { 2 ex } 313 | \small 314 | \noindent \textsf{ 注意 } \marginpar { \raggedleft \faExclamationCircle } 315 | \par 316 | % \ignorespaces 317 | } 318 | { } 319 | 320 | \reversemarginpar 321 | 322 | % TeX logo 命令 323 | \clist_map_inline:nn 324 | { 325 | TeX, eTeX, pdfTeX, XeTeX, LuaTeX, 326 | LaTeX, LaTeXe, LaTeXTeX, ConTeXt, 327 | pdfLaTeX, LuaLaTeX, XeLaTeX, 328 | BibTeX, MetaFun, 329 | MiKTeX 330 | } 331 | { \cs_set:cpn {#1} { \hologo {#1} } } 332 | \clist_map_inline:nn 333 | { METAFONT, METAPOST } 334 | { 335 | \cs_set_protected:cpn {#1} 336 | { 337 | \group_begin: 338 | \LogoFont #1 339 | \group_end: 340 | } 341 | } 342 | 343 | \cs_set:Npn \pTeX { p\TeX } 344 | \cs_set:Npn \pLaTeX { p\LaTeX } 345 | \cs_set:Npn \ApTeX { Ap\TeX } 346 | \cs_set:Npn \ApLaTeX { Ap\LaTeX } 347 | \cs_set:Npn \TeXLive { \TeX{}~ Live } 348 | \cs_set:Npn \MacTeX { Mac\TeX } 349 | \cs_set:Npn \proTeXt { pro\TeX t } 350 | \cs_set:Npn \PlainTeX { Plain~ \TeX } 351 | \cs_set:Npn \TikZ { Ti\textit{k}Z } 352 | 353 | % 宏包与文档类 354 | % TODO 355 | \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} 356 | \DeclareRobustCommand\meta[1]{% 357 | \ensuremath\langle 358 | \ifmmode \expandafter \nfss@text \fi 359 | {% 360 | \meta@font@select 361 | \edef\meta@hyphen@restore 362 | {\hyphenchar\the\font\the\hyphenchar\font}% 363 | \hyphenchar\font\m@ne 364 | \language\l@nohyphenation 365 | #1\/% 366 | \meta@hyphen@restore 367 | }\ensuremath\rangle 368 | } 369 | \def\meta@font@select{\itshape} 370 | \newcommand\Arg[1] 371 | { \texttt{\char`\{} \meta{#1} \texttt{\char`\}} } 372 | \providecommand\marg[1]{ \Arg{#1} } 373 | \providecommand\oarg[1]{ \texttt[ \meta{#1} \texttt] } 374 | \providecommand\parg[1]{ \texttt( \meta{#1} \texttt) } 375 | \DeclareRobustCommand \file {\nolinkurl} 376 | \DeclareRobustCommand \env {\texttt} 377 | \DeclareRobustCommand \pkg {\textsf} 378 | \DeclareRobustCommand \cls {\textsf} 379 | 380 | % 强调 381 | \cs_set_eq:NN \strong \textsf 382 | 383 | % 英文书名,应该用意大利体 384 | \cs_new_eq:NN \book \emph 385 | 386 | % 允许使用 |...| 作为行内抄录 387 | \AtBeginDocument 388 | { \DefineShortVerb { \| } } 389 | \AtEndDocument 390 | { \UndefineShortVerb { \| } } 391 | % 公式中仍会用到(vl = vertical line) 392 | \cs_set_eq:NN \vl | 393 | 394 | % 为 dirtree 宏包打补丁,使得跨页时可以正常显示 395 | % 见 https://tex.stackexchange.com/q/6103/136923 396 | % https://gist.github.com/flaviotoribio/e35402f9220835a998e444ec5b2adfd4 397 | \ctex_preto_cmd:NnnTF \dirtree 398 | { 399 | \ExplSyntaxOff 400 | \char_set_catcode_letter:n { 64 } 401 | } 402 | { \global\advance\DT@treenum by\@ne } 403 | { } { \ctex_patch_failure:N \dirtree } 404 | \ctex_patch_cmd:Nnn \dirtree 405 | { \count@=\z@ } 406 | { 407 | \count@=\z@ 408 | \DT@splitfalse 409 | } 410 | \ctex_patch_cmd:Nnn \dirtree 411 | { \ifnum\count@=\z@ } 412 | { 413 | \ifnum0\zref@extract{DT\the\DT@treenum.\the\DT@countiv}{abspage} = 414 | 0\zref@extract{DT\the\DT@treenum.\the\DT@countii}{abspage}\relax 415 | \else 416 | \advance\DT@countiv\@ne 417 | \count@=\@ne 418 | \DT@splittrue 419 | \fi 420 | \ifnum\count@=\z@ 421 | } 422 | \ctex_patch_cmd:Nnn \dirtree 423 | { \kern-0.5\DT@rulewidth } 424 | { 425 | \ifDT@split 426 | \advance\dimen\z@ by.4\baselineskip 427 | \fi 428 | \kern-0.5\DT@rulewidth 429 | } 430 | \ctex_patch_cmd:Nnn \DT@readarg 431 | { \@namedef{DT@body@\the\DT@counti}{\strut{\DTstyle{#2}\strut}} } 432 | { 433 | \edef\DT@label{DT\the\DT@treenum.\the\DT@counti} 434 | \expandafter\def\csname DT@body@\the\DT@counti\expandafter\endcsname 435 | \expandafter{\expandafter\strut\expandafter\zref@label\expandafter{ 436 | \DT@label} 437 | {\DTstyle{#2}\strut} 438 | } 439 | } 440 | \newcount\DT@treenum \DT@treenum=0 441 | \newif\ifDT@split 442 | 443 | % 代码高亮环境 444 | \cs_set:Npn \htmlcolor #1 445 | { \color [ HTML ] {#1} } 446 | \lstdefinelanguage { JSON } 447 | { 448 | keywords = { true, false, null }, 449 | sensitive = false, 450 | comment = [l] { // }, 451 | morecomment = [s] { /* } { */ }, 452 | morestring = [b] ', 453 | morestring = [b] " 454 | } 455 | \lstdefinestyle { style@base } 456 | { 457 | extendedchars = true, 458 | gobble = 1, 459 | % frame = l, 460 | % framerule = 1 pt, 461 | framesep = 0 pt, 462 | escapeinside = {(*}{*)}, 463 | basicstyle = \htmlcolor { 37474F } \small \CodeFont \CJKfamily { tt }, 464 | keywordstyle = [1] \htmlcolor { 3B78E7 }, 465 | keywordstyle = [2] \htmlcolor { 9C27B0 } \bfseries, 466 | commentstyle = \htmlcolor { ADADAD } \itshape, 467 | stringstyle = \htmlcolor { 0D904F }, 468 | backgroundcolor = \htmlcolor { F7F7F7 }, 469 | } 470 | \lstdefinestyle { style@tex } 471 | { 472 | style = style@base, 473 | rulecolor = \htmlcolor { 859900 }, 474 | language = [LaTeX] TeX, 475 | alsoletter = { * }, 476 | texcsstyle = * [1] \htmlcolor { 3B78E7 }, 477 | texcsstyle = * [2] \htmlcolor { 9C27B0 }, 478 | texcsstyle = * [3] \htmlcolor { D81B60 }, 479 | texcsstyle = * [4] \htmlcolor { C53929 } \bfseries, 480 | deletetexcs = 481 | { begin, end, documentclass, usepackage, def, fi, if, let, newcommand, renewcommand }, 482 | moretexcs = [1] { part, chapter, section, subsection, subsubsection, paragraph, subparagraph }, 483 | moretexcs = [2] { begin, end }, 484 | moretexcs = [3] { documentclass, usepackage }, 485 | moretexcs = [4] { def, fi, if, let, newcommand, renewcommand }, 486 | % literate = 487 | % * { \\! } { { \textcolor {red} { \textbackslash! } } } 2 488 | % { \\, } { { \textcolor {red} { \textbackslash, } } } 2 489 | % { \\\\ } { { \textcolor {red} { \textbackslash\textbackslash } } } 2, 490 | } 491 | \lstdefinestyle { style@lua } 492 | { 493 | style = style@base, 494 | % rulecolor = \htmlcolor { 073642 }, 495 | language = [5.2] Lua, 496 | } 497 | \lstdefinestyle { style@sh } 498 | { 499 | style = style@base, 500 | % rulecolor = \htmlcolor { D30102 }, 501 | language = sh, 502 | alsoletter = { - / \$ }, 503 | keywords = [1] { fi, if, then }, 504 | keywords = [2] { cd, export, ls, rm, rmdir } 505 | } 506 | \lstdefinestyle { style@bat } 507 | { 508 | style = style@base, 509 | % rulecolor = \htmlcolor { D33682 }, 510 | language = command.com, 511 | } 512 | \lstdefinestyle { style@py } 513 | { 514 | style = style@base, 515 | % rulecolor = \htmlcolor { 268BD2 }, 516 | language = Python, 517 | } 518 | \lstdefinestyle { style@json } 519 | { 520 | style = style@base, 521 | % rulecolor = \htmlcolor { 268BD2 }, 522 | language = JSON, 523 | } 524 | % 连字符 - 原本以数学模式输出,此处改为普通文本。 525 | % 见 https://tex.stackexchange.com/q/33185/136923。 526 | \lst@CCPutMacro 527 | \lst@ProcessOther { "2D } { \lst@ttfamily { -{} } { -{} } } 528 | \@empty \z@ \@empty 529 | % 高亮 \\、\! 等 530 | % 见 https://tex.stackexchange.com/q/267481/136923。 531 | % \lst@AddToHook{SelectCharTable} 532 | % {\ifx\lst@literate\@empty\else 533 | % \expandafter\lst@Literate\lst@literate{}\relax\z@ 534 | % \fi} 535 | \clist_map_inline:nn 536 | { tex, sh, bat, py, lua, json } 537 | { 538 | \lstnewenvironment { #1 code } [1] [ ] 539 | { \lstset { style = style @ #1, ##1 } } 540 | { } 541 | } 542 | 543 | % 标题页 544 | \AtBeginDocument 545 | { 546 | \begin{titlepage} 547 | \hbox:n { } \vfil 548 | \skip_vertical:n { 60 pt } 549 | \begin{center} 550 | \group_begin: 551 | \Huge \sffamily \faqTitle \quad \faqVersion \par 552 | \group_end: 553 | \skip_vertical:n { 3 em } 554 | \group_begin: 555 | \Large \faqAuthor \par 556 | \group_end: 557 | \skip_vertical:n { 1.5 em } 558 | \group_begin: 559 | \Large \@date \par 560 | \group_end: 561 | \vfill 562 | \includegraphics [ width = 10 cm] { ../images/hummingbird.pdf } 563 | \vfill 564 | \end{center} 565 | \end{titlepage} 566 | } 567 | 568 | % TODO 569 | \definecolor{gbblue}{RGB}{23,74,117} 570 | \lstnewenvironment{texlist}{% 571 | \lstset{% general command to set parameter(s) 572 | %name=#1, 573 | %label=#2, 574 | %caption=\lstname, 575 | xleftmargin=3em,%\parindent 576 | linewidth=\linewidth, 577 | breaklines=true, 578 | %showspaces=true, 579 | extendedchars=false, 580 | columns=fullflexible,%flexible, 581 | %aboveskip=2pt, 582 | boxpos=t, 583 | rulesep=0pt, 584 | frame=tb, 585 | framesep=0pt, 586 | rulecolor=\color{gbblue}, 587 | fontadjust=true, 588 | language=[LaTeX]TeX, 589 | %backgroundcolor=\color{yellow}, %背景颜色 590 | numbers=left, 591 | numberstyle=\tiny\color{gbblue}, 592 | basicstyle=\footnotesize\ttfamily, % print whole listing small 593 | keywordstyle=\color{blue}\bfseries,%\underbar, 594 | % underlined bold black keywords 595 | identifierstyle=, % nothing happens 596 | commentstyle=\color{green!50!black}, % white comments 597 | stringstyle=\ttfamily, % typewriter type for strings 598 | showstringspaces=false}% no special string spaces 599 | }{} 600 | \lstnewenvironment{texinlist}{% 601 | \lstset{% general command to set parameter(s) 602 | %name=#1, 603 | %label=#2, 604 | %caption=\lstname, 605 | %xleftmargin=\parindent, 606 | linewidth=\linewidth, 607 | breaklines=true, 608 | %showspaces=true, 609 | extendedchars=false, 610 | columns=fullflexible,%flexible, 611 | %aboveskip=2pt, 612 | boxpos=t, 613 | rulesep=0pt, 614 | frame=tb, 615 | framesep=0pt, 616 | rulecolor=\color{gbblue}, 617 | fontadjust=true, 618 | language=[LaTeX]TeX, 619 | %backgroundcolor=\color{yellow}, %背景颜色 620 | numbers=left, 621 | numberstyle=\tiny\color{gbblue}, 622 | basicstyle=\footnotesize\ttfamily, % print whole listing small 623 | keywordstyle=\color{blue}\bfseries,%\underbar, 624 | % underlined bold black keywords 625 | identifierstyle=, % nothing happens 626 | commentstyle=\color{green!50!black}, % white comments 627 | stringstyle=\ttfamily, % typewriter type for strings 628 | showstringspaces=false% no special string spaces 629 | } 630 | }{} 631 | \lst@AddToHook{SelectCharTable} 632 | {\ifx\lst@literate\@empty\else 633 | \expandafter\lst@Literate\lst@literate{}\relax\z@ 634 | \fi} 635 | -------------------------------------------------------------------------------- /FAQ-Old/source/latex-faq-cn.tex: -------------------------------------------------------------------------------- 1 | % !TeX document-id = {6b75a545-b662-4873-8f28-b81d849ea348} 2 | % !TeX TXS-program:compile = txs:///latexmk/{}[-pdfxe -synctex=1 -interaction=nonstopmode -silent %] 3 | 4 | \def\faqTitle{\LaTeX{} 常见问题} 5 | \def\faqAuthor{\LaTeX{} Studio 团队} 6 | \def\faqVersion{v0.5} 7 | 8 | % 如果遇到字体问题,可以选择不使用自定义字体: 9 | % \PassOptionsToClass{use-customized-fonts=false}{latex-faq-cn-class} 10 | \documentclass{latex-faq-cn-class} 11 | 12 | % TODO: 移植到 class 13 | % \makeatletter 14 | % \def\@captype{figure} 15 | % \makeatother 16 | 17 | % % example-style1使用了lshort中示例样式 18 | % %\usepackage{example-style1} 19 | % % example-style2使用了mathfaq中示例样式 20 | % \usepackage{example-style2} 21 | % % mathfaq-style使用了mathfaq中一些设置 22 | % \usepackage{mathfaq-style} 23 | % % math-1包含了math部分需要在导言区设置的内容 24 | % \input{include/math-1} 25 | 26 | \begin{document} 27 | 28 | % \tableofcontents 29 | 30 | % \def\FONTTEST{字体测试骨头 ABC fi fl\ } 31 | % \FONTTEST \textit{\FONTTEST} \textbf{\FONTTEST \textit{\FONTTEST}} \par 32 | % \textsf{\FONTTEST \textit{\FONTTEST} \textbf{\FONTTEST \textit{\FONTTEST}}} \par 33 | % \texttt{\FONTTEST \textit{\FONTTEST} \textbf{\FONTTEST \textit{\FONTTEST}}} 34 | 35 | \input{include/preface} 36 | \input{include/basic} 37 | \input{include/starter} 38 | \input{include/install} 39 | \input{include/doc} 40 | \input{include/math-i} 41 | \input{include/math-ii} 42 | \input{include/bib} 43 | \input{include/font} 44 | \input{include/figure} 45 | \input{include/table} 46 | \input{include/beamer} 47 | \input{include/graphics} 48 | \input{include/dev} 49 | \input{include/error} 50 | \input{include/usage} 51 | 52 | \end{document} 53 | -------------------------------------------------------------------------------- /FAQ-Old/source/mathfaq-style.sty: -------------------------------------------------------------------------------- 1 | % 选自mathfaq-1-2的一些设置 2 | \NeedsTeXFormat{LaTeX2e} 3 | \ProvidesPackage{mathfaq-style} 4 | 5 | % 6 | % 7 | 8 | %\RequirePackage{amssymb} 9 | % \RequirePackage{xspace} 10 | \RequirePackage{fancyhdr} 11 | %\RequirePackage{tipa} 12 | %\RequirePackage{metalogo} 13 | %\RequirePackage{paralist} 14 | %\RequirePackage{enumerate} 15 | \RequirePackage{array} 16 | \RequirePackage{amsmath,nicefrac,units} 17 | \RequirePackage{amsthm} 18 | %\RequirePackage{pmat} 19 | \RequirePackage{empheq} 20 | \RequirePackage{harpoon} 21 | \RequirePackage{delarray} 22 | \RequirePackage[titletoc]{appendix} 23 | \RequirePackage{graphicx} 24 | \RequirePackage{multirow} 25 | % \RequirePackage{texnames} 26 | \RequirePackage{etoolbox} 27 | %\RequirePackage[thmmarks,amsmath]{ntheorem} 28 | 29 | \RequirePackage{mathtools} 30 | \RequirePackage{yhmath} 31 | \RequirePackage{upgreek} 32 | 33 | \RequirePackage{amsfonts,mathrsfs,bm} 34 | \let\Finv\relax 35 | %\RequirePackage{textcomp} 36 | %\RequirePackage{times} 37 | %\RequirePackage[table,dvipsnames]{xcolor} 38 | 39 | %\PassOptionsToPackage { table,dvipsnames } { xcolor } 40 | 41 | \RequirePackage{framed} 42 | \RequirePackage{wallpaper} 43 | 44 | \RequirePackage{cases} 45 | %\RequirePackage{url} 46 | \RequirePackage{arydshln,amscd} 47 | \RequirePackage{supertabular} 48 | %\RequirePackage{breqn} 49 | \RequirePackage{tikz} 50 | \RequirePackage{xurl} 51 | \RequirePackage{blkarray} 52 | 53 | %\newif\ifAMS 54 | %\IfFileExists{amssymb.sty} 55 | %{\AMStrue\RequirePackage{amssymb}}{} 56 | %\RequirePackage{latexsym} 57 | % 58 | %\newif\ifST 59 | %\IfFileExists{stmaryrd.sty} 60 | %{\STtrue\RequirePackage{stmaryrd}\newcommand\ST{\textsf{stmaryrd}}} 61 | %{} 62 | % 63 | %\newif\ifEU 64 | %\IfFileExists{euscript.sty} 65 | %{\EUtrue\RequirePackage[mathcal]{euscript}} 66 | %{\let\CMcal\mathcal} 67 | %%\theoremstyle{nonumberplain} 68 | %%\theoremheaderfont{\bfseries} 69 | %%\theorembodyfont{\normalfont} 70 | %%\theoremsymbol{$\blacksquare$} 71 | %%\newtheorem{Proof}{证明} 72 | 73 | \RequirePackage{extarrows} 74 | 75 | \makeatletter 76 | \newcommand\K[1]{\ensuremath{#1} &\ttfamily\string#1} 77 | \makeatother 78 | 79 | \newcommand*{\fancybreak}{% 80 | \par 81 | \nopagebreak\medskip\nopagebreak 82 | \noindent\null\hfill$*\quad*\quad*\quad$\hfill\null\par 83 | \nopagebreak\medskip\pagebreak[0]% 84 | } 85 | 86 | %===========color define========= 87 | 88 | \definecolor{themecolor}{RGB}{236,66,53} 89 | \definecolor{hypercolor}{rgb}{0.5,0.0,0.5} % purplish external links. 90 | 91 | 92 | \RequirePackage{xeCJK} 93 | %\defaultfontfeatures{Mapping=tex-text} 94 | %% \setmainfont { Source Serif Pro } 95 | %% \setsansfont { Source Sans Pro } 96 | %% \setmonofont { Source Code Pro } 97 | %\setCJKmainfont 98 | %[BoldFont=Source Han Sans CN Medium]{Source Han Serif CN} 99 | %\setCJKsansfont{Source Han Sans CN} 100 | %\newCJKfontfamily\songti[BoldFont=* Heavy]{Source Han Serif CN} 101 | %% \newCJKfontfamily\mingchao{Source Han Serif JP} 102 | %\NewDocumentCommand \kaishu { } { \normalfont } 103 | 104 | %\setCJKfamilyfont{qt}{FZQiTi-S14T} 105 | \font\ursymbol=psyr at 10pt 106 | % You also use other font sizes. 107 | \def\urpartial{\mbox{\ursymbol\char"B6}} 108 | \definecolor{darkgrey}{cmyk}{0,0,0,0.63}%{0,0,0,63} 109 | \definecolor{lightgrey}{cmyk}{0,0,0,0.32}%{0,0,0,32} 110 | 111 | \newcommand*{\wb}[2]{\fontsize{#1}{#2}\usefont{U}{webo}{xl}{n}} 112 | \newlength{\tpheight}\setlength{\tpheight}{\textheight} 113 | \newlength{\txtheight}\setlength{\txtheight}{0.9\tpheight} 114 | \newlength{\tpwidth}\setlength{\tpwidth}{0.9\textwidth} 115 | \newlength{\txtwidth}\setlength{\txtwidth}{0.9\tpwidth} 116 | \newlength{\drop} 117 | 118 | \definecolor{hellmagenta}{rgb}{1,0.75,0.9} 119 | \definecolor{hellcyan}{rgb}{0.75,1,0.9} 120 | \definecolor{hellgelb}{rgb}{1,1,0.8} 121 | \definecolor{colKeys}{rgb}{0,0,1} 122 | \definecolor{colIdentifier}{rgb}{0,0,0} 123 | \definecolor{colComments}{rgb}{1,0,0} 124 | \definecolor{colString}{rgb}{0,0.5,0} 125 | \definecolor{darkyellow}{rgb}{1,0.9,0} 126 | \definecolor{lightblue}{rgb}{.2,.5,1} 127 | 128 | 129 | \RequirePackage{minted} 130 | %\RequirePackage{boites} 131 | %\RequirePackage{fancyvrb} 132 | \makeatletter 133 | \newcommand{\rmnum}[1]{\romannumeral #1} 134 | \newcommand{\Rmnum}[1]{\expandafter\@slowromancap\romannumeral #1@} 135 | \RequirePackage{pifont} 136 | \definecolor{niceblue}{rgb}{0,0.4,0.7} 137 | \definecolor{preblue}{rgb}{0,0,0.4} 138 | \definecolor{niceblue1}{rgb}{0.17,0.78,0.58} 139 | 140 | \RequirePackage{titlesec,titletoc} 141 | %\RequirePackage{times}% 142 | \renewcommand\thesubsection{\arabic{subsection}} 143 | \renewcommand\thesection{\Roman{section}} 144 | 145 | \titleformat{\section}[display]{\normalfont} 146 | {\filcenter\Large\bfseries --\enspace \thesection 147 | \enspace--}{6pt}{\Large\bfseries\filcenter} 148 | 149 | \titleformat{\subsection}[hang] 150 | {\normalfont% 151 | \sffamily\filright} 152 | {\color{blue}\ding{45}\ \thesubsection} 153 | {.5em} 154 | {}[\titlerule{\hbox{\vrule height 3pt}}] 155 | 156 | 157 | \newlength{\halfpagewidth} 158 | \setlength{\halfpagewidth}{\textwidth} 159 | \divide\halfpagewidth by 2 160 | 161 | \newcommand{\leftsep}{% 162 | \noindent\raisebox{4mm}[0ex][0ex]{% 163 | \makebox[\halfpagewidth]{\hrulefill}\hbox{\vrule height 3pt}}% 164 | \vspace*{-2mm}% 165 | } 166 | 167 | \newcommand{\rightsep}{% 168 | \noindent\hspace*{\halfpagewidth}% 169 | \rlap{\raisebox{-3pt}[0ex][0ex]{\hbox{\vrule height 3pt}}}% 170 | \makebox[\halfpagewidth]{\hrulefill}% 171 | } 172 | 173 | % \DeclareRobustCommand{\AllTeX}{(L% 174 | % {\setbox0\hbox{T}% 175 | % \setbox\@tempboxa\hbox{$\m@th$% 176 | % \csname S@\f@size\endcsname 177 | % \fontsize\sf@size\z@ 178 | % \math@fontsfalse\selectfont 179 | % A}% 180 | % \@tempdima\ht0 181 | % \advance\@tempdima-\ht\@tempboxa 182 | % \@tempdima\strip@pt\fontdimen1\font\@tempdima 183 | % \advance\@tempdima-.36em 184 | % \kern\@tempdima 185 | % \vbox to\ht0{\box\@tempboxa 186 | % \vss}% 187 | % }\kern-.075em)% 188 | % \kern-.075em\TeX} 189 | 190 | \newenvironment{latexcode} 191 | {\VerbatimEnvironment\par 192 | \begin{VerbatimOut}{example.out}} 193 | {\end{VerbatimOut} 194 | \begingroup% 195 | \fboxrule0.4pt% 196 | \let\breakboxparindent\z@% 197 | \def\bkvz@bottom{\hrule\@height\fboxrule}% 198 | \let\bkvz@before@breakbox\relax% 199 | \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}% 200 | \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}% 201 | \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}% 202 | \color{niceblue}\vskip 5pt% 203 | \breakbox% 204 | {\normalcolor\small\inputminted{latex}{example.out}}% 如果不使用minted宏包,可以改用下一行代码 205 | %{\normalcolor\small\verbatiminput{example.out}}% 206 | \endbreakbox% 207 | \endgroup} 208 | \providerobustcmd*{\bigcupdot}{% 209 | \mathop{% 210 | \mathpalette\bigop@dot\bigcup 211 | }% 212 | } 213 | \newrobustcmd*{\bigop@dot}[2]{% 214 | \setbox0=\hbox{$\m@th#1#2$}% 215 | \vbox{% 216 | \lineskiplimit=\maxdimen 217 | \lineskip=-0.7\dimexpr\ht0 \dp0\relax 218 | \ialign{% 219 | \hfil##\hfil\cr 220 | $\m@th\cdot$\cr 221 | \box0\cr 222 | }% 223 | }% 224 | } 225 | 226 | 227 | %%\let\Cross\relax 228 | %\RequirePackage{manfnt,amscd} 229 | % 230 | %\RequirePackage{extarrows} 231 | %\definecolor{qianhong}{rgb}{1, 0.6, 0.75} 232 | %\newcounter{notectr}[subsection] 233 | %%\newenvironment{note} 234 | %%{\par\addtocounter{notectr}{1}\setlength{\parindent}{0pt}\hskip -\leftmargin {\color{gray!30}\rule{3cm}{3pt}}\vskip-5pt 235 | %%{\fboxsep1pt\hskip -\leftmargin \itshape{\color{qianhong}\lhdbend} \ \colorbox{qianhong}{小注\ \thenotectr}}% 236 | %%\vskip 1pt\small\itshape} 237 | %%{\vskip -15pt\noindent\color{gray!30}\rule{\linewidth}{3pt}} 238 | \newcommand{\jieshi}{\par 239 | \nopagebreak\medskip\nopagebreak 240 | \noindent\null{\color{gray!30}\rule[3pt]{1cm}{3pt}\fbox{\itshape \normalcolor 解释说明}\color{gray!30}\rule[3pt]{1cm}{3pt}}\null\par 241 | \nopagebreak\medskip\pagebreak[0]} 242 | \newcommand{\jiejue}{\par 243 | \nopagebreak\medskip\nopagebreak 244 | \noindent\null{\color{gray!30}\rule[3pt]{1cm}{3pt}\fbox{\itshape \normalcolor 解决方案}\color{gray!30}\rule[3pt]{1cm}{3pt}}\null\par 245 | \nopagebreak\medskip\pagebreak[0]} 246 | \newcommand{\jieyong}[1]{\par 247 | \nopagebreak\medskip\nopagebreak 248 | \noindent\null{\color{gray!30}\rule[3pt]{1cm}{3pt}\fbox{\itshape \normalcolor #1}\color{gray!30}\rule[3pt]{1cm}{3pt}}\null\par 249 | \nopagebreak\medskip\pagebreak[0]} 250 | 251 | \RequirePackage[many]{tcolorbox} 252 | \RequirePackage{fontawesome} 253 | 254 | % TODO 255 | % 已有定义 256 | %% Note 257 | % \newtcolorbox{note}{% 258 | % enhanced, 259 | % arc=2pt, 260 | % boxrule=.5pt, 261 | % left=5pt, right=5pt, top=3pt, bottom=3pt, 262 | % boxsep=2pt, 263 | % colframe=lightblue, 264 | % %colback=lightblue!5!colComments, 265 | % %colbacktitle=lightblue!5!colString, 266 | % %coltext=black, 267 | % title={\textcolor{black}{\small\faStickyNoteO\hspace{.5em}\bfseries{\textsc{小注}}}}, 268 | % halign=left, 269 | % fontupper=\ttfamily\small 270 | % } 271 | 272 | \DeclareMathOperator{\doublesum}{\sum\sum} 273 | 274 | \makeatother 275 | 276 | \endinput 277 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LaTeX 中文 FAQ 2 | 3 | 本项目致力于中文 LaTeX 问题集,建设知识醇厚,最美最有用的帮助文档。 4 | 5 | ## 内容纲要 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ## 编写规范 24 | 25 | 26 | 1. 每个参与的人员自己根据自己经验整理加工,也可选几个自己主要方向,也可以都编写; 27 | 28 | 1. 只加或者删减自己编写的部分,但是不能直接删减修改别人的内容,可以给其他人提想法意见和提供补充材料等; 29 | 30 | 1. 如果问题接近或者重复,后期慢慢调整整合; 31 | 32 | 1. 没有特殊说明主动报备,连续 4 周无提交,默认不再参与,踢出协作人; 33 | 34 | 1. 与其他成员发生争执,不主动沟通解决,挑起争执成员,自动退出我们的制作团队; 35 | 36 | 1. 未尽事宜,后续慢慢补充完善。 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ## 参与人员 45 | 46 | 47 | 48 | 49 | 50 | 51 | ### 前序版本成员: 52 | 53 | - [Chang Liu](https://github.com/FSSlc) 54 | - [hzzmail@163.com](https://github.com/hushidong) 55 | - [JACK](https://github.com/jack9603301) 56 | - [OsbertWang](https://github.com/OsbertWang) 57 | - [shanhaiying](https://github.com/shanhaiying) 58 | - [Xiangdong Zeng](https://github.com/Stone-Zeng) 59 | - [YinJC](https://github.com/YinJC) 60 | - [Zeping Lee](https://github.com/zepinglee) 61 | - [有龙则灵](https://github.com/htharoldht) 62 | 63 | 64 | ## 贡献 65 | 66 | 如果您有任何改进意见或者功能需求,欢迎提交 [issue](https://github.com/latexstudio/LaTeXFAQ-cn/issues) 或 [pull request](https://github.com/latexstudio/LaTeXFAQ-cn/pulls)。编辑文档前,请先阅读 [文档协作指南](CONTRIBUTING.md)。 67 | 68 | ## 链接 69 | 70 | - [LaTeX 科技排版工作室](http://www.latexstudio.net/) 71 | - [LaTeX 官方主页(英文)](https://www.latex-project.org/) 72 | - [CTAN(英文)](https://ctan.org/) 73 | 74 | ## 许可证 75 | 76 | 本项目遵循 [GNU General Public License Version 3](LICENSE)。 77 | --------------------------------------------------------------------------------