Skip to main content
Logo image

PreTeXt Sample Book Abstract Algebra (SAMPLE ONLY)

Section 3.1 Programs

View Source for section
<section xml:id="inactive-code">

  <title>Programs</title>

  <p>
    First, some samples of programs that are not interactive.
    They will be syntax highlighted if a valid <attr>language</attr> is specified.
    Optionally, lines can be numbered and selected lines highlighted.
  </p>

  <!-- This example also appears in the PreTeXt Guide (doc/guide/author/topics.xml).  Apply any edit to both copies. -->

  <listing>

    <title>A static Java program with highlighted lines</title>

    <program language="java" line-numbers="yes" highlight-lines="2,6-8">

      <code>
              import javax.swing.JFrame;  //Importing class JFrame
              import javax.swing.JLabel;  //Importing class JLabel
              public class HelloWorld {
                  public static void main(String[] args) {
                      JFrame frame = new JFrame();           //Creating frame
                      frame.setTitle("Hi!");                 //Setting title frame
                      frame.add(new JLabel("Hello, world!"));//Adding text to frame
                      frame.pack();                          //Setting size to smallest
                      frame.setLocationRelativeTo(null);     //Centering frame
                      frame.setVisible(true);                //Showing frame
                  }
              }
      </code>

    </program>

  </listing>

  <p>
    Instead of specifying <attr>language</attr> on each program, a default can be specified at <c>docinfo/programs/@language</c>.
    That value will be used for any program that lacks a <attr>language</attr> attribute.
    This sample does not specify it's own <attr>language</attr> and is relying on the default set in this book.
  </p>

  <listing>

    <title>Python program, relying on default programs language</title>

    <program line-numbers="yes">

      <code>
              def say_hello():
                  print("Hello, World!")
              say_hello()
      </code>

    </program>

  </listing>

</section>
First, some samples of programs that are not interactive. They will be syntax highlighted if a valid @language is specified. Optionally, lines can be numbered and selected lines highlighted.
View Source for listing
<listing>

  <title>A static Java program with highlighted lines</title>

  <program language="java" line-numbers="yes" highlight-lines="2,6-8">

    <code>
            import javax.swing.JFrame;  //Importing class JFrame
            import javax.swing.JLabel;  //Importing class JLabel
            public class HelloWorld {
                public static void main(String[] args) {
                    JFrame frame = new JFrame();           //Creating frame
                    frame.setTitle("Hi!");                 //Setting title frame
                    frame.add(new JLabel("Hello, world!"));//Adding text to frame
                    frame.pack();                          //Setting size to smallest
                    frame.setLocationRelativeTo(null);     //Centering frame
                    frame.setVisible(true);                //Showing frame
                }
            }
    </code>

  </program>

</listing>
Listing 3.1.1. A static Java program with highlighted lines
View Source for program
<program language="java" line-numbers="yes" highlight-lines="2,6-8">

  <code>
          import javax.swing.JFrame;  //Importing class JFrame
          import javax.swing.JLabel;  //Importing class JLabel
          public class HelloWorld {
              public static void main(String[] args) {
                  JFrame frame = new JFrame();           //Creating frame
                  frame.setTitle("Hi!");                 //Setting title frame
                  frame.add(new JLabel("Hello, world!"));//Adding text to frame
                  frame.pack();                          //Setting size to smallest
                  frame.setLocationRelativeTo(null);     //Centering frame
                  frame.setVisible(true);                //Showing frame
              }
          }
  </code>

</program>
import javax.swing.JFrame;  //Importing class JFrame
import javax.swing.JLabel;  //Importing class JLabel
public class HelloWorld {
    public static void main(String[] args) {
        JFrame frame = new JFrame();           //Creating frame
        frame.setTitle("Hi!");                 //Setting title frame
        frame.add(new JLabel("Hello, world!"));//Adding text to frame
        frame.pack();                          //Setting size to smallest
        frame.setLocationRelativeTo(null);     //Centering frame
        frame.setVisible(true);                //Showing frame
    }
}
Instead of specifying @language on each program, a default can be specified at docinfo/programs/@language. That value will be used for any program that lacks a @language attribute. This sample does not specify it’s own @language and is relying on the default set in this book.
View Source for listing
<listing>

  <title>Python program, relying on default programs language</title>

  <program line-numbers="yes">

    <code>
            def say_hello():
                print("Hello, World!")
            say_hello()
    </code>

  </program>

</listing>
Listing 3.1.2. Python program, relying on default programs language
View Source for program
<program line-numbers="yes">

  <code>
          def say_hello():
              print("Hello, World!")
          say_hello()
  </code>

</program>
def say_hello():
    print("Hello, World!")
say_hello()