¿Desactivar las comillas tipográficas (contextuales) para todo el documento?

¿Desactivar las comillas tipográficas (contextuales) para todo el documento?

Es posible quedesactivar¿Citas inteligentes (contextuales) para un documento completo? Si es así, ¿cómo?

En particular, ¿se pueden dejar las comillas simples ', las comillas dobles " y la comilla invertida ` como están mediante alguna opción o método para deshabilitar directamente dichas sustituciones?

\documentclass{article}
% minimal document which illustrates the issue.
\begin{document}

Can "double quotes", 'single quotes' and `backticks`
substitutions to any curly, smart, quote, contextual 
be switched off for the whole document?

\end{document}

El paqueteupquoteparece limitado a las \ver­ba­timsecciones tipo. El paquetecsquotestiene comandos y entornos para 'comillas tipográficas' definibles por el usuario… sin embargo, algunos cambios para deshabilitar completamente las comillas tipográficas han sido difíciles de alcanzar.

La pregunta"¿Existe un paquete tipo upquote para el texto principal y no solo texto textual?"está buscando unpaquete más macrosy en lugar de unapagado.

El impacto sistémico deagregar paquetesvs.alternar un interruptor (¿opción?)tienen diferencias intrínsecas.

Por un lado,"añadir un paquete"es unrío abajoacercarse. Los archivos posteriores han agregado agrupamiento y complejidad en los archivos de los autores. Como, agregue este paquete xpara la macro y, luego agregue ese paquete z, luego anule a, luego defina bpara que bluego pueda anularse. Es probable que cada paquete, definición y anulación agregados también agregue cierta complejidad computacional a la ejecución dinámica del tiempo de ejecución.

Por otro lado,"alternar un interruptor"es unrío arribaacercarse. Supongo que estas sustituciones de comillas se originan en los distintos motores TeX/LaTeX. Hipotética o idealmente, un cambio de opción de cotización inteligente podría compilarse y vincularse para su ejecución eficiente en el origen... con alguna pseudológica como:

// over simplified pseudo code
if smartQuotesOption == true {
  // make quote substitutions happen
}
else {
  // just skip the substitutions.
  // so, maybe nothing or little to do.
}

entonces, conceptualmente, los usuarios usarían una opción de línea de comando:

pdflatex --no-smart-quotes document.tex

o use algún modificador directo como el siguiente en los archivos LaTeX/TeX:

\smartquotesdisable
\smartquotesenable % default for backward compatibility

Estos cambios inteligentes de activación/desactivación de sustitución existen en entornos de creación de documentos, como varias herramientas de rebajas pandocy procesadores de texto convencionales.

Entonces, "¿Pueden las sustituciones de comillas inteligentes simplemente serdesactivado?"...

Si es así, genial.

En caso negativo, ¿dónde se puede enviar una solicitud de función para alternar una sustitución inteligente? ¿O averiguar si dicha característica ya está en la hoja de ruta? :-)

Respuesta1

Tengo algunas reservas sobre cambiar el código cat de the asciigravey the, quotedblya que estos caracteres se usan a menudo para cambiar códigos cat de otros caracteres. Pero tal vez esté bien.

Actualizado para funcionar con pdflatex, xelatexy lualatex.

\documentclass{article}

\usepackage{ifxetex}
\usepackage{ifluatex}
\newif\ifxetexorluatex
\ifxetex
  \xetexorluatextrue
\else
  \ifluatex
    \xetexorluatextrue
  \else
    \xetexorluatexfalse
  \fi
\fi

\ifxetexorluatex
  \usepackage{fontspec}
  \begingroup
    \catcode 34=13
    \catcode 39=13
    \catcode 96=13
    \gdef"{\textquotedbl}
    \gdef'{\textquotesingle}
    \gdef`{\textasciigrave}
  \endgroup
\else
  \usepackage[TS1,T1]{fontenc}
  \begingroup
    \catcode 39=13
    \catcode 96=13
    \gdef'{{\fontencoding{TS1}\selectfont\textquotesingle}}
    \gdef`{{\fontencoding{TS1}\selectfont\textasciigrave}}
  \endgroup
\fi

\def\smartquotedisable{%
  \ifxetexorluatex
    \catcode 34=13
  \fi
  \catcode 39=13
  \catcode 96=13
}
\def\smartquoteenable{%
  \ifxetexorluatex
    \catcode 34=12
  \fi
  \catcode 39=12
  \catcode 96=12
}

\begin{document}

`Hello'

"Hello"

``Hello''

\smartquotedisable

`Hello'

"Hello"

``Hello''

\smartquoteenable

`Hello'

"Hello"

``Hello''

\end{document}

producción

información relacionada