Reemplazar `` y '' con guillemets sin tocar el código fuente

Reemplazar `` y '' con guillemets sin tocar el código fuente

Estoy escribiendo un libro y el editor quiere que utilice guillemets en lugar de comillas ``''. He leído bastantes preguntas con buenas respuestas en este intercambio de pila, pero no he encontrado una respuesta exacta a mi pregunta.

Me pregunto si hay una manera de hacer que LaTeX genere automáticamente "cuando escribo" y "cuando escribo". La alternativa, que no me gusta mucho, es leer un libro completo que consta de más de 15 documentos .tex diferentes y hacerlo manualmente.

Se agradece mucho cualquier ayuda.

Respuesta1

Es una buena noticia que estés en la plataforma Overleaf, ya que te permite usar Lua(La)TeX para compilar tu documento. :-)

En caso de que (todavía) no estés familiarizado con LuaLaTeX: hoy en día, es en gran medida un superconjunto de pdfLaTeX. Esto significa, en particular, que si su documento se compila correctamente en pdfLaTeX, no tendrá que hacer demasiados cambios para que también se compile correctamente en LuaLaTeX. El cambio principal que tendrás que hacer es dejar de cargar los paquetes inputency . fontencSi su documento utiliza texto especial o fuentes matemáticas, también puede ser necesario cargar elespecificación de fuentePaquete y emisión de instrucciones adecuadas \setmainfont, \setsansfontetc. Indique si utiliza fuentes no predeterminadas.

Sugiero la siguiente solución, que se desarrolla en dos pasos. Primero, asegúrese de cargar elcscitaspaquete con la opción norwegian=guillemets; este paquete proporciona una macro llamada \enquote, que rodea su argumento con un par de guillemets coincidentes. En segundo lugar, necesitará definir y activar una función Lua que actúe como preprocesador en el flujo de entrada, convirtiendo todas las instancias de ``to \enquote{y todas las instancias de ''to }"sobre la marcha". Con la función Lua actuando como preprocesador,antesLaTeX comienza su trabajo habitual, en realidad LaTeX nunca "ve" ninguna instancia de ``y ''; en cambio, LaTeX solo puede ver y operar en instancias de \enquotedirectivas.

El siguiente archivo de prueba proporciona dicha función Lua, llamada use_enquote, junto con dos macros de utilidad que activan y, si es necesario, desactivan la función Lua.

ingrese la descripción de la imagen aquí

%% this document must be compiled with LuaLaTeX.
\documentclass{book} % or some other suitable document class
\usepackage{fontspec} % don't load the 'inputenc' and 'fontenc' packages

\usepackage[norsk]{babel} % or '\usepackage[norwegian]{babel}'
\usepackage[norwegian=guillemets]{csquotes} % customize appearance of quoted material

%% A Lua function that performs all of the work:
\directlua{
  function use_enquote ( s )
    s = s:gsub ( "``" , "\\enquote{" )
    return ( s:gsub ( "''" , "}" ) )
  end
}

% Two LaTeX utility macros:
\newcommand\EnquoteOn{\directlua{luatexbase.add_to_callback(
   "process_input_buffer", use_enquote, "use_enquote" )}}
\newcommand\EnquoteOff{\directlua{luatexbase.remove_from_callback(
   "process_input_buffer", "use_enquote" )}}
  
\begin{document}

\EnquoteOn % activate the Lua function 
``Hei Verden''

\EnquoteOff % deactivate the Lua function
``Hei Verden''

\end{document}

información relacionada