2010-02-10 30 views
7

Parece ser una práctica común, cuando se escriben las matemáticas, agregar puntuación a las fórmulas mostradas.Puntuación en fórmulas LaTeX

¿Hay algún truco para evitar poner el signo de puntuación dentro de la fórmula?

quiero evitar

Consider the function 
\[ \sin(x).\] 

prefiero tener algo como:

Consider the function 
\[ \sin(x)\]. 

Pero por supuesto, el punto final se muestra a continuación la fórmula.

¿Existe alguna manera inteligente de separar fórmulas y signos de puntuación en LaTeX?

Respuesta

4

Puede cargar el breqn package (compatible con amsmath) y tienen este comportamiento incorporado con su entorno dmath:

Consider the function 
\begin{dmath}\sin(x)\end{dmath}. 

de salida será el mismo que \[\sin(x).\], es decir, como si el punto estaba dentro de la expresión.

Como beneficio adicional, también obtendrás un salto de línea automático en tu ecuación matemática.

+0

Paquete interesante pero no puedo ver la relación con la pregunta original ... 'breqn' parece ser un paquete para romper ecuaciones largas; el OP fue sobre la puntuación en la ecuación mostrada. –

+0

@Olivier: ¿Extrañé algo en mi explicación? el OP pidió '\ [\ sin (x) \] .' para tirar el período dentro de la pantalla matemática, y eso es * exactamente * lo que hace mi ejemplo anterior. –

+0

¡Oh! Tienes razón. ¡Esto es brillante! Es solo que los documentos para 'breqn' son tan complicados que no pude encontrarlo. ¡Muchas gracias! –

2

Poner la puntuación dentro de un entorno de visualización es la forma habitual. El problema es que cuando Latex procesa el \], finaliza el mathbox, por lo que todo lo que sigue será parte de un nuevo cuadro vertical.

Usted podría intentar algo como: problemas de espaciado

 
\hbox{\[My formula\]}. 

Esto no se ha probado, y probablemente tiene, pero si usted está interesado en este tipo de solución, que podría tratar de conseguir algo de trabajo.

Fwiw, usted podría estar interesado en https://mathoverflow.net/questions/6675/periods-and-commas-in-mathematical-writing

+0

¡Gracias por el enlace! Al leer las respuestas allí, me alivia ver que no soy el único que piensa que la puntuación no debe ser parte de las fórmulas. –

10
\catcode`\@=11 
\let\seveendformula\] 
\def\]{\@ifnextchar.\PointAndEndFormula\seveendformula} 
\def \PointAndEndFormula #1{.\seveendformula} 
\catcode`\@=12 

Añadir

más compleja solución trabaja con .,?!;::

\catcode`\@=11 
\def\addtopunct#1{\expandafter\let\csname [email protected]\meaning#1\endcsname\let} 
\addtopunct{.} \addtopunct{,} \addtopunct{?} 
\addtopunct{!} \addtopunct{;} \addtopunct{:} 

\let\seveendformula\] 
\def\PunctAndEndFormula #1{#1\seveendformula} 
\def\]{\futurelet\punctlet\[email protected]} 
\def\[email protected]{\expandafter\ifx\csname [email protected]\meaning\punctlet\endcsname\let 
     \expandafter\PunctAndEndFormula 
     \else \expandafter\seveendformula\fi} 
\catcode`\@=12 
+1

Sí, de hecho. Pensé en esto, pero un problema es que hay un poco de puntuación posible que podría querer seguir un displaymath: ¡probablemente no '!' o ':', pero además de '.' Cada uno de ',', ';' y '?' son bastante comunes +1 por responder la pregunta sin pequeños reparos. –

+0

Muy elegante. No creo haber podido escribir este nuevo código: esto es bastante profundo. –

+0

¡Esto es * brillante *! ¿Es tan útil que quizás se pueda armar como un paquete LaTeX? –

7

También está el tema de las cuales fuente la la puntuación debe estar en. No verá un probl em hasta que pruebe con una fuente matemática diferente como Euler. Entonces las comas y los períodos son claramente diferentes en modo texto y en modo matemático. He escrito la puntuación del modo de texto en las fórmulas mostradas como \mbox{,} o como perezosamente como \mbox, justo antes de $$.