我用 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}