首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在"longtblr“环境中,有一种方法可以使表标题与左边对齐吗?

在"longtblr“环境中,有一种方法可以使表标题与左边对齐吗?
EN

Stack Overflow用户
提问于 2022-09-13 07:36:54
回答 3查看 1.2K关注 0票数 1

当使用带有选项"singleline check = off“的标题包时,"table"+"tblr”环境中的标题似乎没有问题地左对齐。相反,当使用"longtblr“环境时,此选项不影响。

我试过一起使用"table"+"longtble“环境,但它不起作用。

在"longtblr“环境中,是否有一种将表标题与左边对齐的方法?任何建议都是值得注意的。谢谢你的建议。

这是样品。

代码语言:javascript
运行
复制
\documentclass{article}
\usepackage{tabularray}
\usepackage[singlelinecheck=off]{caption}

\begin{document}

\begin{table}[h]
    \caption{This is a normal table caption}
\begin{tblr}{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines
    }
Head & Head & Head \\
Head & Data & Data \\
\end{tblr}
\end{table}

\begin{longtblr}[
    caption={This is a long-table caption that should align left}
    ]{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\end{document}

这不管用

代码语言:javascript
运行
复制
\begin{table}
    \caption{This is doesn't work}
\begin{longtblr}{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}
\end{table}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-09-13 08:19:45

您可以像这样重新定义TblrTemplates:

代码语言:javascript
运行
复制
\documentclass{article}
\usepackage[singlelinecheck=off]{caption}

\usepackage{tabularray}

\ExplSyntaxOn
\DefTblrTemplate { caption } { normal }
  {
    \hbox_set:Nn \l__tblr_caption_box
      {
        \UseTblrTemplate { caption-tag } { default }
        \UseTblrTemplate { caption-sep } { default }
        \UseTblrTemplate { caption-text } { default }
      }
    \dim_compare:nNnTF { \box_wd:N \l__tblr_caption_box } > { \hsize }
      {
        \UseTblrAlign { caption }
        \UseTblrIndent { caption }
        \hbox_set:Nn \l__tblr_caption_left_box
          {
            \UseTblrTemplate { caption-tag } { default }
            \UseTblrTemplate { caption-sep } { default }
          }
        \hangindent = \box_wd:N \l__tblr_caption_left_box
        \hangafter = 1
        \UseTblrHang { caption }
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
      }
      {
        \centering
        \makebox [\hsize] [l] { \box_use:N \l__tblr_caption_box }
        \par
      }
  }
  
\DefTblrTemplate { capcont } { normal }
  {
    \hbox_set:Nn \l__tblr_caption_box
      {
        \UseTblrTemplate { caption-tag } { default }
        \UseTblrTemplate { caption-sep } { default }
        \UseTblrTemplate { caption-text } { default }
        \space
        \UseTblrTemplate { conthead-text } { default }
      }
    \dim_compare:nNnTF { \box_wd:N \l__tblr_caption_box } > { \hsize }
      {
        \UseTblrAlign { capcont }
        \UseTblrIndent { capcont }
        \hbox_set:Nn \l__tblr_caption_left_box
          {
            \UseTblrTemplate { caption-tag } { default }
            \UseTblrTemplate { caption-sep } { default }
          }
        \hangindent = \box_wd:N \l__tblr_caption_left_box
        \hangafter = 1
        \UseTblrHang { capcont }
        \leavevmode
        \hbox_unpack:N \l__tblr_caption_box
        \par
      }
      {
        \centering
        \makebox [\hsize] [l] { \box_use:N \l__tblr_caption_box }
        \par
      }
  }  
  
\SetTblrTemplate{caption}{normal}
\SetTblrTemplate{capcont}{normal}


\ExplSyntaxOff

\begin{document}

\begin{table}[h]
    \caption{This is a normal table caption}
\begin{tblr}{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines
    }
Head & Head & Head \\
Head & Data & Data \\
\end{tblr}
\end{table}


\begin{longtblr}[
    caption={This is a long-table caption that should align left}
    ]{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\end{document}

票数 2
EN

Stack Overflow用户

发布于 2022-09-14 11:55:47

关于longtblr,最简单的解决方案是在序言中添加以下内容

代码语言:javascript
运行
复制
\DefTblrTemplate{caption}{default}{%
  \UseTblrTemplate{caption-tag}{default}%
  \UseTblrTemplate{caption-sep}{default}%
  \UseTblrTemplate{caption-text}{default}%
}
\DefTblrTemplate{capcont}{default}{%
  \UseTblrTemplate{caption-tag}{default}%
  \UseTblrTemplate{caption-sep}{default}%
  \UseTblrTemplate{caption-text}{default}
  \UseTblrTemplate{conthead-text}{default}%
}

但是这会影响到所有的longtblr表。

tabularray有自己的方法来格式化其表的部分。特别是,longtblr对模板进行操作,而模板又可以应用于样式。如果希望表具有不同的主题,则需要定义具有自定义主题的自定义模板和样式。

票数 2
EN

Stack Overflow用户

发布于 2022-09-16 03:47:46

遵循@samcarter_is_at_topanswers.xyz and @Celdor的建议。我进行了更多的研究,关于长the主题。下面是一个使用"longtblr“主题将表的标题与左边对齐的示例。表2使用一个主题将标题与左边对齐,而没有主题标题的表3将作为默认中心。

代码语言:javascript
运行
复制
\documentclass{article}
\usepackage{tabularray}

% A long table theme with table captions aligned to the left with some modifications.
\NewTblrTheme{longtable1}{
    \DefTblrTemplate{conthead-text}{fancy}{ [Continued]}
        \SetTblrTemplate{conthead-text}{fancy}

    \DefTblrTemplate{contfoot-text}{fancy}{[Continue on next page]}
        \SetTblrTemplate{contfoot-text}{fancy}

    \DefTblrTemplate{caption}{default}{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        }
    \DefTblrTemplate{capcont}{default}{
        \UseTblrTemplate{caption-tag}{default}
        \UseTblrTemplate{caption-sep}{default}
        \UseTblrTemplate{caption-text}{default}
        \UseTblrTemplate{conthead-text}{default}
        }}

\usepackage[singlelinecheck=off]{caption}

\begin{document}

\begin{table}[h]
    \caption{This is a normal table caption}
\begin{tblr}{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines
    }
Head & Head & Head \\
Head & Data & Data \\
\end{tblr}
\end{table}

\begin{longtblr}[
    theme=longtable1,
    caption={This is a long table that uses the ``longtblr'' theme to align the table's caption to the left}
    ]{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\begin{longtblr}[
    caption={This is a long table without a ``longtblr'' theme.}
    ]{
    width=1\linewidth,
    colspec={XXX},
    hlines, vlines,
    rowhead=1
    }
Head & Head & Head \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
Head & Data & Data \\ Head & Data & Data \\
\end{longtblr}

\end{document}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73699138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档