分类 TeX 下的文章

LaTeX一种规范的使用方法是,将文章内容按照节分开,储存在不同的文件中,然后再在主文件中使用\input{}指令引入所有需要的内容。这样做的好处是条理清晰,可以按照文件名管理内容,也便于缩短单文件文字长度,便于查找内容。

而TexLive自带的编辑器TeXworks默认会将需要编译的文件设置为当前的打开文件,直接编译显然会出错,而每次编译需要切回主TeX文件在操作上很麻烦。而TeXworks构造简单,没有项目的概念,因而巧妙地采用了LaTeX注释的方法建立文件见的联系。

通过在被引用TeX文件头部加入诸如

% !TeX root=main-document.tex

的注释,可以被TeXworks解析出来,不会以当前文件为主TeX文件,而是以main-document.tex为主文件进行编译。

需要注意的是,!TeX是一个整体,不能在!TeX之间加入空格,否则TeXworks会识别不出来,继续按照单文件进行编译。

参考:https://tex.stackexchange.com/questions/377702/how-to-work-and-compile-efficiently-in-a-multi-file-project-in-texworks

这个问题一般出现在Windows环境下,采用\input{}指令导入的文件正确地与当前文件置于同一目录下,但LaTeX编译器还是获取不到。这可能与Windows下LaTeX的实现有关,在文件名中带空格的时候会出现这个问题,解决方法是将文件名用双引号"包裹起来。

tlmgr option repository http://mirror.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet 换为国内清华大学的源。中科大的不稳,有时候半天连不上
还有一个问题是有时候设置了没用,执行命令的时候repository会自动给你改回去,要在要执行的命令里作为--repository提供才行。

tlmgr install scheme-full 安装完整版

tlmgr info schemes 查看当前TeXLive的配置状态(考虑到不同电脑存储容量不同,TeXLive将软件按照常用度/重要性分为了几个等级的包,可以自行选择安装)

https://texfaq.org/ 走你!

http://detexify.kirelabs.org/classify.html 手写字符转latex


加粗段落中的非加粗文字

\textnormal{yout-text} % 不仅取消加粗,还会还原成默认字体
\textmd{your-text}     % 仅取消加粗,适用于\texttt混用于普通文字的情况

IEEEtran模板,conference样式的页码显示

https://tex.stackexchange.com/questions/542925/show-page-numbers-in-ieeetran-document-class

原因是在IEEEtran.cls中,如果选中了conference样式的话,默认是隐藏页码的。解决方法是在\maketitle之后立即加上:

\setcounter{page}{1}
\pagestyle{plain}
\thispagestyle{plain}

代码段

\begin{lstlisting}[language=bash,frame=none,%numbers=left,numberstyle=\small,
   rulesepcolor=\color{red!20!green!20!blue!20}, 
   keywordstyle=\color{blue!70!black}, 
   commentstyle=\color{blue!90!},
   basicstyle=\footnotesize\ttfamily,
   breaklines=true,showstringspaces=false]
   ...
\end{lstlisting}

enumerate环境中进行两端对齐:

\usepackage{ragged2e}
\usepackage{enumerate}

...

\begin{enumerate}
    \justifying
    \item ...
\end{enumerate}

caption居中
全局的设置方式是在usepackage中添加选项:

\usepackage[justification=centering]{caption}

BibTeX引用网页

@misc{visualprofiler,
  author = {NVIDIA Corporation},
  title = {NVIDIA Visual Profiler | NVIDIA Developer},
  note = {\url{https://developer.nvidia.com/nvidia-visual-profiler}},
}

手动跨页的图表,使用相同的表头:使用captcont

\usepackage{captcont}
...
\caption{title}      %这是定义的图表标题
...
\captcont*{title}    %使用与上面相同的标题,在手动截断图表进行换页的时候,在新图表块中用这个代替caption即可

article中,方程按照章节号编号

\numberwithin{equation}{section}

listing 自动换行:加参数breaklines=true
调整tab宽度:加参数tabsize=
去除string中的空格标记:加参数showstringspaces=false


TiKZ画树状图 http://www.texample.net/tikz/examples/filesystem-tree/

% Author: Frantisek Burian
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\tikzstyle{every node}=[draw=black,thick,anchor=west]
\tikzstyle{selected}=[draw=red,fill=red!30]
\tikzstyle{optional}=[dashed,fill=gray!50]
\begin{tikzpicture}[%
  grow via three points={one child at (0.5,-0.7) and
  two children at (0.5,-0.7) and (0.5,-1.4)},
  edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}]
  \node {texmf}
    child { node {doc}}       
    child { node {fonts}}
    child { node {source}}
    child { node [selected] {tex}
      child { node {generic}}
      child { node [optional] {latex}}
      child { node {plain}}
    }
    child [missing] {}                
    child [missing] {}                
    child [missing] {}                
    child { node {texdoc}};
  \end{tikzpicture}
\end{document}

被文字环绕的图片

\usepackage{wrapfigre}
...
<text>
\begin{wrapfig}{l}{0.1}
\includegraphics{...}
\end{wrapfigure}

wrapfigure后要带两个参数,分别是布局和宽度
按照上述代码,text会显示在图像的左侧。


控制水平和垂直间距的命令

\vspace{10pt}
\hspace*{10pt}  %我也不知道为什么要加一个*,反正在figure里面加了才有用

表格设置每行最小长度

\setlength{\tabcolsep}{0.08\linewidth}

排版器生成caption的原理: \tablename + \thetable + 根据CaptionFormat/CaptionLabelFormat/CaptionTextFormat生成的标题文字 用\Declare***定义对应的样式。(详情参见下面caption宏包使用一栏的pdf)


强行在ieeetrans模板中使用数字章节编号

\usepackage{caption}
% 改变引用的章节编号格式
\renewcommand\thesection{\arabic{section}}
\renewcommand\thesubsection{\thesection.\arabic{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}
% 改变标题的章节编号格式
\renewcommand\thesectiondis{\arabic{section}}
\renewcommand\thesubsectiondis{\thesectiondis.\arabic{subsection}}
\renewcommand\thesubsubsectiondis{\thesubsectiondis.\arabic{subsubsection}}

强行只在某个标题后启用第一段缩进

\begin{minipage}[h]{\linewidth}  % 确定位置用的htbp和minipage宽度的n倍linewidth,数字n写在\linewidth前即可
\setlength{\parindent}{15pt}
...
\end{minipage}

规范地使用appendix

\usepackage[toc, page]{appendix}
...
\begin{appendices}
...
\end{appendices}

caption宏包使用说明 http://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/caption/caption-eng.pdf

设置图表的标头缩写(Figure 1. -> Fig. 1., Table 1. -> Tab. 1.)

% LaTeX生成标题时通过\figurename和\tablename获得标头,因此把这两个命令的返回值重写一下就好
\renewcommand \figurename{Fig.}
\renewcommand \tablename{Tab.}

IEEEtrans的模板中,只有conference才会提供caption的居中。(QAQ


加粗的标题

\usepackage{enumerate}
...
\begin{enumerate}[\bfseries 1.]  % A, a, I, i, 1分别产生以该样式编号起头的标题列。
\item                            % 切记这些标记不能再被其他的大括号包含,否则将被视作普通的字符
\item                            % 例如这里不能用\textbf{}只能用\bfseries
...
\end{enumerate}

太阳和他的母亲

\usepackage{amssymb}
$\circledR$, $\texttrademark$

对于有上下文的块,其label一定要放在caption之后,否则引用时会出现意料之外的结果。


表格中的整行横线用\hline来绘制。 \cline{x-y}用于绘制第x列至第y列的横线。起始列号为1。


caption内换行

\protect\\

链接到图表首部而不是它正下方的标题

\usepackage{hyperref}
\usepackage[all]{hypcap}

论文中生成的参考文献顺序,与对应bib文件中参考文献顺序无关,只与引用顺序有关,也就是说bib文件内的参考文献可以随意乱放,顺序可以打乱。


空心字母

\usepackage{amsfonts, amssymb}
$\mathbb{N}$