2. Die Beispiele dieses Dokuments
Ich möchte einen kurzen Artikel schreiben. Die Interaktionen zwischen einer IA und einem Nutzer werden im Artikel [Erzeugen eines script Python mit IA-Tools], die ich von nun an [ref1]. Interaktionen mit Gemini und ChatGPT nur am Rande vorgestellt werden. Auf jeden Fall war es unmöglich, zu präsentieren alle iterationen.
Ich werde nun Beispiele für die Besonderheiten meiner Dokumente ODT / vorstellen DOCX dass der Gemini-Konverter / ChatGPT richtig verwaltet. Es ist dieses eigene Dokument, das wir bei der Umwandlung HTML zu script von Gemini / vorschlagen werden ChatGPT. Wir werden sehen, was er damit macht.
2.1. Die Listen
Der Gemini-Konverter / ChatGPT kann mit Aufzählungen und nummerierten Listen umgehen auch wenn sie verschachtelt sind :
2.1.1. Listen
- Element 1 ;
- Element 2 :
- Element 3 ;
- Element 3.1;
- Element 3.1.1
- Element 3.1.2
- Element 3.1.2.1
- Element 3.1.2.2
- Element 3.2;
- Element 3.1;
- Element 4 ;
2.1.2. Nummerierte Listen
- Element 1 ;
- Element 2 ;
- Element 2.1
- Element 2.1.1
- Element 2.1.1
- Element 2.1.1.2
- Element 2.1.2
- Element 2.1.1
- Element 2.2
- Element 2.1
- Element 3 ;
2.1.3. Gemischte Listen 1
- Element 1 ;
- Element 2 :
- Element 3 ;
- Element 3.1;
- Element 3.1.1
- Element 3.1.2
- Element 3.1.2.1
- Element 3.1.2.2
- Element 3.2;
- Element 3.1;
- Element 4 ;
2.1.4. Gemischte Listen 2
- Element 1 ;
- Element 2 ;
- Element 2.1
- Element 2.1.1
- Element 2.1.1
- Element 2.1.1.2
- Element 2.1.2
- Element 2.1.1
- Element 2.2
- Element 2.1
- Element 3 ;
2.1.5. Nummerierte Listen manuell
Unter manueller Nummerierung versteht man ici, dass der Benutzer die Nummer eines nummerierten Absatzes festlegt: [Rechtsklick auf den nummerierten Absatz / Absatz / Absatz / Nummerierung neu beginnen / Start mit].
Ich beginne eine Liste mit einer anderen Zahl als 1.
- Element 6
- element 7
Ici ich die Liste abbreche, um etwas zu sagen, aber dann möchte ich mit der Nummerierung fortfahren.
- Element 8
- element 9
Dann beginne ich eine neue nummerierte Liste:
- element 11
- element 12
2.2. Die Codeblöcke
Meine Kurse enthalten viele Codeblöcke. Dies sind häufig Codes, die durch IDE (Eclipse, PyCharm, WebStorm, Netbeans) angereichert wurden (Fettdruck, Farben der Schlüsselwörter). Diese angereicherten Codes werden vom Konverter identisch gerendert.
Wenn der Code nicht angereichert ist (Code aus Notepad oder Notizblock oder ...), wird dere Gemini-Konverter / ChatGPT erkennt es (Java, C#, XML, HTML, ...) mithilfe von Schlüsselwörtern der Sprache, die in einer Konfigurationsdatei gespeichert sind. Wenn er eine Sprache erkennt, fügt er eine Markierung (fence) für MkDocs ein, um zu gewährleisten, dass die Sprache nicht verwechselt wirde dieser passt die Syntaxfärbung des Codes an die im Codeblock verwendete Sprache an.
2.2.1. Rich Code Blocks (Eclipse, Visual Studio, ...)
Hier sind Codeblöcke, die mit verschiedenen IDE angereichert wurden:
Java
package istia.st.spring.core;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo01 {
@SuppressWarnings({ "unchecked", "resource" })
public static void main(String[] args) {
// wiederherstellung des Spring-Kontextes
ApplicationContext ctx = new ClassPathXmlApplicationContext("config-01.xml");
// wir holen die Beans
Personne p01 = ctx.getBean("personne_01", Personne.class);
Personne p02 = ctx.getBean("personne_02", Personne.class);
List<Personne> club = ctx.getBean("club", new ArrayList<Personne>().getClass());
Appartement appart01 = ctx.getBean(Appartement.class);
...
C#
using System;
namespace Chap1 {
class Impots {
static void Main(string[] args) {
// tabellen mit den für die Steuerberechnung erforderlichen Daten
decimal[] limites = { 4962M, 8382M, 14753M, 23888M, 38868M, 47932M, 0M };
decimal[] coeffR = { 0M, 0.068M, 0.191M, 0.283M, 0.374M, 0.426M, 0.481M };
decimal[] coeffN = { 0M, 291.09M, 1322.92M, 2668.39M, 4846.98M, 6883.66M, 9505.54M };
// man den Familienstand wiedererlangt
bool OK = false;
string reponse = null;
while (!OK) {
Console.Write("Etes-vous marié(e) (O/N) ? ");
reponse = Console.ReadLine().Trim().ToLower();
if (reponse != "o" && reponse != "n")
Console.Error.WriteLine("Réponse incorrecte. Recommencez");
else OK = true;
}//while
bool marie = reponse == "o";
...
Python
# ----------------------------------
def affiche(chaine):
# kettenposter
print("chaine=%s" % chaine)
# ----------------------------------
def affiche_type(variable):
# zeigt den Typ der Variablen an
print("type[%s]=%s" % (variable, type(variable)))
# ----------------------------------
def f1(param):
# fügt 10 zu param hinzu
return param + 10
# ----------------------------------
def f2():
# gibt ein Tupel mit drei Werten zurück
return "un", 0, 100
# -------------------------------- Hauptprogramm ------------------------------------
...
PHP
<?php
// strenge Typen für Funktionsparameter
declare(strict_types=1);
// globale Konstanten
define("PLAFOND_QF_DEMI_PART", 1551);
define("PLAFOND_REVENUS_CELIBATAIRE_POUR_REDUCTION", 21037);
define("PLAFOND_REVENUS_COUPLE_POUR_REDUCTION", 42074);
define("VALEUR_REDUC_DEMI_PART", 3797);
define("PLAFOND_DECOTE_CELIBATAIRE", 1196);
define("PLAFOND_DECOTE_COUPLE", 1970);
define("PLAFOND_IMPOT_COUPLE_POUR_DECOTE", 2627);
define("PLAFOND_IMPOT_CELIBATAIRE_POUR_DECOTE", 1595);
define("ABATTEMENT_DIXPOURCENT_MAX", 12502);
define("ABATTEMENT_DIXPOURCENT_MIN", 437);
// definition von lokalen Konstanten
$DATA = "taxpayersdata.txt";
$RESULTATS = "resultats.txt";
$limites = array(9964, 27519, 73779, 156244, 0);
$coeffR = array(0, 0.14, 0.3, 0.41, 0.45);
$coeffN = array(0, 1394.96, 5798, 13913.69, 20163.45);
// daten lesen
$data = fopen($DATA, "r");
if (!$data) {
print "Impossible d'ouvrir en lecture le fichier des données [$DATA]\n";
exit;
}
...
ECMAScript
'use strict';
// dies ist ein Kommentar
// konstante
const nom = "dupont";
// eine Bildschirmanzeige
console.log("nom : ", nom);
// ein Array mit Elementen unterschiedlichen Typs
const tableau = ["un", "deux", 3, 4];
// seine Anzahl an Elementen
let n = tableau.length;
// eine Schleife
for (let i = 0; i < n; i++) {
console.log("tableau[", i, "] = ", tableau[i]);
}
// initialisierung von 2 Variablen mit dem Inhalt eines Arrays
let [chaine1, chaine2] = ["chaine1", "chaine2"];
// verkettung der 2 Zeichenfolgen
const chaine3 = chaine1 + chaine2;
// ergebnisanzeige
console.log([chaine1, chaine2, chaine3]);
...
VBScript
' berechnung der Steuer eines Steuerpflichtigen
' das Programm soll mit drei Parametern aufgerufen werden: verheiratet Kinder Gehalt
' verheiratet: Zeichen O, wenn verheiratet, N, wenn unverheiratet
' kinder: Anzahl der Kinder
' gehalt: Jahresgehalt ohne Cent
' obligatorische Meldung von Variablen
Option Explicit
Dim erreur
' wir rufen die Argumente ab, indem wir ihre Gültigkeit überprüfen
Dim marie, enfants, salaire
erreur=getArguments(marie,enfants,salaire)
' fehler?
If erreur(0)<>0 Then wscript.echo erreur(1) : wscript.quit erreur(0)
' man ruft die für die Steuerberechnung erforderlichen Daten ab
Dim limites, coeffR, coeffN
erreur=getData(limites,coeffR,coeffN)
' fehler?
If erreur(0)<>0 Then wscript.echo erreur(1) : wscript.quit 5
' man zeigt das Ergebnis an
wscript.echo "impôt=" & calculerImpot(marie,enfants,salaire,limites,coeffR,coeffN)
' man verlässt ohne Fehler
wscript.quit 0
XML
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects" />
</context>
<objects xmlns="http://www.springframework.net">
<object name="dao" type="Dao.DataBaseImpot, ImpotsV7-dao">
<constructor-arg index="0" value="MySql.Data.MySqlClient"/>
<constructor-arg index="1" value="Server=localhost;Database=bdimpots;Uid=admimpots;Pwd=mdpimpots;"/>
<constructor-arg index="2" value="select limite, coeffr, coeffn from tranches"/>
</object>
<object name="metier" type="Metier.ImpotMetier, ImpotsV7-metier">
<constructor-arg index="0" ref="dao"/>
</object>
</objects>
</spring>
</configuration>
2.2.2. Codeblöcke brutto (plain text)
Hier sind einige Code-Beispiele brutto :
Ergebnisse der Ausführung
Beachten Sie, dass der Code nicht mit Zeile 1 beginnt.
Dieser Fall erforderte Dutzende von Iterationen. Der Konverter konnte die Nummer der ersten Codezeile nie finden. Schließlich fragte ich Gemini, wie er den Codeblock formatieren sollte, damit er ihn erkennt. Er antwortete mir wie folgt:

Ich habe diese Vorgehensweise befolgt und es hat funktioniert. Ich habe die Methode über das Listensymbol (Anpassen) verwendet. Es kann also sein, dass man einige Elemente des Dokuments ODT / DOCX ändern muss, um das zu bekommen, was man will.
Ler Konverter kann mit nicht nummerierten Codeblöcken umgehen.
Hier sind die gleichen Beispiele wie im Absatz 2.2.1 aber nicht angereichert. Es sind dann die Schlüsselwörter aus der Konfigurationsdatei, die den Konverter zur richtigen Sprache führen.
Java
C#
Python
PHP
ECMAScript
VBScript
XML
HTML
2.3. Die Links
Der Gemini-Konverter / ChatGPT kann die externen Links des Dokuments ODT / DOCX beibehalten. Zum Beispiel Gemini 3 oder [Erzeugen eines script Python mit IA-Tools].
Er kann mit einem Link zu einem Kapitel umgehen Link zu einem Kapitel
Un verweis auf ein Kapitel : 2.1.1.
Ein Verweis auf eine Textmarke der vorausgeht : Gemini 3
Ein Verweis auf eine Textmarke die folgt : GitHub
2.4. Die Anreicherung von Text
Der Konverter kann mit Fett, Kursiv, Unterstrichen und Hervorhebungen umgehen. Er hält sich an die Farbe der Hervorhebung.
Ein Text mit Wörtern in fettin kursiv, unterstrichen oder hervorgehoben oder hervorgehoben oder hervorgehoben.
Das gilt auch für Links: [Generieren ein script Python mit werkzeuge von IA].
Die konverter verwaltet auch die farbe der zeichen.
Er verwaltet auch die oberen und unteren Ränder von Absätzen.
Er verwaltet auch die oberen und unteren Ränder von Absätzen.- Er verwaltet auch die oberen und unteren Ränder von Absätzen.
- Er verwaltet auch die oberen und unteren Ränder von Absätzen.
Er verwaltet auch die oberen und unteren Ränder von Absätzen.- Er verwaltet auch die oberen und unteren Ränder von Absätzen.
- Er verwaltet auch die oberen und unteren Ränder von Absätzen.
- Ein Text mit Wörtern in fettin kursiv, unterstrichen oder hervorgehoben oder hervorgehoben oder hervorgehoben.
- Das gilt auch für Links: [Generieren ein script Python mit werkzeuge von IA].
- Die konverter verwaltet auch die farbe der zeichen.
- Ein Text mit Wörtern in fettin kursiv, unterstrichen oder hervorgehoben oder hervorgehoben oder hervorgehoben.
- Das gilt auch für Links: [Generieren ein script Python mit werkzeuge von IA].
- Die konverter verwaltet auch die farbe der zeichen.
- Er verwaltet auch den Hintergrund des Absatzes
- er verwaltet auch den Hintergrund des Absatzes
2.5. Eine titel kann sein auch angereichert.
2.6. Bilder
Der Gemini-Konverter / ChatGPT kann mit Bildern und Bildtabellen umgehen :
![]() | ![]() |

In ODT-Dokumenten sind häufig Zeichnungen zu finden. Trotz des dutzende von versuchen gelang es Gemini nicht, einen script zu generieren, der das Bild (wie einen Screenshot) der Zeichnung erzeugen würde. So oben das Bild 5 ist der Screenshot einer Zeichnung aus einem Dokument ODT.
Alle Bilder lassen sich anklicken, um sie zu vergrößern. Wenn oben auf das Bild [1-3] geklickt wird, ergibt sich die folgende Vergrößerung:
![]() |
2.7. Die zu schützenden Zeichen
Eine Seite MkDocs1 hat Seiten, deren Inhalt nicht HTML, sondern MarkDown ist. Wenn le Dokument ODT / DOCX zeichen enthält, die in MarkDown existieren, besteht die Gefahr, dass sie von MkDocs interpretiert werden und daher nicht so aussehen, wie Sie es erwarten. Hier sind zwei Beispiele:
Das Sternchen * hat die Bedeutung MarkDown. Die folgende Zeile kann dann falsch interpretiert werden:
Die Steuer I ist dann gleich 0.15*R - 2072.5*nbParts.
Ein weiteres Beispiel ist, wenn Sie einen Codeblock MarkDown wie diesen in Ihr Dokument einfügen möchten:
2.8. Die Tabellen
Eine Tabelle kann verschiedene Inhalte enthalten:
1 | 2 | ![]() | |
3 | 4 | ![]() | |
Eine Tabelle mit Links :
Der Gemini-Konverter / ChatGPT weiß, wie man die externe Links von Dokument ODT / DOCX. Zum Beispiel Gemini 3 oder Er kann mit einem Link zu einem Kapitel umgehen Link zu einem Kapitel | Un verweis auf ein Kapitel : 2.1.1. Ein Verweis auf eine Textmarke der vorausgeht : Gemini 3 Ein Verweis auf eine Textmarke die folgt : GitHub |
Ein Array, dessen Zellen ein anderes Array enthalten :
dient sowohl zur Erzeugung des HTML-Tags <form> und dem Kontrolleur, der dieses Formular zu bearbeiten haben wird, Informationen zu geben:
Es fällt auf, dass die Methode, mit der die Formularparameter (GET/POST) an den Controller gesendet werden, nicht angegeben wird. Man könnte dies mit dem Attribut method. Wenn es keinen gibt, ist die Methode POST die standardmäßig verwendet wird. | |||||||
dient zur Erzeugung des Tags <input type="text" value="..."> :
|
Er verwaltet auch den Hintergrund des Absatzes in einer Tabelle
|
2.9. Fußnoten
Der Gemini-Konverter2 / ChatGPT verwaltet Fußnoten. Hier ist eine weitere Notiz3 fußnoten.
-
Die Fußnote ↩




