¿Diseño de libro de texto que incluye ejemplos de dos lenguajes de programación de computadoras diferentes?

Actualmente estoy produciendo una nueva edición de un viejo libro mío; este nuevo libro incorporará ejemplos de código de varios entornos informáticos diferentes.

Lo que quiero saber es: ¿cuál es la mejor manera de diferenciar los diferentes entornos en su documento? Por supuesto, puedo decirlo en el texto:

This is how it's done in foogle:
<foogle code example>
and this is how it's done in scronk:
<scronk code example>

La idea es que al echar un vistazo a la página debería ser inmediato ver qué ejemplo de código se relaciona con qué idioma.

¿Existe una "mejor práctica" para este tipo de cosas? La mayoría de los textos se concentran en un solo lenguaje de programación, por lo que esto rara vez es un problema.

Aquí hay un diseño posible, donde he puesto los dos ambientes diferentes en cajas con etiquetas adheridas (esto por eficiencia de espacio). Estoy usando TeX/LaTeX como mi motor de composición tipográfica, por lo que tengo un control muy fino sobre todos los aspectos del diseño.

(Tenga en cuenta que este es solo un ejemplo de cortar y pegar, por lo tanto, lo que parece ser el "Capítulo 1" comienza en medio de un ejemplo).

ejemplo de diseño de página

Aquí hay otra versión de lo mismo, tratando de tener en cuenta los comentarios de mayúsculas:

ingrese la descripción de la imagen aquí

Interesante pregunta. ¿Podría editar la pregunta para incluir un poco más de detalles para nosotros: ¿Solo desea mostrar texto o también el entorno de programación? ¿Planea imprimir este libro y, de ser así, en color? Si tiene alguna idea inicial sobre el diseño y el diseño del libro, una captura de pantalla también sería útil.
¿El color es una opción? Incluso si su libro está impreso en solo dos colores de tinta, por ejemplo, negro y azul, podría tener el código foogle en un marco gris y scronk en uno azul claro.
¿Cuántos idiomas diferentes serían?
Solo quiero decir que me encantan los términos foogle y scronk.
Un problema es cómo tratar con ejemplos en línea. La respuesta de @allcaps maneja bien el caso general, pero para fragmentos breves, termina con mucho espacio en blanco que extiende la longitud de la página.
¿Has mirado textos relacionados con la web? Espero que temas como PHP (PHP+HTML), CSS (CSS+HTML) o JavaScript (JavaScript+HTML) contengan bloques de código que muestren al menos 2 idiomas.
Gracias amigos, he actualizado mi publicación para que mi pregunta sea un poco más clara.

Respuestas (1)

Los encabezados (fuente proporcional) y los bloques de código (fondo, fuente monoespaciada) son tipográficos, la solución más simple y limpia. Funcionará con fragmentos pequeños y ejemplos grandes (página desbordada):

Pitón

print "Hello world!"

JavaScript

alert('Hello world!');

sql

SET SERVEROUTPUT ON;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello, world!');
END;

Los encabezados pueden ocupar mucho espacio. Especialmente cuando tienes muchos fragmentos cortos. Comentar el nombre del idioma como etiqueta es una buena alternativa:

# Python
print "Hello world!"

// JavaScript
alert('Hello world!');

-- SQL
SET SERVEROUTPUT ON;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello, world!');
END;

Separe estos fragmentos con un pequeño espacio en blanco. Entonces su lector lo ve como tres bloques.

ACTUALIZAR

Un ejemplo de código en línea:

Ahora escribe print 'Hello World!'. ¡Bien hecho!

De nuevo monoespaciado y fondo gris. Una fuente monoespaciada para el código es una opción obvia. Pero existen otros métodos para crear 'contraste' entre el cuerpo del texto y el código. Los métodos tipográficos obvios para hacer distinciones son tipo de letra, tamaño, color, posición, forma, etc.

Para hacer una distinción entre los dos lenguajes de programación, puede elegir de la misma paleta.

RETROALIMENTACIÓN

Estos son algunos comentarios sobre su maqueta:

  • Reduzca el tamaño de fuente del código. Por el momento, el código parece más grande que el cuerpo del texto. Debería ser de otra manera.
  • Sin marcos negros. ¿Alguien murió? No.
  • Coloque la etiqueta de idioma en la parte superior. Es el lugar obvio. En situaciones en las que un ejemplo de código fluye a la página siguiente, la etiqueta será invisible.
  • Agregue una sangría izquierda a los bloques de código. El código debe alinearse con el texto o saltar hacia adentro. De momento es al revés.
  • Si necesita una distinción entre los idiomas, hágalo MUCHO más sutil. Estos elementos gráficos se repetirán mucho.
  • ¿Quizás iconos? .mMatlab, .pyPhyton. Explícalos en un capítulo de convenciones tipográficas. http://books.google.nl/books?id=nEJ-jcYF2fMC&lpg=PP1&hl=nl&pg=PR41#v=onepage&q&f=false
  • No creo que el fondo gris sea absolutamente necesario. La desventaja de los marcos es que agregan un margen adicional. Del cuerpo del texto al marco y del marco al código.

Ejemplo sin fondo y con sangría:

Aprendiendo Python

Creo que un pequeño ícono antes de los ejemplos de código (en el margen, también conocido como 'fuera del lienzo'). Será agradable.

Guarde copias de sus ciclos de diseño para poder comparar y ver qué funciona mejor. Normalmente hago pasos muy pequeños, ahorrándome todo el proceso.

Mis comentarios son solo consejos, tienes que ver por ti mismo qué funciona mejor.

Esta respuesta en sí es un buen ejemplo de cómo hacerlo con un conjunto limitado de herramientas. Sugeriría al menos crear un prototipo de algo con un tipo de letra específico por idioma además de los buenos ejemplos aquí, pero con más de dos idiomas, puede que no sea posible y luego se vuelve confuso si varios idiomas se agrupan en un "Otro" genérico. categoría.
Gracias, en mayúsculas, me ha brindado excelentes comentarios y consejos. Mi primer libro contenía fondos grises, pero de hecho creo que la sangría simple con una fuente más pequeña será mejor. ¡Gracias de nuevo!
Tal vez si convirtió >>>a py>/ mt>. Sin embargo, podría estar demasiado ocupado.