LaTeX 技巧 959:浮動體環境內部內容居中的設置方法

這是我們 QQ 群(91940767)管理員 - 23637935 桔子大神的技巧總結,希望對大家有所幫助。作為文章、報告、書籍中常用的浮動體環境,如figure、table 環境,其環境中的內容一般采用居中布置,這項設置通常是在環境中內部通過文本對齊聲明實現的,如:

   \begin{table}[htp]
    \centering
    ...
    \end{table}

如果全文使用大量的圖表浮動體,每個浮動體內部寫一句\centering也是比較繁瑣的,如果再要求表格內容采用小一號的字號\small,每個環境里需要輸入的內容就又多了一點,那么有沒有什么方法可以在撰寫文檔的時候省去這一條命令而同時實現內容居中,字體小一號呢?作為最直接的思路,可以定義新環境Figure、Table環境如下:

    \newenvironment{Table}[1][tbp]%
    {\begin{table}[#1]\centering\small}{\end{table}}
    \newenvironment{Figure}[1][tbp]%
    {\begin{figure}[#1]\centering\small}{\end{figure}}

這種方法的缺點是需要自定義環境,一旦需要復制文本內容到其他文檔中,需要把導言區內相應的重定義內容也復制過去,而且重定義的環境容易與\LaTeX 基礎環境混淆。因此可以考慮對figure 和table 環境進行修改,最容易想到的方法是利用etoolbox宏包在環境中施加一個鉤子,添加\centering\small命令,于是容易想到使用(以下僅以table環境舉例,figure 環境類似):

    \usepackage{etoolbox} % in preamble
    \AtBeginEnvironment{table}{\centering\small}

但是嘗試一下,我們會發現實際并沒有起任何作用。這是因為在article.cls(其他基礎文檔類類似,僅以其為例)中對table 的定義是:

    \newenvironment{table}
                   {\@float{table}}
                   {\[email protected]}

顯然,在使用了\AtBeginEnvironment{table}{\centering\small}一句后,table的定義變成了:

    \newenvironment{table}
                   {\centering\small\@float{table}}
                   {\[email protected]}

\centering 出現太早,導致不能在table 環境中起作用。如果重新定義table(導言區內需要把下面這一句放在\makeatletter 與\makeatother之間):

    \renewenvironment{table}{\@float{table}\centering\small}{\[email protected]}

或者使用xpatch宏包中的命令:

    \usepackage{xpatch} % in preamble
    \xapptocmd{\table}{\centering\small}{}{}

來得到同樣的效果,則浮動體table 環境自身的可選參數將無法使用,因為\centering\small占據了可選參數的位置,導致\LaTeX 認為使用默認可選參數,并將其后的[hbtp]等認作環境中的文本內容。如果需要保留浮動體參數的作用,則需要對更深層的內部命令進行修改或打補丁,參閱 https://tex.stackexchange.com/questions/95992/centering-all-tables-in-a-document-with-etoolbox/ 后,考慮對內部命令\@floatboxreset 補充如下:

    \usepackage{xpatch}    % in preamble
    \makeatletter
    \xpatchcmd\@floatboxreset{\normalsize}{\centering\small}{}{}
    \makeatother

這樣修改后,所有浮動體默認在環境中都是居中布置了,并且采用小一號的字號。

分享到:
未經允許不得轉載:LaTeX 技巧 959:浮動體環境內部內容居中的設置方法
已有 條意見

    最新文章

    加載中...
      本站提供專業LaTeX排版、咨詢、定制服務,請點擊下圖咨詢詳情


      全國首個精品的LaTeX視頻教程,大牛帶著你入門,讓LaTeX學習不再糾結,請點擊下圖咨詢詳情

      熱門評論

        聯系我們

        交流QQ群:91940767
        本站QQ號:343083553
        郵箱聯系[email protected]
        淘寶店鋪https://shop240512713.taobao.com/ 提供排版,模板定制,培訓,圖片處理,視頻教程等LaTeX服務。

        關注我們微信公眾號

        如果您投稿或者希望加入我們團隊,請發送您的簡歷到[email protected]

        科技藝術的完美融合,專業精致的排版體驗

        聯系我們聯系我們
        飞艇人工免费计划下载