Editar

Editar

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 babelusar os comandos.ngerman"=""english\addto\extrasenglish

Dentro otherlanguagedos ambientes do texto do documento principal, tudo funciona conforme o esperado.

biblatex, que utilizo para gerenciar minhas bibliografias, oferece a autolangopção e o langidcampo para troca de regras de hifenização para cada entrada bibliográfica. Quando defino autolangcomo other, ele cria um otherlanguageambiente em torno das citações e entradas bibliográficas e, portanto, usa taquigrafias. Mas também imprime termos como andem inglês, o que não é desejável em um documento alemão geral. biblatexportanto oferece a autolang=hyphenopção deativar apenas as regras de hifenizaçãopara o idioma especificado no langidcampo, 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}

insira a descrição da imagem aqui

biblatex também tem os comandos \hyphene \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}

insira a descrição da imagem aqui

informação relacionada