是否旋转桌子,取决于桌子的宽度

是否旋转桌子,取决于桌子的宽度

我用 C# 创建了一个 Tex 文件,然后编译为 PDF。

如果桌子太宽,不适合纵向放置,我该如何横向旋转桌子?

因此,只有在 C# 中生成表之后才能知道实际显示的宽度。

我尝试在序言中的 \def 中定义整个表格,然后在 \begin{document} 中定义 if/then/else。无法让它工作。

\documentclass[10pt]{article}
\usepackage{longtable}
\usepackage[a4paper, left=50mm, right=50mm, top=50mm, bottom=50mm]{geometry}
\usepackage{caption}
\captionsetup[table]{skip=2pt}
\usepackage{lscape}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{rotating}
\def\foo{   
    \settowidth\rotheadsize{\makecell{$f_y$\\ \si{\newton\per\milli\meter\squared}}}
    \begin{longtable}{ccr}
    % \getlongtablewidth % does not work, IMHO
    \caption{Material data}\label{tab:Material data}\\
    \toprule[2pt]
    \multicolumn{3}{c}{Materials}
    \\
    \cmidrule(lr){1-3}  
    \multicolumn{1}{c}{\rotcell{Code}}
    &\multicolumn{1}{c}{\rotcell{Name}}
    &\multicolumn{1}{r}{\rotcell{$f_y$\\ $[\si{\newton\per\milli\meter\squared}]$}}
    \\
    \cmidrule(lr){1-1}
    \cmidrule(lr){2-2}
    \cmidrule(lr){3-3}
    \endfirsthead
    \caption{Material data (Continued)}\\
    \multicolumn{3}{c}{Materials}
    \\
    \cmidrule(lr){1-3}  
    \multicolumn{1}{c}{\rotcell{Code}}
    &\multicolumn{1}{r}{\rotcell{$\rho$\\ $[\si{\kilogram\per\cubic\meter}]$}}
    &\multicolumn{1}{r}{\rotcell{$f_y$\\ $[\si{\newton\per\milli\meter\squared}]$}}
    \\
    \cmidrule(lr){1-1}
    \cmidrule(lr){2-2}
    \cmidrule(lr){3-3}  
    \endhead
    \multicolumn{3}{c}{ Continued on next page}
    \endfoot
    \endlastfoot
    S235 & 1.15&235 \\
    \bottomrule[1pt]
    \end{longtable}
    }
    
\begin{document}
    % what would the \if\then\else construction look like?
    %\if --some conditional expression ---
    \begin{landscape}
    \foo
    \end{landscape}
    %\else
    \foo
    %\endif
\end{document}

相关内容