titulos subtitulos principiantes plantilla parrafos para maketitle ejemplos documento descargar comentarios latex tex

subtitulos - Pasar argumentos de línea de comando al documento LaTeX



plantilla latex documento (3)

A veces, defino nuevos comandos como el siguiente.

/newcommand{/comment}[1]{/textbf{#1}} %/necommand{/comment}[1]{/emph{#1}}

Los comandos anteriores me permiten cambiar el estilo de las partes de mi código a la vez. Si quiero generar ambos estilos posibles, tengo que compilar mi documento LaTeX dos veces cada vez que modifique el código fuente para habilitar el estilo deseado.

¿Hay alguna forma de evitar la modificación del código fuente en tales casos? Es decir, ¿puedo pasarle al látex algunos argumentos de la línea de comandos para poder elegir qué estilo usar según ese argumento?


Es decir, ¿puedo pasarle al látex algunos argumentos de la línea de comandos para poder elegir qué estilo usar según ese argumento?

Sí. Tres opciones:

Uno

En su archivo fuente, escriba

/providecommand{/comment}[1]{/emph{#1}}% fallback definition

y luego compilar el documento LaTeX ("myfile.tex") como

pdflatex (whatever options you need) "/newcommand/comment[1]{/textbf{#1}}/input{myfile}"

Dos

Alternativamente,

pdflatex "/let/ifmyflag/iftrue/input{myfile}"

y luego tener en la fuente

/ifcsname ifmyflag/endcsname/else /expandafter/let/csname ifmyflag/expandafter/endcsname /csname iffalse/endcsname /fi ... /ifmyflag /newcommand/comment[1]{/emph{#1}} /else /newcommand/comment[1]{/textbf{#1}} /fi

Tres

O incluso

pdflatex "/def/myflag{}/input{myfile}"

con

/ifdefined/myflag /newcommand/comment[1]{/emph{#1}} /else /newcommand/comment[1]{/textbf{#1}} /fi

que probablemente sea el más corto, aunque levemente frágil porque nunca se sabe cuándo un paquete podría definir /myflag a sus espaldas.


Debe usar los enfoques de Will cuando necesite opciones únicas bastante flexibles, como cambiar la línea de posición en su currículum. Si otoh está produciendo la misma selección de opciones una y otra vez, entonces debería considerar evitar los argumentos de la línea de comandos, o trabajarlos en un script de compilación o un archivo make.

Daré dos técnicas para evitar los argumentos de línea de comando:

Truco 1: si está produciendo una matriz fija de documentos que deben permanecer accesibles, como el ejemplo de dos estilos, entonces recomendaría simplemente implementar el código de látex de Will dentro de otro archivo tex, es decir, thesis.tex contiene un /providecommand/comment[1]{/emph{#1}} y thesis-ugly.tex consta de /newcommand/comment[1]{/textbf{#1}} /input thesis.tex .

Por supuesto, debe volver a ejecutar herramientas como bibtex al usar esta técnica, a menos que enlace simbólicamente los archivos intermedios, ala ln -s thesis.aux thesis-ugly.aux y ln -s thesis.bbl thesis-ugly.bbl .

Truco 2: Encontré el truco 1 incómodo para cambiar los tamaños de papel de los documentos, así que escribí el siguiente script de perl, llamado simplemente tamaño de papel. El comando papersize A4 teaching.tex modifica educational.tex in place, y symlinks teaching.pdf a teaching-A4.pdf, de modo que ejecutar la enseñanza de pdflatex crea teaching-A4.pdf, pero no altera la letra de enseñanza preexistente. pdf y no requiere volver a ejecutar la bibtex teaching . Obviamente, requiere volver a ejecutar pdflatex dos veces para documentos con referencias internas.

#!/usr/bin/perl -i~ -n BEGIN { die "Usage: papersize letter/A4/etc. [filename]/n" if ($#ARGV < 0); $SIZE = shift @ARGV; @files=@ARGV; $FLAG = "% paper size :: "; } if (/$FLAG(/w+)/) { if ($1 eq $SIZE) { s/^/% //; } else { s/^([^/%])//% /1/; } } print $_; END { foreach (@files) { if (s//.tex//) { $l = "$_-$SIZE.pdf"; $_ .= ".pdf"; unlink($_) if (-l $_); symlink($l,$_) if (! -e $_); } } }

Debe agregar los comentarios especiales % paper size :: ... a cada línea de archivo que se debe cambiar cuando cambie el tamaño del papel.

/documentclass[letterpaper,11pt]{article} % paper size :: letter % /documentclass[a4paper,11pt]{article} % paper size :: A4 /usepackage[text={6.5in,8.8in}]{geometry} % paper size :: letter % /usepackage[text={16.4cm,24.5cm}]{geometry} % paper size :: A4

Obviamente, podría trabajar en el tamaño del papel en un script de compilación o makefile o modificar el script anterior para archivos .dvi ... o generalizar el script para otras modificaciones.


Para proporcionar mi disertación tanto en el formato feo requerido, feo y ifthen , como en una versión más compacta y más bonita, utilicé ifthen un conjunto de make y sed que reescribió un poco el encabezado.

Creo que los enfoques de Will son más agradables.