Estou escrevendo um documento em alemão, onde cito frequentemente trabalhos em inglês e outras línguas. Usado para modificar facilmente os símbolos de hifenização em palavras ou nomes compostos (por exemplo, para um hífen adicional que sempre deve ser impresso e para uma possível quebra de linha sem hífen), também ativei essas abreviações para babel
usar os comandos.ngerman
"=
""
english
\addto\extrasenglish
Dentro otherlanguage
dos ambientes do texto do documento principal, tudo funciona conforme o esperado.
biblatex
, que utilizo para gerenciar minhas bibliografias, oferece a autolang
opção e o langid
campo para troca de regras de hifenização para cada entrada bibliográfica. Quando defino autolang
como other
, ele cria um otherlanguage
ambiente em torno das citações e entradas bibliográficas e, portanto, usa taquigrafias. Mas também imprime termos como and
em inglês, o que não é desejável em um documento alemão geral. biblatex
portanto oferece a autolang=hyphen
opção deativar apenas as regras de hifenizaçãopara o idioma especificado no langid
campo, recorrendo ao idioma do documento principal para todos os outros termos.
No entanto, as abreviaturas não funcionam mais. Como faço para que eles funcionem?
Aqui está um MWE:
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[english,ngerman]{babel}
\addto\extrasenglish{\useshorthands{"}\languageshorthands{ngerman}}
\usepackage{csquotes}
\usepackage[backend=biber,autolang=hyphen,style=verbose]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@collection{NMR,
editor = {Wardrip"=Fruin, Noah and Montfort, Nick},
title = {The New Media Reader},
location = {Cambridge/""MA and London},
publisher = {MIT Press},
year = 2003,
langid = {english}
}
\end{filecontents}
\addbibresource{bibliography.bib}
\begin{document}
\begin{otherlanguage}{english}
Manually using babel shorthands inside an \texttt{otherlanguage}
environment, everything works as expected: Wardrip"=Fruin.
Cambridge/""MA.
\end{otherlanguage}
Yet, citing the work from the bibliography, where it was given a
\texttt{langid} field, the shorthands do not work.\autocite{NMR}
Neither do they work in the bibliography:
\printbibliography
\end{document}
Responder1
O ambiente hyphenrules desativa ativamente todas as taquigrafias de idioma. Mas o babel oferece comandos genéricos que sempre funcionam:
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[english,ngerman]{babel}
\addto\extrasenglish{\useshorthands{"}\languageshorthands{ngerman}}
\begin{document}
\begin{hyphenrules}{ngerman}
Manually using babel shorthands inside an \texttt{hyphenrules}
environment, doesn't: Wardrip"=Fruin.
Cambridge/""MA.
Use the babel commands: Wardrip\babelhyphen{hard}Fruin.
Cambridge/\babelhyphen{empty}MA.
\end{hyphenrules}
\end{document}
biblatex também tem os comandos \hyphen
e \hyphenate
(mas nada para ""
).
Editar
Na verdade você pode definir o atalho para que funcione em todos os idiomas:
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[english,ngerman]{babel}
\usepackage{csquotes}
\useshorthands*{"}
\defineshorthand{""}{\babelhyphen{empty}}
\defineshorthand{"=}{\babelhyphen{hard}}
\begin{document}
\begin{hyphenrules}{ngerman}
Wardrip"=Fruin.
Cambridge/""MA.
\end{hyphenrules}
\selectlanguage{english}
Wardrip"=Fruin.
Cambridge/""MA.
\selectlanguage{ngerman}
Wardrip"=Fruin.
Cambridge/""MA.
\end{document}