Etiquetas marcadoras
Publicado por José (3 intervenciones) el 03/07/2016 20:09:44
Hola a todos, este es mi primer post y estoy interesado en la programación de Tex/Latex.
El problema es que si bien ya manejo algunas estructuras de control, no puedo encontrar buenos manuales de programación Tex. Me refiero a que sean completos y justifiquen los comandos que usan.
Una de las cosas que no encuentro con claridad en el lenguaje, es la asignación de variables. Me encontré en bastantes problemas cuando quise marcar partes de texto o fórmulas con un asterisco numerado que después se lo pudiera referenciar, algo parecido a los comandos \label \ref, solo que el "label" tiene que dejar una marca.
Algo logré, pero algunos de los comandos que utilizo, ni siquiera se como funcionan. Aquí va el código fuente de lo que hice:
\documentclass{report}
\textheight=23cm
\textwidth=18cm
\topmargin=-1cm
\oddsidemargin=-0.5cm
\renewcommand{\baselinestretch}{1}
%*********************************************** Carga de paquetes *******************************************
\usepackage{amsmath, amssymb, latexsym}
%************************************************** Para label ***********************************************
\newcommand{\cast}[1]{\ensuremath{\circledast_{#1}}}
\newcommand{\ucast}[1]{\ensuremath{^{\circledast_{#1}}}}
\newcounter{prolabel}
\newcommand{\nombre}[1]{#1}
\makeatletter
\newcommand\defcase[1]{\@namedef{elcaso@#1}}
\newcommand\myswitch[1]{\@nameuse{elcaso@#1}}
\makeatother
\newcommand{\creacont}[1]{\defcase{#1}{\newcounter{\nombre{#1}}}}
\newcommand{\creador}[1]{\creacont{#1} \myswitch{#1}}
%********************************* labelcast y comandos útiles para su manejo ********************************
\newcommand{\labelcast}[2][-3mm]{\creacont{#2} \myswitch{#2} \addtocounter{prolabel}{1} %
\setcounter{#2}{\theprolabel}\hspace{#1}\ucast{\theprolabel}}
\newcommand{\refcast}[1]{\cast{\the\numexpr\value{#1}}}
\newcommand{\resetcast}{\setcounter{prolabel}{0}}
\newcommand{\setcast}[1]{\setcounter{prolabel}{#1}}
%*************************************************************************************************************
\begin{document}
\noindent Este texto lo marcamos con la etiqueta pru:uno \labelcast{pru:uno}\\
Este otro texto lo marcamos con la etiqueta pru:dos \labelcast{pru:dos}\\
\resetcast
Empezamos de nuevo y marcamos el texto etiquetado con pru:tres \labelcast{pru:tres}\\
\setcast{49}
Etiquetamos un texto desde cincuenta \labelcast{pru:cincuenta}\\
Ahora hacemos referencia a pru:uno \refcast{pru:uno}, a pru:dos \refcast{pru:dos}, a pru:tres \refcast{pru:tres}.\\
Tambi\'en referenciamos a pru:cincuenta \refcast{pru:cincuenta}\\
Llevamos el contador a tres y etiquetamos en modo matem\'atico.\setcast{2}\\
$ax^2+bx+c=0 \labelcast[0mm]{mat:tres} $\\
Ahora referenciamos la ecuaci\'on $ax^2+bx+c=0\;\refcast{mat:tres} $\\
desde el modo matem\'atico.
\end{document}
El resultado está en una imagen que subí, espero poder insertar la imagen en el post.
Saludos.
El problema es que si bien ya manejo algunas estructuras de control, no puedo encontrar buenos manuales de programación Tex. Me refiero a que sean completos y justifiquen los comandos que usan.
Una de las cosas que no encuentro con claridad en el lenguaje, es la asignación de variables. Me encontré en bastantes problemas cuando quise marcar partes de texto o fórmulas con un asterisco numerado que después se lo pudiera referenciar, algo parecido a los comandos \label \ref, solo que el "label" tiene que dejar una marca.
Algo logré, pero algunos de los comandos que utilizo, ni siquiera se como funcionan. Aquí va el código fuente de lo que hice:
\documentclass{report}
\textheight=23cm
\textwidth=18cm
\topmargin=-1cm
\oddsidemargin=-0.5cm
\renewcommand{\baselinestretch}{1}
%*********************************************** Carga de paquetes *******************************************
\usepackage{amsmath, amssymb, latexsym}
%************************************************** Para label ***********************************************
\newcommand{\cast}[1]{\ensuremath{\circledast_{#1}}}
\newcommand{\ucast}[1]{\ensuremath{^{\circledast_{#1}}}}
\newcounter{prolabel}
\newcommand{\nombre}[1]{#1}
\makeatletter
\newcommand\defcase[1]{\@namedef{elcaso@#1}}
\newcommand\myswitch[1]{\@nameuse{elcaso@#1}}
\makeatother
\newcommand{\creacont}[1]{\defcase{#1}{\newcounter{\nombre{#1}}}}
\newcommand{\creador}[1]{\creacont{#1} \myswitch{#1}}
%********************************* labelcast y comandos útiles para su manejo ********************************
\newcommand{\labelcast}[2][-3mm]{\creacont{#2} \myswitch{#2} \addtocounter{prolabel}{1} %
\setcounter{#2}{\theprolabel}\hspace{#1}\ucast{\theprolabel}}
\newcommand{\refcast}[1]{\cast{\the\numexpr\value{#1}}}
\newcommand{\resetcast}{\setcounter{prolabel}{0}}
\newcommand{\setcast}[1]{\setcounter{prolabel}{#1}}
%*************************************************************************************************************
\begin{document}
\noindent Este texto lo marcamos con la etiqueta pru:uno \labelcast{pru:uno}\\
Este otro texto lo marcamos con la etiqueta pru:dos \labelcast{pru:dos}\\
\resetcast
Empezamos de nuevo y marcamos el texto etiquetado con pru:tres \labelcast{pru:tres}\\
\setcast{49}
Etiquetamos un texto desde cincuenta \labelcast{pru:cincuenta}\\
Ahora hacemos referencia a pru:uno \refcast{pru:uno}, a pru:dos \refcast{pru:dos}, a pru:tres \refcast{pru:tres}.\\
Tambi\'en referenciamos a pru:cincuenta \refcast{pru:cincuenta}\\
Llevamos el contador a tres y etiquetamos en modo matem\'atico.\setcast{2}\\
$ax^2+bx+c=0 \labelcast[0mm]{mat:tres} $\\
Ahora referenciamos la ecuaci\'on $ax^2+bx+c=0\;\refcast{mat:tres} $\\
desde el modo matem\'atico.
\end{document}
El resultado está en una imagen que subí, espero poder insertar la imagen en el post.
Saludos.
Valora esta pregunta
0