将字符串选项传递给自定义样式文件,简单吗?

将字符串选项传递给自定义样式文件,简单吗?

我想了解是否有一种简单的方法可以在 LaTeX 中实现以下功能:

我想创建 mycustomsty.sty,并将其调用如下:

\usepackage[author={string1, string2, ..., stringN}]{mycustomsty}

其输出结果与简单输入以下命令相同:

\author{string1 \and string2 \and ... \and stringN}

直接在 TeX 文件中。

答案1

  • 包裹filecontents用于包含一个文件(平均能量损失)。当然你可以把sty放在一个单独的文件中。
  • 使用kvoptions将字符串传递给包。
  • 使用xstring进行字符串替换。
  • 为了能够用命令 ( \and) 替换字符串,witch 不应被扩展,但也要将输入字符串解释为\expandarg使用的扩展命令。(来自xstring文档“在这种情况下,每个参数的第一个标记都会扩展一次,而所有其他标记保持不变”

代码:

\documentclass{article}

\usepackage{filecontents}

\begin{filecontents}{myauthorgenerator.sty}
    \NeedsTeXFormat{LaTeX2e}[1994/06/01]
    \ProvidesClass{myauthorgenerator}[2018/06/03]

    \RequirePackage{kvoptions}
    \RequirePackage{xstring}

    \DeclareStringOption{author}[unknown]
    \ProcessKeyvalOptions*

    \author{%
        \saveexpandmode\expandarg%
        \StrSubstitute{\myauthorgenerator@author}{,}{\and }%
        \restoreexpandmode%
    }
\end{filecontents}

\usepackage[author={Frodo,Sam,Pippin, Merry}]{myauthorgenerator}

\title{Title}

\begin{document}
\maketitle
\end{document}

结果:

在此处输入图片描述

相关内容