Substituindo `` e '' por guillemets sem tocar no código-fonte

Substituindo `` e '' por guillemets sem tocar no código-fonte

Estou escrevendo um livro e a editora quer que eu use guilhotinas em vez de aspas ``''. Li algumas perguntas com boas respostas sobre essa troca de pilhas, mas não encontrei uma resposta exata para minha pergunta.

Estou me perguntando se existe uma maneira de fazer com que o LaTeX faça automaticamente «quando eu escrevo `` e » quando escrevo ''. A alternativa, que não me agrada muito, é ler um livro inteiro composto por mais de 15 documentos .tex diferentes e fazê-lo manualmente.

Qualquer ajuda é muito apreciada.

Responder1

É uma boa notícia que você esteja na plataforma Overleaf, pois ela permite usar Lua(La)TeX para compilar seu documento. :-)

Caso você (ainda) não esteja familiarizado com LuaLaTeX: Hoje em dia, é em grande parte um superconjunto do pdfLaTeX. Isto significa, em particular, que se o seu documento for compilado corretamente no pdfLaTeX, você não terá que fazer muitas alterações para que ele seja compilado corretamente também no LuaLaTeX. A principal mudança que você terá que fazer é parar de carregar os pacotes inputence fontenc. Se o seu documento usar fontes especiais de texto ou matemáticas, também poderá ser necessário carregar o arquivofontespecembale e emita instruções adequadas \setmainfont, \setsansfontetc. Indique se você usa fontes não padrão.

Sugiro a seguinte solução, que ocorre em duas etapas. Primeiro, certifique-se de carregar ocotaçõespacote com a opção norwegian=guillemets; este pacote fornece uma macro chamada \enquote, que envolve seu argumento com um par de guilhotinas correspondentes. Segundo, você precisará definir e ativar uma função Lua que atue como um pré-processador no fluxo de entrada, convertendo todas as instâncias de ``to \enquote{e todas as instâncias de ''para }"on the fly". Com a função Lua atuando como pré-processador,antesO LaTeX inicia seu trabalho normal, na verdade o LaTeX nunca "vê" nenhuma instância de ``and ''; em vez disso, o LaTeX só consegue ver e operar em instâncias de \enquotediretivas.

O arquivo de teste a seguir fornece essa função Lua, chamada use_enquote, junto com duas macros utilitárias que ativam e, se necessário, desativam a função Lua.

insira a descrição da imagem aqui

%% 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}

informação relacionada