zoukankan      html  css  js  c++  java
  • 【LaTeX】E喵的LaTeX新手入门教程(4)图表

    这里说的不是用LaTeX画图,而是插入已经画好的图片。。想看画图可以把滚动条拉到底。前情回顾【LaTeX】E喵的LaTeX新手入门教程(1)准备篇 
    【LaTeX】E喵的LaTeX新手入门教程(2)基础排版 
    【LaTeX】E喵的LaTeX新手入门教程(3)数学公式图片的插入A picture says more than a thousand words. — Shakespeare
    没图你说个××。 ——莎士比亚LaTeX支持的图片格式由于在前面的教程中建议大家使用XeLaTeX,因此在图形格式的支持上相比于其他引擎有着一些天然的优势。XeLaTeX所支持的图形格式有:bmp、jpeg、png、eps、pdf。如果你是使用Mac的壕,那么XeLaTeX还会支持GIF、PICT、PSD、SGA、TGA、TIFF格式。。。这里主要说一下eps和pdf两种格式。eps是一种在TeX中很常用的矢量绘图格式,主流的科技绘图软件基本上都支持eps格式的导出。比如MATLAB在图形窗口中可以直接把图形保存成eps格式。pdf格式嘛。。(谁告诉你pdf只有A4那么大的。。)就是一个小块大小的pdf文档,里面到底有啥谁也管不着了。。矢量绘图格式的好处在于,放大多少倍都不会失真,打印在纸上也不会出现坑坑洼洼的锯齿什么的,是写作科技论文、书籍的必备佳品。支持导出eps格式的绘图软件包括:MS Visio、OOO Draw、MATLAB、Mathematica、GNUPlot、Asymptote等。必备宏包之graphicx插图就用它。。为啥?大家都用。。→_→usepackage{graphicx}插入图片在正文当中插入一张图片很简单,使用includegraphics{文件名}就可以了。A picture like
    includegraphics{hit300.png}我们可以看到图片就被插入到正文当中了。有的时候插入的图片比较大。。比如现在这种情况。。我们就可以为includegraphics添加一些选项来对图片进行缩放。A picture like
    includegraphics[height=15pt]{hit300.png}includegraphics的常用选项有:

    • height,指定插入图片的高度
    • width,指定插入图片的宽度
    • scale,指定插入图片的放大倍数
    • angle,指定插入图片的旋转角度,顺时针方向为正
    • draft,变为草稿模式,此时不读取图片,最终的输出结果只有一个和图片大小一样的框框,可以加快编译速度。可以在终稿之前使用usepackage[draft]{graphicx}来加快编译速度,终稿时去掉这个选项。

    height和width如果指定其一,则另一个则按比例缩放。如果都指定了就变形了→_→至于长度单位,可以用mm/cm/pt/em/ex/in等长度单位。(em指当前字号下大写字母M的宽度,ex指当前字号下小写字母x的宽度。大家可以直接用cm。。。)图形环境单纯使用includegraphics插入的图形没有编号,也没有办法引用什么的,比较麻烦。因此LaTeX提供了figure环境,使用它插入的图会自动编号,并且可以被交叉引用。figure环境的用法如下:egin{figure}[选项]
    centering % 使后面的内容居中
    includegraphics{..}
    caption{图标题}
    label{供引用的标签}
    end{figure}figure环境会产生一个浮动的图形对象,LaTeX会自动地将它放置到美观的位置上。在选项中可以指定LaTeX放置浮动图片的位置优先次序。其中h表示here,表示放置在插入处。t表示top,页面的顶端。b表示bottom,页面的底端。p表示page,单独的图片页。默认的选项是[tbp],不过大家写文章的时候都比较愿意用[htbp]。meowmeow meow..
    egin{figure}[htbp]
    centering
    includegraphics[width=.8 extwidth]{hit300.png}
    caption{A 300 Hit!}
    label{fig:300}
    end{figure}

    figure  ef{fig:300} will show when you make an accurate hit in osu!.由于以上代码存在交叉引用,所以需要编译两遍。这里用到了一个比较有意思的长度,就是 extwidth,它指的是页面中正文文本的总宽度,前面还可以乘一个系数,当然不用写乘号。。。。这样当你改变页面设置时,图片会自动随着页面宽度缩放,这效果很炫哟。怎么样。。插图很简单吧。。其实figure环境就是个框架,你在里面用两个includegraphics也没问题的。。。但是要分别为它们写标题的话。。大家可以去看宏包subfig的文档,这里就不详细说明了。表格的插入简单表格LaTeX内置了tabular表格环境,用法和array环境很类似。egin{tabular}{对齐方式}
    第一行。。\
    第二行。。\
    ....
    最后一行。。。
    end{tabular}举个栗子。egin{tabular}{|r||l|}
        hline
        $x$ & $x^2$ \
        hline hline
        1 & 1  \ hline
        2 & 4  \ cline{1-1}
        3 & 9  \ hline
        4 & 16 \ hline
    end{tabular}除了hline可以插入一条水平线之外,cline{起始列-结束列}可以插入仅包含部分单元格的水平线。浮动表格环境浮动表格环境跟浮动图形环境类似,也是自动编号并且自动排版的表格环境。它的用法也跟浮动图形环境类似,把figure换成table,includegraphics换成tabular环境就可以了。egin{table}[htbp]
    centering
    egin{tabular}{|r||l|}
        hline
        $x$ & $x^2$ \
        hline hline
        1 & 1  \ hline
        2 & 4  \ cline{1-1}
        3 & 9  \ hline
        4 & 16 \ hline
    end{tabular}
    caption{Value of $x^2$}
    label{tbl:square}
    end{table}
    Table  ef{tbl:square} is of nonsense....跨行、跨列表格跨列表格使用multicolumn可以生成一个跨列单元格。用法如下:multicolumn{列数}{对齐方式}{单元格内容}

    egin{tabular}{|r||l|}
        hline
        $x$ & $x^2$ \
        hline hline
        1 & 1  \ hline
        2 & 4  \ cline{1-1}
        3 & 9  \ hline
        4 & 16 \ hline
        multicolumn{2}{|c|}{...}\ hline
    end{tabular}跨行表格要做出跨行表格,需要使用multirow宏包。usepakcage{multirow}multirow宏包提供了multirow产生跨行单元格。multirow{列数}{宽度}{文本}宽度可以写成*使得自动适应,也可指定长度使其中文本得以折行。egin{tabular}{|r||l|}
        hline
        $x$ & $x^2$ \
        hline hline
        $-1$ & multirow{2}{*}{1} \ cline{1-1}
        1 & \ hline
        2 & 4  \ cline{1-1}
        3 & 9  \ hline
        4 & 16 \ hline
        multicolumn{2}{|c|}{...}\ hline
    end{tabular}此外multirow还有相当多的选项,读者可以自己查阅这个宏包的文档。又跨行又跨列的表格。。你有完没完。。结合着用上面的东西就可以了。但是,只能是multirow放在multicolumn里面,放反了会出错。定宽表格前面提到的表格环境中,单元格的宽度都是根据其中内容的宽度而改变的。如果想让表格整体指定宽度或某一列指定宽度的话。。大家可以去读读tabularx宏包的文档。本喵偷了个懒。。。。跨页表格使用tabular环境生成的表格是一个不可分割的整体,要弄出长长的跨页表格用它肯定是不行的了。因此这里再介绍一下longtable宏包。usepackage{longtable}它提供了longtable环境,在使用长表的时候代替tabular环境。用法比较复杂:egin{longtable}{对齐方式}
    caption{标题}label{标签}\ % ←爱写不写
    表头\
    可有可无的分隔线hline什么的。。。
    endfirsthead
    续表表头\
    可有可无的分隔线hline什么的。。。
    endhead
    表格末尾的分隔线什么的。。。
    endfoot
    长长的表格内容。。
    end{longtable}具体效果如何。。那么长还截个毛线图。。大家回去试好了0w0科技文献三线表使用booktabs宏包,可以生成三线表所需的线。 oprule、midrule、ottomrule看名字就知道该放哪儿了。斜线表头使用diagbox宏包可以绘制表格左上角带有斜线的表头单元格,用法巨简单。diagbox{左下角的东西}{右上角的东西}
    diagbox{左下角的东西}{左上角的东西}{右上角的东西}想要修改斜线方向等高级选项,参阅diagbox宏包文档。用LaTeX画图。。比较好用的画图包是TikZ。去看tikz宏包的文档吧,实在是太厚了。但是画图效果真不是盖的。注:使用XeLaTeX引擎可能会使TikZ的一些填充效果变得很糟糕。建议的方法是使用pdfLaTeX进行绘图,使用standalone文档类生成一个pdf图片供XeLaTeX插入。下期预告参考文献的引用和自动生成参考文献列表

    from: http://blog.renren.com/share/382776374/15233443854

  • 相关阅读:
    hihocoder1062 最近公共祖先·一
    POJ2342 Anniversary party(动态规划)(树形DP)
    【动态规划】抄近路(水题)
    【动态规划】数的划分 (动态规划)
    【动态规划】矩形嵌套 (DGA上的动态规划)
    hihocoder Popular Products(STL)
    hihocoder Counting Islands II(并查集)
    51nod 编辑距离问题(动态规划)
    51nod 最长公共子序列问题(动态规划)(LCS)(递归)
    目标提取——背景均匀、目标与背景相似
  • 原文地址:https://www.cnblogs.com/GarfieldEr007/p/5536142.html
Copyright © 2011-2022 走看看