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 inputenc
e 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
, \setsansfont
etc. 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 \enquote
diretivas.
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.
%% 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}