LaTeX 3 命令替代方案

LaTeX 3 命令替代方案

考虑以下 MWE:

\documentclass[letterpaper,11pt]{article}
\usepackage{geometry}%[showframe]
\usepackage{array}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{fontspec}
 
\setmainfont{Arial}%{Times New Roman}
\newcommand{\logo}{\includegraphics[scale=0.125]{images/logo.pdf}}

\newlength{\logodim}
\newlength{\headerdim}
\settowidth{\logodim}{\logo}
\setlength{\headerdim}{\dimexpr\linewidth-\logodim-\tabcolsep\relax}

\setlength{\parindent}{0pt}
\begin{document}
{\setlength{\tabcolsep}{0.5em}
    \begin{tabular}{@{}m{\logodim}m{\headerdim}@{}}%
        \logo & %
        \parbox{\headerdim}{%
            {\bfseries University Name}\\%
            Department Name%
        }   %
    \end{tabular}}
    \\[1ex]
\setlength{\tabcolsep}{0em} 
\begin{tabular}{p{0.75\linewidth}p{0.25\linewidth}<{\raggedleft\arraybackslash}}
    \toprule
    \textbf{CALCULUS} & \textbf{MATH2301}\\[0.5ex]
    M1 T1: Precalculus & Semster 1\\[0.5ex]
    Maximum Marks: 100 & October, 2020\\[0.5ex]
    \bottomrule
\end{tabular}
\end{document}

\newlength\settowidth\setlength的新 L3 命令是什么\dimexpr?您能告诉我在哪份文档中可以找到这些命令吗?

答案1

关于原帖作者的最初问题。

\newlength\settowidth\setlength 的新 L3 命令是什么\dimexpr?您能告诉我在哪份文档中可以找到这些命令吗?

这里是相应的函数expl3(但是,这些函数不是供最终用户使用,而是由包和类的开发人员使用)。

  • \newlength应该使用\dim_new:N

  • \setlength您可以使用\dim_set:Nn(或进行全局分配)而不是\dim_gset:Nn。您不需要,\dimexpr因为您可以在 的第二个参数中放置计算\dim_set:Nn\dim_set:Nn \l_tmpa_dim { 1 cm + 2 mm }

  • 相反\settowidth,你可以使用如下方法: \hbox_set:Nn \l_tmpa_box { My text } \dim_set:Nn \l_tmpa_dim { \box_wd:N \l_tmpa_box }

这些功能在文档中有描述。在终端中interface3.pdf使用。texdoc interface3.pdf

答案2

我不确定你为什么要做所有这些测量。

\documentclass[letterpaper,11pt]{article}
\usepackage{geometry}%[showframe]
\usepackage{array}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{fontspec}
 
\setmainfont{Arial}%{Times New Roman}
\newcommand{\logo}{\includegraphics[scale=0.125]{example-image}}

\begin{document}

\noindent
\begin{tabular}{@{}c@{}} \logo \end{tabular}\enspace
\begin{tabular}{@{}l@{}}
  \bfseries University Name \\
            Department Name
\end{tabular}

\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr@{}}
\toprule
\textbf{CALCULUS} & \textbf{MATH2301}\\[0.5ex]
M1 T1: Precalculus & Semester 1\\[0.5ex]
Maximum Marks: 100 & October, 2020\\
\bottomrule
\end{tabular*}

\end{document}

在此处输入图片描述

添加的图片showframe

在此处输入图片描述

答案3

这里有两个选择。第一个与包中的选项 tabularx结合使用,第二个示例仅使用将两行文本放在彼此之下。valignadjustboxtabular

在此处输入图片描述

\documentclass[letterpaper,11pt]{article}
\usepackage{geometry}%[showframe]
\usepackage{array}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\usepackage{tabularx}
\usepackage{fontspec}
 
\setmainfont{Arial}%{Times New Roman}
\newcommand{\logo}{\includegraphics[scale=0.25,valign=c]{example-image}}


\setlength{\parindent}{0pt}
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\begin{document}
{\setlength{\tabcolsep}{0.5em}
    \begin{tabularx}{\textwidth}{@{}lX@{}}%
        \logo & %
            {\bfseries University Name}\newline
            Department Name%
    \end{tabularx}}
    \\[1ex]
\setlength{\tabcolsep}{0em} 
\begin{tabular}{p{0.75\linewidth}p{0.25\linewidth}<{\raggedleft\arraybackslash}}
    \toprule
    \textbf{CALCULUS} & \textbf{MATH2301}\\[0.5ex]
    M1 T1: Precalculus & Semster 1\\[0.5ex]
    Maximum Marks: 100 & October, 2020\\[0.5ex]
    \bottomrule
\end{tabular}

\bigskip


    \logo \hspace{1em} \begin{tabular}{l} {\bfseries University Name}\\ Department Name \end{tabular}
    \\[1ex]
\setlength{\tabcolsep}{0em} 
\begin{tabular}{p{0.75\linewidth}p{0.25\linewidth}<{\raggedleft\arraybackslash}}
    \toprule
    \textbf{CALCULUS} & \textbf{MATH2301}\\[0.5ex]
    M1 T1: Precalculus & Semster 1\\[0.5ex]
    Maximum Marks: 100 & October, 2020\\[0.5ex]
    \bottomrule
\end{tabular}
\end{document}

相关内容