Латексная команда с переводом строки - PullRequest
4 голосов
/ 14 января 2010

Я пытаюсь создать команду в латексе, которая при вызове, например, \test{\ab}{TEST}, создаст новую команду, определенную как \ab[1]{\raggedright TEST: \\ \hspace{0.5in} #1}.

Я пытаюсь сделать что-то вроде этого:

\newchar{\ab}{TEST}
\ab{This is a line TEST says.}

Это будет выполнено, чтобы дать

TEST:
     This is a line TEST says.

Если это не удастся (что, я надеюсь, возможно), я мог бы согласиться с другой командой, которую я разработал. Но проблема в том, что мне нужен способ размещения и новой строки после текста без необходимости его указания пользователем.

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 14 января 2010

Определения команд могут быть вложенными; удвоить # для каждого уровня.

\newcommand\newchar[2]{%
  \newcommand #1 [1] {%
    \raggedright #2: \\ \hspace{0.5in} ##1%
  }%
}

Обновление: Просто комментарий о удвоении #. Это имеет больше смысла, когда вы определяете макросы с помощью примитива \def; в этом случае общая конструкция выглядит примерно так:

\def\foo{%
  \def\bar##1{bar: ##1}%
}
1 голос
/ 14 января 2010

То, что вы хотите, мне не совсем понятно, но возможно:

\newcommand{\ab}[1]{\\
#1:\\
\hspace{4em}This is a line #1 says.}

- это место для начала (в частности, ваш интервал по горизонтали должен быть более четким).

Полезная ссылка.

...