从可能的字符串列表中替换

从可能的字符串列表中替换

我在 LaTeX 中创建了大量相同的文档,只有地址发生了变化(并且地址只是 5 个可能中的 1 个)

因此,如果我的可能地址列表是:
DC | 1600 Pennsylvania Avenue, Washington, DC FV | 2014 Forest Hills Drive, Fayetteville, NC NY | 1 World Trade Center, New York, NY SP | 742 Evergreen Terrace, Springfield, USA

我希望能够输入(例如)\fillinadd{DC}并让它在文本中填写正确的地址,所以如果我有一封这样的信件:

\documentclass{letter}

\signature{Maurice Moss}
\newcommand{\fillinadd}[1]{#1}

\begin{document}

\begin{letter}{
Fire Department \\
\fillinadd{DC}}

\opening{Dear Sir / Madam,}
Fire! Fire! Help me! 123 Carrendon Road. Looking forward to hearing from you.
\closing{All the best,}

\end{letter}
\end{document}

它会将“DC”替换为“1600 Pennsylvania Avenue, Washington, DC”,但如果我输入“SP”,它会打印出 742 Evergreen Terrace。

或者,如果有更好的方法来识别这些可能的地址(即#1,#2等),我也可以使用它。

答案1

如果您只需要五个地址,则将它们定义为命令。您可以将定义放在单独的文件中并将其输入到主文件中,或者直接将它们放在序言中。

\newcommand{\DC}{%
    123 Main Street,\\ 
    Washington, DC%
}
\newcommand{\LA}{%
    123 Main Street,\\ 
    Los Angeles, CA%
}

如何编写命令将取决于它们的最终用途。这里我假设如下:

\newcommand{\fromaddress}{%
    \noindent%
    \begin{tabular}{l}
    #1\\
    \end{tabular}%
}

你可以像这样使用它:

\fromaddress{\DC}

答案2

这是我所做的

\documentclass{letter}

\signature{Maurice Moss}

\newcommand{\DC}{1600 Pennsylvania Avenue, Washington, DC}
\newcommand{\FV}{2014 Forest Hills Drive, Fayetteville, NC}
\newcommand{\NY}{1 World Trade Center, New York, NY}
\newcommand{\SP}{742 Evergreen Terrace, Springfield, USA}


\begin{document}

\begin{letter}{
Fire Department \\ \DC}

\opening{Dear Sir / Madam,}
Fire! Fire! Help me! 123 Carrendon Road. Looking forward to hearing from you.
\closing{All the best,}

\end{letter}
\end{document}

相关内容