
Estoy usando matlab2tikz para generar código pgfplots .tex para crear una figura con pdflatex. La función de Matlab que estoy usando para crear la figura crea explícitamente cada una de sus etiquetas de marca, de modo que se puedan escalar y rotar usando el siguiente código de Matlab:
text(x(k),y(k),labs{k},'horizontalalignment',horizk,...
'verticalalignment',vertk, ...
'rotation',rotang(k), ...
'fontsize',gfontsize*scl(k), ...
'color',gcolor, ...
'tag','m_grid_xticklabel', ...
'fontname',gfontname);
Cuando investigo el código .tex convertido, veo que lo siguiente
\node[below, inner sep=0mm, rotate=359.994889043193, text=black]
at (axis cs:-8.79858922562881e-07, -4.84813663392814e-06,0) {$\text{ 81}^\text{o}\text{W }$};
representa una etiqueta de marca de verificación única. Sin embargo, la cadena de texto que codifica esta línea no aparece en el .pdf resultante, presumiblemente porque las coordenadas particulares se encuentran fuera de los rangos de los ejes. Para probar esto, sustituí coordenadas dentro del rango, compilé y vi que la etiqueta o el texto se hacía visible.
Curiosamente, si creo la figura en matlab usando el comando ver, por ejemplo
view(45,45)
Puedo ver las cadenas de texto que representan las etiquetas de los ejes, pero la alineación está desactivada. En particular, las cadenas parecen tener un valor y que las coloca mucho más arriba en la figura de lo que esperaba. Creo que la alineación x está bien.
Las soluciones tal como las veo pueden residir en el lado de matlab o en el lado de pgfplots/tikz. Idealmente, una solución consistiría en un breve fragmento de código que se incluiría en el preámbulo o al configurar las etiquetas de los ejes. Este código permitiría texto creado con la construcción:
\node[<options>] at (axis cs:x,y,z) {<text>};
para mostrarse independientemente de si las coordenadas x, y, z estaban dentro del rango. Si las sugerencias no necesariamente surgen fácilmente, puedo crear un mwe.
Respuesta1
Agregar opciones clip=false
al axis
entorno anulará el pgfplots
comportamiento predeterminado de recortar cualquier cosa que aparezca fuera del cuadro delimitador del eje.
Dependiendo del otro código generado, esto puede tener otros efectos secundarios, pero en la mayoría de los casos estará bien.
Esta configuración de clave se puede agregar al código generado utilizando la función matlab2tikz
de EXTRAAXISOPTIONS
. Antes de llamar a matlab2tex
, agregue
EXTRAAXISOPTIONS = {'clip=false'};
para agregar esta opción en el código generado.