Término formal para taquigrafía LaTeX

Término formal para taquigrafía LaTeX

Es posible en LaTeX escribir expresiones como \frac12, que deberían ser equivalentes a expresiones como \frac{1}{2}. ¿Existe un término formal para la primera forma de notación?

Respuesta1

No.


Esto es sólo parte de la forma normal en que TeX absorbe argumentos macro no delimitados. si defines

\def\foo#1{Something using #1 (or not).}

o equivalente

\newcommand\foo[1]{Something using #1 (or not).}

cuando \foose expande, absorbe el siguiente token o grupo equilibrado en el flujo de entrada como argumento (que está disponible como #1en la definición). Asumiendo códigos de categoría normales

  • un token es un solo carácter (excepto \, {, o un espacio o nueva línea (ya que se ignoran)) o una secuencia de comando (algo que comienza con }) ,%\
  • un grupo equilibrado comienza {y termina con el primero }que no pertenece a un grupo diferente (que empezó después). Los brackets se eliminan del grupo al ser absorbidos (es decir, #1no los contienen).

Por eso \foo xy \foo{x}, \newcommand{\foo}y \newcommand\fooo \frac 12, \frac{1}{2}y \frac{1}2son \frac1 2equivalentes.

Es una buena práctica elegir la versión que sea más clara, lo que normalmente implica utilizar un grupo. Personalmente, omito explícitamente el grupo en los casos en los quetengo queingrese un solo token, como \newcommand\foo.

Respuesta2

Podría valer la pena agregar que la distinción entre argumentos de un solo token y argumentos entre llaves es más explícita en LaTeX3/ expl3. Por convención, cada expl3nombre de macro debe terminar :seguido de una secuencia de letras, llamadas especificadores de argumento, cada una de las cuales refleja el tipo del argumento correspondiente.

Además de muchos otros tenemos

  • npara argumentos de grupo arriostrado o de un solo token, y
  • Nsolo para argumentos de un solo token, generalmente nombres de macros/funciones o nombres de variables.

Esos especificadores aún no cambian la forma en que (La)TeX procesa los argumentos individuales, pero le dan una pista al usuario sobre cómo se usan los argumentos dentro de la macro.

Por ejemplo, el l3tlpaquete proporciona dos funciones \tl_if_empty:nTFy \tl_if_empty:NTF. Si bien ambas funciones verifican si una lista de tokens está vacía y ejecutan código de manera condicional, se espera que la primera sea llamada con un grupo de tokens entre llaves, mientras que la segunda espera una variable de lista de tokens que primero se expande antes de realizar la prueba en su contenido.

información relacionada