gnuastro-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnuastro-commits] master b9c48d0: All quoted strings now use apostrophe


From: Mohammad Akhlaghi
Subject: [gnuastro-commits] master b9c48d0: All quoted strings now use apostrophe instead of grave accent
Date: Tue, 12 May 2020 19:04:38 -0400 (EDT)

branch: master
commit b9c48d00b539acf1c19f48f1c832a5b8966d58db
Author: Mohammad Akhlaghi <address@hidden>
Commit: Mohammad Akhlaghi <address@hidden>

    All quoted strings now use apostrophe instead of grave accent
    
    Until now, Gnuastro's quoted strings used a grave accent (`) for opening a
    quote and an apostrophe for closing it, something like `this'. But as noted
    by Rafael Morales, this is not very clear to the eye.
    
    So I had a look at the GNU Coding Standards, and noticed that under the
    section "Quote Characters", it also recommends this style: "Although GNU
    programs traditionally used 0x60 (`) for opening and 0x27 (') for closing
    quotes, nowadays quotes `like this' are typically rendered asymmetrically,
    so quoting "like this" or 'like this' typically looks better."
    
    With this commit, this has been corrected in all of Gnuastro, both in the
    printed messages and also the comments in the code.
    
    Also, again as suggested by Rafael, to give a unified interface for quoting
    strings, all the double quotations have been removed in the printed
    messages (in the C source they looked like '\"'). They are now also shown
    with an apostrophe.
---
 ChangeLog                                   | 116 ++---
 Makefile.am                                 |  64 +--
 NEWS                                        | 708 ++++++++++++++--------------
 README                                      |  10 +-
 README-hacking                              |   2 +-
 THANKS                                      |   3 +-
 bin/TEMPLATE/Makefile.am                    |   8 +-
 bin/TEMPLATE/astTEMPLATE.conf               |   2 +-
 bin/TEMPLATE/authors-cite.h                 |   6 +-
 bin/TEMPLATE/ui.c                           |  20 +-
 bin/arithmetic/Makefile.am                  |   2 +-
 bin/arithmetic/args.h                       |   2 +-
 bin/arithmetic/arithmetic.c                 | 112 ++---
 bin/arithmetic/astarithmetic.conf           |   2 +-
 bin/arithmetic/authors-cite.h               |   6 +-
 bin/arithmetic/main.h                       |   4 +-
 bin/arithmetic/operands.c                   |  26 +-
 bin/arithmetic/ui.c                         |  56 +--
 bin/buildprog/Makefile.am                   |  14 +-
 bin/buildprog/args.h                        |   8 +-
 bin/buildprog/astbuildprog.conf.in          |   2 +-
 bin/buildprog/authors-cite.h                |   6 +-
 bin/buildprog/buildprog.c                   |   6 +-
 bin/buildprog/main.h                        |   2 +-
 bin/buildprog/ui.c                          |  44 +-
 bin/convertt/Makefile.am                    |   2 +-
 bin/convertt/args.h                         |   2 +-
 bin/convertt/astconvertt.conf               |   2 +-
 bin/convertt/authors-cite.h                 |   6 +-
 bin/convertt/color.c                        |  10 +-
 bin/convertt/convertt.c                     |   8 +-
 bin/convertt/ui.c                           | 104 ++--
 bin/convolve/Makefile.am                    |   2 +-
 bin/convolve/args.h                         |   2 +-
 bin/convolve/astconvolve.conf               |   2 +-
 bin/convolve/authors-cite.h                 |   6 +-
 bin/convolve/convolve.c                     |  14 +-
 bin/convolve/ui.c                           |  52 +-
 bin/cosmiccal/Makefile.am                   |   2 +-
 bin/cosmiccal/astcosmiccal.conf             |   2 +-
 bin/cosmiccal/authors-cite.h                |   6 +-
 bin/cosmiccal/cosmiccal.c                   |   2 +-
 bin/cosmiccal/ui.c                          |  64 +--
 bin/crop/Makefile.am                        |   2 +-
 bin/crop/args.h                             |   2 +-
 bin/crop/astcrop.conf                       |   2 +-
 bin/crop/authors-cite.h                     |   6 +-
 bin/crop/crop.c                             |  14 +-
 bin/crop/main.h                             |   2 +-
 bin/crop/onecrop.c                          |  54 +--
 bin/crop/ui.c                               | 120 ++---
 bin/crop/wcsmode.c                          |  26 +-
 bin/fits/Makefile.am                        |   2 +-
 bin/fits/astfits.conf                       |   2 +-
 bin/fits/authors-cite.h                     |   6 +-
 bin/fits/fits.c                             |  30 +-
 bin/fits/keywords.c                         |  40 +-
 bin/fits/ui.c                               |  68 +--
 bin/gnuastro.conf                           |   6 +-
 bin/match/Makefile.am                       |   2 +-
 bin/match/args.h                            |   2 +-
 bin/match/astmatch.conf                     |   2 +-
 bin/match/authors-cite.h                    |   6 +-
 bin/match/match.c                           |  30 +-
 bin/match/ui.c                              | 122 ++---
 bin/mkcatalog/Makefile.am                   |   2 +-
 bin/mkcatalog/args.h                        |   2 +-
 bin/mkcatalog/astmkcatalog.conf             |   2 +-
 bin/mkcatalog/authors-cite.h                |   6 +-
 bin/mkcatalog/columns.c                     |  54 +--
 bin/mkcatalog/mkcatalog.c                   |  26 +-
 bin/mkcatalog/parse.c                       |  56 +--
 bin/mkcatalog/ui.c                          | 174 +++----
 bin/mkcatalog/upperlimit.c                  |  28 +-
 bin/mknoise/Makefile.am                     |   2 +-
 bin/mknoise/astmknoise.conf                 |   2 +-
 bin/mknoise/authors-cite.h                  |   6 +-
 bin/mknoise/ui.c                            |  28 +-
 bin/mkprof/Makefile.am                      |   2 +-
 bin/mkprof/args.h                           |   6 +-
 bin/mkprof/astmkprof-3d.conf                |   2 +-
 bin/mkprof/astmkprof.conf                   |   2 +-
 bin/mkprof/authors-cite.h                   |   6 +-
 bin/mkprof/main.h                           |   4 +-
 bin/mkprof/mkprof.c                         |  42 +-
 bin/mkprof/oneprofile.c                     |  24 +-
 bin/mkprof/ui.c                             | 244 +++++-----
 bin/noisechisel/Makefile.am                 |   2 +-
 bin/noisechisel/astnoisechisel.conf         |   2 +-
 bin/noisechisel/authors-cite.h              |   6 +-
 bin/noisechisel/detection.c                 |  44 +-
 bin/noisechisel/kernel-2d.h                 |   6 +-
 bin/noisechisel/noisechisel.c               |   2 +-
 bin/noisechisel/sky.c                       |  12 +-
 bin/noisechisel/threshold.c                 |  52 +-
 bin/noisechisel/ui.c                        |  68 +--
 bin/script/Makefile.am                      |   8 +-
 bin/script/sort-by-night.in                 |  24 +-
 bin/segment/Makefile.am                     |   2 +-
 bin/segment/astsegment.conf                 |   2 +-
 bin/segment/authors-cite.h                  |   6 +-
 bin/segment/clumps.c                        |  76 +--
 bin/segment/clumps.h                        |   2 +-
 bin/segment/kernel-2d.h                     |   6 +-
 bin/segment/segment.c                       |  54 +--
 bin/segment/ui.c                            | 108 ++---
 bin/statistics/Makefile.am                  |   2 +-
 bin/statistics/args.h                       |   4 +-
 bin/statistics/aststatistics.conf           |   2 +-
 bin/statistics/authors-cite.h               |   6 +-
 bin/statistics/sky.c                        |  12 +-
 bin/statistics/statistics.c                 |  26 +-
 bin/statistics/ui.c                         | 142 +++---
 bin/table/Makefile.am                       |   2 +-
 bin/table/args.h                            |   6 +-
 bin/table/arithmetic.c                      |  38 +-
 bin/table/asttable.conf                     |   2 +-
 bin/table/authors-cite.h                    |   6 +-
 bin/table/main.h                            |   2 +-
 bin/table/table.c                           |  54 +--
 bin/table/ui.c                              | 100 ++--
 bin/warp/Makefile.am                        |   2 +-
 bin/warp/astwarp.conf                       |   2 +-
 bin/warp/authors-cite.h                     |   6 +-
 bin/warp/ui.c                               |  80 ++--
 bin/warp/warp.c                             |  10 +-
 bootstrap.conf                              |  14 +-
 configure.ac                                | 130 ++---
 developer-build                             |   4 +-
 doc/Makefile.am                             |   6 +-
 doc/README                                  |  12 +-
 doc/announce-acknowledge.txt                |   1 +
 doc/forwebpage                              |  26 +-
 doc/genauthors                              |  10 +-
 doc/plotsrc/README                          |   4 +-
 doc/release-checklist.txt                   |  96 ++--
 doc/style.css                               |   6 +-
 genauthors                                  |   6 +-
 lib/Makefile.am                             |   8 +-
 lib/arithmetic-and.c                        |   4 +-
 lib/arithmetic-bitand.c                     |   4 +-
 lib/arithmetic-bitlsh.c                     |   4 +-
 lib/arithmetic-bitor.c                      |   4 +-
 lib/arithmetic-bitrsh.c                     |   4 +-
 lib/arithmetic-bitxor.c                     |   4 +-
 lib/arithmetic-divide.c                     |   4 +-
 lib/arithmetic-eq.c                         |   4 +-
 lib/arithmetic-ge.c                         |   4 +-
 lib/arithmetic-gt.c                         |   4 +-
 lib/arithmetic-le.c                         |   4 +-
 lib/arithmetic-lt.c                         |   4 +-
 lib/arithmetic-minus.c                      |   4 +-
 lib/arithmetic-modulo.c                     |   4 +-
 lib/arithmetic-multiply.c                   |   4 +-
 lib/arithmetic-ne.c                         |   4 +-
 lib/arithmetic-or.c                         |   4 +-
 lib/arithmetic-plus.c                       |   4 +-
 lib/arithmetic.c                            |  82 ++--
 lib/binary.c                                |  66 +--
 lib/blank.c                                 |  22 +-
 lib/box.c                                   |  40 +-
 lib/checkset.c                              |  56 +--
 lib/convolve.c                              |  68 +--
 lib/data.c                                  |  80 ++--
 lib/dimension.c                             |  30 +-
 lib/eps.c                                   |   6 +-
 lib/fits.c                                  | 260 +++++-----
 lib/gnuastro-internal/README                |   2 +-
 lib/gnuastro-internal/arithmetic-binary.h   |   6 +-
 lib/gnuastro-internal/arithmetic-internal.h |  12 +-
 lib/gnuastro-internal/commonopts.h          |  12 +-
 lib/gnuastro-internal/config.h.in           |   2 +-
 lib/gnuastro-internal/fixedstringmacros.h   |   2 +-
 lib/gnuastro-internal/options.h             |   8 +-
 lib/gnuastro-internal/tableintern.h         |   2 +-
 lib/gnuastro-internal/tile-internal.h       |  12 +-
 lib/gnuastro/README                         |   2 +-
 lib/gnuastro/arithmetic.h                   |  12 +-
 lib/gnuastro/binary.h                       |   2 +-
 lib/gnuastro/blank.h                        |  10 +-
 lib/gnuastro/data.h                         |  66 +--
 lib/gnuastro/dimension.h                    |  46 +-
 lib/gnuastro/fits.h                         |  10 +-
 lib/gnuastro/speclines.h                    |   2 +-
 lib/gnuastro/table.h                        |   4 +-
 lib/gnuastro/threads.h                      |  12 +-
 lib/gnuastro/tile.h                         |  66 +--
 lib/gnuastro/type.h                         |  18 +-
 lib/gnuastro/units.h                        |  10 +-
 lib/interpolate.c                           |  22 +-
 lib/jpeg.c                                  |   8 +-
 lib/label.c                                 | 112 ++---
 lib/list.c                                  |   8 +-
 lib/match.c                                 | 120 ++---
 lib/options.c                               | 306 ++++++------
 lib/pdf.c                                   |   4 +-
 lib/permutation.c                           |  12 +-
 lib/pointer.c                               |  36 +-
 lib/polygon.c                               |  30 +-
 lib/qsort.c                                 |   4 +-
 lib/speclines.c                             |   2 +-
 lib/statistics.c                            | 192 ++++----
 lib/table.c                                 |  62 +--
 lib/tableintern.c                           |  42 +-
 lib/threads.c                               |  32 +-
 lib/tiff.c                                  |  40 +-
 lib/tile-internal.c                         |  12 +-
 lib/tile.c                                  | 170 +++----
 lib/timing.c                                |  12 +-
 lib/txt.c                                   | 138 +++---
 lib/type.c                                  |  46 +-
 lib/units.c                                 |  20 +-
 lib/wcs.c                                   |  86 ++--
 tests/Makefile.am                           |  28 +-
 tests/arithmetic/connected-components.sh    |   2 +-
 tests/arithmetic/onlynumbers.sh             |   2 +-
 tests/arithmetic/or.sh                      |   4 +-
 tests/arithmetic/snimage.sh                 |   2 +-
 tests/arithmetic/where.sh                   |   4 +-
 tests/buildprog/simpleio.sh                 |  10 +-
 tests/convertt/blankch.sh                   |   2 +-
 tests/convertt/fitstojpeg.sh                |   2 +-
 tests/convertt/fitstojpegcmyk.sh            |   2 +-
 tests/convertt/fitstopdf.sh                 |   2 +-
 tests/convertt/fitstotxt.sh                 |   2 +-
 tests/convertt/jpegtofits.sh                |   2 +-
 tests/convertt/jpegtotxt.sh                 |   2 +-
 tests/convolve/frequency.sh                 |   2 +-
 tests/convolve/spatial.sh                   |   2 +-
 tests/cosmiccal/simpletest.sh               |   2 +-
 tests/crop/imgcat.sh                        |   2 +-
 tests/crop/imgcenter.sh                     |   2 +-
 tests/crop/imgcenternoblank.sh              |   2 +-
 tests/crop/imgpolygon.sh                    |   2 +-
 tests/crop/imgpolygonout.sh                 |   2 +-
 tests/crop/section.sh                       |   2 +-
 tests/crop/wcscat.sh                        |   2 +-
 tests/crop/wcscenter.sh                     |   2 +-
 tests/crop/wcspolygon.sh                    |   2 +-
 tests/during-dev.sh                         |  18 +-
 tests/fits/copyhdu.sh                       |   2 +-
 tests/fits/delete.sh                        |   2 +-
 tests/fits/print.sh                         |   2 +-
 tests/fits/update.sh                        |   2 +-
 tests/fits/write.sh                         |   2 +-
 tests/lib/multithread.c                     |   8 +-
 tests/lib/multithread.sh                    |   2 +-
 tests/lib/versioncxx.sh                     |   2 +-
 tests/match/merged-cols.sh                  |   2 +-
 tests/match/positions.sh                    |   2 +-
 tests/mkcatalog/aperturephot.sh             |   2 +-
 tests/mkcatalog/detections.sh               |   2 +-
 tests/mkcatalog/objects-clumps.sh           |   2 +-
 tests/mknoise/addnoise.sh                   |   2 +-
 tests/mkprof/clearcanvas.sh                 |   2 +-
 tests/mkprof/clearcanvas.txt                |   2 +-
 tests/mkprof/ellipticalmasks.sh             |   2 +-
 tests/mkprof/mosaic1.sh                     |   2 +-
 tests/mkprof/mosaic2.sh                     |   2 +-
 tests/mkprof/mosaic3.sh                     |   2 +-
 tests/mkprof/mosaic4.sh                     |   2 +-
 tests/mkprof/radeccat.sh                    |   2 +-
 tests/noisechisel/noisechisel.sh            |   2 +-
 tests/prepconf.sh                           |  10 +-
 tests/script/list-by-night.sh               |   2 +-
 tests/segment/segment.sh                    |   2 +-
 tests/statistics/basicstats.sh              |   2 +-
 tests/statistics/estimate_sky.sh            |   2 +-
 tests/statistics/from-stdin.sh              |   2 +-
 tests/table/fits-ascii-to-txt.sh            |   2 +-
 tests/table/fits-binary-to-txt.sh           |   2 +-
 tests/table/table.txt                       |   4 +-
 tests/table/txt-to-fits-ascii.sh            |   2 +-
 tests/table/txt-to-fits-binary.sh           |   2 +-
 tests/warp/homographic.sh                   |   2 +-
 tests/warp/warp_scale.sh                    |   2 +-
 276 files changed, 3454 insertions(+), 3452 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 86a154c..130fcb5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -87,10 +87,10 @@
 2015-09-17  Mohammad Akhlaghi  <address@hidden>
 
        * bin/mkprof/mkprof.c (mkprof): Only print a log file if the
-       `--nolog' option is not called.
+       '--nolog' option is not called.
 
        * bin/imgcrop/imgcrop.c (imgcrop): Only print a log file if the
-       `--nolog' option is not called.
+       '--nolog' option is not called.
 
        * bin/mkprof/main.h (mkprofparams): Removed the p->dir0file1
        parameter from the main structure.
@@ -113,8 +113,8 @@
        blank. Before the blank fraction was ignored.
 
        * bin/imgstat/imgstat.c (reportsimplestats): Now uses the value to
-       the `--mirrordist' option instead of the fixed value of 1.5.
-       (reportsimplestats): Report the `NOT ACCURATE' warning in a
+       the '--mirrordist' option instead of the fixed value of 1.5.
+       (reportsimplestats): Report the 'NOT ACCURATE' warning in a
        separate line to make reading by AWK easier, also removed comma
        between outputs for the same reason.
 
@@ -162,7 +162,7 @@
 2015-07-22  Mohammad Akhlaghi  <address@hidden>
 
        * bin/noisechisel/thresh.c (snthresh): Had mistakenly used
-       `p->detquant', for both detection and segmentation! This is now
+       'p->detquant', for both detection and segmentation! This is now
        corrected.
 
        * bin/mkcatalog/mkcatalog.c (secondpass): Sets the river flux to
@@ -180,10 +180,10 @@
 2015-07-18  Mohammad Akhlaghi  <address@hidden>
 
        * bin/noisechisel/segmentation.c (nextavailablelabel): Now
-       accounts for the `--grownclumps' option.
+       accounts for the '--grownclumps' option.
 
        * bin/noisechisel/args.h (options): Corrected the type of output
-       for `--gthresh'. I had forgot to include any for it!
+       for '--gthresh'. I had forgot to include any for it!
 
 2015-07-17  Mohammad Akhlaghi  <address@hidden>
 
@@ -224,9 +224,9 @@
        flux is subtracted here, not before.
 
        * lib/fitsarrayvv.c: The numblank variable did not actually store
-       the `number' of blank pixels, it was only a 0 or 1 value to
+       the 'number' of blank pixels, it was only a 0 or 1 value to
        specify if there are any blank pixels or not. It is now changed to
-       `anyblank' to be more clear and not confuse the readers. All the
+       'anyblank' to be more clear and not confuse the readers. All the
        Gnuastro programs that used this variable, were also corrected.
 
 2015-07-06  Mohammad Akhlaghi  <address@hidden>
@@ -389,13 +389,13 @@
 
 2015-06-11  Mohammad Akhlaghi  <address@hidden>
 
-       * bin/noisechisel/args.h (options): `minbfrac' and `minnumfalse'
-       options moved under the `Input' category from the detections
+       * bin/noisechisel/args.h (options): 'minbfrac' and 'minnumfalse'
+       options moved under the 'Input' category from the detections
        category. This move was because these two options are used by both
        the detection and segmentation steps and thus keeping them under
-       detection would be confusing. Also `checkthresh' was changed to
-       `checkthreshold'. Also, the option `numerosion' was changed to
-       `erode' to be consistent with the opening and dilate options.
+       detection would be confusing. Also 'checkthresh' was changed to
+       'checkthreshold'. Also, the option 'numerosion' was changed to
+       'erode' to be consistent with the opening and dilate options.
 
 2015-06-10  Mohammad Akhlaghi  <address@hidden>
 
@@ -442,12 +442,12 @@
        generator to ui.c to make things faster and more easier to
        understand.
 
-       * bin/mknoise/args.h (argp_option): Removed the `backgroundinmean'
+       * bin/mknoise/args.h (argp_option): Removed the 'backgroundinmean'
        option, because I couldn't figure out what use it would have. If
        it is needed we can add it again later!
 
-       * bin/imgstat/args.h (argp_option): Changed `binonzero' option to
-       the more general `onebinvalue' option.
+       * bin/imgstat/args.h (argp_option): Changed 'binonzero' option to
+       the more general 'onebinvalue' option.
 
        * bin/convolve/convolve.c (removepaddingcorrectroundoff):
        Corrected bug: would return *d in both cases! It is corrected now.
@@ -507,18 +507,18 @@
        functions for the minimum and maximum values. NaN values will
        automatically fail all comparisons.
 
-       * lib/timing.c (reporttiming): Removed the `in' from reporting
+       * lib/timing.c (reporttiming): Removed the 'in' from reporting
        seconds.
 
        * include/timing.h (VERBMSGLENGTH_V): Changed to 45 from 40.
 
 2015-05-27  Mohammad Akhlaghi  <address@hidden>
 
-       * bin/convolve/args.h (options): Remove the `noedgecorrection'
+       * bin/convolve/args.h (options): Remove the 'noedgecorrection'
        option. Since it was useless. Also changed the old short option
-       for spatial (`s') to `p'. Because `s' is now needed for the mesh
-       size option. Also changed the old short option for khdu (`H') to
-       `U', to make it similar to all the other programs that do
+       for spatial ('s') to 'p'. Because 's' is now needed for the mesh
+       size option. Also changed the old short option for khdu ('H') to
+       'U', to make it similar to all the other programs that do
        convolution.
 
        * include/mesh.h (meshparams): the garrays are now only
@@ -529,13 +529,13 @@
 
 2015-05-25  Mohammad Akhlaghi  <address@hidden>
 
-       * lib/mesh.c (operateonmesh): New name for `fillmesh'. Now the
+       * lib/mesh.c (operateonmesh): New name for 'fillmesh'. Now the
        function that will be spinned off from each thread can be
        specified from the outside.
 
 2015-05-24  Mohammad Akhlaghi  <address@hidden>
 
-       * bin/imgcrop/crop.c (sectionparser): When only a `*' was given
+       * bin/imgcrop/crop.c (sectionparser): When only a '*' was given
        with no positive or negative following number, a segmentation
        fault would happen. This bug is now fixed.
 
@@ -548,8 +548,8 @@
        the case when 2*mi is larger than size.
 
        * bin/subtractsky/args.h: --numnearest and --kernelwidth moved to
-       the `Mesh grid' part of the help output. --checksmoothing and
-       --checkinterpolation also moved to the `Mesh grid' part.
+       the 'Mesh grid' part of the help output. --checksmoothing and
+       --checkinterpolation also moved to the 'Mesh grid' part.
 
        * lib/mesh.c (checkgarray): Modified to show both the full, or
        contiguous over full image, garray and the default one which is
@@ -642,7 +642,7 @@
 
        * bin/mkprof/oneprofile.c (makepixbypix): Will only do monte carlo
        integration when the profile is not a constant value.
-       (setprofparams): Changed the function of point to `Fixed'.
+       (setprofparams): Changed the function of point to 'Fixed'.
 
        * bin/mkprof/mkprof.c (write): Changed to replace and read from an
        image and add profiles on that.
@@ -666,8 +666,8 @@
 2015-04-06  Mohammad Akhlaghi  <address@hidden>
 
        * bin/mkprof/mkprof.c: Corrected condition when a thread would
-       finish `build' profiles but the last set of its profiles wouldn't
-       pass onto `write'.
+       finish 'build' profiles but the last set of its profiles wouldn't
+       pass onto 'write'.
 
        * bin/mknoise/: Changed background flux unit to magnitudes, not
        flux.
@@ -676,13 +676,13 @@
 
 2015-04-03  Mohammad Akhlaghi  <address@hidden>
 
-       * lib/fitsarrayvv.c: Changed all occurences of `nul' or `NUL' to
-       `blank' or `BLANK'. The FITS standard defines a BLANK keyword for
+       * lib/fitsarrayvv.c: Changed all occurences of 'nul' or 'NUL' to
+       'blank' or 'BLANK'. The FITS standard defines a BLANK keyword for
        integer types.
        (copyrightandend): Will now right extra headers.
        (arraytofitsimg): Can now accept header to write to output.
 
-       * include/fitsarrayvv.h: Changed all `NUL' macros to `BLANK'.
+       * include/fitsarrayvv.h: Changed all 'NUL' macros to 'BLANK'.
 
 2015-04-02  Mohammad Akhlaghi  <address@hidden>
 
@@ -729,8 +729,8 @@
        * bin/convolve/ui.c (preparearrays): The flip parts was missing a
        -1.
 
-       * doc/gnuastro.texi: Changed all `gnuastro' occurrences in the
-       text to `Gnuastro'.
+       * doc/gnuastro.texi: Changed all 'gnuastro' occurrences in the
+       text to 'Gnuastro'.
 
 2015-03-14  Mohammad Akhlaghi  <address@hidden>
 
@@ -845,8 +845,8 @@
 
 2015-02-13  Mohammad Akhlaghi  <address@hidden>
 
-       * bin/convertt/args.h (argp_options): `convert` changed to
-       `change`. Since the program name is also convert this could cause
+       * bin/convertt/args.h (argp_options): 'convert' changed to
+       'change'. Since the program name is also convert this could cause
        confusions.
 
        * doc/gnuastro.texi (Invoking astconvertt): Option explanations.
@@ -890,8 +890,8 @@
 
 2015-01-25  Mohammad Akhlaghi  <address@hidden>
 
-       * ./*: In all files, the name `AstrUtils` was changed to
-       `gnuastro` and the `astr` prefix was changed to `ast`.
+       * ./*: In all files, the name 'AstrUtils' was changed to
+       'gnuastro' and the 'astr' prefix was changed to 'ast'.
 
 2015-01-20  Mohammad Akhlaghi  <address@hidden>
 
@@ -936,10 +936,10 @@
        * bin/mkprof/mkprof.c (writelog): Added.
        (write): Completed.
 
-       * bin/mkprof/args.h (arg_option): Added `--nomerged`.
+       * bin/mkprof/args.h (arg_option): Added '--nomerged'.
 
-       * lib/txtarrayvv.c (doformatting): Added option to use `f` in
-       printf or `g`.
+       * lib/txtarrayvv.c (doformatting): Added option to use 'f' in
+       printf or 'g'.
 
 2015-01-16  Mohammad Akhlaghi  <address@hidden>
 
@@ -947,34 +947,34 @@
        (saveindividual): Added.
        (build): Is working until the profile is built.
 
-       * bin/mkprof/ellipse.h: Function taken to `box.h`.
+       * bin/mkprof/ellipse.h: Function taken to 'box.h'.
 
-       * bin/mkprof/ellipse.c: Function taken to `box.c`.
+       * bin/mkprof/ellipse.c: Function taken to 'box.c'.
 
-       * bin/mkprof/args.h (argp_option): added `--numrandom`, changed
-       `mginimg` to `psfinimg`.
+       * bin/mkprof/args.h (argp_option): added '--numrandom', changed
+       'mginimg' to 'psfinimg'.
 
        * bin/imgcrop/main.h (imgcropparams): iwidth is now a 2 element
        array.
 
-       * bin/imgcrop/crop.c: Removed `borderfromcenter` and
-       `correctflpixels` to `lib/box.c`.
+       * bin/imgcrop/crop.c: Removed 'borderfromcenter' and
+       'correctflpixels' to 'lib/box.c'.
 
-       * lib/stats.h: Changed to `statistics.h`, all non-used functions
+       * lib/stats.h: Changed to 'statistics.h', all non-used functions
        removed.
 
        * lib/arraymanip.c: Removed all non-used functions.
 
-       * include/stats.h: Changed to `statistics.h` and all non-used
+       * include/stats.h: Changed to 'statistics.h' and all non-used
        functions removed.
 
        * include/fixedstringmacros.h (ASTRUTILSBIBTEX): Added.
 
-       * include/commonargs.h (argp_option): Added `--cite` option and
-       added the `main.h` and `cite.h` header for each program to use
+       * include/commonargs.h (argp_option): Added '--cite' option and
+       added the 'main.h' and 'cite.h' header for each program to use
        their names.
 
-       * include/checkset.h: function name `nameiswritable` is changed to
+       * include/checkset.h: function name 'nameiswritable' is changed to
        dir0file1 which is much more descriptive.
 
        * include/arraymanip.h: Removed all the non-used functions from
@@ -1042,7 +1042,7 @@
        * bin/imgcrop/args.h (parse_opt): Removed the check below.
 
        * include/commonargs.h (cparse_opt): Added check for not calling
-       `--setdirconf` and `--setusrconf` together.
+       '--setdirconf' and '--setusrconf' together.
 
 2015-01-05  Mohammad Akhlaghi  <address@hidden>
 
@@ -1064,8 +1064,8 @@
        * include/commonparams.h (commonparams): Similar to the change in
        commonargs.h.
 
-       * include/commonargs.h (argp_option): `--dirdefaults` and
-       `--userdefaults` changed to `--setdirconf` and `--setusrconf`.
+       * include/commonargs.h (argp_option): '--dirdefaults' and
+       '--userdefaults' changed to '--setdirconf' and '--setusrconf'.
 
        * doc/astrutils.texi: Included formath.texi to display math
        equations, updates to the text.
@@ -1094,7 +1094,7 @@
 
        * lib/defaults.c (addhomedir): Now returns char *.
        (writelocaldefaultstop): Informs the user of how to make the
-       needed directory with `make -p`.
+       needed directory with 'make -p'.
 
        * include/defaults.h (SAVE_LOCAL_DEFAULTS): changed addhomedir.
        (CHECKSETDEFAULTS): A new macro to read defaults.
@@ -1103,11 +1103,11 @@
        * doc/astrutils.texi: A lot of updates in the text! Listing them
        all would be too much!
 
-       * configure.ac: `--with-numthreads` and `--enable-progname` were
+       * configure.ac: '--with-numthreads' and '--enable-progname' were
        created along with all their necessary checks.
 
        * Makefile.am: Set conditional subdirectories. Added
-       `basicchecks.sh` to the files to be distributed.
+       'basicchecks.sh' to the files to be distributed.
 
 2014-12-28  Mohammad Akhlaghi  <address@hidden>
 
diff --git a/Makefile.am b/Makefile.am
index dc4e7dd..0034fd2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,12 +29,12 @@
 ## ============================================
 ##
 ## These target(s) will be created before anything else when running
-## `make', `make check', or `make install', see the "Built sources" section
+## 'make', 'make check', or 'make install', see the "Built sources" section
 ## of the AUTOMAKE manual and the git-version-gen script comments for more
-## information. Note that AUTHORS depends on `$(top_srcdir)/.version', and
-## `$(top_srcdir)/.version' depends on $(top_srcdir)/configure'. So any
+## information. Note that AUTHORS depends on '$(top_srcdir)/.version', and
+## '$(top_srcdir)/.version' depends on $(top_srcdir)/configure'. So any
 ## time the version is updated, both of these will be re-built. But during
-## usual utility and library development, `$(top_srcdir)/configure' is not
+## usual utility and library development, '$(top_srcdir)/configure' is not
 ## commonly updated, so this will not slow down the process.
 BUILT_SOURCES = $(top_srcdir)/AUTHORS
 
@@ -107,12 +107,12 @@ endif
 ## Subdirectories to build
 ## =======================
 ##
-## Note that by default `COND_TEMPLATE' is not set in configure, it is
+## Note that by default 'COND_TEMPLATE' is not set in configure, it is
 ## commented, and exists only as a template for you to copy and paste to
-## name your new utility. The same rule is applied here (in the `if'
-## conditions above). When `MAYBE_TEMPLATE' is not defined, then Make will
+## name your new utility. The same rule is applied here (in the 'if'
+## conditions above). When 'MAYBE_TEMPLATE' is not defined, then Make will
 ## see it as a blank string and igonore it, so there is no problem with
-## having an uncommented `MAYBE_TEMPLATE' as a value in `SUBDIRS'.
+## having an uncommented 'MAYBE_TEMPLATE' as a value in 'SUBDIRS'.
 SUBDIRS = bootstrapped/lib $(MAYBE_GNULIBCHECK) lib $(MAYBE_ARITHMETIC)    \
   $(MAYBE_BUILDPROG) $(MAYBE_CONVERTT) $(MAYBE_CONVOLVE)                   \
   $(MAYBE_COSMICCAL) $(MAYBE_CROP) $(MAYBE_FITS) $(MAYBE_MATCH)            \
@@ -143,9 +143,9 @@ dist_sysconf_DATA = bin/gnuastro.conf
 ## Files that are only distributed
 ## ===============================
 ##
-## Note that `COPYING' (containing the GNU GPL) is included in the
+## Note that 'COPYING' (containing the GNU GPL) is included in the
 ## distribution tarball by default in Automake, but not other license
-## files, so we have to manually add `COPYING.FDL'.
+## files, so we have to manually add 'COPYING.FDL'.
 EXTRA_DIST = COPYING.FDL genauthors .dir-locals.el .version \
              developer-build bootstrapped/README .autom4te.cfg
 
@@ -160,10 +160,10 @@ EXTRA_DIST = COPYING.FDL genauthors .dir-locals.el 
.version \
 ##
 ## When running ./configure, the user can opt-out of these messages using
 ## the GUIDEMESSAGE variable that is set when they run ./configure with the
-## `--distable-guide-message' option.
+## '--distable-guide-message' option.
 ##
-## Note that all-local is a prerequisite of `make check' too, so we will
-## only print its message when `make' was called with no options. Make will
+## Note that all-local is a prerequisite of 'make check' too, so we will
+## only print its message when 'make' was called with no options. Make will
 ## set MAKECMDGOALS to blank if there are no arguments, however, the way
 ## Automake works, its value is set to "all-am".
 all-local:
@@ -190,7 +190,7 @@ all-local:
 ##   and all the variables that are supposed to be based on exec_prefix by
 ##   default will actually change."
 ##
-## So actually, they can also do that after `make check'. Usually
+## So actually, they can also do that after 'make check'. Usually
 ## professional users would want to do such a thing, so they can ignore the
 ## NOTE. This note is mostly for beginners and it is not written to convey
 ## that this is the ONLY solution.
@@ -223,7 +223,7 @@ check-local:
         echo;                                                                  
     \
        fi
 
-## Note that the `\' characters in the GNU head here are not printed on the
+## Note that the '\' characters in the GNU head here are not printed on the
 ## command line. So we have to consider them. The ASCII GNU head is taken
 ## from: https://www.gnu.org/graphics/gnu-ascii.html
 install-exec-local:
@@ -274,18 +274,18 @@ install-exec-local:
 ## ======================
 ##
 ## This file is created from the $(VERSION) variable which was defined by
-## the `git-version-gen' script (located at address below), which is run
-## when the `$(top_srcdir)/configure' script is being built by Autoconf.
+## the 'git-version-gen' script (located at address below), which is run
+## when the '$(top_srcdir)/configure' script is being built by Autoconf.
 ##
 ##    $(top_srcdir)/bootstrapped/build-aux/git-version-gen
 ##
-## Note that contrary to what is proposed by `git-version-gen', here the
-## creation of `$(top_srcdir)/.version' depends on the
-## `$(top_srcdir)/configure' script. Therefore, anytime a the VERSION
-## variable is updated there, `$(top_srcdir)/.version' is also
+## Note that contrary to what is proposed by 'git-version-gen', here the
+## creation of '$(top_srcdir)/.version' depends on the
+## '$(top_srcdir)/configure' script. Therefore, anytime a the VERSION
+## variable is updated there, '$(top_srcdir)/.version' is also
 ## updated. During development, of the main functionality of Gnuastro
-## (utilities and libraries), the `$(top_srcdir/configure' script is rarely
-## updated, so `$(top_srcdir)/.version' will not be rebuilt and thus it
+## (utilities and libraries), the '$(top_srcdir/configure' script is rarely
+## updated, so '$(top_srcdir)/.version' will not be rebuilt and thus it
 ## won't harm the speed of tests during development.
 $(top_srcdir)/.version: $(top_srcdir)/configure
        echo $(VERSION) > $@-t && mv $@-t $@
@@ -300,18 +300,18 @@ $(top_srcdir)/.version: $(top_srcdir)/configure
 ## This file is generated automatically from the version controlled
 ## history. Note the following:
 ##
-##   - `$(top_srcdir)/AUTHORS' is defined as a BUILT_SOURCES variable, so
+##   - '$(top_srcdir)/AUTHORS' is defined as a BUILT_SOURCES variable, so
 ##     it is the first thing that is built (even in multi-threaded runs).
 ##
-##   - `$(top_srcdir)/AUTHORS' is updated only when
-##     `$(top_srcdir)/.version' is updated. `$(top_srcdir)/.version' its
-##     self is only updated when `$(top_srcdir)/configure' is updated. But
-##     generally, the `$(top_srcdir)/configure' script is not updated
+##   - '$(top_srcdir)/AUTHORS' is updated only when
+##     '$(top_srcdir)/.version' is updated. '$(top_srcdir)/.version' its
+##     self is only updated when '$(top_srcdir)/configure' is updated. But
+##     generally, the '$(top_srcdir)/configure' script is not updated
 ##     regularly during development and outside of version control.
 ##
-##   - The `$(top_srcdir)/genauthors' script will not do anything
-##     (make/update the `$(top_srcdir)AUTHORS' file) when there is no git
-##     repository. `$(top_srcdir)/AUTHORS' is only necessary when building
+##   - The '$(top_srcdir)/genauthors' script will not do anything
+##     (make/update the '$(top_srcdir)AUTHORS' file) when there is no git
+##     repository. '$(top_srcdir)/AUTHORS' is only necessary when building
 ##     a tarball distribution.
 $(top_srcdir)/AUTHORS: $(top_srcdir)/.version
        $(top_srcdir)/genauthors $(top_srcdir)
@@ -324,7 +324,7 @@ $(top_srcdir)/AUTHORS: $(top_srcdir)/.version
 ## ================================
 ##
 ## These targets will be created when building a (tarball)
-## distribution. Note that AUTHORS depends on `.version'.
+## distribution. Note that AUTHORS depends on '.version'.
 dist-hook: $(top_srcdir)/AUTHORS
        echo $(VERSION) > $(distdir)/.tarball-version
 
diff --git a/NEWS b/NEWS
index 5808dc8..8440c40 100644
--- a/NEWS
+++ b/NEWS
@@ -8,13 +8,13 @@ See the end of the file for license conditions.
 ** New features
 
   Arithmetic:
-   - New `quantile' operator for coadding datasets.
-   - New `size' operator to report length of dataset in requested dimension.
-   - When `--wcsfile' is given the value `none', output will not have any WCS.
+   - New 'quantile' operator for coadding datasets.
+   - New 'size' operator to report length of dataset in requested dimension.
+   - When '--wcsfile' is given the value 'none', output will not have any WCS.
 
   CosmicCalculator:
    --listlines: list the pre-defined spectral line wavelengths and names
-     (which you can use with the `--obsline' and `--lineatz' options). This
+     (which you can use with the '--obsline' and '--lineatz' options). This
      is convenient when you forget the specific name of the spectral line
      used within Gnuastro.
 
@@ -22,21 +22,21 @@ See the end of the file for license conditions.
    --polygon: can now also crop concave polygons (when atleast one inner
      angle is more than 180 degrees). Concave polygons occur a lot in deep
      astronomical imaging: in the shape of the deepest regions.
-   --polygonsort: Sort the given set of vertices to the `--polygon'
+   --polygonsort: Sort the given set of vertices to the '--polygon'
      option. For a concave polyton, the sorting will be correct, but for a
      convex polygon, there is no unique solution/sorting, so it may not be
      what you expect, see the manual.
 
   Fits:
    --datasum: Calculate and print the given HDU's "datasum" to stdout.
-   --datetosec: Can also account for `Z' in the end of the date-time
-     string. According to `https://www.w3.org/TR/NOTE-datetime', a `Z'
+   --datetosec: Can also account for 'Z' in the end of the date-time
+     string. According to 'https://www.w3.org/TR/NOTE-datetime', a 'Z'
      effectively means no time zone, or UTC time (which is the default in
      FITS). It still doesn't account for time zone hours of the w3.org
      standard.
 
   MakeCatalog:
-   --sigmaclip: define sigma-clipping parameters for the new `--sigclip-*'
+   --sigmaclip: define sigma-clipping parameters for the new '--sigclip-*'
      columns.
    --forcereadstd: Read the standard deviation image even if not needed by
      any columns. This is useful when you want the surface brightness
@@ -50,20 +50,20 @@ See the end of the file for license conditions.
   Table:
    --equal: Can now work on columns with string type also.
    --notequal: Can now work on columns with string type also.
-   --polygon: Polygon to use in `--inpolygon' or `--outpolygon'.
-   --inpolygon: Select rows that are inside the polygon of `--polygon'.
-   --outpolygon: Select rows that are outside the polygon of `--polygon'.
+   --polygon: Polygon to use in '--inpolygon' or '--outpolygon'.
+   --inpolygon: Select rows that are inside the polygon of '--polygon'.
+   --outpolygon: Select rows that are outside the polygon of '--polygon'.
    --catcolumn: Concatenate tables by column (keeping number of rows fixed).
    --catcolhdu: Specify the HDU/extension of the FITS files of --catcolumn.
    - New operators in column arithmetic:
-     - `ra-to-degree': Convert Right Ascension (HH:MM:SS) to degrees.
-     - `dec-to-degree': Convert Declination (DD:MM:SS) to degrees.
-     - `degree-to-ra': Convert degrees to Right Ascension (HH:MM:SS).
-     - `degree-to-dec': Convert degrees to Declination (HH:MM:SS).
+     - 'ra-to-degree': Convert Right Ascension (HH:MM:SS) to degrees.
+     - 'dec-to-degree': Convert Declination (DD:MM:SS) to degrees.
+     - 'degree-to-ra': Convert degrees to Right Ascension (HH:MM:SS).
+     - 'degree-to-dec': Convert degrees to Declination (HH:MM:SS).
 
   Library:
    - GAL_SPECLINES_INVALID_MAX: Total number of spectral lines, plus 1.
-   - GAL_ARITHMETIC_OP_QUANTILE: operator for `gal_arithmetic'.
+   - GAL_ARITHMETIC_OP_QUANTILE: operator for 'gal_arithmetic'.
    - gal_txt_trim_space: trim white space before and after a string.
    - gal_polygon_is_convex: identify if a polygon is convex or concave.
    - gal_polygon_is_inside: if point is inside polygon (convex or concave).
@@ -82,12 +82,12 @@ See the end of the file for license conditions.
 
   All programs and libraries:
    --minmapsize: Gnuastro's programs no longer attempt to write
-     memory-mapped files under `.gnuastro'. They will only attempt to write
-     them under the `.gnuastro_mmap' directory. Until now, when an internal
+     memory-mapped files under '.gnuastro'. They will only attempt to write
+     them under the '.gnuastro_mmap' directory. Until now, when an internal
      array needed to be memory-mapped, Gnuastro's programs (through the
-     `pointer.h' library) would first try writing the mmap files in the
-     `.gnuastro' directory. When it failed it would attempt writing in the
-     `.gnuastro_mmap' directory. However, `.gnuastro' is also used to store
+     'pointer.h' library) would first try writing the mmap files in the
+     '.gnuastro' directory. When it failed it would attempt writing in the
+     '.gnuastro_mmap' directory. However, '.gnuastro' is also used to store
      configuration files (which are hand-written and thus valuable). Mixing
      the two types of source (configuration files) and automatically
      generated (memory-mapped) files is very problematic.
@@ -98,8 +98,8 @@ See the end of the file for license conditions.
 
   Crop:
    --polygon: by default it will no longer attempt to sort the polygon
-     vertices, sorting can be requested with the new `--polygonsort' option.
-   --polygonout: is the new name for `--outpolygon'. Having `polygon' at
+     vertices, sorting can be requested with the new '--polygonsort' option.
+   --polygonout: is the new name for '--outpolygon'. Having 'polygon' at
      the start of the option name, makes it easier to find in the help list
      and also to understand generally.
 
@@ -120,14 +120,14 @@ See the end of the file for license conditions.
 
   Table:
    - In Column arithmetic, when columns must be specified by their number,
-     that number should be distinguished with a `$' before it (for example
-     `$1' means the first column). Until now, this character was `c', but
+     that number should be distinguished with a '$' before it (for example
+     '$1' means the first column). Until now, this character was 'c', but
      the new identifying character is very similar to AWK, allowing easier
      adoption and is also more clear. It is just important to put the total
-     `arith' string within single quotes, not double quotes.
+     'arith' string within single quotes, not double quotes.
 
   Library:
-   - gal_polygon_is_inside_convex: new name for `gal_polygon_pin'.
+   - gal_polygon_is_inside_convex: new name for 'gal_polygon_pin'.
 
 ** Bugs fixed
   bug #57300: MakeCatalog memory crash when input dataset has units.
@@ -150,7 +150,7 @@ See the end of the file for license conditions.
      scripts effectively to automate your analysis.
 
   Arithmetic:
-   - The new `add-dimension' operator will stack the popped operands in a
+   - The new 'add-dimension' operator will stack the popped operands in a
      higher-dimensional dataset. For example to build a 3D cube from
      individual 2D images/slices.
    --onedonstdout: when the output is one-dimensional, print the values on
@@ -159,12 +159,12 @@ See the end of the file for license conditions.
   BuildProgram:
    - Will use common environment variables like LDFLAGS, CPPFLAGS and CC to
      help in customizing the build of your program.
-   --cc: custom C compiler to use. Until now, `gcc' was hard-coded into the
+   --cc: custom C compiler to use. Until now, 'gcc' was hard-coded into the
      source and there was no way to choose a custom C compiler.
    --noenv: With this option, no environment variables will be read.
 
   ConvertType:
-   - New `viridis' colormap (value for the `--colormap' option). This is
+   - New 'viridis' colormap (value for the '--colormap' option). This is
      the default colormap of Python's Matplotlib, and is available in many
      other plotting tools like LaTeX's PGFPlots.
 
@@ -210,7 +210,7 @@ See the end of the file for license conditions.
      --p2col: Second Euler angle (X-Z-X order).
      --p3col: Third Euler angle (X-Z-X order).
      --q2col: Axis ratio (major/dim3 in 3D).
-   - The `--kernel' option can build 3D kernels, see the description of
+   - The '--kernel' option can build 3D kernels, see the description of
      this option in the book for examples and details on how to run it.
 
   Match:
@@ -218,7 +218,7 @@ See the end of the file for license conditions.
      generated from 3D data cubes), see book for more.
 
   NoiseChisel:
-   - arXiv:1909.11230 added in papers to cite (with the `--cite' option):
+   - arXiv:1909.11230 added in papers to cite (with the '--cite' option):
      this paper describes the major changes made to NoiseChisel in the last
      10 stable releases since the 2015 paper, most importantly how Segment
      has been separated and the new growth strategy. It is therefore
@@ -226,7 +226,7 @@ See the end of the file for license conditions.
      NoiseChisel.
 
   Segment:
-   - arXiv:1909.11230 added in papers to cite (with the `--cite' option):
+   - arXiv:1909.11230 added in papers to cite (with the '--cite' option):
      this paper describes why Segment has been separated from NoiseChisel
      and some important updates to it compared to the 2015 paper, it is
      therefore necessary to cite it along with that paper when using
@@ -239,12 +239,12 @@ See the end of the file for license conditions.
 
   Table:
    --equal: Output only rows that have a value equal to the given value in
-     the given column. For example `--equal=ID,2,4,5' will select only rows
-     that have a value of 2, 4 and 5 in the `ID' column.
+     the given column. For example '--equal=ID,2,4,5' will select only rows
+     that have a value of 2, 4 and 5 in the 'ID' column.
    --notequal: Output only rows that have a different value compared to the
      values given to this option in the given column.
    - Column Arithmetic operators:
-     - `angular-distance': a new operator to easily find the angular
+     - 'angular-distance': a new operator to easily find the angular
        distance (along a great circle) between points in various table
        columns, or the distances of all the points in the table rows with a
        fixed point. See the book for examples and better explanation.
@@ -283,8 +283,8 @@ See the end of the file for license conditions.
   Installation:
    - With the the following options at configure time, its possible to
      build Gnuastro without the optional libraries (even if they are
-     present on the host system): `--without-libjpeg', `--without-libtiff',
-     `--without-libgit2'.
+     present on the host system): '--without-libjpeg', '--without-libtiff',
+     '--without-libgit2'.
 
   All programs:
    - When an array is memory-mapped to non-volatile space (like the
@@ -292,13 +292,13 @@ See the end of the file for license conditions.
      its size. Later, when its deleted, a warning/message is also printed,
      informing you that it has been deleted. These warnings can be very
      useful when you actually have enough RAM, but forget to increase the
-     `--minmapsize' value (therefore significantly slowing down the
+     '--minmapsize' value (therefore significantly slowing down the
      program). When you don't have enough RAM, but don't want to be annoyed
-     with the warnings, you can use the new `--quietmmap' option to disable
+     with the warnings, you can use the new '--quietmmap' option to disable
      them.
 
   Arithmetic:
-   - `unique' operator removes all duplicate (and blank) elements from the
+   - 'unique' operator removes all duplicate (and blank) elements from the
      dataset and returns a single-dimension output, containing only the
      unique values in the dataset.
 
@@ -306,7 +306,7 @@ See the end of the file for license conditions.
    - Can also crop 3D datasets (data cubes). A 3D crop has the same syntax
      as the old 2D mode, only when the dataset is 3D, three coordinates
      (values, ranges or catalog-columns) should be given to the relevant
-     option. Just note that `--polygon' crops are still not supported in
+     option. Just note that '--polygon' crops are still not supported in
      3D.
 
   CosmicCalculator:
@@ -315,7 +315,7 @@ See the end of the file for license conditions.
      and observed wavelength and the redshift to use will be calculated
      internally. For many lines, it is possible to give the line name
      instead of its rest-frame wavelength. For example
-     `--obsline=lyalpha,6000' will use the redshift where the Lyman-alpha
+     '--obsline=lyalpha,6000' will use the redshift where the Lyman-alpha
      line has been shifted to 6000 Angstroms.
    --usedredshift: Print the used redshift as a "Specific calculation" (in
      line with other single-valued calculations).
@@ -330,7 +330,7 @@ See the end of the file for license conditions.
      measurement. Until now sigma-clipping results included a lot of
      visually useful information, which also made automatic usage of
      results hard. These options fix this issue. Please see the example in
-     the book under `--sigclip-median' for a nice use case.
+     the book under '--sigclip-median' for a nice use case.
 
   Table:
    - Column arithmetic. It is now possible to apply many operations on the
@@ -338,21 +338,21 @@ See the end of the file for license conditions.
      Arithmetic, but on table columns. The operators and notation is just
      like the Arithmetic program. See the "Column Arithmetic" section of
      the book for a detailed discussion and several examples.
-   - WCS to Image coordinate conversion with `wcstoimg' and `imgtowcs'. For
-     example if the input catalog has at least an `ID' column and two `RA'
-     and `DEC' columns, the set of options below will produce 5 columns
+   - WCS to Image coordinate conversion with 'wcstoimg' and 'imgtowcs'. For
+     example if the input catalog has at least an 'ID' column and two 'RA'
+     and 'DEC' columns, the set of options below will produce 5 columns
      where the last two columns are the image coordinates for each row
-     based on the WCS in `a.fits':
-           `-cID,RA,DEC -c"arith RA DEC wcstoimg" --wcsfile=a.fits'
+     based on the WCS in 'a.fits':
+           '-cID,RA,DEC -c"arith RA DEC wcstoimg" --wcsfile=a.fits'
    --head: Only output the given number of rows from the top of columns.
    --tail: Only output the given number of rows from the bottom of columns.
 
   Library:
-   - New `speclines.h' library functions and macros related to spectral
+   - New 'speclines.h' library functions and macros related to spectral
      lines. It has many macros with line wavelengths, and several functions
      for using them in combination with their names.
    - list.h: Functions to return the last element in linked lists. For
-     example `gal_list_sizet_last' or `gal_list_data_last'.
+     example 'gal_list_sizet_last' or 'gal_list_data_last'.
    - gal_arithmetic_operator_string: Return operator string from code.
    - gal_arithmetic_set_operator: Return operator code from string.
    - gal_blank_initialize_array: Initialize an array with blank values.
@@ -361,46 +361,46 @@ See the end of the file for license conditions.
    - gal_fits_img_info_dim: Only return the size information of a dataset.
    - GAL_TYPE_INT: Corresponding to respective width based on system.
    - GAL_TYPE_UINT: Corresponding to respective width based on system.
-   - GAL_BLANK_INT: Blank value for `int' (can be 16-bit or 32-bit).
-   - GAL_BLANK_UINT: Blank value for unsigned `int' (can be 16-bit or 32-bit).
+   - GAL_BLANK_INT: Blank value for 'int' (can be 16-bit or 32-bit).
+   - GAL_BLANK_UINT: Blank value for unsigned 'int' (can be 16-bit or 32-bit).
 
 ** Removed features
 
 ** Changed features
 
   Installation:
-   - Better `./configure' tests (using Gnulib's `AC_LIB_HAVE_LINKFLAGS') to
-     avoid some crashes during `make' when the host had multiple
+   - Better './configure' tests (using Gnulib's 'AC_LIB_HAVE_LINKFLAGS') to
+     avoid some crashes during 'make' when the host had multiple
      conflicting versions of some dependencies (GSL in particular).
 
   Arithmetic:
    - The output of co-adding operators is no longer the same type as the
-     input in general. The output of the `min' and `max' operators are
-     still the same type as the input. However the `number' and
-     `sigclip-number' operators will output an unsigned 32-bit integer type
-     and the rest (`sum', `mean', `std', `median', `sigclip-median',
-     `sigclip-mean' and `sigclip-std') return 32-bit floating point
+     input in general. The output of the 'min' and 'max' operators are
+     still the same type as the input. However the 'number' and
+     'sigclip-number' operators will output an unsigned 32-bit integer type
+     and the rest ('sum', 'mean', 'std', 'median', 'sigclip-median',
+     'sigclip-mean' and 'sigclip-std') return 32-bit floating point
      datasets
 
   MakeCatalog:
    - When a clumps catalog is requested, MakeCatalog will automatically
      deduce the total number of clumps (at a small cost in
      performance). Until now, it was mandatory for the clumps label dataset
-     to contain the total number of clumps in the `NUMLABS' keyword.
+     to contain the total number of clumps in the 'NUMLABS' keyword.
 
   Library:
    - gal_statistics_outlier_flat_cfp: Improved implementation with new API.
-   - New `quietmmap' argument added to the following functions (as the
-     argument following `minmapsize'). For more, see the description above
-     of the new similarly named option to all programs: `gal_array_read'
-     `gal_array_read_to_type', `gal_array_read_one_ch',
-     `gal_array_read_one_ch_to_type', `gal_data_alloc',
-     `gal_data_initialize', `gal_fits_img_read',
-     `gal_fits_img_read_to_type', `gal_fits_img_read_kernel',
-     `gal_fits_tab_read', `gal_jpeg_read', `gal_label_indexs',
-     `gal_list_data_add_alloc', `gal_match_coordinates',
-     `gal_pointer_allocate_mmap', `gal_table_read', `gal_tiff_read' and
-     `gal_txt_image_read'
+   - New 'quietmmap' argument added to the following functions (as the
+     argument following 'minmapsize'). For more, see the description above
+     of the new similarly named option to all programs: 'gal_array_read'
+     'gal_array_read_to_type', 'gal_array_read_one_ch',
+     'gal_array_read_one_ch_to_type', 'gal_data_alloc',
+     'gal_data_initialize', 'gal_fits_img_read',
+     'gal_fits_img_read_to_type', 'gal_fits_img_read_kernel',
+     'gal_fits_tab_read', 'gal_jpeg_read', 'gal_label_indexs',
+     'gal_list_data_add_alloc', 'gal_match_coordinates',
+     'gal_pointer_allocate_mmap', 'gal_table_read', 'gal_tiff_read' and
+     'gal_txt_image_read'
 
   Book:
    - The two larger tutorials ("General program usage tutorial", and
@@ -443,54 +443,54 @@ See the end of the file for license conditions.
      option's value).
 
   Arithmetic:
-   - The new `tofile-' and `tofilefree-' operators will save the top
+   - The new 'tofile-' and 'tofilefree-' operators will save the top
      operand into a file. They can be very handy in debugging/understanding
      an Arithmetic command (especially as it gets complicated), or to
      produce multiple files/extensions with a single call to Arithmetic.
    - Four new operators have been added to allow coadding multiple datasets
-     into one using sigma-clipping: `sigclip-number', `sigclip-mean',
-     `sigclip-median', and `sigclip-std'. These are very useful when
+     into one using sigma-clipping: 'sigclip-number', 'sigclip-mean',
+     'sigclip-median', and 'sigclip-std'. These are very useful when
      several inputs have strong outliers that affect the median, or the
      mean is required.
    - Multithreaded operation for the following operators that
-     combine/co-add multiple inputs into one output with same size: `min',
-     `max', `number', `sum', `mean', `std', `median', `sigclip-number',
-     `sigclip-median', `sigclip-mean', `sigclip-std'.
+     combine/co-add multiple inputs into one output with same size: 'min',
+     'max', 'number', 'sum', 'mean', 'std', 'median', 'sigclip-number',
+     'sigclip-median', 'sigclip-mean', 'sigclip-std'.
    --wcsfile and --wcshdu: these two options can be used to specify a
      different file for reading the WCS of the output. This is useful when
      the default (the WCS of the first dataset that is read) is not the
      required one.
    --interpmetric: new option that is necessary with the
-     `interpolate-medianngb' operator. For more, see the description of
+     'interpolate-medianngb' operator. For more, see the description of
      this option in NoiseChisel.
 
   Fits:
-   - Add "title" to group FITS keywords with `--write=/,"title name". This
+   - Add "title" to group FITS keywords with '--write=/,"title name". This
      "title" is composed of two keyword records/lines: a blank one (all
-     whitespace), followed by another starting with `/' and ending in any
+     whitespace), followed by another starting with '/' and ending in any
      string given to this option. This visually separates the keywords and
      acts as a title. Classifying the keywords into contextually similar
      groups greatly helps in visual inspection and is encouraged.
-   - Calculate and write `CHECKSUM' and `DATASUM' integrity keywords into
-     the specified header using `--write=checksum' (for both) or
-     `--write=datasum' (only for `DATASUM').
+   - Calculate and write 'CHECKSUM' and 'DATASUM' integrity keywords into
+     the specified header using '--write=checksum' (for both) or
+     '--write=datasum' (only for 'DATASUM').
    --datetosec: Convert the FITS date format (old or new) to number of
      seconds since since the Unix epoch time (1970-01-01,00:00:00). The
-     FITS date format (for example `YYYY-MM-DDThh:mm:ss') is hard to use
+     FITS date format (for example 'YYYY-MM-DDThh:mm:ss') is hard to use
      for automatic processing (requires calendar peculiarities like number
      of days in each month, or leap years and etc). With this option a
      single integer is returned that can be used for example to sort FITS
      files by date keywords without worrying about calendar peculiarities.
-   --verify: confirm if the `DATASUM' and `CHECKSUM' keyword values agree
+   --verify: confirm if the 'DATASUM' and 'CHECKSUM' keyword values agree
      with the specified HDU's content and/or data.
    --copykeys: Copy several keyword records (in a given range) from one
      FITS HDU/extension into another (possibly in another file).
-   --outhdu: The name/number of the output HDU (for `--copykeys').
+   --outhdu: The name/number of the output HDU (for '--copykeys').
 
   Match:
    - All the columns from one of the input catalogs can now be merged with
-     any of the columns of the second using the special `_all' name of
-     `--outcols'. For example the output of `--outcols=a_all,b5' will
+     any of the columns of the second using the special '_all' name of
+     '--outcols'. For example the output of '--outcols=a_all,b5' will
      contain all the columns from the first input and the 5th column of the
      second input. This greatly simplifies the merging of different table
      columns into one.
@@ -521,39 +521,39 @@ See the end of the file for license conditions.
        image) to define separate pseudo-detections. If its stronger,
        pseudo-detections that are touching on the corner will be identified
        as one.
-     --dopening: The number of openings to do after applying `--dthresh'.
-     --dopeningngb: The connectivity (4 or 8) to use for `--dopening'.
+     --dopening: The number of openings to do after applying '--dthresh'.
+     --dopeningngb: The connectivity (4 or 8) to use for '--dopening'.
 
   Statistics:
    --interpmetric: Similar to NoiseChisel.
 
   Table:
    --range: Limit the output rows to those with a value within the given
-     numeric range with this format: `--range=COL,low,high'. This is very
+     numeric range with this format: '--range=COL,low,high'. This is very
      useful when only certain rows of the input are required not the
      output. The advantage over piping to AWK is that you can save the
      output directly to FITS (preserving the metadata). See the book for
      more.
    --sort: Sort the output rows based on the value of the given column in
      ascending order.
-   --descending: When called with `--sort', will arrange the output rows in
+   --descending: When called with '--sort', will arrange the output rows in
      descending order.
 
   Installed scripts:
    With this release, Gnuastro also installs Bash scripts for common
    higher-level usage of (possibly multiple) programs. These scripts have a
-   `astscript-*' name, to easily show up on the command-line as Gnuastro
+   'astscript-*' name, to easily show up on the command-line as Gnuastro
    executables with the other Gnuastro programs, but are identifiable from
    them. They support options just like the programs (which can be listed
-   with `--help'). Please see the new "Installed scripts" chapter of the
+   with '--help'). Please see the new "Installed scripts" chapter of the
    book for more.
    - astscript-sort-by-night: New Gnuastro executable, using Gnuastro's
      Fits program to identify files with dates in the same night (possibly
      spanning two calendar dates).
 
   Library:
-    GAL_BLANK_LONG: new macro for the `long' type blank value.
-    GAL_BLANK_ULONG: new macro for the `unsigned long' type blank value.
+    GAL_BLANK_LONG: new macro for the 'long' type blank value.
+    GAL_BLANK_ULONG: new macro for the 'unsigned long' type blank value.
     gal_blank_number: Return the number of blank elements in a dataset.
     gal_dimension_dist_radial: Radial distance between two coordinates.
     gal_fits_key_date_to_struct_tm: FITS date format to C broken-down time.
@@ -570,14 +570,14 @@ See the end of the file for license conditions.
 ** Changed features
 
   Arithmetic:
-   - `num' operator is renamed to `number'.
-   - `numvalue' operator is renamed to `numbervalue'.
-   - `--dontdelete' will append the output to any existing file. Note that
+   - 'num' operator is renamed to 'number'.
+   - 'numvalue' operator is renamed to 'numbervalue'.
+   - '--dontdelete' will append the output to any existing file. Note that
      this change is only in Arithmetic, other programs will still just
      complain and abort.
 
   ConvertType:
-   --forcemin & --forcemax: until now, `--flminbyte' and `--flmaxbyte' were
+   --forcemin & --forcemax: until now, '--flminbyte' and '--flmaxbyte' were
      used to force the range of conversion to color channels (even if the
      range is beyond the limits of the dataset). With the introduction of
      color maps in Gnuastro 0.8, it is also necessary to force a range on
@@ -591,25 +591,25 @@ See the end of the file for license conditions.
      mean square (the correct definition of the Sky standard deviation).
 
   NoiseChisel:
-   --ignoreblankintiles: Until now `--ignoreblankinsky', would specify if
+   --ignoreblankintiles: Until now '--ignoreblankinsky', would specify if
      blank values should also be written into the tiled Sky and Sky
      standard deviation outputs. But NoiseChisel can optionally produce
-     many more tiled outputs (for example with `--checkqthresh'). So the
-     option was renamed to `--ignoreblankintiles' to highlight that the
+     many more tiled outputs (for example with '--checkqthresh'). So the
+     option was renamed to '--ignoreblankintiles' to highlight that the
      status of blank elements can be set in all tiled outputs.
 
   Statistics:
    --ignoreblankintiles: similar to same option in NoiseChisel.
 
   Table:
-   --colinfoinstdout: now corresponds to the `-O' short option. Until this
-     version, the `-s' short option was used for it. But with the new
-     `--sort' option, `-s' may cause confusion.
+   --colinfoinstdout: now corresponds to the '-O' short option. Until this
+     version, the '-s' short option was used for it. But with the new
+     '--sort' option, '-s' may cause confusion.
 
   Library
    gal_arithmetic: new argument: number of threads to use (when relevant).
-   gal_eps_write: new argument: optional bit-optimization with `dontoptimize'.
-   gal_pdf_write: new argument: optional bit-optimization with `dontoptimize'.
+   gal_eps_write: new argument: optional bit-optimization with 'dontoptimize'.
+   gal_pdf_write: new argument: optional bit-optimization with 'dontoptimize'.
 
 ** Bugs fixed
   bug #55313: Fits program writing --write values in reverse order
@@ -641,7 +641,7 @@ See the end of the file for license conditions.
    - Standard input (for example from pipes) is now available to feed input
      to all programs that accept plain text input (ConvertType, Convolve,
      Match, MakeProfiles, Statistics, Table).
-   - Updated acknowledgment statement (output of `--cite' option).
+   - Updated acknowledgment statement (output of '--cite' option).
 
   Arithmetic:
     --onedasimage: write output as an image if it has one dimension, not table.
@@ -657,9 +657,9 @@ See the end of the file for license conditions.
 
   Convolve:
     - Convolves 1D arrays (table columns, for example spectra)
-      also. Therefore two new options have been added to it: `--column'
-      (`-c', similar to other programs that read table columns), and
-      `--kernelcolumn' (to specify the column of the kernel in its own
+      also. Therefore two new options have been added to it: '--column'
+      ('-c', similar to other programs that read table columns), and
+      '--kernelcolumn' (to specify the column of the kernel in its own
       file/extension).
 
   Fits:
@@ -672,7 +672,7 @@ See the end of the file for license conditions.
       pixel-value distribution test due to the flatness of the extended
       profiles, can be identified and removed as outliers in comparison
       with the other passed tiles. The outlier finding algorithm
-      (`gal_statistics_outlier_positive': a new library function) uses the
+      ('gal_statistics_outlier_positive': a new library function) uses the
       distribution of distances between the sorted elements and is
       configured with these options.
        --outliersclip: Sigma-clipping parameters for the process.
@@ -693,7 +693,7 @@ See the end of the file for license conditions.
           the Sky over the tiles that have a sufficiently large fraction of
           undetected pixels. This is done to decrease the bias caused by
           faint un-detected wings of bright galaxies or stars, see
-          description of `--minskyfrac' for more. Until now the reference
+          description of '--minskyfrac' for more. Until now the reference
           for this fraction was the whole tile size (irrespective of how
           many blank elements it contains). With this option, it is now
           possible to ask for ignoring blank pixels when calculating the
@@ -702,7 +702,7 @@ See the end of the file for license conditions.
 
   Statistics:
     - If an input table has only one column, Statistics won't complain and
-      abort when no `--column' (`-c') is given: there is only one column to
+      abort when no '--column' ('-c') is given: there is only one column to
       use anyway, so it will be used. In the absence of which column to
       use, it will still complain and abort if the input has more than one
       column.
@@ -733,29 +733,29 @@ See the end of the file for license conditions.
 
   Arithmetic:
     - If the output has one dimension, it will be written as a table, not a
-      FITS image/array. This can be changed with the new `--onedasimage'
+      FITS image/array. This can be changed with the new '--onedasimage'
       option.
 
   Convolve:
-    - The short option for `--numchannels' is now `-n'. Until now, it was
-      `-c', but that would conflict with the short option used for
-      `--column' in all the other programs that also read from a table.
+    - The short option for '--numchannels' is now '-n'. Until now, it was
+      '-c', but that would conflict with the short option used for
+      '--column' in all the other programs that also read from a table.
 
   MakeProfiles:
-    --mergedsize: new name for the old `--naxis' option. Since the option
+    --mergedsize: new name for the old '--naxis' option. Since the option
           names and values are now written into the FITS header of the
           output, this option's name would get confused with the mandatory
-          FITS keyword `NAXIS'.
+          FITS keyword 'NAXIS'.
 
   NoiseChisel:
     - Until now, the mode's quantile was used to identify tiles with no
       significant signal. But from this version, the mean's quantile in
       each tile is used instead. The reason is that the mean is more
-      sensitive to outliers (signal). Therefore the old `--modmedqdiff' is
-      now called `--meanmedqdiff' .
+      sensitive to outliers (signal). Therefore the old '--modmedqdiff' is
+      now called '--meanmedqdiff' .
 
   Statistics:
-    --meanmedqdiff: new name for `--modmedqdiff'. Similar to NoiseChisel.
+    --meanmedqdiff: new name for '--modmedqdiff'. Similar to NoiseChisel.
 
   Library:
     - gal_array_read: list of strings (from standard input) acceptable.
@@ -780,7 +780,7 @@ See the end of the file for license conditions.
   bug #54579: NoiseChisel pseudo-detection failure when dataset is negative.
   bug #54782: Segment's check image not removing sky clumps some tiles.
   bug #54810: Arithmetic crash when previously named operand renamed.
-  bug #55025: MakeCatalog's `--prepforconv' option being ignored.
+  bug #55025: MakeCatalog's '--prepforconv' option being ignored.
   bug #55079: Blank EPS or PDF page when width options not given.
   bug #55157: No sanity check on values given to Crop's --section.
   bug #55295: Crash when more than one collapse operator called.
@@ -796,18 +796,18 @@ See the end of the file for license conditions.
 
   Installation:
     --enable-debug: debugging flags, no optimization, no shared libraries.
-    --enable-check-with-valgrind: Run `make check' tests within Valgrind.
+    --enable-check-with-valgrind: Run 'make check' tests within Valgrind.
 
   Arithmetic:
-    - `set-A': Set a name (`A' in this case) for the popped dataset. This
+    - 'set-A': Set a name ('A' in this case) for the popped dataset. This
                allows only reading the dataset it into memory once and
                possibly using it many times.
-    - `fill-holes': Flip background (0) pixels surrounded by foreground (1).
-    - `collapse-sum': collapse/remove a dimension by summing over it.
-    - `collapse-min': collapse/remove a dimension by using minimum value.
-    - `collapse-max': collapse/remove a dimension by using maximum value.
-    - `collapse-mean': collapse/remove a dimension by averaging over it.
-    - `collapse-number': Number of elements included in the collapse.
+    - 'fill-holes': Flip background (0) pixels surrounded by foreground (1).
+    - 'collapse-sum': collapse/remove a dimension by summing over it.
+    - 'collapse-min': collapse/remove a dimension by using minimum value.
+    - 'collapse-max': collapse/remove a dimension by using maximum value.
+    - 'collapse-mean': collapse/remove a dimension by averaging over it.
+    - 'collapse-number': Number of elements included in the collapse.
 
   CosmicCalculator:
     - Default cosmology set to Plank 2018 results (Paper VI).
@@ -837,12 +837,12 @@ See the end of the file for license conditions.
     --checkcenter: the units of value depend on mode (image or WCS).
 
   MakeCatalog:
-    - `--checkuplim': new name for `--checkupperlimit'.
-    - `--brightnessnoriver': new name for `--noriverbrightness'.
+    - '--checkuplim': new name for '--checkupperlimit'.
+    - '--brightnessnoriver': new name for '--noriverbrightness'.
 
   Library:
-    - gal_txt_write: new `colinfoinstdout' argument.
-    - gal_table_write: new `colinfoinstdout' argument.
+    - gal_txt_write: new 'colinfoinstdout' argument.
+    - gal_table_write: new 'colinfoinstdout' argument.
 
 ** Bugs fixed
 
@@ -924,7 +924,7 @@ See the end of the file for license conditions.
     --rawoutput: only output the detection labels and Sky and its STD.
     --ignoreblankinsky: don't set the pixels that are blank in the input to
       blank in the Sky and Sky standard deviation outputs (when
-      `--oneelempertile' is not called).
+      '--oneelempertile' is not called).
     --label: label the connected detections. Until now this was the default
       behavior. However, from this release, NoiseChisel is only in charge
       of detection. Segmentation is done by a new program (Segment). Since
@@ -939,7 +939,7 @@ See the end of the file for license conditions.
 
   Libraries:
     gal_array_read: read array from any of known formats (FITS, TIFF, 
JPEG,...).
-    gal_array_read_to_type: similar to `gal_array_read', but to given type.
+    gal_array_read_to_type: similar to 'gal_array_read', but to given type.
     gal_array_read_one_ch: Read a dataset, abort if it has multiple channels.
     gal_array_read_one_ch_to_type: Make sure input is in one channel and type.
     gal_binary_label_holes: label the holes within the foreground.
@@ -949,11 +949,11 @@ See the end of the file for license conditions.
     gal_eps_to_pt: Converts dataset size to PostScript points.
     gal_eps_write: Writes a dataset into an EPS file.
     gal_interpolate_1d_blank: Fill blank elements through interpolation.
-    gal_interpolate_1d_make_gsl_spline: Allocate and initalize `gsl_spline'.
+    gal_interpolate_1d_make_gsl_spline: Allocate and initalize 'gsl_spline'.
     gal_jpeg_name_is_jpeg: Returns 1 if given filename is JPEG.
     gal_jpeg_suffix_is_jpeg: Returns 1 if given suffix is JPEG.
-    gal_jpeg_read: Reads input JPEG image into `gal_data_t'.
-    gal_jpeg_write: Writes a `gal_data_t' into a JPEG file.
+    gal_jpeg_read: Reads input JPEG image into 'gal_data_t'.
+    gal_jpeg_write: Writes a 'gal_data_t' into a JPEG file.
     gal_label_grow_indexs: grow known indexs into desired areas.
     gal_label_watershed: apply watershed algorithm on desired region.
     gal_label_clump_significance: measure significance of all clumps in region.
@@ -968,7 +968,7 @@ See the end of the file for license conditions.
     gal_tiff_name_is_tiff: check if name contains a TIFF suffix.
     gal_tiff_suffix_is_tiff: check if suffix is a TIFF suffix.
     gal_tiff_dir_string_read: convert a string to a TIFF directory number.
-    gal_tiff_read: Read the contents of a TIFF "directory" to `gal_data_t'.
+    gal_tiff_read: Read the contents of a TIFF "directory" to 'gal_data_t'.
 
 ** Removed features
 
@@ -984,10 +984,10 @@ See the end of the file for license conditions.
     --skysubtracted: no longer necessary, included in noise measuremnts.
 
   Library:
-    - The macros `GAL_STATISTICS_SORTED_NOT',
-      `GAL_STATISTICS_SORTED_INVALID', `GAL_STATISTICS_SORTED_INCREASING',
-      `GAL_STATISTICS_SORTED_DECREASING': these macros are removed because
-      we already have the `GAL_DATA_FLAG_SORT*'' bit-flags in `gal_data_t'.
+    - The macros 'GAL_STATISTICS_SORTED_NOT',
+      'GAL_STATISTICS_SORTED_INVALID', 'GAL_STATISTICS_SORTED_INCREASING',
+      'GAL_STATISTICS_SORTED_DECREASING': these macros are removed because
+      we already have the 'GAL_DATA_FLAG_SORT*'' bit-flags in 'gal_data_t'.
 
 
 ** Changed features
@@ -1002,9 +1002,9 @@ See the end of the file for license conditions.
     --comment: can be called/written multiple times in one run.
 
   MakeCatalog:
-    - The `WCLUMPS' keyword in the objects labeled image is no longer used
+    - The 'WCLUMPS' keyword in the objects labeled image is no longer used
          to see if a clumps catalog should also be made. To build a clumps
-         catalog, you can now use the `--clumpscat' option.
+         catalog, you can now use the '--clumpscat' option.
     - Estimation of noise-level is now done per-pixel over the whole
          label. Until now the average noise level was used.
     --objectsfile has been removed. The main input argument is now assumed
@@ -1015,7 +1015,7 @@ See the end of the file for license conditions.
     do segmentation any more. The new Segment program is in charge of
     segmentation. Many of the changes below are due to this new limited
     scope of NoiseChisel.
-    --kernel: value `none' will disable convolution.
+    --kernel: value 'none' will disable convolution.
     - Renamed options:
       --convolvedhdu ==> --chdu
       --wkhdu        ==> --whdu
@@ -1023,7 +1023,7 @@ See the end of the file for license conditions.
       --checkdetsn   ==> --checksn
       --detquant     ==> --snquant
     - By default the output detection map is a binary image (values of 0 or 1).
-    - With no output name, the output has a `_detected.fits' suffix.
+    - With no output name, the output has a '_detected.fits' suffix.
 
   Segment:
     - [Previously in NoiseChisel]: For finding true clumps, the difference
@@ -1039,34 +1039,34 @@ See the end of the file for license conditions.
          still acceptable also).
 
   Libraries:
-    gal_binary_holes_fill: new name for `gal_binary_fill_holes'.
-    gal_dimension_is_different: new name for `gal_data_dsize_is_different'.
+    gal_binary_holes_fill: new name for 'gal_binary_fill_holes'.
+    gal_dimension_is_different: new name for 'gal_data_dsize_is_different'.
     gal_fits_img_read: now only reads the data not the WCS, therefore it no
         longer needs the last two arguments. A subsequent call to
-        `gal_wcs_read' can be used to read the WCS information in the file.
-    gal_pointer_increment: new name for `gal_data_ptr_increment'.
-    gal_pointer_num_between: new name for `gal_data_ptr_dist'.
-    gal_pointer_allocate: replaces `gal_data_malloc_array' and
-        `gal_data_calloc_array', through an argument you can ask for the
+        'gal_wcs_read' can be used to read the WCS information in the file.
+    gal_pointer_increment: new name for 'gal_data_ptr_increment'.
+    gal_pointer_num_between: new name for 'gal_data_ptr_dist'.
+    gal_pointer_allocate: replaces 'gal_data_malloc_array' and
+        'gal_data_calloc_array', through an argument you can ask for the
         allocated memory to be cleared or not.
     gal_qsort_TYPE_i: new name for gal_qsort_TYPE_increasing.
     gal_qsort_TYPE_d: new name for gal_qsort_TYPE_decreasing.
     gal_statistics_is_sorted: can now also update the bit-flags regarding
         the sorted nature of the input (to optimize future calls to the
         function).
-    gal_statistics_quantile_function: returns `inf' or `-inf' if the given
+    gal_statistics_quantile_function: returns 'inf' or '-inf' if the given
         value is smaller than the minimum or larger than the maximum of the
         input dataset's range. Until now, it would return blank in such
         cases.
-    gal_statistics_number: the output dataset now has a `size_t' type. Until
-        now it was `uint64_t'.
+    gal_statistics_number: the output dataset now has a 'size_t' type. Until
+        now it was 'uint64_t'.
 
 ** Bugs fixed
 
   bug #50957: --version output not possible on Mac OS X
   bug #52979: Many unused result warnings for asprintf in some compilers.
   bug #53122: Configure time CPPFLAGS and LDFLAGS don't pass to BuildProgram.
-  bug #53142: Crash when printing values with the `--onlyversion' option.
+  bug #53142: Crash when printing values with the '--onlyversion' option.
   bug #53147: NULL value of onlyversion option causing a crash.
   bug #53226: Match output directory ignored when making multiple files.
   bug #53230: Statistics program bad results on integer columns with limits.
@@ -1096,68 +1096,68 @@ See the end of the file for license conditions.
   New Program and library: Match is a new program that will match two given
   inputs (currently catalogs). Its output is the re-arranged inputs with
   the same number of rows/records such that all the rows match. The main
-  work is also done with the new low-level `gal_match_catalog' library
+  work is also done with the new low-level 'gal_match_catalog' library
   function which can also be used in more generic contexts.
 
-  All programs: a value of `0' to the `--numthreads' option will use the
+  All programs: a value of '0' to the '--numthreads' option will use the
   number of threads available to the system at run time.
 
-  Arithmetic: The new operators `filter-median' and `filter-mean' can be
+  Arithmetic: The new operators 'filter-median' and 'filter-mean' can be
   used to filter (smooth) the input. The size of the filter can be set as
   the other operands to these operators.
 
-  BuildProgram: The new `--la' option allows the identification of a
-  different Libtool `.la' file for Libtool linking information.
+  BuildProgram: The new '--la' option allows the identification of a
+  different Libtool '.la' file for Libtool linking information.
 
-  BuildProgram: The new `--deletecompiled' option will delete the compiled
+  BuildProgram: The new '--deletecompiled' option will delete the compiled
   program after running it.
 
   CosmicCalculator: all the various cosmological calculations can now be
   requested individually in one line with a specific option added for each
-  calculation (for example `--age' or `--luminositydist' for the age of the
+  calculation (for example '--age' or '--luminositydist' for the age of the
   universe at a given redshift or the luminosity distance). Therefore the
-  old `--onlyvolume' and `--onlyabsmagconv' options are now removed. To
+  old '--onlyvolume' and '--onlyabsmagconv' options are now removed. To
   effectively use these new features, please review the "Invoking
   CosmicCalculator" section of the book.
 
   Fits: when an extension/HDU is identified on the command-line with the
-  `--hdu' option and no operation is requested, the full list of header
-  keywords in that HDU will be printed (as if only `--printallkeys' was
+  '--hdu' option and no operation is requested, the full list of header
+  keywords in that HDU will be printed (as if only '--printallkeys' was
   called).
 
   MakeCatalog: physical nature agnostic WCS column names. Previously the
   first WCS axis was always assumed to be RA and the second DEC. So for
   example even if you had a spectrum (with X and wavelength as the two WCS
-  dimensions), you would have to ask for `--ra' and `--dec'. The new `--w1'
-  and `--w2' options are now generic and don't assume any particular type
+  dimensions), you would have to ask for '--ra' and '--dec'. The new '--w1'
+  and '--w2' options are now generic and don't assume any particular type
   only their order in the FITS header. MakeCatalog now also uses the CTYPE
   and CUNIT keywords to set the names and units of its output columns. The
-  `--ra' and `--dec' options are now just internal aliases for `--w1' or
-  `--w2' which will be determined based on the input's CTYPE keyword. Also
-  the new `--geow1', `--geow2', `--clumpsw1', `--clumpsw2',
-  `--clumpsgeow1', `--clumpsgeow2' options replace the old options
-  `--geora', `--geodec', `--clumpsra', `--clumpsdec', `--clumpsgeora',
-  `--clumpsgeodec'. No alias is currently defined for the latter group.
-
-  MakeCatalog: the new `--uprange' option allows you to specify a range for
+  '--ra' and '--dec' options are now just internal aliases for '--w1' or
+  '--w2' which will be determined based on the input's CTYPE keyword. Also
+  the new '--geow1', '--geow2', '--clumpsw1', '--clumpsw2',
+  '--clumpsgeow1', '--clumpsgeow2' options replace the old options
+  '--geora', '--geodec', '--clumpsra', '--clumpsdec', '--clumpsgeora',
+  '--clumpsgeodec'. No alias is currently defined for the latter group.
+
+  MakeCatalog: the new '--uprange' option allows you to specify a range for
   the random values around each object. This is useful when the noise
   properties of the dataset vary gradually and sampling from the whole
   dataset might produce biased results.
 
-  NoiseChisel: with the new `--convolved' and `--convolvedhdu' options,
+  NoiseChisel: with the new '--convolved' and '--convolvedhdu' options,
   NoiseChisel will not convolve the input any more and use the given
   dataset instead. In many cases, as the inputs get larger, convolution is
   the most time consuming step of NoiseChisel. With this option, you can
   greatly speed up your tests (to find the best parameters by varying them,
   for a given analysis). See the book for more information and examples.
 
-  NoiseChisel: with the new `--widekernel' option it is now possible to use
+  NoiseChisel: with the new '--widekernel' option it is now possible to use
   a wider kernel to identify which tiles contain signal. The rest of the
   steps (identifying the quantile threshold on the selected tiles and etc)
-  are done on the dataset convolved with `--kernel' as they were
+  are done on the dataset convolved with '--kernel' as they were
   before. Since it is time consuming, this is an optional feature.
 
-  NoiseChisel: with the new `--qthreshtilequant' option, it is now possible
+  NoiseChisel: with the new '--qthreshtilequant' option, it is now possible
   to discard high-valued (outlier) tiles before estimating qthresh over the
   whole image. This can be useful in detecting very large diffuse/flat
   regions that would otherwise be detected as background (and effectively
@@ -1167,42 +1167,42 @@ See the end of the file for license conditions.
   signal contiguity, not by blind dilation. The growth process is the same
   as the growing of clumps to define objects. Only for true detections, the
   growth occurs in the noise. You can configure this growth with the
-  `--detgrowquant' and `--detgrowmaxholesize'. With this new feature it is
+  '--detgrowquant' and '--detgrowmaxholesize'. With this new feature it is
   now possible to detect signal out to much lower surface brightness limits
   and the detections don't look boxy any more.
 
   Cosmology library: A new set of cosmology functions are now included in
-  the library (declared in `gnuastro/cosmology.h'). These functions are
+  the library (declared in 'gnuastro/cosmology.h'). These functions are
   also used in the CosmicCalculator program.
 
-  `gal_table_read' can now return the number of columns matched with each
+  'gal_table_read' can now return the number of columns matched with each
   input column (for example with regular expressions), a new argument has
   been added to allow this feature.
 
-  `gal_fits_key_img_blank': returns the value that must be used in the
+  'gal_fits_key_img_blank': returns the value that must be used in the
   BLANK keyword for the given type as defined by the FITS standard.
 
-  `gal_txt_write' and `gal_fits_tab_write' now accept an extension name as
+  'gal_txt_write' and 'gal_fits_tab_write' now accept an extension name as
   argument to allow a name for the FITS extension they write.
 
-  `gal_box_bound_ellipse_extent' will return the maximum extent of an
+  'gal_box_bound_ellipse_extent' will return the maximum extent of an
   ellipse along each axis from the ellipse center in floating point.
 
 ** Removed features
 
-  Installation: The `--enable-bin-op-*' configuration options that were
+  Installation: The '--enable-bin-op-*' configuration options that were
   introduced in Gnuastro 0.3 have been removed. By managing the arithmetic
   functions in a better manner (a separate source file for each operator),
   compilation for all types (when done in parallel) takes about the same
   time as it took with the default (only four) types until now.
 
-  MakeCatalog: `--zeropoint' option doesn't have a short option name any
-  more. Previously it was `-z' which was confusing because `-x' and `-y'
+  MakeCatalog: '--zeropoint' option doesn't have a short option name any
+  more. Previously it was '-z' which was confusing because '-x' and '-y'
   were used to refer to image coordinate positions.
 
-  NoiseChisel: The `--dilate' and `--dilatengb' options have been
+  NoiseChisel: The '--dilate' and '--dilatengb' options have been
   removed. Growing of true detections is no longer done through dilation
-  but through the `--detgrowquant' and `--detgrowmaxholesize' options (see
+  but through the '--detgrowquant' and '--detgrowmaxholesize' options (see
   above).
 
 ** Changed features
@@ -1215,32 +1215,32 @@ See the end of the file for license conditions.
   now, two separate FITS files would be created. Plain text outputs are the
   same as before (two files will be created).
 
-  `gal_binary_fill_holes' now accepts a `connectivity' and `maxsize'
+  'gal_binary_fill_holes' now accepts a 'connectivity' and 'maxsize'
   argument to specify the connectivity of the holes and the maximum size of
   acceptable holes to fill.
 
-  `gal_fits_img_read' and `gal_fits_img_read_to_type' now also read the WCS
+  'gal_fits_img_read' and 'gal_fits_img_read_to_type' now also read the WCS
   structure of the extension/HDU in a FITS file and have two extra
-  arguments: `hstartwcs' and `hendwcs'. With these options it is possible
+  arguments: 'hstartwcs' and 'hendwcs'. With these options it is possible
   to limit the range of header keywords to read the WCS, similar to how
-  they are used in `gal_wcs_read'.
+  they are used in 'gal_wcs_read'.
 
-  `gal_txt_write', `gal_table_write_log', `gal_fits_tab_write' and
-  `gal_txt_write' don't have the `dontdelete' argument any more. The action
+  'gal_txt_write', 'gal_table_write_log', 'gal_fits_tab_write' and
+  'gal_txt_write' don't have the 'dontdelete' argument any more. The action
   they take if the file already exists depends on the file: for FITS, a new
   extension will be added and for text, they will abort with an error.
 
-  `gal_tile_block_write_const_value' and `gal_tile_full_values_write' now
-  accept a new `withblank' option to set all pixels that are blank in the
+  'gal_tile_block_write_const_value' and 'gal_tile_full_values_write' now
+  accept a new 'withblank' option to set all pixels that are blank in the
   tile's block to be blank in the check image.
 
-  `gal_wcs_pixel_area_arcsec2' will return NaN (instead of aborting) when
+  'gal_wcs_pixel_area_arcsec2' will return NaN (instead of aborting) when
   input is unreasonable (not two dimensions or not in units of degrees).
 
-  `gal_wcs_world_to_img' and `gal_wcs_img_to_world': Until now, these two
+  'gal_wcs_world_to_img' and 'gal_wcs_img_to_world': Until now, these two
   WCS conversion functions would explicitly assume RA and Dec and work
   based on input arrays (so for example it was also necessary to give the
-  number of elements and etc). They now accept `gal_data_t' as input for
+  number of elements and etc). They now accept 'gal_data_t' as input for
   the input coordinates, thus their API has been greatly simplified and
   their functionality increased.
 
@@ -1271,113 +1271,113 @@ See the end of the file for license conditions.
 
 ** New features
 
-  All programs: `.fit' is now a recognized FITS file suffix.
+  All programs: '.fit' is now a recognized FITS file suffix.
 
   All programs: ASCII text files (tables) created with CRLF line
   terminators (for example text files created in MS Windows) are now also
   readable as input when necessary.
 
-  Arithmetic: now has a new `--globalhdu' (`-g') option which can be used
+  Arithmetic: now has a new '--globalhdu' ('-g') option which can be used
   once for all the input images.
 
-  MakeNoise: with the new `--sigma' (`-s') option, it is now possible to
+  MakeNoise: with the new '--sigma' ('-s') option, it is now possible to
   directly request the noise sigma or standard deviation. When this option
-  is called, the `--background', `--zeropoint' and other option values will
+  is called, the '--background', '--zeropoint' and other option values will
   be ignored.
 
-  MakeProfiles: the new `--kernel' option can make a kernel image without
+  MakeProfiles: the new '--kernel' option can make a kernel image without
   the need to define a catalog. With this option, a catalog (or
   accompanying background image) must not be given.
 
-  MakeProfiles: the new `--pc', `--cunit' and `--ctype' options can be used
+  MakeProfiles: the new '--pc', '--cunit' and '--ctype' options can be used
   to specify the PC matrix, CUNIT and CTYPE world coordinate system
   keywords of the output FITS file.
 
-  MakeProfiles: the new `distance' profile will save the radial distance of
+  MakeProfiles: the new 'distance' profile will save the radial distance of
   each pixel. This may be used to define your own profiles that are not
   currently supported in MakeProfiles.
 
-  MakeProfiles: with the new `--mcolisbrightness' ("mcol-is-brightness")
-  option, the `--mcol' values of the catalog will be interpretted as total
+  MakeProfiles: with the new '--mcolisbrightness' ("mcol-is-brightness")
+  option, the '--mcol' values of the catalog will be interpretted as total
   brightness (sum of pixel values), not magnitude.
 
-  NoiseChisel: with the new `--dilatengb' option, it is now possible to
+  NoiseChisel: with the new '--dilatengb' option, it is now possible to
   identify the connectivity of the final dilation.
 
   Library: Functions that read data from an ASCII text file
-  (`gal_txt_table_info', `gal_txt_table_read', `gal_txt_image_read') now
+  ('gal_txt_table_info', 'gal_txt_table_read', 'gal_txt_image_read') now
   also operate on files with CRLF line terminators.
 
 ** Removed features
 
 ** Changed features
 
-  Crop: The new `--center' option is now used to define the center of a
-  single crop. Hence the old `--ra', `--dec', `--xc', `--yc' have been
+  Crop: The new '--center' option is now used to define the center of a
+  single crop. Hence the old '--ra', '--dec', '--xc', '--yc' have been
   removed. This new option can take multiple values (one value for each
   dimension). Fractions are also acceptable.
 
-  Crop: The new `--width' option is now used to define the width of a
-  single crop. Hence the old `--iwidth', `--wwidth' were removed. The units
-  to interpret the value to the option are specified by the `--mode'
-  option. With the new `--width' option it is also possible to define a
+  Crop: The new '--width' option is now used to define the width of a
+  single crop. Hence the old '--iwidth', '--wwidth' were removed. The units
+  to interpret the value to the option are specified by the '--mode'
+  option. With the new '--width' option it is also possible to define a
   non-square crop (different widths along each dimension). In WCS mode, its
   units are no longer arcseconds but are the same units of the WCS (degrees
-  for angles). `--width' can also accept fractions. So to set a width of 5
-  arcseconds, you can give it a value of `5/3600' for the angular
+  for angles). '--width' can also accept fractions. So to set a width of 5
+  arcseconds, you can give it a value of '5/3600' for the angular
   dimensions.
 
-  Crop: The new `--coordcol' option is now used to determine the catalog
-  columns that define coordinates. Hence the old `--racol', `--deccol',
-  `--xcol', and `--ycol' have been removed. This new option can be called
+  Crop: The new '--coordcol' option is now used to determine the catalog
+  columns that define coordinates. Hence the old '--racol', '--deccol',
+  '--xcol', and '--ycol' have been removed. This new option can be called
   multiple times and the order of its calling will be used for the column
   containing the center in the respective dimension (in FITS format).
 
-  MakeNoise: the old `--stdadd' (`-s') option has been renamed to
-  `--instrumental' (`-i') to be more clear.
+  MakeNoise: the old '--stdadd' ('-s') option has been renamed to
+  '--instrumental' ('-i') to be more clear.
 
-  MakeProfiles: The new `--naxis' and `--shift' options can take multiple
+  MakeProfiles: The new '--naxis' and '--shift' options can take multiple
   values for each dimension (separated by a comma). This replaces the old
-  `--naxis1', `--naxis2' and `--xshift' and `--yshift' options.
+  '--naxis1', '--naxis2' and '--xshift' and '--yshift' options.
 
-  MakeProfiles: The new `--ccol' option can take the center coordinate
-  columns of the catalog (in multiple calls) and the new `--mode' option is
+  MakeProfiles: The new '--ccol' option can take the center coordinate
+  columns of the catalog (in multiple calls) and the new '--mode' option is
   used to identify what standard to interpret them in (image or
-  WCS). Together, these replace the old `--xcol', `--ycol', `--racol' and
-  `--deccol'.
+  WCS). Together, these replace the old '--xcol', '--ycol', '--racol' and
+  '--deccol'.
 
-  MakeProfiles: The new `--crpix', `--crval' and `--cdelt' options now
+  MakeProfiles: The new '--crpix', '--crval' and '--cdelt' options now
   accept multiple values separated by a comma. So they replace the old
-  `--crpix1', `--crpix2', `--crval1', `--crval2' and `--resolution'
+  '--crpix1', '--crpix2', '--crval1', '--crval2' and '--resolution'
   options.
 
-  `gal_data_free_contents': when the input `gal_data_t' is a tile, its
-  `array' element will not be freed. This enables safe usage of this
-  function (and thus `gal_data_free') on tiles without worrying about the
+  'gal_data_free_contents': when the input 'gal_data_t' is a tile, its
+  'array' element will not be freed. This enables safe usage of this
+  function (and thus 'gal_data_free') on tiles without worrying about the
   memory block associated with the tile.
 
-  `gal_box_bound_ellipse' is the new name for the old
-  `gal_box_ellipse_in_box' (to be more clear and avoid repetition of the
-  term `box'). The input position angle is now also in degrees, not
+  'gal_box_bound_ellipse' is the new name for the old
+  'gal_box_ellipse_in_box' (to be more clear and avoid repetition of the
+  term 'box'). The input position angle is now also in degrees, not
   radians.
 
-  `gal_box_overlap' now works on data of any dimensionality and thus also
+  'gal_box_overlap' now works on data of any dimensionality and thus also
   needs the number of dimensions (elements in each input array).
 
-  `gal_box_border_from_center' now accepts an array of coordinates as one
+  'gal_box_border_from_center' now accepts an array of coordinates as one
   argument and the number of dimensions as another. This allows it to work
   on any dimensionality.
 
-  `gal_fits_img_info' now also returns the name and units of the dataset
+  'gal_fits_img_info' now also returns the name and units of the dataset
   (if they aren't NULL). So it takes two extra arguments.
 
-  `gal_wcs_pixel_scale' now replaces the old `gal_wcs_pixel_scale_deg',
+  'gal_wcs_pixel_scale' now replaces the old 'gal_wcs_pixel_scale_deg',
   since it doesn't only apply to degrees. The pixel scale units are defined
   by the units of the WCS.
 
-  `GAL_TILE_PARSE_OPERATE' (only when `OTHER' is given) can now parse and
+  'GAL_TILE_PARSE_OPERATE' (only when 'OTHER' is given) can now parse and
   operate on different datasets independent of the size of allocated block
-  of memory (the tile sizes of `IN' and `OTHER' have to be identical, but
+  of memory (the tile sizes of 'IN' and 'OTHER' have to be identical, but
   not their allocated blocks of memory). Until now, it was necessary for
   the two blocks to have the same size and this is no longer the case.
 
@@ -1411,7 +1411,7 @@ See the end of the file for license conditions.
 * Noteworthy changes in release 0.3 (library 1.0.0) (2017-06-01) [stable]
 
   This is a full re-write of Gnuastro. Most importantly, Gnuastro now has a
-  new generic data container (`gal_data_t'). This new container can now
+  new generic data container ('gal_data_t'). This new container can now
   deal natively with all standard numeric data types, work in RAM or
   HDD/SSD, keep data in any dimensions and has enabled many other very
   useful features. Some of the most prominent of the new features are
@@ -1421,9 +1421,9 @@ See the end of the file for license conditions.
 
   As discussed below, some program names have changed, if you have a
   previous version of Gnuastro installed from source, it is recommended to
-  uninstall it first (with `make uninstall' using the corresponding
+  uninstall it first (with 'make uninstall' using the corresponding
   tarball), then install this new version. Building Gnuastro can be slow,
-  so please build in parallel with Make's `-j8' option (to build on 8
+  so please build in parallel with Make's '-j8' option (to build on 8
   threads).
 
 ** New programs or library features
@@ -1435,10 +1435,10 @@ See the end of the file for license conditions.
   functions are shown below, also see the "Library demos" section of the
   book for some complete working example:
 
-     -- `gal_table_read' and `gal_table_write' will read and write data to
+     -- 'gal_table_read' and 'gal_table_write' will read and write data to
         plain text, FITS ASCII and FITS Binary formats.
 
-     -- `gal_fits_img_read' and `gal_fits_img_write' can read a FITS image
+     -- 'gal_fits_img_read' and 'gal_fits_img_write' can read a FITS image
         to memory or write a FITS image from memory.
 
   Gnuastro now defines a simple comment line format to keep basic
@@ -1457,24 +1457,24 @@ See the end of the file for license conditions.
   in a FITS file along with basic information. It can copy a whole HDU to
   another file, or delete a HDU from a FITS file. To get the previous
   behavior of listing all the keywords in a FITS HDU, you can run it with
-  the `-p' option.
+  the '-p' option.
 
   All programs now write data into the second HDU of a FITS file to allow a
   clean first HDU. Note that following CFITSIO, HDU counting still starts
   from zero, so FITS images and tables written by Gnuastro in a new file
-  can always be accessed with the `--hdu=1' option (which is now the
+  can always be accessed with the '--hdu=1' option (which is now the
   default).
 
   If any program is run within a Git version controlled directory, a
-  `COMMIT' header keyword will be added to the created FITS files, see the
+  'COMMIT' header keyword will be added to the created FITS files, see the
   "Output headers" section of the book for a discussion on the usefulness
   of this new feature.
 
   BuildProgram: a new program to easily compile, link and run a C program
   you have written with Gnuastro's libraries without having to worry about
   which libraries (Gnuastro dependencies) your program needs. Debugging
-  (`-g'), optimizations (`-O'), warnings (`-W'), include search path
-  (`-I'), link search path (`-L'), and linked libraries (`-l') compiler
+  ('-g'), optimizations ('-O'), warnings ('-W'), include search path
+  ('-I'), link search path ('-L'), and linked libraries ('-l') compiler
   options are also supported. BuildProgram will greatly facilitate the easy
   usage of Gnuastro's libraries.
 
@@ -1494,7 +1494,7 @@ See the end of the file for license conditions.
 
   All Gnuastro programs that read and write tables can now do so in plain
   text table format or in FITS ASCII or FITS Binary tables. Depending on
-  the filename or with the new `--tableformat' common option to all
+  the filename or with the new '--tableformat' common option to all
   programs.
 
   The option management system in all Gnuastro programs has been completely
@@ -1502,18 +1502,18 @@ See the end of the file for license conditions.
   listed below. For developers, you will notice that there is no more usage
   of macros and adding new options has become much more easier.
 
-     -- All programs will now also look for a `gnuastro.conf' configuration
+     -- All programs will now also look for a 'gnuastro.conf' configuration
         file to keep common options for all programs in every directory.
 
-     -- The `--lastconfig' option can be used on the command-line or in any
+     -- The '--lastconfig' option can be used on the command-line or in any
         configuration file to stop parsing any further configuration files.
 
-     -- The `--config' option can now be used to identify any arbitrary
+     -- The '--config' option can now be used to identify any arbitrary
         file to be parsed as a configuration file. Any file that is given
         to this option is parsed immediately.
 
-     -- The `--printparams' option now also prints the short documentation
-        of each option (same description in `--help') after its value.
+     -- The '--printparams' option now also prints the short documentation
+        of each option (same description in '--help') after its value.
 
   It is now possible to choose columns in tables based on column names as
   well as column numbers. It is also possible to search for columns based
@@ -1521,22 +1521,22 @@ See the end of the file for license conditions.
   counting now starts from 1 (one), not 0 (as before). See the new
   "Selecting table columns" section for more on these new features.
 
-  Where relevant, all programs now accept a `--type' option that you can
+  Where relevant, all programs now accept a '--type' option that you can
   use to specify the numerical datatype of the output.
 
-  With the new common option `--minmapsize', you can specify a minimum size
+  With the new common option '--minmapsize', you can specify a minimum size
   of an array (in bytes) to store data in SSD/HDD and not in RAM. This can
   be instrumental when you are dealing with large datasets, or even smaller
   ones, but when your RAM is getting full.
 
   Making a log file is now optional and users have to explicitly ask for it
-  with the `--log' option.
+  with the '--log' option.
 
   Slower building of Gnuastro: Binary operators (e.g., plus or multiply)
   are now done in the native type of the input dataset. Doing so for all
   the different combinations of types, greatly slows down the initial
-  compilation of Gnuastro (after running `make'). So for every type there
-  is now a `--enable-bin-op-*' configure time option. When the dataset's
+  compilation of Gnuastro (after running 'make'). So for every type there
+  is now a '--enable-bin-op-*' configure time option. When the dataset's
   type isn't compiled (only for the binary operators), it will be converted
   to a compiled type and then converted back in the end.
 
@@ -1551,9 +1551,9 @@ See the end of the file for license conditions.
   and the modulo operator).
 
   ConvertType: can also print the input dataset to the command-line
-  (`stdout'). To use this feature set the output filename to `stdout'.
+  ('stdout'). To use this feature set the output filename to 'stdout'.
 
-  Convolve now has the `--minsharpspec' option to specify the minimum
+  Convolve now has the '--minsharpspec' option to specify the minimum
   spectrum value to use in deconvolution (matching PSFs).
 
   Crop: when in WCS mode it can still only work on aligned images. However,
@@ -1572,19 +1572,19 @@ See the end of the file for license conditions.
   pixel projected size, fully derived in the book), it now also reports the
   surface brightness in magnitudes/arcsec^2 also.
 
-  MakeProfiles: Profile codes now start from `1' (until now they started
-  from `0').
+  MakeProfiles: Profile codes now start from '1' (until now they started
+  from '0').
 
   MakeProfiles: now accepts the radial function of profiles as
   human-readable strings instead of a code for each profile (which was very
   cryptic, although codes are also still acceptable). For example in the
-  profile column you can now write `sersic' instead of the code `1'.
+  profile column you can now write 'sersic' instead of the code '1'.
 
-  NoiseChisel: the new `--cleandilated' option will remove dilated objects
+  NoiseChisel: the new '--cleandilated' option will remove dilated objects
   that have a low S/N (it is mainly useful on very clean or mock images).
   For non-clean noise, it will result in a decrease of completeness. With
   this new option, NoiseChisel will also print detection S/N values when
-  run with the `--checkdetsn' option.
+  run with the '--checkdetsn' option.
 
   Statistics: now reads table columns as well as images and does basic
   operations on them. It can also only work on a certain range of the data
@@ -1598,17 +1598,17 @@ See the end of the file for license conditions.
   mode's quantile similar to what NoiseChisel does to find its initial
   threshold.
 
-  Statistics: has several new single valued calculations: `--quantile',
-  `--quantfunc' (quantile function), `--mode', `--modequant', `--modesym',
-  and `--modesymvalue'.
+  Statistics: has several new single valued calculations: '--quantile',
+  '--quantfunc' (quantile function), '--mode', '--modequant', '--modesym',
+  and '--modesymvalue'.
 
-  Warp: align the image with the celestial coordinates using the `--align'
+  Warp: align the image with the celestial coordinates using the '--align'
   option.
 
   Warp: standard modular warpings can now be requested without an input
-  matrix, using the following options: `--shear', `--flip', `--project',
-  `--rotate', `--scale', `--translate'. Any number of these transformations
-  (along with the `--align' option) can be called on the command-line and
+  matrix, using the following options: '--shear', '--flip', '--project',
+  '--rotate', '--scale', '--translate'. Any number of these transformations
+  (along with the '--align' option) can be called on the command-line and
   they will be applied in the same order to create one warping matrix. By
   default the WCS will also be corrected.
 
@@ -1616,49 +1616,49 @@ See the end of the file for license conditions.
 
   Mask image options have been removed from all programs. Instead, all
   programs can work directly on data with blank values. So when some pixels
-  must be masked, the Arithmetic program's `where' operator can be used to
+  must be masked, the Arithmetic program's 'where' operator can be used to
   select special pixels and set them to blank. In particular bit-wise
   operations are now available in Arithmetic to use bit-mask
   images. Managing all these different choices in every program would only
   confuse the user (with too many options).
 
-  Arithmetic: the `x' letter is now used to represent the multiplication
-  operator. Previously it was `*' which needed quotation and was thus very
+  Arithmetic: the 'x' letter is now used to represent the multiplication
+  operator. Previously it was '*' which needed quotation and was thus very
   inconvenient.
 
-  Convolve: the old `--frequency' and `--spatial' options have been removed
-  and are replaced by `--domain' which accepts values of `frequency' and
-  `spatial'.
+  Convolve: the old '--frequency' and '--spatial' options have been removed
+  and are replaced by '--domain' which accepts values of 'frequency' and
+  'spatial'.
 
-  Convolve: the old `--viewfreqsteps' was changed to `--checkfreqsteps' to
+  Convolve: the old '--viewfreqsteps' was changed to '--checkfreqsteps' to
   fit with the general style of such check images in all Gnuastro's
   programs.
 
-  Crop: `--section' syntax is now inclusive in both bounds.
+  Crop: '--section' syntax is now inclusive in both bounds.
 
   Crop: only checks if the center of a crop is filled when the crop was
-  defined by its center (for example with `--ra' and `--dec'). The verbose
+  defined by its center (for example with '--ra' and '--dec'). The verbose
   outputs of Crop are also not cryptic 0s or 1s. The are human readable
   text.
 
-  Crop: doesn't have separate `--imgmode' and `--wcsmode' options any
-  more. There is now a single `--mode' option which accepts values of `img'
-  or `wcs'.
+  Crop: doesn't have separate '--imgmode' and '--wcsmode' options any
+  more. There is now a single '--mode' option which accepts values of 'img'
+  or 'wcs'.
 
-  MakeProfiles: the old `--inputascanvas' is now called `--clearcanvas'.
+  MakeProfiles: the old '--inputascanvas' is now called '--clearcanvas'.
 
   MakeProfiles: until now, it would abort with an error when the input
   columns had blank values. But for masking, it might happen that you set a
   blank magnitude. So this check has now been removed when reading the
   magnitude column.
 
-  NoiseChisel: default value of the `--minskyfrac' option (new name for the
-  old `--minbfrac') is now 0.7 as opposed to 0.5. This will allow much
+  NoiseChisel: default value of the '--minskyfrac' option (new name for the
+  old '--minbfrac') is now 0.7 as opposed to 0.5. This will allow much
   better estimation of noise properties (by default). It may be slightly
   too high for a crowded field, but the users can change it on the
   command-line (or in a configuration file) for such datasets.
 
-  NoiseChisel: when it is run with any of the `--check' options, it will
+  NoiseChisel: when it is run with any of the '--check' options, it will
   abort after all the check images have been created. This is very useful
   for checking your parameters until each step and not be distracted (or
   have to wait) for later steps to finish.
@@ -1667,35 +1667,35 @@ See the end of the file for license conditions.
   calculate sigma-clipped results by default (with no options). It will
   just print some basic information.
 
-  Table: Previously, if a column was requested, the `-i' option would be
+  Table: Previously, if a column was requested, the '-i' option would be
   ignored. But it often happens that the users forget a column name after
   already typing several of their desired columns. So the opposite behavior
   is preferred. Because when more than a couple of columns are needed, you
   will probably forget the column identifiers of the last few and having to
-  retype everything is very frustrating. Something like how `--help' takes
+  retype everything is very frustrating. Something like how '--help' takes
   precedence over all other options.
 
   Table: to select column(s) by regular expression searching, the name now
-  has to be put in `/ /' (similar to AWK). If a value isn't in `/ /', the
+  has to be put in '/ /' (similar to AWK). If a value isn't in '/ /', the
   programs will only select a column with the exact match.
 
   Warp: when a 2 by 2 matrix is given, the FITS pixel positions (which
   define the center of a pixel as an integer) are automatically implemented
   internally, see "Invoking Warp" in the manual for more.
 
-  Warp: the old `--nofitscorrect' option has been changed to
-  `--centeroncorner' to be more clear. The new option is now more general
+  Warp: the old '--nofitscorrect' option has been changed to
+  '--centeroncorner' to be more clear. The new option is now more general
   than before and also works on warping with a matrix, not just on modular
   warpings.
 
-  Warp: the old `--nowcscorrection' option has been given a more clear name
-  of `--keepwcs'. With this option, Warp will not apply the warp the
+  Warp: the old '--nowcscorrection' option has been given a more clear name
+  of '--keepwcs'. With this option, Warp will not apply the warp the
   input's WCS structure.
 
-  Warp: the old `--maxblankfrac' option has been changed to
-  `--coveredfrac'. Until now, Warp would only look for the fraction of
+  Warp: the old '--maxblankfrac' option has been changed to
+  '--coveredfrac'. Until now, Warp would only look for the fraction of
   input blank/NaN pixel area over the output pixel. But this would be
-  useless on the edges of the image. So the new `--coveredfrac' option
+  useless on the edges of the image. So the new '--coveredfrac' option
   takes the acceptable fraction of output pixel area that must be covered
   by input pixels in order to give that output pixel a value. You can use
   this to set edge pixels that are not fully covered in the new grid to
@@ -1703,7 +1703,7 @@ See the end of the file for license conditions.
 
 ** Bugs fixed
 
-  Using `%zu' to print `size_t' variables for clean build on 32-bit
+  Using '%zu' to print 'size_t' variables for clean build on 32-bit
   systems.
 
   Crash in Table for some operating systems due to memory is now fixed (bug
@@ -1756,12 +1756,12 @@ See the end of the file for license conditions.
 
   Shared libraries and headers are now installed. The libraries can be used
   in C and C++ programs. This release includes the following headers:
-  `gnuastro.h', `array.h', `box.h', `fits.h', `linkedlist.h', `mesh.h',
-  `polygon.h', `qsort.h', `spatialconvolve.h', `statistics.h', `threads.h',
-  `wcs.h', `txtarray.h' (task #13765).
+  'gnuastro.h', 'array.h', 'box.h', 'fits.h', 'linkedlist.h', 'mesh.h',
+  'polygon.h', 'qsort.h', 'spatialconvolve.h', 'statistics.h', 'threads.h',
+  'wcs.h', 'txtarray.h' (task #13765).
 
   Gnuastro now comes with a script in its top source directory
-  (`tmpfs-config-make') to configure and build it in the tmpfs (on the
+  ('tmpfs-config-make') to configure and build it in the tmpfs (on the
   RAM), for those systems that have it. See the new "Configure and build in
   RAM" section in the book for more (task #14100).
 
@@ -1770,27 +1770,27 @@ See the end of the file for license conditions.
   MakeProfiles also accepts WCS positions (task #13566).
 
   Flat profiles in MakeProfiles can be given a profile specific value. The
-  new `--mforflatpix' option MakeProfile will use the value in the
+  new '--mforflatpix' option MakeProfile will use the value in the
   magnitude column as a fixed value for each pixel. This can be very useful
   in defining a mask, or creating segmentation maps or labeled images (task
   #14115).
 
   MakeProfiles can now use input image as canvas. Instead of specifying the
-  WSC and image size parameters manually. With the new `--inputascanvas'
+  WSC and image size parameters manually. With the new '--inputascanvas'
   option, MakeProfiles will get this information (along with blank pixels)
   from an already existing image (task #14116).
 
   Type of output in MakeProfiles and Arithmetic can be specified with the
-  `--type' option.
+  '--type' option.
 
-  Magnitude error column in MakeCatalog with the `--magnitudeerr' option.
+  Magnitude error column in MakeCatalog with the '--magnitudeerr' option.
 
   Arithmetic now has new conditional (task #13870) and logical operators
   (task #14153) along with an operator for actions only when conditions are
-  true: `where'. The new `isblank' operator will also enable you to select
+  true: 'where'. The new 'isblank' operator will also enable you to select
   blank, or masked, pixels (task #14146).
 
-  The `--noerodequant' in NoiseChisel enables it to detect small and
+  The '--noerodequant' in NoiseChisel enables it to detect small and
   sharper profiles by disabling erosion on pixels above a certain quantile
   (task #14139).
 
@@ -1803,10 +1803,10 @@ See the end of the file for license conditions.
 
 ** Changes in behavior
 
-  The two MakeProfiles options `--setconsttonan', `--setconsttomin' have
-  been removed (see `--mforflatpix' above for their alternative).
+  The two MakeProfiles options '--setconsttonan', '--setconsttomin' have
+  been removed (see '--mforflatpix' above for their alternative).
 
-  MakeCatalog makes clump catalog only when asked (when the `WCLUMPS'
+  MakeCatalog makes clump catalog only when asked (when the 'WCLUMPS'
   header exists in the objects HDU). This can be very useful in cases like
   aperture photometry, when the object labels are not generated by
   NoiseChisel and so a clump image doesn't exist (task #14122).
@@ -1814,7 +1814,7 @@ See the end of the file for license conditions.
   Default cosmological parameters in CosmicCalculator set to Plank 2015
   results: A&A (2016), 594, A13 (arXiv 1502.01589).
 
-  The `--envseed' option (to read random number generator type and seed
+  The '--envseed' option (to read random number generator type and seed
   from the environment) to MakeProfiles and MakeNoise can also be given in
   the configuration files.
 
@@ -1829,24 +1829,24 @@ See the end of the file for license conditions.
   MakeCatalog's problem in checking the sizes of all input images is now
   fixed.
 
-  NoiseChisel's problem with reading the `--kernel' option is now
+  NoiseChisel's problem with reading the '--kernel' option is now
   corrected (bug #46750).
 
   lib/mesh.c's problem in correctly calculating the mesh sizes was
   corrected (bug #47611).
 
-  `make check' will not look into system utility configuration files. In
+  'make check' will not look into system utility configuration files. In
   the previous release, if Gnuastro was already installed, the
   configuration files already present on the system would also be read. Now
   only configuration files in the tested package are used (bug #47833).
 
   Ghostscript's version is now checked at configure time after its
-  existence. ConvertType uses the `-dPDFFitPage' option to Ghostscript
+  existence. ConvertType uses the '-dPDFFitPage' option to Ghostscript
   which was introduced in version 9.10, so older versions would pass
-  configure but at `make check' time, the PDF test would fail. Now this
+  configure but at 'make check' time, the PDF test would fail. Now this
   test is skipped (bug #47868).
 
-  Most tests would fail when `make check -jN' was run (to do the checks on
+  Most tests would fail when 'make check -jN' was run (to do the checks on
   N threads). A dependency structure has now been defined to fix this
   problem and greatly speed up the testing process (bug #47957).
 
@@ -1865,32 +1865,32 @@ See the end of the file for license conditions.
 
 ** New features
 
-  All the utilities that would produce a log file now have a `--nolog'
+  All the utilities that would produce a log file now have a '--nolog'
   option to avoid printing a log file.
 
-  The tiled image compression convention (.fits.fz, created with `fpack')
+  The tiled image compression convention (.fits.fz, created with 'fpack')
   files can now be used as input in the utilities.
 
   ImageCrop can now also crop a polygon from the input image. The polygon
   vertices can be given in the world or image coordinates. The simple
-  `--polygon' option will keep the insides of the polygon while the
-  `--outpolygon' will keep the outside of the polygon.
+  '--polygon' option will keep the insides of the polygon while the
+  '--outpolygon' will keep the outside of the polygon.
 
   ImageCrop and ImageWarp can now read the WCS information of a FITS header
-  from a specific region with the `--hstartwcs' and `--hendwcs'. In some
+  from a specific region with the '--hstartwcs' and '--hendwcs'. In some
   older FITS images, when the WCS distortions were not as standardized as
   now, there were cases which would confuse WCSLIB.
 
   NoiseChisel can now save the grown clumps image instead of the original
-  clumps image in the output with the `--grownclumps' option.
+  clumps image in the output with the '--grownclumps' option.
 
-  Convolve can now do deconvolution with the `--makekernel' option.
+  Convolve can now do deconvolution with the '--makekernel' option.
 
-  MakeProfiles now has a `--setconsttonan' option which will fill the
+  MakeProfiles now has a '--setconsttonan' option which will fill the
   constant profiles with a NaN (blank) value, not a number, allowing the
   creations of elliptical masked regions for example.
 
-  Header can now import a keyword directly from a string with the `--asis'
+  Header can now import a keyword directly from a string with the '--asis'
   option.
 
   MakeCatalog can now output the geometric (average position independent of
@@ -1900,11 +1900,11 @@ See the end of the file for license conditions.
   example semi-major axis, semi-minor axis, and position angle). This can
   also be done both in standard flux weighted and geometric methods too.
 
-  MakeCatalog now has a `--threshold' function to only use pixels above a
+  MakeCatalog now has a '--threshold' function to only use pixels above a
   given threshold in each object or clump. This is useful to avoid diffuse
   regions in calculations.
 
-  MakeCatalog now has a `--noriverbrightness' option. With this option it
+  MakeCatalog now has a '--noriverbrightness' option. With this option it
   is possible to calculate the clump flux without subtracting the river
   pixels on its circumference.
 
@@ -1912,7 +1912,7 @@ See the end of the file for license conditions.
   determined at run-time for each program. Therefore it is now easily
   possible to built Gnuastro on one system to use on another (commonly done
   in the GNU/Linux package managers). Therefore ./configure no longer has a
-  `--with-numthreads' option.
+  '--with-numthreads' option.
 
   Every commit in Gnuastro's history (after implementing this feature) can
   now be given a unique version number. Since the version number is printed
@@ -1923,14 +1923,14 @@ See the end of the file for license conditions.
   controlled history. Also all the authors that have contributed to
   Gnuastro are included in the second (copyright) page of the PDF book.
 
-  All the bootstrapped directories are now moved with a new `bootstrapped'
+  All the bootstrapped directories are now moved with a new 'bootstrapped'
   directory in the top source directory. This significantly cleans up this
   directory, allowing users to more easily find the hand-written Gnuastro
   source files they like.
 
-  A `bug-gnuastro' Info page was created so users can easily go to that
+  A 'bug-gnuastro' Info page was created so users can easily go to that
   page for information on how to submit bug reports. It is accessible on
-  the command line with the command `info bug-gnuastro'.
+  the command line with the command 'info bug-gnuastro'.
 
 ** Changes in behavior
 
@@ -1948,8 +1948,8 @@ See the end of the file for license conditions.
   NoiseChisel no longer outputs a sky subtracted image. This job can now be
   done with the new Arithmetic utility.
 
-  NoiseChisel's `--segsnhistnbins' option was renamed to
-  `--clumpsnhistnbins'.
+  NoiseChisel's '--segsnhistnbins' option was renamed to
+  '--clumpsnhistnbins'.
 
 ** Improvements
 
@@ -1962,8 +1962,8 @@ See the end of the file for license conditions.
   were commonly not enough points in large mesh sizes and this would add
   scatter. With ImageCrop's polygon capabilities, it is now easily possible
   to cut out the region that has uniform noise properties (depth and
-  correlated noise). Therefore the old `--checkdetectionsn' and
-  `checkclumpsn' options are no longer present.
+  correlated noise). Therefore the old '--checkdetectionsn' and
+  'checkclumpsn' options are no longer present.
 
   When building from the version controlled source, the whole bootstrapping
   process is done with one script. In the previous version, all the
@@ -1971,7 +1971,7 @@ See the end of the file for license conditions.
   old manual).
 
   All the build steps now report what was done and suggest the next
-  step. This feature can be disabled with the `--disable-guide-message' at
+  step. This feature can be disabled with the '--disable-guide-message' at
   configure time.
 
 
diff --git a/README b/README
index fd590bc..8fb5619 100644
--- a/README
+++ b/README
@@ -102,7 +102,7 @@ categories/chapters.
 The programs listed above are designed to be highly modular and
 generic. For higher-level operations (combining multiple programs, or
 running a program in a special way), Gnuastro also installs Bash scripts
-(all prefixed with `astscript-'). They can be run like a program and behave
+(all prefixed with 'astscript-'). They can be run like a program and behave
 very similarly (with minor differences, as explained in the book).
 
   - astscript-sort-by-night: Given a list of FITS files, and a HDU and
@@ -150,7 +150,7 @@ The optional dependencies are:
 
 See the "Dependencies" section of the book for their detailed installation
 guides and optional dependencies to enable extra features. Prior to
-installation, you can find it in the `doc/gnuastro.texi' file (source of
+installation, you can find it in the 'doc/gnuastro.texi' file (source of
 the book), or on the web:
 
   https://www.gnu.org/software/gnuastro/manual/html_node/Dependencies.html
@@ -171,7 +171,7 @@ the standard GNU Build system as shown below. After the 
'./configure'
 command, Gnuastro will print messages upon the successful completion of
 each step, giving further information and suggestions for the next steps.
 
-    tar xf gnuastro-latest.tar.lz        # Also works for `tar.gz' files
+    tar xf gnuastro-latest.tar.lz        # Also works for 'tar.gz' files
     cd gnuastro-X.X
     ./configure
     make
@@ -194,7 +194,7 @@ To access the appropriate section of the Gnuastro 
book/documentation from
 your command-line (in the middle of your work, without distracting your
 self by having to move your hand off the keyboard), please run any of the
 following two commands. Note that you can leave the Info environment by
-pressing the key `q'.
+pressing the key 'q'.
 
     info ProgramName               # For example 'info NoiseChisel'
     info astprogname               # For example 'info astnoisechisel'
@@ -223,7 +223,7 @@ Reporting bugs
 
 The most effective way to report bugs is explained in the "Report a bug"
 section of the documentation, after installation, you can read it by
-running (leave the Info environment by pressing the `q' key afterwards):
+running (leave the Info environment by pressing the 'q' key afterwards):
 
     info bug-gnuastro
 
diff --git a/README-hacking b/README-hacking
index 8356b2b..f52e4c8 100644
--- a/README-hacking
+++ b/README-hacking
@@ -50,7 +50,7 @@ already present in your operating system's package management 
system.
     the bootstrap script automatically. However, if you don't already have
     them, we recommed to clone them separately as discussed below. They
     should be in the same directory (let's call it 'DEVDIR', can be any
-    directory). These packages are regularly updated, so run `git pull'
+    directory). These packages are regularly updated, so run 'git pull'
     within the cloned directories to keep them up to date before
     bootstrapping. See the "Bootstrapping dependencies" and "Bootstrapping"
     sections of the book for more information.
diff --git a/THANKS b/THANKS
index 3a770c1..28e0700 100644
--- a/THANKS
+++ b/THANKS
@@ -8,7 +8,7 @@ The following people and institutions who contributed to 
Gnuastro
 indirectly (not by actually submitting code) are listed here. For the list
 of Gnuastro code/documentation authors (people who have contributed actual
 code/text as commits in the version controlled history of Gnuastro), please
-see the `AUTHORS' file in the same directory.
+see the 'AUTHORS' file in the same directory.
 
 
 People
@@ -57,6 +57,7 @@ support in Gnuastro. The list is ordered alphabetically (by 
family name).
     Alan Lefor                           address@hidden
     Sebastián Luna Valero                address@hidden
     Guillaume Mahler                     address@hidden
+    Raphael Morales                      address@hidden
     Juan Molina Tobar                    address@hidden
     Francesco Montanari                  address@hidden
     Dmitrii Oparin                       address@hidden
diff --git a/bin/TEMPLATE/Makefile.am b/bin/TEMPLATE/Makefile.am
index cd65d47..4fb8dc1 100644
--- a/bin/TEMPLATE/Makefile.am
+++ b/bin/TEMPLATE/Makefile.am
@@ -31,11 +31,11 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astTEMPLATE
 
-## We are linking with `libgnu' first eventhough `libgnu' is already linked
-## to `libgnuastro'. The reason is that some linkers (Mac OS for example),
+## We are linking with 'libgnu' first eventhough 'libgnu' is already linked
+## to 'libgnuastro'. The reason is that some linkers (Mac OS for example),
 ## don't keep external variables (needed in Argp) after the first link. So
-## the `libgnu' (that is indirectly linked through `libgnuastro') can't see
-## those variables. We thus need to explicitly link with `libgnu' first.
+## the 'libgnu' (that is indirectly linked through 'libgnuastro') can't see
+## those variables. We thus need to explicitly link with 'libgnu' first.
 astTEMPLATE_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                     $(MAYBE_NORPATH)
 
diff --git a/bin/TEMPLATE/astTEMPLATE.conf b/bin/TEMPLATE/astTEMPLATE.conf
index 84ecd8f..ef1ec9f 100644
--- a/bin/TEMPLATE/astTEMPLATE.conf
+++ b/bin/TEMPLATE/astTEMPLATE.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/TEMPLATE/authors-cite.h b/bin/TEMPLATE/authors-cite.h
index 8e58d76..5f522ec 100644
--- a/bin/TEMPLATE/authors-cite.h
+++ b/bin/TEMPLATE/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/TEMPLATE/ui.c b/bin/TEMPLATE/ui.c
index 9048ada..f14f733 100644
--- a/bin/TEMPLATE/ui.c
+++ b/bin/TEMPLATE/ui.c
@@ -143,18 +143,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct TEMPLATEparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -202,7 +202,7 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct TEMPLATEparams *p)
 {
@@ -226,8 +226,8 @@ ui_check_options_and_arguments(struct TEMPLATEparams *p)
       /* If it is FITS, a HDU is also mandatory. */
       if( gal_fits_name_is_fits(p->inputname) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-              "file, a HDU must also be specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+              "file, a HDU must also be specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
     }
   else
@@ -289,9 +289,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
TEMPLATEparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/arithmetic/Makefile.am b/bin/arithmetic/Makefile.am
index 85e12de..272c156 100644
--- a/bin/arithmetic/Makefile.am
+++ b/bin/arithmetic/Makefile.am
@@ -32,7 +32,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astarithmetic
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astarithmetic_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la \
                       -lgnuastro $(MAYBE_NORPATH)
 
diff --git a/bin/arithmetic/args.h b/bin/arithmetic/args.h
index 21a7075..6d7c8bf 100644
--- a/bin/arithmetic/args.h
+++ b/bin/arithmetic/args.h
@@ -33,7 +33,7 @@ struct argp_option program_options[] =
       UI_KEY_GLOBALHDU,
       "STR",
       0,
-      "Use this HDU for all inputs, ignore `--hdu'.",
+      "Use this HDU for all inputs, ignore '--hdu'.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->globalhdu,
       GAL_TYPE_STRING,
diff --git a/bin/arithmetic/arithmetic.c b/bin/arithmetic/arithmetic.c
index 74b7931..316ea6d 100644
--- a/bin/arithmetic/arithmetic.c
+++ b/bin/arithmetic/arithmetic.c
@@ -96,7 +96,7 @@ pop_number_of_operands(struct arithmeticparams *p, int op, 
char *token_string,
          to the list. */
       tmp=operands_pop(p, token_string);
       if(tmp->size>1)
-        error(EXIT_FAILURE, 0, "the %s popped operand of the \"%s\" "
+        error(EXIT_FAILURE, 0, "the %s popped operand of the '%s' "
               "operator must be a single number", cstring, token_string);
       tmp=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
       gal_list_data_add(params, tmp);
@@ -104,7 +104,7 @@ pop_number_of_operands(struct arithmeticparams *p, int op, 
char *token_string,
       /* A small sanity check (none of the parameters for sigma-clipping,
          or quantile estimation can be negative. */
       if( ((float *)(tmp->array))[0]<=0.0 )
-        error(EXIT_FAILURE, 0, "the %s popped operand of the \"%s\" "
+        error(EXIT_FAILURE, 0, "the %s popped operand of the '%s' "
               "operator cannot be negative", cstring, token_string);
 
       /* Increment the counter string. */
@@ -114,7 +114,7 @@ pop_number_of_operands(struct arithmeticparams *p, int op, 
char *token_string,
   /* Check if its a number. */
   numpop=operands_pop(p, token_string);
   if(numpop->size>1)
-    error(EXIT_FAILURE, 0, "the %s popped operand of the \"%s\" "
+    error(EXIT_FAILURE, 0, "the %s popped operand of the '%s' "
           "operator (number of input datasets) must be a number, not an "
           "array", cstring, token_string);
 
@@ -136,7 +136,7 @@ pop_number_of_operands(struct arithmeticparams *p, int op, 
char *token_string,
     /* Floating point numbers are not acceptable in this context. */
     case GAL_TYPE_FLOAT32:
     case GAL_TYPE_FLOAT64:
-      error(EXIT_FAILURE, 0, "the %s popped operand of the \"%s\" "
+      error(EXIT_FAILURE, 0, "the %s popped operand of the '%s' "
             "operator (number of input datasets) must be an integer type",
             cstring, token_string);
 
@@ -147,7 +147,7 @@ pop_number_of_operands(struct arithmeticparams *p, int op, 
char *token_string,
 
   /* If control reaches here, then the number must have been a negative
      value, so print an error. */
-  error(EXIT_FAILURE, 0, "the %s popped operand of the \"%s\" operator "
+  error(EXIT_FAILURE, 0, "the %s popped operand of the '%s' operator "
         "cannot be zero or a negative number", cstring,
         token_string);
   return 0;
@@ -222,7 +222,7 @@ arithmetic_filter(void *in_prm)
   /* Go over all the pixels that were assigned to this thread. */
   for(i=0; tprm->indexs[i] != GAL_BLANK_SIZE_T; ++i)
     {
-      /* For easy reading, put the index in `ind'. */
+      /* For easy reading, put the index in 'ind'. */
       ind=tprm->indexs[i];
 
       /* Get the coordinate of the pixel. */
@@ -292,7 +292,7 @@ arithmetic_filter(void *in_prm)
             case ARITHMETIC_OP_FILTER_SIGCLIP_MEDIAN: sind = 1; break;
             default:
               error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at "
-                    "%s to fix the problem. The `afp->operator' value "
+                    "%s to fix the problem. The 'afp->operator' value "
                     "%d is not recognized as sigma-clipped median or "
                     "mean", __func__, PACKAGE_BUGREPORT, afp->operator);
             }
@@ -310,7 +310,7 @@ arithmetic_filter(void *in_prm)
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s "
-                "to fix the problem. `afp->operator' code %d is not "
+                "to fix the problem. 'afp->operator' code %d is not "
                 "recognized", PACKAGE_BUGREPORT, __func__,
                 afp->operator);
         }
@@ -497,7 +497,7 @@ wrapper_for_filter(struct arithmeticparams *p, char *token, 
int operator)
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to fix "
-                "the problem. The `operator' code %d is not recognized",
+                "the problem. The 'operator' code %d is not recognized",
                 PACKAGE_BUGREPORT, __func__, operator);
         }
 
@@ -553,13 +553,13 @@ arithmetic_binary_sanity_checks(gal_data_t *in, 
gal_data_t *conn,
 {
   int conn_int;
 
-  /* Do proper sanity checks on `conn'. */
+  /* Do proper sanity checks on 'conn'. */
   if(conn->size!=1)
-    error(EXIT_FAILURE, 0, "the first popped operand to `%s' must be a "
+    error(EXIT_FAILURE, 0, "the first popped operand to '%s' must be a "
           "single number. However, it has %zu elements", operator,
           conn->size);
   if(conn->type==GAL_TYPE_FLOAT32 || conn->type==GAL_TYPE_FLOAT64)
-    error(EXIT_FAILURE, 0, "the first popped operand to `%s' is the "
+    error(EXIT_FAILURE, 0, "the first popped operand to '%s' is the "
           "connectivity (a value between 1 and the number of dimensions) "
           "therefore, it must NOT be a floating point", operator);
 
@@ -568,18 +568,18 @@ arithmetic_binary_sanity_checks(gal_data_t *in, 
gal_data_t *conn,
   conn=gal_data_copy_to_new_type_free(conn, GAL_TYPE_INT32);
   conn_int = *((int32_t *)(conn->array));
   if(conn_int>in->ndim)
-    error(EXIT_FAILURE, 0, "the first popped operand of `%s' (%d) is "
+    error(EXIT_FAILURE, 0, "the first popped operand of '%s' (%d) is "
           "larger than the number of dimensions in the second-popped "
           "operand (%zu)", operator, conn_int, in->ndim);
 
   /* Make sure the array has an unsigned 8-bit type. */
   if(in->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "the second popped operand of `%s' doesn't "
+    error(EXIT_FAILURE, 0, "the second popped operand of '%s' doesn't "
           "have an 8-bit unsigned integer type. It must be a binary "
           "dataset (only being equal to zero is checked). You can use "
-          "the `uint8' operator for type conversion", operator);
+          "the 'uint8' operator for type conversion", operator);
 
-  /* Clean up and return the integer value of `conn'. */
+  /* Clean up and return the integer value of 'conn'. */
   gal_data_free(conn);
   return conn_int;
 }
@@ -638,7 +638,7 @@ arithmetic_connected_components(struct arithmeticparams *p, 
char *token)
   /* Push the result onto the stack. */
   operands_add(p, NULL, out);
 
-  /* Clean up (`conn' was freed in the sanity check). */
+  /* Clean up ('conn' was freed in the sanity check). */
   gal_data_free(in);
 }
 
@@ -687,10 +687,10 @@ arithmetic_invert(struct arithmeticparams *p, char *token)
     case GAL_TYPE_UINT32: do *u32 = UINT32_MAX-*u32; while(++u32<u32f); break;
     case GAL_TYPE_UINT64: do *u64 = UINT64_MAX-*u64; while(++u64<u64f); break;
     default:
-      error(EXIT_FAILURE, 0, "`invert' operand has %s type. `invert' can "
+      error(EXIT_FAILURE, 0, "'invert' operand has %s type. 'invert' can "
             "only take unsigned integer types.\n\nYou can use any of the "
-            "`uint8', `uint16', `uint32', or `uint64' operators to chage "
-            "the type before calling `invert'",
+            "'uint8', 'uint16', 'uint32', or 'uint64' operators to chage "
+            "the type before calling 'invert'",
             gal_type_name(in->type, 1));
     }
 
@@ -714,17 +714,17 @@ arithmetic_interpolate(struct arithmeticparams *p, char 
*token)
   /* Then pop the actual dataset to interpolate. */
   gal_data_t *in = operands_pop(p, token);
 
-  /* Do proper sanity checks on `num'. */
+  /* Do proper sanity checks on 'num'. */
   if(num->size!=1)
     error(EXIT_FAILURE, 0, "the first popped operand to "
-          "`interpolate-medianngb' must be a single number. However, "
+          "'interpolate-medianngb' must be a single number. However, "
           "it has %zu elements", num->size);
   if(num->type==GAL_TYPE_FLOAT32 || num->type==GAL_TYPE_FLOAT64)
     error(EXIT_FAILURE, 0, "the first popped operand to "
-          "`interpolate-medianngb' is the number of nearby neighbors (a "
+          "'interpolate-medianngb' is the number of nearby neighbors (a "
           "counter, an integer). It must NOT be a floating point.\n\n"
           "If its already an integer, but in a floating point container, "
-          "you can use the `int32' operator to convert it to a 32-bit "
+          "you can use the 'int32' operator to convert it to a 32-bit "
           "integer for example");
 
   /* Convert the given number to a 32-bit integer and read it in. */
@@ -761,28 +761,28 @@ arithmetic_collapse(struct arithmeticparams *p, char 
*token, int operator)
 
   /* Small sanity check. */
   if( dimension->ndim!=1 || dimension->size!=1)
-    error(EXIT_FAILURE, 0, "first popped operand of `collapse-*' operators "
+    error(EXIT_FAILURE, 0, "first popped operand of 'collapse-*' operators "
           "(dimension to collapse) must be a single number (single-element, "
           "one-dimensional dataset). But it has %zu dimension(s) and %zu "
           "element(s).", dimension->ndim, dimension->size);
   if(dimension->type==GAL_TYPE_FLOAT32 || dimension->type==GAL_TYPE_FLOAT64)
-    error(EXIT_FAILURE, 0, "first popped operand of `collapse-*' operators "
+    error(EXIT_FAILURE, 0, "first popped operand of 'collapse-*' operators "
           "(dimension to collapse) must have an integer type, but it has "
-          "a floating point type (`%s')", gal_type_name(dimension->type,1));
+          "a floating point type ('%s')", gal_type_name(dimension->type,1));
   dimension=gal_data_copy_to_new_type_free(dimension, GAL_TYPE_LONG);
   dim=((long *)(dimension->array))[0];
   if(dim<0 || dim==0)
-    error(EXIT_FAILURE, 0, "first popped operand of `collapse-*' operators "
+    error(EXIT_FAILURE, 0, "first popped operand of 'collapse-*' operators "
           "(dimension to collapse) must be positive (larger than zero), it "
           "is %ld", dim);
   if(dim > input->ndim)
-    error(EXIT_FAILURE, 0, "input dataset to `%s' has %zu dimension(s), "
+    error(EXIT_FAILURE, 0, "input dataset to '%s' has %zu dimension(s), "
           "but you have asked to collapse along dimension %zu", token,
           input->ndim, dim);
 
 
   /* If a WCS structure has been read, we'll need to pass it to
-     `gal_dimension_collapse', so it modifies it respectively. */
+     'gal_dimension_collapse', so it modifies it respectively. */
   if(p->wcs_collapsed==0)
     {
       p->wcs_collapsed=1;
@@ -821,9 +821,9 @@ arithmetic_collapse(struct arithmeticparams *p, char 
*token, int operator)
 
 
   /* If a WCS structure existed, a modified WCS is now present in
-     `collapsed->wcs'. So we'll let the freeing of `input' free the old
-     `p->refdata.wcs' structure and we'll put the new one there, then we'll
-     set `collapsed->wcs' to `NULL', so the new one isn't freed. */
+     'collapsed->wcs'. So we'll let the freeing of 'input' free the old
+     'p->refdata.wcs' structure and we'll put the new one there, then we'll
+     set 'collapsed->wcs' to 'NULL', so the new one isn't freed. */
   if(collapsed->wcs)
     {
       p->refdata.wcs = collapsed->wcs;
@@ -832,9 +832,9 @@ arithmetic_collapse(struct arithmeticparams *p, char 
*token, int operator)
 
 
   /* We'll also need to correct the size of the reference dataset if it
-     hasn't been corrected yet. We'll use `memcpy' to write the new `dsize'
+     hasn't been corrected yet. We'll use 'memcpy' to write the new 'dsize'
      values into the old ones. The dimensions have decreased, so we won't
-     be writing outside of allocated space that `p->refdata.dsize' points
+     be writing outside of allocated space that 'p->refdata.dsize' points
      to. */
   if( p->refdata.ndim != collapsed->ndim )
     {
@@ -906,10 +906,10 @@ arithmetic_add_dimension(struct arithmeticparams *p, char 
*token, int operator)
 
   /* Make sure the first operand is a number. */
   if(tmp->size!=1)
-    error(EXIT_FAILURE, 0, "first popped operand to `%s' must be a "
+    error(EXIT_FAILURE, 0, "first popped operand to '%s' must be a "
           "number (specifying how many datasets to use)", token);
 
-  /* Put the value into `num'. */
+  /* Put the value into 'num'. */
   tmp=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_SIZE_T);
   num=*(size_t *)(tmp->array);
   gal_data_free(tmp);
@@ -925,14 +925,14 @@ arithmetic_add_dimension(struct arithmeticparams *p, char 
*token, int operator)
         {
           /* Basic sanity checks. */
           if(tmp->type!=out->type)
-            error(EXIT_FAILURE, 0, "the operands to `%s' have to have the "
+            error(EXIT_FAILURE, 0, "the operands to '%s' have to have the "
                   "same data type (the inputs contain atleast two types: "
-                  "`%s' and `%s')", token, gal_type_name(tmp->type, 1),
+                  "'%s' and '%s')", token, gal_type_name(tmp->type, 1),
                   gal_type_name(out->type, 1));
           if( tmp->ndim!=out->ndim-1
               || tmp->dsize[0]!=out->dsize[1]
               || tmp->dsize[1]!=out->dsize[2] )
-            error(EXIT_FAILURE, 0, "the operands to `%s' have to have the "
+            error(EXIT_FAILURE, 0, "the operands to '%s' have to have the "
                   "same size", token);
         }
       else  /* First popped operand. */
@@ -940,7 +940,7 @@ arithmetic_add_dimension(struct arithmeticparams *p, char 
*token, int operator)
           /* First popped operand, do necessary basic checks here. */
           if(tmp->ndim!=2)
             error(EXIT_FAILURE, 0, "currently only 2-dimensional datasets "
-                  "are acceptable for `%s', please get in touch with us at "
+                  "are acceptable for '%s', please get in touch with us at "
                   "%s so we add functionality for different dimensions",
                   token, PACKAGE_BUGREPORT);
 
@@ -1036,7 +1036,7 @@ arithmetic_set_operator(char *string, size_t 
*num_operands)
       else if (!strcmp(string, "add-dimension"))
         { op=ARITHMETIC_OP_ADD_DIMENSION;         *num_operands=0; }
       else
-        error(EXIT_FAILURE, 0, "the argument \"%s\" could not be "
+        error(EXIT_FAILURE, 0, "the argument '%s' could not be "
               "interpretted as a file name, named dataset, number, "
               "or operator", string);
     }
@@ -1059,7 +1059,7 @@ arithmetic_operator_run(struct arithmeticparams *p, int 
operator,
   int flags = ( GAL_ARITHMETIC_INPLACE | GAL_ARITHMETIC_FREE
                 | GAL_ARITHMETIC_NUMOK );
 
-  /* When `num_operands!=0', the operator is in the library. */
+  /* When 'num_operands!=0', the operator is in the library. */
   if(num_operands)
     {
       /* Pop the necessary number of operators. Note that the
@@ -1089,7 +1089,7 @@ arithmetic_operator_run(struct arithmeticparams *p, int 
operator,
              operand. So except for sigma-clipping (that has other
              parameters), the first popped operand must be an
              integer number, we will use that to construct a linked
-             list of any number of operands within the single `d1'
+             list of any number of operands within the single 'd1'
              pointer. */
           numop=pop_number_of_operands(p, operator, operator_string, &d2);
           for(i=0;i<numop;++i)
@@ -1098,12 +1098,12 @@ arithmetic_operator_run(struct arithmeticparams *p, int 
operator,
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-                "the problem. `%zu' is not recognized as an operand "
-                "counter (with `%s')", __func__, PACKAGE_BUGREPORT,
+                "the problem. '%zu' is not recognized as an operand "
+                "counter (with '%s')", __func__, PACKAGE_BUGREPORT,
                 num_operands, operator_string);
         }
 
-      /* Run the arithmetic operation. Note that `gal_arithmetic'
+      /* Run the arithmetic operation. Note that 'gal_arithmetic'
          is a variable argument function (like printf). So the
          number of arguments it uses depend on the operator. So
          when the operator doesn't need three operands, the extra
@@ -1165,7 +1165,7 @@ arithmetic_operator_run(struct arithmeticparams *p, int 
operator,
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! please contact us at "
                 "%s to fix the problem. The code %d is not "
-                "recognized for `op'", __func__, PACKAGE_BUGREPORT,
+                "recognized for 'op'", __func__, PACKAGE_BUGREPORT,
                 operator);
         }
     }
@@ -1198,7 +1198,7 @@ reversepolish(struct arithmeticparams *p)
   /* Go over each input token and do the work. */
   for(token=p->tokens;token!=NULL;token=token->next)
     {
-      /* The `tofile-' operator's string can end in a `.fits', similar to a
+      /* The 'tofile-' operator's string can end in a '.fits', similar to a
          FITS file input file. So, it needs to be checked before checking
          for a filename. If we have a name or number, then add it to the
          operands linked list. Otherwise, pull out two members and do the
@@ -1243,10 +1243,10 @@ reversepolish(struct arithmeticparams *p)
     error(EXIT_FAILURE, 0, "too many operands");
 
 
-  /* If the final operand has a filename, but its `data' element is NULL,
+  /* If the final operand has a filename, but its 'data' element is NULL,
      then the file hasn't actually be read yet. In this case, we need to
      read the contents of the file and put the resulting dataset into the
-     operands `data' element. This can happen for example if no operators
+     operands 'data' element. This can happen for example if no operators
      are called and there is only one filename as an argument (which can
      happen in scripts). */
   if(p->operands->data==NULL && p->operands->filename)
@@ -1266,8 +1266,8 @@ reversepolish(struct arithmeticparams *p)
         }
       else
         error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to fix "
-              "the problem. While `operands->data' is NULL, the filename "
-              "(`%s') is not recognized as a FITS file", __func__,
+              "the problem. While 'operands->data' is NULL, the filename "
+              "('%s') is not recognized as a FITS file", __func__,
               PACKAGE_BUGREPORT, filename);
     }
 
@@ -1287,7 +1287,7 @@ reversepolish(struct arithmeticparams *p)
   else
     {
       /* Put a copy of the WCS structure from the reference image, it
-         will be freed while freeing `data'. */
+         will be freed while freeing 'data'. */
       data->wcs=p->refdata.wcs;
       if(data->ndim==1 && p->onedasimage==0)
         gal_table_write(data, NULL, p->cp.tableformat,
@@ -1300,8 +1300,8 @@ reversepolish(struct arithmeticparams *p)
     }
 
 
-  /* Clean up, note that above, we copied the pointer to `refdata->wcs'
-     into `data', so it is freed when freeing `data'. */
+  /* Clean up, note that above, we copied the pointer to 'refdata->wcs'
+     into 'data', so it is freed when freeing 'data'. */
   gal_data_free(data);
   free(p->refdata.dsize);
   gal_list_data_free(p->named);
diff --git a/bin/arithmetic/astarithmetic.conf 
b/bin/arithmetic/astarithmetic.conf
index 22909c1..e235e36 100644
--- a/bin/arithmetic/astarithmetic.conf
+++ b/bin/arithmetic/astarithmetic.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/arithmetic/authors-cite.h b/bin/arithmetic/authors-cite.h
index 90b5556..3d3ceef 100644
--- a/bin/arithmetic/authors-cite.h
+++ b/bin/arithmetic/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/arithmetic/main.h b/bin/arithmetic/main.h
index e25cd74..ac7e66e 100644
--- a/bin/arithmetic/main.h
+++ b/bin/arithmetic/main.h
@@ -51,8 +51,8 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* In every node of the operand linked list, only one of the `filename' or
-   `data' should be non-NULL. Otherwise it will be a bug and will cause
+/* In every node of the operand linked list, only one of the 'filename' or
+   'data' should be non-NULL. Otherwise it will be a bug and will cause
    problems. All the operands operate on this premise. */
 struct operand
 {
diff --git a/bin/arithmetic/operands.c b/bin/arithmetic/operands.c
index f50528a..9907c38 100644
--- a/bin/arithmetic/operands.c
+++ b/bin/arithmetic/operands.c
@@ -114,14 +114,14 @@ operands_remove_name(struct arithmeticparams *p, char 
*name)
           else     p->named   = tmp->next;
         }
 
-      /* Set this node as the `prev' pointer. */
+      /* Set this node as the 'prev' pointer. */
       prev=tmp;
     }
 
   /* A small sanity check. */
   if(removed==NULL)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix the "
-          "problem. `removed' must not be NULL at this point", __func__,
+          "problem. 'removed' must not be NULL at this point", __func__,
           PACKAGE_BUGREPORT);
 
   /* Nothing in the list points to it now. So we can safely modify and
@@ -136,7 +136,7 @@ operands_remove_name(struct arithmeticparams *p, char *name)
 
 
 
-/* Pop a dataset and keep it in the `named' list for later use. */
+/* Pop a dataset and keep it in the 'named' list for later use. */
 void
 operands_set_name(struct arithmeticparams *p, char *token)
 {
@@ -151,8 +151,8 @@ operands_set_name(struct arithmeticparams *p, char *token)
         tofree=operands_remove_name(p, varname);
         gal_data_free(tofree);
 
-        /* IMPORTANT: we MUST break here! `tmp' does't point to the right
-           place any more. We can define a `prev' node and modify it on
+        /* IMPORTANT: we MUST break here! 'tmp' does't point to the right
+           place any more. We can define a 'prev' node and modify it on
            every attempt, but since there is only one dataset with a given
            name, that is redundant and will just make the program slow. */
         break;
@@ -169,11 +169,11 @@ operands_set_name(struct arithmeticparams *p, char *token)
       /* Add the top popped operand to the list of names. */
       gal_list_data_add(&p->named, operands_pop(p, "set"));
 
-      /* Write the requested name into this dataset. But note that `name'
+      /* Write the requested name into this dataset. But note that 'name'
          MUST be already empty. So to be safe, we'll do a sanity check. */
       if(p->named->name)
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. The `name' element should be NULL at this "
+              "the problem. The 'name' element should be NULL at this "
               "point, but it isn't", __func__, PACKAGE_BUGREPORT);
       gal_checkset_allocate_copy(varname, &p->named->name);
     }
@@ -235,7 +235,7 @@ operands_copy_named(struct arithmeticparams *p, char *name)
   /* A small sanity check. */
   if(out==NULL)
     error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to fix the "
-          "problem. The requested name `%s' couldn't be found in the list",
+          "problem. The requested name '%s' couldn't be found in the list",
           __func__, PACKAGE_BUGREPORT, name);
 
   /* Return. */
@@ -280,10 +280,10 @@ operands_add(struct arithmeticparams *p, char *filename, 
gal_data_t *data)
       errno=0;
       newnode=malloc(sizeof *newnode);
       if(newnode==NULL)
-        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `newnode'",
+        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'newnode'",
               __func__, sizeof *newnode);
 
-      /* If the `filename' is the name of a dataset, then use a copy of it.
+      /* If the 'filename' is the name of a dataset, then use a copy of it.
          otherwise, do the basic analysis. */
       if( filename && operands_is_name(p, filename) )
         {
@@ -345,7 +345,7 @@ operands_pop(struct arithmeticparams *p, char *operator)
   /* If the operand linked list has finished, then give an error and
      exit. */
   if(operands==NULL)
-    error(EXIT_FAILURE, 0, "not enough operands for the \"%s\" operator",
+    error(EXIT_FAILURE, 0, "not enough operands for the '%s' operator",
           operator);
 
   /* Set the dataset. If filename is present then read the file
@@ -362,8 +362,8 @@ operands_pop(struct arithmeticparams *p, char *operator)
       data->ndim=gal_dimension_remove_extra(data->ndim, data->dsize, NULL);
 
       /* Arithmetic changes the contents of a dataset, so the existing name
-         (in the FITS `EXTNAME' keyword) should not be passed on beyond
-         this point. Also, in Arithmetic, the `name' element is used to
+         (in the FITS 'EXTNAME' keyword) should not be passed on beyond
+         this point. Also, in Arithmetic, the 'name' element is used to
          identify variables. */
       if(data->name) { free(data->name); data->name=NULL; }
 
diff --git a/bin/arithmetic/ui.c b/bin/arithmetic/ui.c
index f5c0547..3e34c4a 100644
--- a/bin/arithmetic/ui.c
+++ b/bin/arithmetic/ui.c
@@ -69,20 +69,20 @@ doc[] = GAL_STRINGS_TOP_HELP_INFO PROGRAM_NAME" will do 
arithmetic "
   "operations on one or multiple images and numbers. Simply put, the name "
   "of the image along with the arithmetic operators and possible numbers "
   "are given as arguments. The extensions of each input are specified with "
-  "(possibly multiple) calls to the `--hdu' option."
+  "(possibly multiple) calls to the '--hdu' option."
   "\n\nCurrently "PROGRAM_NAME" only supports postfix or reverse polish "
-  "notation. For example to get the result of `5+6', you should write "
-  "`5 6 +', or to get the average of two images, you should write `a.fits "
-  "b.fits + 2 /' (or more simply use the `average' operator with "
-  "`a.fits b.fits average'). Please see the manual for more information. "
+  "notation. For example to get the result of '5+6', you should write "
+  "'5 6 +', or to get the average of two images, you should write 'a.fits "
+  "b.fits + 2 /' (or more simply use the 'average' operator with "
+  "'a.fits b.fits average'). Please see the manual for more information. "
   "\n\n"PROGRAM_NAME" recognizes a large collection of standard operators, "
   "including basic arithmetic (e.g., +, -, x, /), mathematical (e.g., abs, "
   "pow, sqrt, log), statistical (minvalue, min, max, average), comparison "
   "(e.g., lt, le, gt), logical (e.g., and, or, not), the full set of bitwise "
   "operators, and numeric type conversion operators to all known types. "
   "Please run the command below for a complete list describing all "
-  "operators (press the `SPACE' keyboard key, or arrow keys, to go down "
-  "and `q' to return to the command-line):\n\n"
+  "operators (press the 'SPACE' keyboard key, or arrow keys, to go down "
+  "and 'q' to return to the command-line):\n\n"
   "     $ info gnuastro \"Arithmetic operators\"\n"
   GAL_STRINGS_MORE_HELP_INFO
   /* After the list of options: */
@@ -174,18 +174,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct arithmeticparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -235,12 +235,12 @@ ui_read_check_only_options(struct arithmeticparams *p)
   if(p->wcsfile && strcmp(p->wcsfile,"none"))
     {
       if(gal_fits_name_is_fits(p->wcsfile)==0)
-        error(EXIT_FAILURE, 0, "%s: file given to `--wcsfile' must be in "
+        error(EXIT_FAILURE, 0, "%s: file given to '--wcsfile' must be in "
               "FITS format with a recognizable FITS format suffix.",
               p->wcsfile);
       if(p->wcshdu==NULL)
         error(EXIT_FAILURE, 0, "%s: no HDU/extension specified (file given "
-              "to `--wcsfile')! Please use `--wcshdu' to specify a "
+              "to '--wcsfile')! Please use '--wcshdu' to specify a "
               "HDU/extension to read from", p->wcsfile);
     }
 }
@@ -250,7 +250,7 @@ ui_read_check_only_options(struct arithmeticparams *p)
 
 
 /* Sanity check on options AND arguments. If only option values are to be
-   checked, use `ui_read_check_only_options'. */
+   checked, use 'ui_read_check_only_options'. */
 static void
 ui_check_options_and_arguments(struct arithmeticparams *p)
 {
@@ -272,11 +272,11 @@ ui_check_options_and_arguments(struct arithmeticparams *p)
   /* The input tokens are put in a lastin-firstout (simple) linked list, so
      change them to the correct order so the order we pop a token is the
      same order that the user input a value. Note that for the options this
-     was done in `gal_options_read_config_set'. */
+     was done in 'gal_options_read_config_set'. */
   gal_list_str_reverse(&p->tokens);
 
-  /* To allow adding extensions to existing files, let the `keep' flag be
-     the same as the `dontdelete'. */
+  /* To allow adding extensions to existing files, let the 'keep' flag be
+     the same as the 'dontdelete'. */
   cp->keep=cp->dontdelete;
 
   /* Set the output file name (if any is needed). Note that since the lists
@@ -286,7 +286,7 @@ ui_check_options_and_arguments(struct arithmeticparams *p)
      list. */
   for(token=p->tokens; token!=NULL; token=token->next)
     {
-      /* Strings given to the `tofile' operator are also considered as
+      /* Strings given to the 'tofile' operator are also considered as
          outputs and we should delete them before starting the parse. */
       if( strncmp(OPERATOR_PREFIX_TOFILE, token->v,
                   OPERATOR_PREFIX_LENGTH_TOFILE) )
@@ -298,8 +298,8 @@ ui_check_options_and_arguments(struct arithmeticparams *p)
           if( gal_array_name_recognized(token->v) )
             {
               /* Increment the counter for FITS files (if they are
-                 input). Recall that the `tofile' operator can also have
-                 `.fits' suffixes (they are the names of the output
+                 input). Recall that the 'tofile' operator can also have
+                 '.fits' suffixes (they are the names of the output
                  files). */
               if( gal_array_name_recognized_multiext(token->v)  )
                 ++nummultiext;
@@ -318,13 +318,13 @@ ui_check_options_and_arguments(struct arithmeticparams *p)
             }
 
           /* This token is a number. Check if a negative dash was present that
-             has been temporarily replaced with `NEG_DASH_REPLACE' before
+             has been temporarily replaced with 'NEG_DASH_REPLACE' before
              option parsing. */
           else if(token->v[0]==NEG_DASH_REPLACE && isdigit(token->v[1]) )
             token->v[0]='-';
         }
 
-      /* We are on the `tofile' operator. */
+      /* We are on the 'tofile' operator. */
       else
         {
           filename=&token->v[ OPERATOR_PREFIX_LENGTH_TOFILE ];
@@ -342,10 +342,10 @@ ui_check_options_and_arguments(struct arithmeticparams *p)
       if(numhdus<nummultiext)
         error(EXIT_FAILURE, 0, "not enough HDUs. There are %zu input "
               "files in formats that may contain multiple extensions (for "
-              "example FITS or TIFF). Therefore, the `--hdu' (`-h') option "
+              "example FITS or TIFF). Therefore, the '--hdu' ('-h') option "
               "must be called atleaset %zu times (once for each "
               "multi-extension file). If the HDU value is the same for all "
-              "the files, you may use `--globalhdu' (`-g') to specify a "
+              "the files, you may use '--globalhdu' ('-g') to specify a "
               "single HDU to be used for any number of input files",
               nummultiext, nummultiext);
     }
@@ -380,7 +380,7 @@ ui_preparations(struct arithmeticparams *p)
                 "(readable by WCSLIB) WCS.\n", p->wcsfile, p->wcshdu);
 
       /* Correct the WCS dimensions if necessary. Note that we don't need
-         the `ndim' or `dsize' any more. */
+         the 'ndim' or 'dsize' any more. */
       ndim=gal_dimension_remove_extra(ndim, dsize, p->refdata.wcs);
 
       /* Clean up. */
@@ -417,9 +417,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
arithmeticparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/buildprog/Makefile.am b/bin/buildprog/Makefile.am
index 201a50c..415aabd 100644
--- a/bin/buildprog/Makefile.am
+++ b/bin/buildprog/Makefile.am
@@ -37,7 +37,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astbuildprog
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astbuildprog_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                      $(MAYBE_NORPATH)
 
@@ -56,11 +56,11 @@ EXTRA_DIST = main.h authors-cite.h args.h ui.h buildprog.h 
astbuildprog.conf.in
 # directories in these variables will be written into the final
 # BuildProgram configuration file.
 #
-# The user might give non-`-I' arguments to CPPFLAGS and non-`-L' arguments
+# The user might give non-'-I' arguments to CPPFLAGS and non-'-L' arguments
 # to LDFLAGS (see bug #54346). But here, we only want these two options,
-# and nothing else. To make the check, we'll see if `$i' (the input string)
-# is the same as `$v' or not. If the string starts with `-I' or `-L', it
-# will change between the two (the `-I' or `-L' have been removed), so it
+# and nothing else. To make the check, we'll see if '$i' (the input string)
+# is the same as '$v' or not. If the string starts with '-I' or '-L', it
+# will change between the two (the '-I' or '-L' have been removed), so it
 # shouldn't be the same.
 astbuildprog.conf: $(top_srcdir)/bin/buildprog/astbuildprog.conf.in
        cat $< > $@
@@ -93,10 +93,10 @@ astbuildprog.conf: 
$(top_srcdir)/bin/buildprog/astbuildprog.conf.in
 
 
 ## The configuration file in BuildProgram must be built on the users's
-## system (see above). The built configuration file is needed during `make
+## system (see above). The built configuration file is needed during 'make
 ## check'. But the (built) configuration file should NOT be distributed in a
 ## tarball. Since all built files are distributed, the only way to avoid
-## the configuration file being distributed it so use a `nodist_' prefix.
+## the configuration file being distributed it so use a 'nodist_' prefix.
 ##
 ## NOTE: the man page is created in doc/Makefile.am
 nodist_sysconf_DATA = astbuildprog.conf
diff --git a/bin/buildprog/args.h b/bin/buildprog/args.h
index e181736..68f65be 100644
--- a/bin/buildprog/args.h
+++ b/bin/buildprog/args.h
@@ -50,7 +50,7 @@ struct argp_option program_options[] =
       UI_KEY_INCLUDE,
       "STR",
       0,
-      "Directories to search for `#include's.",
+      "Directories to search for '#include's.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->include,
       GAL_TYPE_STRLL,
@@ -78,7 +78,7 @@ struct argp_option program_options[] =
       UI_KEY_LINKLIB,
       "STR",
       0,
-      "Link libraries, e.g., for libgsl: `-lgsl'.",
+      "Link libraries, e.g., for libgsl: '-lgsl'.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->linklib,
       GAL_TYPE_STRLL,
@@ -92,7 +92,7 @@ struct argp_option program_options[] =
       UI_KEY_LA,
       "STR",
       0,
-      "Libtool `.la' to use instead of default.",
+      "Libtool '.la' to use instead of default.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->la,
       GAL_TYPE_STRING,
@@ -106,7 +106,7 @@ struct argp_option program_options[] =
       UI_KEY_TAG,
       "STR",
       0,
-      "Libtool `--tag': programming language.",
+      "Libtool '--tag': programming language.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->tag,
       GAL_TYPE_STRING,
diff --git a/bin/buildprog/astbuildprog.conf.in 
b/bin/buildprog/astbuildprog.conf.in
index 728af52..d7dd3a8 100644
--- a/bin/buildprog/astbuildprog.conf.in
+++ b/bin/buildprog/astbuildprog.conf.in
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/buildprog/authors-cite.h b/bin/buildprog/authors-cite.h
index c30caf1..704f015 100644
--- a/bin/buildprog/authors-cite.h
+++ b/bin/buildprog/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/buildprog/buildprog.c b/bin/buildprog/buildprog.c
index 9db6623..4089155 100644
--- a/bin/buildprog/buildprog.c
+++ b/bin/buildprog/buildprog.c
@@ -45,7 +45,7 @@ buildprog_as_one_string(char *opt, gal_list_str_t *list)
   /* Only if we have a list. */
   if(list)
     {
-      /* For every node in the list, we want the `opt' and a space along with
+      /* For every node in the list, we want the 'opt' and a space along with
          the actual string. */
       for(tmp=list; tmp!=NULL; tmp=tmp->next)
         len += 1 + (opt ? strlen(opt) : 0) + strlen(tmp->v);
@@ -71,7 +71,7 @@ buildprog_as_one_string(char *opt, gal_list_str_t *list)
 int
 buildprog(struct buildprogparams *p)
 {
-  /* Note that the first node of `sourceargs' is the acutal source and the
+  /* Note that the first node of 'sourceargs' is the acutal source and the
      rest are arguments to be run later. */
   int retval;
   char *fullla;
@@ -104,7 +104,7 @@ buildprog(struct buildprogparams *p)
     if( asprintf(&optimize, "-O%s", p->optimize)<0 )
       error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
 
-  /* Libtool `.la' file: */
+  /* Libtool '.la' file: */
   if(p->la) fullla=p->la;
   else
     if( asprintf(&fullla, "%s/libgnuastro.la", LIBDIR)<0 )
diff --git a/bin/buildprog/main.h b/bin/buildprog/main.h
index 1df8209..c325b5a 100644
--- a/bin/buildprog/main.h
+++ b/bin/buildprog/main.h
@@ -48,7 +48,7 @@ struct buildprogparams
   gal_list_str_t     *include;    /* Libraries to link against.         */
   gal_list_str_t     *linkdir;    /* Libraries to link against.         */
   gal_list_str_t     *linklib;    /* Libraries to link against.         */
-  char                    *la;    /* Libtool `.la' instead of default.  */
+  char                    *la;    /* Libtool '.la' instead of default.  */
   char                    *cc;    /* C compiler to use.                 */
   uint8_t               noenv;
 
diff --git a/bin/buildprog/ui.c b/bin/buildprog/ui.c
index 70cb63a..06afff2 100644
--- a/bin/buildprog/ui.c
+++ b/bin/buildprog/ui.c
@@ -65,7 +65,7 @@ doc[] = GAL_STRINGS_TOP_HELP_INFO PROGRAM_NAME" will compile 
and run a "
   "depends on. Hence you do not have to worry about explicitly linking "
   "with CFITSIO for example if you want to work on a FITS file, or with "
   "GSL if you want to use GNU Scientific Library's functions. The standard "
-  "compiler options of `-I', `-L', and `-l' are also available for further "
+  "compiler options of '-I', '-L', and '-l' are also available for further "
   "customization of the build.\n"
   GAL_STRINGS_MORE_HELP_INFO
   /* After the list of options: */
@@ -130,9 +130,9 @@ ui_initialize_options(struct buildprogparams *p,
           cp->coptions[i].mandatory=GAL_OPTIONS_NOT_MANDATORY;
           break;
 
-        /* `--ignorecase's default short format is `I', but here we want to
-           follow the compiler format, hence we need `I' for
-           `include'. Therefore, here, we'll change the key for `include'
+        /* '--ignorecase's default short format is 'I', but here we want to
+           follow the compiler format, hence we need 'I' for
+           'include'. Therefore, here, we'll change the key for 'include'
            to some large number just to avoid confusion.*/
         case GAL_OPTIONS_KEY_IGNORECASE:
           cp->coptions[i].key=20000;
@@ -163,18 +163,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct buildprogparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -219,21 +219,21 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct buildprogparams *p)
 {
   size_t len;
 
-  /* If an `.la' file is given, make sure it has the correct suffix. */
+  /* If an '.la' file is given, make sure it has the correct suffix. */
   if(p->la)
     {
       len=strlen(p->la);
       if(len>=4)
         if(strcmp(&p->la[len-3], ".la"))
-          error(EXIT_FAILURE, 0, "`%s' is not a Libtool control file name "
-                "(with a `.la' suffix). The file name given to the `--la' "
-                "(`-a') option must be a Libtool control file", p->la);
+          error(EXIT_FAILURE, 0, "'%s' is not a Libtool control file name "
+                "(with a '.la' suffix). The file name given to the '--la' "
+                "('-a') option must be a Libtool control file", p->la);
     }
 }
 
@@ -279,23 +279,23 @@ ui_preparations(struct buildprogparams *p)
      options.c). */
   gal_list_str_reverse(&p->sourceargs);
 
-  /* Set the final output name. `EXEEXT' comes from the configuration
-     script (given by BuildProgram's `Makefile.am'). */
+  /* Set the final output name. 'EXEEXT' comes from the configuration
+     script (given by BuildProgram's 'Makefile.am'). */
   if(p->cp.output==NULL)
     p->cp.output=gal_checkset_automatic_output(&p->cp, p->sourceargs->v,
                                                EXEEXT);
 
-  /* Set the C compiler. Later we can add a check to make sure that `cc' is
+  /* Set the C compiler. Later we can add a check to make sure that 'cc' is
      actually in the PATH. */
   if(p->cc==NULL)
     {                                        /* No C compiler chosen. */
       if(p->noenv==0)
         {
-          p->cc=getenv("CC");                /* First check for `CC'. */
+          p->cc=getenv("CC");                /* First check for 'CC'. */
           if(p->cc==NULL)
-            p->cc=getenv("GCC");             /* Then check for `GCC'. */
+            p->cc=getenv("GCC");             /* Then check for 'GCC'. */
         }
-      if(p->cc==NULL) p->cc="gcc";           /* Default: `gcc'.       */
+      if(p->cc==NULL) p->cc="gcc";           /* Default: 'gcc'.       */
     }
 }
 
@@ -327,9 +327,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
buildprogparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/convertt/Makefile.am b/bin/convertt/Makefile.am
index f77cc3e..07d41b5 100644
--- a/bin/convertt/Makefile.am
+++ b/bin/convertt/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astconvertt
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astconvertt_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                     $(MAYBE_NORPATH)
 
diff --git a/bin/convertt/args.h b/bin/convertt/args.h
index 462efa3..b3e2f3d 100644
--- a/bin/convertt/args.h
+++ b/bin/convertt/args.h
@@ -191,7 +191,7 @@ struct argp_option program_options[] =
       UI_KEY_CHANGE,
       "STR",
       0,
-      "Change pixel values `from_1:to_1,from_2:to_2`.",
+      "Change pixel values 'from_1:to_1,from_2:to_2'.",
       UI_GROUP_FLUX,
       &p->changestr,
       GAL_TYPE_STRING,
diff --git a/bin/convertt/astconvertt.conf b/bin/convertt/astconvertt.conf
index df164fa..3ec3991 100644
--- a/bin/convertt/astconvertt.conf
+++ b/bin/convertt/astconvertt.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/convertt/authors-cite.h b/bin/convertt/authors-cite.h
index 9063a69..aea0fe5 100644
--- a/bin/convertt/authors-cite.h
+++ b/bin/convertt/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/convertt/color.c b/bin/convertt/color.c
index ca1c3de..f7194cf 100644
--- a/bin/convertt/color.c
+++ b/bin/convertt/color.c
@@ -109,7 +109,7 @@ color_from_mono_hsv(struct converttparams *p)
                    channel->dsize, channel->wcs, 0, p->cp.minmapsize,
                    p->cp.quietmmap, "BLUE", NULL, "Blue color channel.");
 
-  /* Start the conversion. Note that the "Choroma" (`C') is fixed by our
+  /* Start the conversion. Note that the "Choroma" ('C') is fixed by our
      definition. */
   r=R->array;
   g=G->array;
@@ -195,7 +195,7 @@ color_from_mono_sls(struct converttparams *p)
                    channel->dsize, channel->wcs, 0, p->cp.minmapsize,
                    p->cp.quietmmap, "BLUE", NULL, "Blue color channel.");
 
-  /* Start the conversion. Note that the "Choroma" (`C') is fixed by our
+  /* Start the conversion. Note that the "Choroma" ('C') is fixed by our
      definition. */
   r=R->array;
   g=G->array;
@@ -463,7 +463,7 @@ color_from_mono_viridis(struct converttparams *p)
                    channel->dsize, channel->wcs, 0, p->cp.minmapsize,
                    p->cp.quietmmap, "BLUE", NULL, "Blue color channel.");
 
-  /* Start the conversion. Note that the "Choroma" (`C') is fixed by our
+  /* Start the conversion. Note that the "Choroma" ('C') is fixed by our
      definition. */
   r=R->array;
   g=G->array;
@@ -869,12 +869,12 @@ color_rgb_to_hsv(struct converttparams *p)
               if( *h<0.0 ) *h += 360.0;
             }
           else
-            /* When `max==0', then *r=*g=*b=0, so s=h=0. */
+            /* When 'max==0', then *r=*g=*b=0, so s=h=0. */
             *s=*h=0.0;
         }
       else
         /* When there is no difference, then its actually a grayscale
-           dataset, so `*v' is the only parameter that matters. */
+           dataset, so '*v' is the only parameter that matters. */
         *s=*h=0.0;
 
 
diff --git a/bin/convertt/convertt.c b/bin/convertt/convertt.c
index 6c81840..55b806e 100644
--- a/bin/convertt/convertt.c
+++ b/bin/convertt/convertt.c
@@ -71,7 +71,7 @@ convertt_change(struct converttparams *p)
     for(channel=p->chll; channel!=NULL; channel=channel->next)
       {
         /* Make a condition array: all pixels with a value equal to
-           `change->from' will be set as 1 in this array. */
+           'change->from' will be set as 1 in this array. */
         cond=gal_arithmetic(GAL_ARITHMETIC_OP_EQ, 1, GAL_ARITHMETIC_NUMOK,
                             channel, change->from);
 
@@ -103,7 +103,7 @@ convertt_trunc_function(int operator, gal_data_t *data, 
gal_data_t *value)
 
 
   /* Make a condition array: all pixels with a value equal to
-     `change->from' will be set as 1 in this array. */
+     'change->from' will be set as 1 in this array. */
   cond=gal_arithmetic(operator, 1, GAL_ARITHMETIC_NUMOK, data, value);
 
 
@@ -115,7 +115,7 @@ convertt_trunc_function(int operator, gal_data_t *data, 
gal_data_t *value)
      data structure must not have changed. */
   if(out!=data)
     error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to solve the "
-          "problem. The `out' and `data' pointers are the same", __func__,
+          "problem. The 'out' and 'data' pointers are the same", __func__,
           PACKAGE_BUGREPORT);
 
 
@@ -246,7 +246,7 @@ convertt_scale_to_uchar(struct converttparams *p)
     {
       if(channel->status==0)
         {
-          /* Convert the values into a range between `0' and `maxbyte'. */
+          /* Convert the values into a range between '0' and 'maxbyte'. */
           ff=(f=channel->array)+size;
           if(p->invert)
             {
diff --git a/bin/convertt/ui.c b/bin/convertt/ui.c
index bb251b9..4600d77 100644
--- a/bin/convertt/ui.c
+++ b/bin/convertt/ui.c
@@ -172,18 +172,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct converttparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -243,16 +243,16 @@ ui_colormap_sanity_check(struct converttparams *p)
   else if( !strcmp(strarr[0],"gray") || !strcmp(strarr[0],"grey"))
                                       { ccode=COLOR_GRAY; nparams=0; }
   else
-    error(EXIT_FAILURE, 0, "`%s' not recognized as a colormap given "
-          "to `--colormap'", strarr[0]);
+    error(EXIT_FAILURE, 0, "'%s' not recognized as a colormap given "
+          "to '--colormap'", strarr[0]);
   p->colormap->status=ccode;
 
   /* Check if the proper number of parameters are given for this color
      space. Note that the actual colorspace name is the first element in
-     `monotocolor'. */
+     'monotocolor'. */
   if(p->colormap->size!=1 && p->colormap->size != (nparams+1) )
-    error(EXIT_FAILURE, 0, "%zu parameters given to `--monotocolor' for "
-          "the `%s' color space (which needs %zu)",
+    error(EXIT_FAILURE, 0, "%zu parameters given to '--monotocolor' for "
+          "the '%s' color space (which needs %zu)",
           p->colormap->size-1, strarr[0], nparams);
 
   /* Allocate the necessary space for the parameters (when
@@ -272,7 +272,7 @@ ui_colormap_sanity_check(struct converttparams *p)
             case COLOR_HSV: farray[0]=0; farray[1]=360; break;
             default:
               error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at "
-                    "%s to fix the problem. The value `%d' is not "
+                    "%s to fix the problem. The value '%d' is not "
                     "recognized for a color space that needs default "
                     "parameters", __func__, PACKAGE_BUGREPORT,
                     p->colormap->status);
@@ -282,8 +282,8 @@ ui_colormap_sanity_check(struct converttparams *p)
         {
           /* Increment the array pointer (temporarily) so we can read
              the rest of the parameters as float32. Note that we can't
-             use `+=' because it is a `void *' pointer. We'll have to
-             use `strarry', because its type is defined. */
+             use '+=' because it is a 'void *' pointer. We'll have to
+             use 'strarry', because its type is defined. */
           p->colormap->size-=1;
           p->colormap->array = strarr + 1;
           p->colormap->next=gal_data_copy_to_new_type(p->colormap,
@@ -309,7 +309,7 @@ ui_colormap_sanity_check(struct converttparams *p)
 
 
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct converttparams *p)
 {
@@ -321,7 +321,7 @@ ui_read_check_only_options(struct converttparams *p)
     {
       p->fluxlow=gal_data_copy_string_to_number(p->fluxlowstr);
       if(p->fluxlow==NULL)
-        error(EXIT_FAILURE, 0, "value to the `--fluxlow' (`-L', %s) "
+        error(EXIT_FAILURE, 0, "value to the '--fluxlow' ('-L', %s) "
               "couldn't be read as a number", p->fluxlowstr);
     }
 
@@ -329,7 +329,7 @@ ui_read_check_only_options(struct converttparams *p)
     {
       p->fluxhigh=gal_data_copy_string_to_number(p->fluxhighstr);
       if(p->fluxhigh==NULL)
-        error(EXIT_FAILURE, 0, "value to the `--fluxhigh' (`-H', %s) "
+        error(EXIT_FAILURE, 0, "value to the '--fluxhigh' ('-H', %s) "
               "couldn't be read as a number", p->fluxhighstr);
     }
 
@@ -339,8 +339,8 @@ ui_read_check_only_options(struct converttparams *p)
                           p->fluxhigh, p->fluxlow);
 
       if( *((unsigned char *)cond->array) == 0 )
-        error(EXIT_FAILURE, 0, "The value of `--fluxlow' must be less "
-              "than `--fluxhigh'");
+        error(EXIT_FAILURE, 0, "The value of '--fluxlow' must be less "
+              "than '--fluxhigh'");
 
       gal_data_free(cond);
     }
@@ -357,8 +357,8 @@ ui_read_check_only_options(struct converttparams *p)
 static void
 ui_check_options_and_arguments(struct converttparams *p)
 {
-  /* Reverse the `inputnames' linked list if it was given (recall that we
-     also accept input from the standard input). Note that the `hdu' linked
+  /* Reverse the 'inputnames' linked list if it was given (recall that we
+     also accept input from the standard input). Note that the 'hdu' linked
      list was reversed during option parsing, so we don't need to do it
      here any more. */
   gal_list_str_reverse(&p->inputnames);
@@ -394,7 +394,7 @@ ui_make_change_struct(char *arg)
   size_t len=0, counter=0;
   struct change *out=NULL, *last=NULL, *ch;
 
-  /* First set all the delimiters to `\0' and count the number of
+  /* First set all the delimiters to '\0' and count the number of
      characters in the full string. */
   while(*p!='\0')
     {
@@ -415,11 +415,11 @@ ui_make_change_struct(char *arg)
           ++counter;
           data=gal_data_copy_string_to_number(p);
           if(data==NULL)
-            error(EXIT_FAILURE, 0, "`%s' (input number %zu to the "
-                  "`--change' option) couldn't be read as a number", p,
+            error(EXIT_FAILURE, 0, "'%s' (input number %zu to the "
+                  "'--change' option) couldn't be read as a number", p,
                   counter);
 
-          /* Go to the end of this number (until you reach a `\0'). */
+          /* Go to the end of this number (until you reach a '\0'). */
           while(*p!='\0') {++p; continue;}
 
           /* Put the data structure in the correct place. When the counter is
@@ -430,15 +430,15 @@ ui_make_change_struct(char *arg)
               errno=0;
               ch=malloc(sizeof *ch);
               if(ch==NULL)
-                error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `ch'",
+                error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'ch'",
                       __func__, sizeof *ch);
 
               /* If the last structure has already been defined (!=NULL)
-                 then we should set its next element to `ch' and change it
-                 to point to `ch'. On the other hand, when this is the
-                 first structure to be created, then `last==NULL', so to
-                 start off the process, we should put `ch' into both the
-                 `out' and `last' lists.. */
+                 then we should set its next element to 'ch' and change it
+                 to point to 'ch'. On the other hand, when this is the
+                 first structure to be created, then 'last==NULL', so to
+                 start off the process, we should put 'ch' into both the
+                 'out' and 'last' lists.. */
               if(last)
                 {
                   last->next=ch;
@@ -447,7 +447,7 @@ ui_make_change_struct(char *arg)
               else
                 out=last=ch;
 
-              /* Put `data' in the `from' element, and since this is the
+              /* Put 'data' in the 'from' element, and since this is the
                  last structure, set its next element to NULL. */
               last->from=data;
               last->next=NULL;
@@ -520,7 +520,7 @@ ui_make_channels_ll(struct converttparams *p)
             hdu=gal_list_str_pop(&p->hdus);
           else
             error(EXIT_FAILURE, 0, "not enough HDUs. Every input FITS image "
-                  "needs a HDU, you can use the `--hdu' (`-h') option once "
+                  "needs a HDU, you can use the '--hdu' ('-h') option once "
                   "for each input FITS image (in the same order)");
 
           /* Read in the array and its WCS information. */
@@ -639,15 +639,15 @@ ui_prepare_input_channels(struct converttparams *p)
 
   /* If there are multiple color channels, then ignore the monotocolor
      option if it is given. But if there is only one, make sure that the
-     `colormap' option is actually given.*/
+     'colormap' option is actually given.*/
   if( p->numch==1 )
     {
       if( p->colormap==NULL )
         error(EXIT_FAILURE, 0, "no colormap! When there is only one input "
               "channel, it is necessary to specify a color map. For "
-              "example `gray', `hsv', `viridis' or `sls'.\n\n"
+              "example 'gray', 'hsv', 'viridis' or 'sls'.\n\n"
               "For more on ConvertType's color mapping, see the "
-              "description under `--colormap' in the Gnuastro book:\n\n"
+              "description under '--colormap' in the Gnuastro book:\n\n"
               "   $ info astconvertt");
     }
   else if( p->numch>1 && p->colormap )
@@ -728,7 +728,7 @@ ui_prepare_input_channels(struct converttparams *p)
         }
 
       /* This is the final (to be used) data structure, so keep its pointer
-         in case the next one is blank and this structure's `next' element
+         in case the next one is blank and this structure's 'next' element
          must be corrected. */
       prev=tmp;
     }
@@ -738,7 +738,7 @@ ui_prepare_input_channels(struct converttparams *p)
 
 
 
-/* We know cp->output is a known suffix, we just don't know if it has a `.`
+/* We know cp->output is a known suffix, we just don't know if it has a '.'
    before it or not. If it doesn't, one will be added to it and the output
    name will be set using the automatic output function. */
 void
@@ -755,7 +755,7 @@ ui_add_dot_use_automatic_output(struct converttparams *p)
         break;
       }
 
-  /* If the suffix does not start with a `.', put one there. */
+  /* If the suffix does not start with a '.', put one there. */
   if(suffix[0]!='.')
     {
       if( asprintf(&tmp, ".%s", suffix)<0 )
@@ -773,7 +773,7 @@ ui_add_dot_use_automatic_output(struct converttparams *p)
 
 
 /* Set output name, not that for ConvertType, the output option value is
-   mandatory (in `args.h'). So by the time the program reaches here, we
+   mandatory (in 'args.h'). So by the time the program reaches here, we
    know it exists. */
 static void
 ui_set_output(struct converttparams *p)
@@ -793,11 +793,11 @@ ui_set_output(struct converttparams *p)
     {
       /* Small sanity checks. */
       if(p->quality == GAL_BLANK_UINT8)
-        error(EXIT_FAILURE, 0, "the `--quality' (`-u') option is necessary "
+        error(EXIT_FAILURE, 0, "the '--quality' ('-u') option is necessary "
               "for jpeg outputs, but it has not been given");
       if(p->quality > 100)
-        error(EXIT_FAILURE, 0, "`%u' is larger than 100. The value to the "
-              "`--quality' (`-u') option must be between 1 and 100 "
+        error(EXIT_FAILURE, 0, "'%u' is larger than 100. The value to the "
+              "'--quality' ('-u') option must be between 1 and 100 "
               "(inclusive)", p->quality);
 
       /* Preparations. */
@@ -816,8 +816,8 @@ ui_set_output(struct converttparams *p)
   else if(gal_eps_name_is_eps(cp->output))
     {
       if(p->borderwidth==0 && p->widthincm==0)
-        error(EXIT_FAILURE, 0, "at least one of `--widthincm' (`-u'), or "
-              "`--borderwidth (`-b') options are necessary for an EPS "
+        error(EXIT_FAILURE, 0, "at least one of '--widthincm' ('-u'), or "
+              "'--borderwidth ('-b') options are necessary for an EPS "
               "output");
       p->outformat=OUT_FORMAT_EPS;
       if( gal_eps_suffix_is_eps(cp->output) )
@@ -828,8 +828,8 @@ ui_set_output(struct converttparams *p)
   else if(gal_pdf_name_is_pdf(cp->output))
     {
       if(p->borderwidth==0 && p->widthincm==0)
-        error(EXIT_FAILURE, 0, "at least one of `--widthincm' (`-u'), or "
-              "`--borderwidth (`-b') options are necessary for a PDF "
+        error(EXIT_FAILURE, 0, "at least one of '--widthincm' ('-u'), or "
+              "'--borderwidth ('-b') options are necessary for a PDF "
                  "output");
       p->outformat=OUT_FORMAT_PDF;
       if( gal_pdf_suffix_is_pdf(cp->output) )
@@ -841,7 +841,7 @@ ui_set_output(struct converttparams *p)
     {
       p->outformat=OUT_FORMAT_TXT;
 
-      /* If the given value is `stdout', then set p->cp.output to NULL, so
+      /* If the given value is 'stdout', then set p->cp.output to NULL, so
          the result will be printed to the standard output. */
       if( !strcmp(p->cp.output, "stdout") )
         {
@@ -851,8 +851,8 @@ ui_set_output(struct converttparams *p)
       else
         {
           /* Plain text files don't have any unique set of suffixes. So,
-             here, we will just adopt two of the most common ones: `txt' or
-             `dat'. If the output is just one of these two suffixes, then
+             here, we will just adopt two of the most common ones: 'txt' or
+             'dat'. If the output is just one of these two suffixes, then
              we will use automatic output to generate the full name,
              otherwise, we'll just take the user's given value as the
              filename. */
@@ -863,7 +863,7 @@ ui_set_output(struct converttparams *p)
           /* If output type is not an image, there should only be one color
              channel: */
           if(p->numch>1)
-            error(EXIT_FAILURE, 0, "text output (`--output=%s`) can only be "
+            error(EXIT_FAILURE, 0, "text output ('--output=%s') can only be "
                   "completed with one input color channel. You have given "
                   "%zu. Note that some formats (for example JPEG) can have "
                   "more than one color channel in each file. You can first "
@@ -923,9 +923,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
converttparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/convolve/Makefile.am b/bin/convolve/Makefile.am
index c15df90..3095a84 100644
--- a/bin/convolve/Makefile.am
+++ b/bin/convolve/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astconvolve
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astconvolve_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                     $(MAYBE_NORPATH)
 
diff --git a/bin/convolve/args.h b/bin/convolve/args.h
index f536a17..d10c46a 100644
--- a/bin/convolve/args.h
+++ b/bin/convolve/args.h
@@ -166,7 +166,7 @@ struct argp_option program_options[] =
       UI_KEY_DOMAIN,
       "STR",
       0,
-      "Convolution domain: `spatial', `frequency'.",
+      "Convolution domain: 'spatial', 'frequency'.",
       GAL_OPTIONS_GROUP_OPERATING_MODE,
       &p->domainstr,
       GAL_TYPE_STRING,
diff --git a/bin/convolve/astconvolve.conf b/bin/convolve/astconvolve.conf
index 28ce553..8ccb727 100644
--- a/bin/convolve/astconvolve.conf
+++ b/bin/convolve/astconvolve.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/convolve/authors-cite.h b/bin/convolve/authors-cite.h
index 5dcbe49..46d5026 100644
--- a/bin/convolve/authors-cite.h
+++ b/bin/convolve/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/convolve/convolve.c b/bin/convolve/convolve.c
index 0094378..13b5356 100644
--- a/bin/convolve/convolve.c
+++ b/bin/convolve/convolve.c
@@ -77,7 +77,7 @@ complextoreal(double *c, size_t size, int action, double 
**output)
       break;
     default:
       error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so we can "
-            "correct it. The `action' code %d is not recognized", __func__,
+            "correct it. The 'action' code %d is not recognized", __func__,
             PACKAGE_BUGREPORT, action);
     }
 }
@@ -245,7 +245,7 @@ frequency_make_padded_complex(struct convolveparams *p)
     roundoff errors.
 
     NOTE: The padding to the input image (on the first axis for example)
-          was `p->kernel->dsize[0]-1'. Since `p->kernel->dsize[0]' is
+          was 'p->kernel->dsize[0]-1'. Since 'p->kernel->dsize[0]' is
           always odd, the padding will always be even.  */
 void
 removepaddingcorrectroundoff(struct convolveparams *p)
@@ -274,7 +274,7 @@ removepaddingcorrectroundoff(struct convolveparams *p)
       hi1 = ( p->kernel->dsize[1] - 1 )/2;
     }
 
-  /* To start with, `start' points to the first pixel in the final
+  /* To start with, 'start' points to the first pixel in the final
      image: */
   start=&rpad[hi0*ps1+hi1];
   for(i=0;i<isize[0];++i)
@@ -373,7 +373,7 @@ correctdeconvolve(struct convolveparams *p, double 
**spatial)
   errno=0;
   n=malloc(ps0*ps1*sizeof *n);
   if(n==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `n'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'n'",
           __func__, ps0*ps1*sizeof *n);
 
 
@@ -382,12 +382,12 @@ correctdeconvolve(struct convolveparams *p, double 
**spatial)
 
         s[0]=0, s[1]=1, s[2]=2, s[3]=3, s[4]=4, s[5]=5
 
-     We want the value 0 to be in the `center'. Note that `s' is
+     We want the value 0 to be in the 'center'. Note that 's' is
      periodic, for example the next 6 elements have distances:
 
         s[6]=0, s[7]=1, s[8]=2, s[9]=3, s[10]=4, s[11]=5
 
-     So a `center'ed array would be like:
+     So a 'center'ed array would be like:
 
         s[0]=4, s[1]=5, s[2]=0, s[3]=1, s[4]=2, s[5]=3
 
@@ -531,7 +531,7 @@ twodimensionfft(struct convolveparams *p, struct 
fftonthreadparams *fp,
   else if(forward1backwardn1==-1) multiple=1;
   else
     error(EXIT_FAILURE, 0, "%s: a bug! The value of the variable "
-          "`forward1backwardn1' is %d not 1 or 2. Please contact us at %s "
+          "'forward1backwardn1' is %d not 1 or 2. Please contact us at %s "
           "so we can find the cause of the problem and fix it", __func__,
           forward1backwardn1, PACKAGE_BUGREPORT);
 
diff --git a/bin/convolve/ui.c b/bin/convolve/ui.c
index 62f13b6..4e25645 100644
--- a/bin/convolve/ui.c
+++ b/bin/convolve/ui.c
@@ -147,18 +147,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct convolveparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -217,8 +217,8 @@ ui_read_check_only_options(struct convolveparams *p)
   else if( !strcmp("frequency", p->domainstr) )
     p->domain=CONVOLVE_DOMAIN_FREQUENCY;
   else
-    error(EXIT_FAILURE, 0, "domain value `%s' not recognized. Please use "
-          "either `spatial' or `frequency'", p->domainstr);
+    error(EXIT_FAILURE, 0, "domain value '%s' not recognized. Please use "
+          "either 'spatial' or 'frequency'", p->domainstr);
 
 
   /* If we are in the spatial domain, make sure that the necessary
@@ -227,10 +227,10 @@ ui_read_check_only_options(struct convolveparams *p)
     if( cp->tl.tilesize==NULL || cp->tl.numchannels==NULL )
       {
         if( cp->tl.tilesize==NULL && cp->tl.numchannels==NULL )
-          error(EXIT_FAILURE, 0, "in spatial convolution, `--numchannels' "
-                "and `--tilesize' are mandatory");
+          error(EXIT_FAILURE, 0, "in spatial convolution, '--numchannels' "
+                "and '--tilesize' are mandatory");
         else
-          error(EXIT_FAILURE, 0, "in spatial convolution, `--%s' is "
+          error(EXIT_FAILURE, 0, "in spatial convolution, '--%s' is "
                 "mandatory: you should use it to set the %s",
                 cp->tl.tilesize ? "numchannels" : "tilesize",
                 ( cp->tl.tilesize
@@ -258,7 +258,7 @@ ui_check_options_and_arguments(struct convolveparams *p)
           if( p->cp.hdu==NULL )
             error(EXIT_FAILURE, 0, "no HDU specified. When the input is a "
                   "FITS file, a HDU must also be specified, you can use "
-                  "the `--hdu' (`-h') option and give it the HDU number "
+                  "the '--hdu' ('-h') option and give it the HDU number "
                   "(starting from zero), extension name, or anything "
                   "acceptable by CFITSIO");
 
@@ -267,7 +267,7 @@ ui_check_options_and_arguments(struct convolveparams *p)
           p->hdu_type=gal_fits_hdu_format(p->filename, p->cp.hdu);
           if(p->hdu_type==IMAGE_HDU && p->column)
             error(EXIT_FAILURE, 0, "%s (hdu: %s): is a FITS image "
-                  "extension. The `--column' option is only applicable "
+                  "extension. The '--column' option is only applicable "
                   "to tables.", p->filename, p->cp.hdu);
         }
     }
@@ -281,7 +281,7 @@ ui_check_options_and_arguments(struct convolveparams *p)
           if( p->khdu==NULL )
             error(EXIT_FAILURE, 0, "no HDU specified. When the kernel is a "
                   "FITS file, a HDU must also be specified, you can use "
-                  "the `--khdu' (`-u') option and give it the HDU number "
+                  "the '--khdu' ('-u') option and give it the HDU number "
                   "(starting from zero), extension name, or anything "
                   "acceptable by CFITSIO");
 
@@ -290,7 +290,7 @@ ui_check_options_and_arguments(struct convolveparams *p)
           kernel_type=gal_fits_hdu_format(p->kernelname, p->khdu);
           if(kernel_type==IMAGE_HDU && p->kernelcolumn)
             error(EXIT_FAILURE, 0, "%s (hdu: %s): is a FITS image "
-                  "extension. The `--kernelcolumn' option is only "
+                  "extension. The '--kernelcolumn' option is only "
                   "applicable to tables.", p->kernelname, p->khdu);
         }
     }
@@ -357,13 +357,13 @@ ui_read_column(struct convolveparams *p, int i0k1)
           error(EXIT_FAILURE, 0, "%s is a table containing more than one "
                 "column. However, the specific column to work on isn't "
                 "specified.\n\n"
-                "Please use the `--column' (`-c') or `--kernelcolumn' "
+                "Please use the '--column' ('-c') or '--kernelcolumn' "
                 "options (depending on which dataset it is) to specify a "
                 "column. You can either give it the column number "
                 "(couting from 1), or a match/search in its meta-data (e.g., "
                 "column names).\n\n"
                 "For more information, please run the following command "
-                "(press the `SPACE' key to go down and `q' to return to the "
+                "(press the 'SPACE' key to go down and 'q' to return to the "
                 "command-line):\n\n"
                 "    $ info gnuastro \"Selecting table columns\"\n",
                 ( filename
@@ -455,7 +455,7 @@ ui_read_input(struct convolveparams *p)
 
 
 
-/* Read the kernel. VERY IMPORTANT: We can't use the `fits_img_read_kernel'
+/* Read the kernel. VERY IMPORTANT: We can't use the 'fits_img_read_kernel'
    because the Convolve program also does de-convolution. */
 static void
 ui_read_kernel(struct convolveparams *p)
@@ -524,12 +524,12 @@ ui_preparations(struct convolveparams *p)
       if( gal_blank_present(p->input, 1) )
         fprintf(stderr, "\n----------------------------------------\n"
                 "######## %s WARNING ########\n"
-                "There are blank pixels in `%s' (hdu: `%s') and you have "
+                "There are blank pixels in '%s' (hdu: '%s') and you have "
                 "asked for frequency domain convolution. As a result, all "
-                "the pixels in the output (`%s') will be blank. Only "
+                "the pixels in the output ('%s') will be blank. Only "
                 "spatial domain convolution can account for blank pixels "
                 "in the input data. You can run %s again with "
-                "`--domain=spatial'\n"
+                "'--domain=spatial'\n"
                 "----------------------------------------\n\n",
                 PROGRAM_NAME, p->filename, cp->hdu, cp->output,
                 PROGRAM_NAME);
@@ -537,7 +537,7 @@ ui_preparations(struct convolveparams *p)
       /* Frequency domain is only implemented in 2D. */
       if( p->input->ndim==1 )
         error(EXIT_FAILURE, 0, "Frequency domain convolution is currently "
-              "not implemented on 1D datasets. Please use `--domain=spatial' "
+              "not implemented on 1D datasets. Please use '--domain=spatial' "
               "to convolve this dataset");
     }
   else
@@ -554,7 +554,7 @@ ui_preparations(struct convolveparams *p)
     {
       /* Currently this is not implemented in 1D. */
       if(p->kernel->ndim==1)
-        error(EXIT_FAILURE, 0, "`--makekernel' is currently not available "
+        error(EXIT_FAILURE, 0, "'--makekernel' is currently not available "
               "on 1D datasets");
       else
         {
@@ -564,9 +564,9 @@ ui_preparations(struct convolveparams *p)
           /* Make sure the size of the kernel is the same as the input */
           if( p->input->dsize[0]!=p->kernel->dsize[0]
               || p->input->dsize[1]!=p->kernel->dsize[1] )
-            error(EXIT_FAILURE, 0, "with the `--makekernel' (`-m') option, "
+            error(EXIT_FAILURE, 0, "with the '--makekernel' ('-m') option, "
                   "the input image and the image specified with the "
-                  "`--kernel' (`-k') option should have the same size. The "
+                  "'--kernel' ('-k') option should have the same size. The "
                   "lower resolution input image (%s) has %zux%zu pixels "
                   "while the sharper image (%s) specified with the kernel "
                   "option has %zux%zu pixels", p->filename,
@@ -704,9 +704,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
convolveparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/cosmiccal/Makefile.am b/bin/cosmiccal/Makefile.am
index 7a720ba..a1971bd 100644
--- a/bin/cosmiccal/Makefile.am
+++ b/bin/cosmiccal/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astcosmiccal
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astcosmiccal_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                      $(MAYBE_NORPATH)
 
diff --git a/bin/cosmiccal/astcosmiccal.conf b/bin/cosmiccal/astcosmiccal.conf
index d0dbebe..7495d0e 100644
--- a/bin/cosmiccal/astcosmiccal.conf
+++ b/bin/cosmiccal/astcosmiccal.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/cosmiccal/authors-cite.h b/bin/cosmiccal/authors-cite.h
index 53ce8c0..cbedef0 100644
--- a/bin/cosmiccal/authors-cite.h
+++ b/bin/cosmiccal/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/cosmiccal/cosmiccal.c b/bin/cosmiccal/cosmiccal.c
index ea09c41..f63d3ec 100644
--- a/bin/cosmiccal/cosmiccal.c
+++ b/bin/cosmiccal/cosmiccal.c
@@ -155,7 +155,7 @@ cosmiccal(struct cosmiccalparams *p)
   if(isnan(p->redshift))
     {
       cosmiccal_print_input(p);
-      printf("\n\nPlease specify a redshift with the `--redshift' (or `-z') "
+      printf("\n\nPlease specify a redshift with the '--redshift' (or '-z') "
              "option.\n");
       return;
     }
diff --git a/bin/cosmiccal/ui.c b/bin/cosmiccal/ui.c
index cb0f05c..8bc5e9d 100644
--- a/bin/cosmiccal/ui.c
+++ b/bin/cosmiccal/ui.c
@@ -158,18 +158,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct cosmiccalparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -207,22 +207,22 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
   /* In case of printing the option values. */
   if(lineno==-1)
     error(EXIT_FAILURE, 0, "currently the options to be printed in one row "
-          "(like `--age', `--luminositydist', and etc) do not support "
-          "printing with the `--printparams' (`-P'), or writing into "
+          "(like '--age', '--luminositydist', and etc) do not support "
+          "printing with the '--printparams' ('-P'), or writing into "
           "configuration files due to lack of time when implementing "
           "these features. You can put them into configuration files "
-          "manually. Please get in touch with us at `%s', so we can "
+          "manually. Please get in touch with us at '%s', so we can "
           "implement it", PACKAGE_BUGREPORT);
 
-  /* If this option is given in a configuration file, then `arg' will not
-     be NULL and we don't want to do anything if it is `0'. */
+  /* If this option is given in a configuration file, then 'arg' will not
+     be NULL and we don't want to do anything if it is '0'. */
   switch(option->key)
     {
     /* Options with arguments. */
     case UI_KEY_LINEATZ:
       /* Make sure an argument is given. */
       if(arg==NULL)
-        error(EXIT_FAILURE, 0, "option `--lineatz' needs an argument");
+        error(EXIT_FAILURE, 0, "option '--lineatz' needs an argument");
 
       /* If the argument is a number, read it, if not, see if its a known
          specral line name. */
@@ -231,7 +231,7 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
         {
           linecode=gal_speclines_line_code(arg);
           if(linecode==GAL_SPECLINES_INVALID)
-            error(EXIT_FAILURE, 0, "`%s' not a known spectral line name",
+            error(EXIT_FAILURE, 0, "'%s' not a known spectral line name",
                   arg);
           val=gal_speclines_line_angstrom(linecode);
         }
@@ -242,11 +242,11 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
     default:
       if(arg)
         {
-          /* Make sure the value is only `0' or `1'. */
+          /* Make sure the value is only '0' or '1'. */
           if( arg[1]!='\0' && *arg!='0' && *arg!='1' )
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `--%s' "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the '--%s' "
                           "option takes no arguments. In a configuration "
-                          "file it can only have the values `1' or `0', "
+                          "file it can only have the values '1' or '0', "
                           "indicating if it should be used or not",
                           option->name);
 
@@ -278,7 +278,7 @@ ui_parse_obsline(struct argp_option *option, char *arg,
   /* We want to print the stored values. */
   if(lineno==-1)
     {
-      /* Set the value pointer to `obsline'. */
+      /* Set the value pointer to 'obsline'. */
       obsline=*(gal_data_t **)(option->value);
       dptr = obsline->array;
 
@@ -297,7 +297,7 @@ ui_parse_obsline(struct argp_option *option, char *arg,
     }
   else
     {
-      /* The first part of `arg' (before the first comma) is not
+      /* The first part of 'arg' (before the first comma) is not
          necessarily a number. So we need to separate the first part from
          the rest.*/
       linename=arg;
@@ -310,7 +310,7 @@ ui_parse_obsline(struct argp_option *option, char *arg,
 
       /* Only one number must be given as second argument. */
       if(obsline==NULL || obsline->size!=1)
-        error(EXIT_FAILURE, 0, "Wrong format given to `--obsline'. Only "
+        error(EXIT_FAILURE, 0, "Wrong format given to '--obsline'. Only "
               "two values (line name/wavelengh, and observed wavelengh) "
               "must be given to it");
 
@@ -318,14 +318,14 @@ ui_parse_obsline(struct argp_option *option, char *arg,
          put that number in a second element of the array. */
       dptr=&manualwl;
       if( gal_type_from_string((void **)(&dptr), linename, GAL_TYPE_FLOAT64) )
-        { /* `linename' isn't a number. */
+        { /* 'linename' isn't a number. */
           obsline->status=gal_speclines_line_code(linename);
           if(obsline->status==GAL_SPECLINES_INVALID)
-            error(EXIT_FAILURE, 0, "`%s' not recognized as a standard spectral 
"
+            error(EXIT_FAILURE, 0, "'%s' not recognized as a standard spectral 
"
                   "line name", linename);
         }
       else
-        { /* `linename' is a number. */
+        { /* 'linename' is a number. */
 
           /* Allocate the new space. */
           tobsline=gal_data_alloc(NULL, GAL_TYPE_FLOAT64, 1, &two, NULL,
@@ -343,7 +343,7 @@ ui_parse_obsline(struct argp_option *option, char *arg,
           obsline=tobsline;
         }
 
-      /* Point `option->value' to the dataset. */
+      /* Point 'option->value' to the dataset. */
       *(gal_data_t **)(option->value) = obsline;
 
       /* Our job is done, return NULL. */
@@ -374,7 +374,7 @@ ui_parse_obsline(struct argp_option *option, char *arg,
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct cosmiccalparams *p)
 {
@@ -384,13 +384,13 @@ ui_read_check_only_options(struct cosmiccalparams *p)
      error). */
   if( sum > (1+1e-8) || sum < (1-1e-8) )
     error(EXIT_FAILURE, 0, "sum of fractional densities is not 1, but %.8f. "
-          "The cosmological constant (`olambda'), matter (`omatter') "
-          "and radiation (`oradiation') densities are given as %.8f, %.8f, "
+          "The cosmological constant ('olambda'), matter ('omatter') "
+          "and radiation ('oradiation') densities are given as %.8f, %.8f, "
           "%.8f", sum, p->olambda, p->omatter, p->oradiation);
 
-  /* Make sure that `--redshift' and `--obsline' aren't called together. */
+  /* Make sure that '--redshift' and '--obsline' aren't called together. */
   if(!isnan(p->redshift) && p->obsline)
-    error(EXIT_FAILURE, 0, "`--redshift' and `--obsline' cannot be called "
+    error(EXIT_FAILURE, 0, "'--redshift' and '--obsline' cannot be called "
           "together");
 }
 
@@ -443,12 +443,12 @@ ui_preparations(struct cosmiccalparams *p)
 {
   double *obsline = p->obsline ? p->obsline->array : NULL;
 
-  /* If `--listlines' is given, print them and abort, don't continue with
+  /* If '--listlines' is given, print them and abort, don't continue with
      the preparations. */
   if(p->listlines)
     ui_list_lines(p);
 
-  /* If `--obsline' has been given, set the redshift based on it. */
+  /* If '--obsline' has been given, set the redshift based on it. */
   if(p->obsline)
     p->redshift = ( (p->obsline->status==GAL_SPECLINES_INVALID)
                     ? gal_speclines_line_redshift(obsline[0], obsline[1])
@@ -457,7 +457,7 @@ ui_preparations(struct cosmiccalparams *p)
 
   /* Currently GSL will fail for z=0. So if a value of zero is given (bug
      #56299). As a work-around, in such cases, we'll change it to an
-     extremely small value. NOTE: This has to be after the `obsline'
+     extremely small value. NOTE: This has to be after the 'obsline'
      check.*/
   if(p->redshift==0.0f) p->redshift=MAIN_REDSHIFT_ZERO;
 
@@ -496,9 +496,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
cosmiccalparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/crop/Makefile.am b/bin/crop/Makefile.am
index d42216b..e0c5a25 100644
--- a/bin/crop/Makefile.am
+++ b/bin/crop/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astcrop
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astcrop_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                 $(MAYBE_NORPATH)
 
diff --git a/bin/crop/args.h b/bin/crop/args.h
index 86a22f6..e721395 100644
--- a/bin/crop/args.h
+++ b/bin/crop/args.h
@@ -36,7 +36,7 @@ struct argp_option program_options[] =
       UI_KEY_MODE,
       "STR",
       0,
-      "Coordinate mode `img' or `wcs'.",
+      "Coordinate mode 'img' or 'wcs'.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->mode,
       GAL_TYPE_STRING,
diff --git a/bin/crop/astcrop.conf b/bin/crop/astcrop.conf
index c7641d0..73bf4f3 100644
--- a/bin/crop/astcrop.conf
+++ b/bin/crop/astcrop.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/crop/authors-cite.h b/bin/crop/authors-cite.h
index cfe8fff..37196fa 100644
--- a/bin/crop/authors-cite.h
+++ b/bin/crop/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/crop/crop.c b/bin/crop/crop.c
index c07bc43..19d2eed 100644
--- a/bin/crop/crop.c
+++ b/bin/crop/crop.c
@@ -115,7 +115,7 @@ crop_verbose_final(struct cropparams *p)
           case 3:
             /* When the center wasn't checked it has a value of -1, and
                when it was checked and the center was filled, it has a
-               value of 1. So if `array[i]==0', we know that the file was
+               value of 1. So if 'array[i]==0', we know that the file was
                removed. */
             for(i=0;i<p->numout;++i)
               {
@@ -184,7 +184,7 @@ crop_write_to_log(struct onecropparams *crp)
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-                "the problem. The value of %zu is not valid for `counter'",
+                "the problem. The value of %zu is not valid for 'counter'",
                 __func__, PACKAGE_BUGREPORT, counter);
         }
     }
@@ -225,7 +225,7 @@ crop_mode_img(void *inparam)
       onecrop(crp);
 
       /* If there was no overlap, then no FITS pointer is created, so
-         `numimg' should be set to zero. */
+         'numimg' should be set to zero. */
       if(crp->outfits==NULL) crp->numimg=0;
 
       /* Check the final output: */
@@ -312,7 +312,7 @@ crop_mode_wcs(void *inparam)
             if(crp->name==NULL) onecrop_name(crp);
 
             /* Increment the number of images used (necessary for the
-               header keywords that are written in `onecrop'). Then do the
+               header keywords that are written in 'onecrop'). Then do the
                crop. */
             ++crp->numimg;
             onecrop(crp);
@@ -325,9 +325,9 @@ crop_mode_wcs(void *inparam)
       while ( ++(crp->in_ind) < p->numin );
 
 
-      /* Correct in_ind. The loop above went until `in_ind' is one more
+      /* Correct in_ind. The loop above went until 'in_ind' is one more
          than the index for the last input image (that is how it exited the
-         loop). But `crp->in_ind' is needed later, so correct it here. */
+         loop). But 'crp->in_ind' is needed later, so correct it here. */
       --crp->in_ind;
 
 
@@ -420,7 +420,7 @@ crop(struct cropparams *p)
   errno=0;
   crp=malloc(nt*sizeof *crp);
   if(crp==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `crp'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'crp'",
           __func__, nt*sizeof *crp);
 
 
diff --git a/bin/crop/main.h b/bin/crop/main.h
index 7b01e23..07ffed5 100644
--- a/bin/crop/main.h
+++ b/bin/crop/main.h
@@ -87,7 +87,7 @@ struct cropparams
   uint8_t       zeroisnotblank;  /* ==1: In float or double, keep 0.0.    */
   uint8_t              noblank;  /* ==1: no blank (out of image) pixels.  */
   char                 *suffix;  /* Ending of output file name.           */
-  gal_data_t    *incheckcenter;  /* Value given to `--checkcenter'.       */
+  gal_data_t    *incheckcenter;  /* Value given to '--checkcenter'.       */
   gal_data_t           *center;  /* Center position of crop.              */
   gal_data_t            *width;  /* Width of crop when defined by center. */
   char                *catname;  /* Name of input catalog.                */
diff --git a/bin/crop/onecrop.c b/bin/crop/onecrop.c
index 86e2e92..589d007 100644
--- a/bin/crop/onecrop.c
+++ b/bin/crop/onecrop.c
@@ -91,8 +91,8 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
   p->checkcenter=0;
 
 
-  /* Initialize the fpixel and lpixel arrays (note that `section' is only
-     defined in image mode, so there will only be one element in `imgs'. */
+  /* Initialize the fpixel and lpixel arrays (note that 'section' is only
+     defined in image mode, so there will only be one element in 'imgs'. */
   for(i=0;i<ndim;++i)
     {
       fpixel[i] = 1;
@@ -100,7 +100,7 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
     }
 
 
-  /* Parse the string: `forl': "first-or-last". */
+  /* Parse the string: 'forl': "first-or-last". */
   while(*pt!='\0')
     {
       add=0;
@@ -109,7 +109,7 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
         case ',':
           ++dim;
           if(dim>=ndim)
-            error(EXIT_FAILURE, 0, "Extra `,` in `%s`", p->section);
+            error(EXIT_FAILURE, 0, "Extra ',' in '%s'", p->section);
           forl='f';
           ++pt;
           break;
@@ -119,7 +119,7 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
           break;
         case '.':
           error(EXIT_FAILURE, 0, "the numbers in the argument to "
-                "`--section` (`-s') have to be integers. You input "
+                "'--section' ('-s') have to be integers. You input "
                 "includes a float number: %s", p->section);
           break;
         case ' ': case '\t':
@@ -138,10 +138,10 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
 
         /* An un-recognized character should crash the program. */
         default:
-          error(EXIT_FAILURE, 0, "value to `--section' must only contain "
+          error(EXIT_FAILURE, 0, "value to '--section' must only contain "
                 "integer numbers and these special characters between them: "
-                "`,', `:', `*' when necessary. But it is `%s' (the first "
-                "non-acceptable character is `%c').\n\n"
+                "',', ':', '*' when necessary. But it is '%s' (the first "
+                "non-acceptable character is '%c').\n\n"
                 "Please run the command below to learn more about this "
                 "option in Gnuastro's Crop program:\n\n"
                 "    $ info gnuastro \"Crop section syntax\"\n", p->section,
@@ -159,7 +159,7 @@ onecrop_parse_section(struct cropparams *p, size_t *dsize,
       /* Make sure if a number was read at all? */
       if(tailptr==pt)           /* No number was read!                 */
         {
-          if(add) read=0;       /* We have a * followed by `:' or `,'. */
+          if(add) read=0;       /* We have a * followed by ':' or ','. */
           else    continue;
         }
 
@@ -269,7 +269,7 @@ polygonmask(struct onecropparams *crp, void *array, long 
*fpixel_i,
       gal_polygon_to_counterclockwise(crp->ipolygon, nvertices);
     }
 
-  /* Fill the final polygon vertice positions within `ipolygon' and also
+  /* Fill the final polygon vertice positions within 'ipolygon' and also
      the fpixel_i coordinates from all the vertices to bring them into the
      crop image coordinates. */
   for(i=0;i<nvertices;++i)
@@ -280,9 +280,9 @@ polygonmask(struct onecropparams *crp, void *array, long 
*fpixel_i,
 
   /* Print a warning if we done the sorting, _and_ the sorted polygon is
      concave, _and_ the user hasn't activated the quiet mode. Note that we
-     could'n do this immediately after calling `gal_polygon_vertices_sort'
+     could'n do this immediately after calling 'gal_polygon_vertices_sort'
      because that function doesn't touch the actual vertice values, it only
-     fills `ordinds'. */
+     fills 'ordinds'. */
   if(crp->p->polygonsort
      && !crp->p->cp.quiet
      && !gal_polygon_is_convex(ipolygon, nvertices) )
@@ -290,7 +290,7 @@ polygonmask(struct onecropparams *crp, void *array, long 
*fpixel_i,
           "polygon, but there is no unique solution to the sorting of "
           "concave polygons. Please check the cropped image, if it doesn't "
           "correspond to your desired polygon, sort the vertices yourself "
-          "in counter-clockwise order _and_ don't use the `--polygonsort' "
+          "in counter-clockwise order _and_ don't use the '--polygonsort' "
           "option", __func__);
 
   /* Set the function for checking if a point is inside the polygon. For
@@ -468,7 +468,7 @@ onecrop_flpixel(struct onecropparams *crp)
         }
       else
         {
-          /* Convert `crp->world' (in WCS) into `pixcrd' (image coord). */
+          /* Convert 'crp->world' (in WCS) into 'pixcrd' (image coord). */
           if(wcss2p(p->imgs[crp->in_ind].wcs, ncoord, ndim, crp->world,
                     phi, theta, imgcrd, pixcrd, &status) )
             if(status)
@@ -548,9 +548,9 @@ onecrop_make_array(struct onecropparams *crp, long 
*fpixel_i,
 
 
   /* Create the FITS file with a blank first extension, then close it, so
-     with the next `fits_open_file', we build the image in the second
+     with the next 'fits_open_file', we build the image in the second
      extension. This way, atleast for Gnuastro's outputs, we can
-     consistently use `-h1' (something like how you count columns, or
+     consistently use '-h1' (something like how you count columns, or
      generally everything from 1). */
   if(fits_create_file(&ofp, outname, &status))
     gal_fits_io_error(status, "creating file");
@@ -569,7 +569,7 @@ onecrop_make_array(struct onecropparams *crp, long 
*fpixel_i,
   /* When CFITSIO creates a FITS extension it adds two comments linking to
      the FITS paper. Since we are mentioning the version of CFITSIO and
      only use its routines to read/write from/to FITS files, this is
-     redundant. If `status!=0', then `gal_fits_io_error' will abort, but in
+     redundant. If 'status!=0', then 'gal_fits_io_error' will abort, but in
      case CFITSIO doesn't write the comments, status will become
      non-zero. So we are resetting it to zero after these (because not
      being able to delete them isn't an error). */
@@ -590,7 +590,7 @@ onecrop_make_array(struct onecropparams *crp, long 
*fpixel_i,
                       &status);
       gal_fits_io_error(status, "writing BUNIT");
     }
-  rkey->name=NULL;              /* `name' wasn't allocated. */
+  rkey->name=NULL;              /* 'name' wasn't allocated. */
   gal_data_free(rkey);
 
 
@@ -646,13 +646,13 @@ onecrop_make_array(struct onecropparams *crp, long 
*fpixel_i,
 /* The starting and ending points are set in the onecropparams structure
    for one crop from one image. Crop that region out of the input.
 
-   On`basekeyname': To be safe, GCC 8.1 (and persumably later versions)
+   On'basekeyname': To be safe, GCC 8.1 (and persumably later versions)
    assumes that we are writing the full statically allocated space into
-   `regioinkey'! So it prints a warning that you may be writing outside the
+   'regioinkey'! So it prints a warning that you may be writing outside the
    allocated space! With these variables, we are ultimately just writing
    the file counters, so we can never (with current techologies!!!) exceed
-   `FLEN_KEYWORD' (which is 75 characters). To avoid compiler warnings, we
-   are just removing a few characters (`FLEN_KEYWORD-5') to allow the
+   'FLEN_KEYWORD' (which is 75 characters). To avoid compiler warnings, we
+   are just removing a few characters ('FLEN_KEYWORD-5') to allow the
    suffix and remove the warnings. */
 void
 onecrop(struct onecropparams *crp)
@@ -663,14 +663,14 @@ onecrop(struct onecropparams *crp)
   void *array;
   int status=0, anynul=0;
   fitsfile *ifp=crp->infits, *ofp;
-  char basekeyname[FLEN_KEYWORD-5];     /* `-5': avoid gcc 8.1+ warnings! */
+  char basekeyname[FLEN_KEYWORD-5];     /* '-5': avoid gcc 8.1+ warnings! */
   gal_fits_list_key_t *headers=NULL;    /* See above comment for more.    */
   size_t i, j, cropsize=1, ndim=img->ndim;
   char region[FLEN_VALUE], regionkey[FLEN_KEYWORD];
   long fpixel_o[MAXDIM], lpixel_o[MAXDIM], inc[MAXDIM];
   long naxes[MAXDIM], fpixel_i[MAXDIM], lpixel_i[MAXDIM];
 
-  /* Fill the `naxes' and `inc' arrays. */
+  /* Fill the 'naxes' and 'inc' arrays. */
   for(i=0;i<ndim;++i)
     {
       inc[ i ]   = 1;
@@ -679,7 +679,7 @@ onecrop(struct onecropparams *crp)
 
 
   /* Find the first and last pixel of this crop box from this input
-     image. Then copy the first and last pixels into the `_i' arrays.*/
+     image. Then copy the first and last pixels into the '_i' arrays.*/
   onecrop_flpixel(crp);
   memcpy(fpixel_i, crp->fpixel, ndim*sizeof *fpixel_i);
   memcpy(lpixel_i, crp->lpixel, ndim*sizeof *lpixel_i);
@@ -741,7 +741,7 @@ onecrop(struct onecropparams *crp)
 
 
       /* Write the selected region of this image as a string to include as
-         a FITS keyword. Then we want to delete the last coma `,'.*/
+         a FITS keyword. Then we want to delete the last coma ','.*/
       j=0;
       for(i=0;i<ndim;++i)
         j += sprintf(&region[j], "%ld:%ld,", fpixel_i[i], lpixel_i[i]);
@@ -860,7 +860,7 @@ onecrop_center_filled(struct onecropparams *crp)
   free(array);
 
   /* CFITSIO already checks if there are any blank pixels. If there are,
-     then `anynul' will be 1, if there aren't it will be 0. So the output
+     then 'anynul' will be 1, if there aren't it will be 0. So the output
      of this function is just the inverse of that number. */
   return !anynul;
 }
diff --git a/bin/crop/ui.c b/bin/crop/ui.c
index 2df86fd..8cda243 100644
--- a/bin/crop/ui.c
+++ b/bin/crop/ui.c
@@ -173,18 +173,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct cropparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -229,14 +229,14 @@ ui_parse_coordinate_mode(struct argp_option *option, char 
*arg,
       if      (!strcmp(arg, "img")) *(int *)(option->value)=IMGCROP_MODE_IMG;
       else if (!strcmp(arg, "wcs")) *(int *)(option->value)=IMGCROP_MODE_WCS;
       else
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`--mode') not recognized as an input mode. "
-                      "Recognized values are `img' and `wcs'. This option "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'--mode') not recognized as an input mode. "
+                      "Recognized values are 'img' and 'wcs'. This option "
                       "is necessary to identify the nature of your input "
                       "coordinates.\n\n"
                       "Please run the following command for more "
-                      "information (press the `SPACE' key to go down and "
-                      "`q' to return to the command-line):\n\n"
+                      "information (press the 'SPACE' key to go down and "
+                      "'q' to return to the command-line):\n\n"
                       "    $ info gnuastro \"Crop modes\"\n", arg);
       return NULL;
     }
@@ -265,7 +265,7 @@ ui_parse_coordinate_mode(struct argp_option *option, char 
*arg,
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct cropparams *p)
 {
@@ -281,8 +281,8 @@ ui_read_check_only_options(struct cropparams *p)
     {
     case 0:
       error(EXIT_FAILURE, 0, "no crop definition. You can use any of the "
-            "following options to define the crop(s): `--center', "
-            "`--catalog', `--section', or `--polygon'. Please run this "
+            "following options to define the crop(s): '--center', "
+            "'--catalog', '--section', or '--polygon'. Please run this "
             "command for more information:\n\n"
             "    $ info gnuastro \"Crop modes\"\n");
     case 1:
@@ -293,10 +293,10 @@ ui_read_check_only_options(struct cropparams *p)
             "run, only one crop definition is acceptable on the "
             "command-line or in configuration files. You have called: "
             "%s%s%s%s\b\b.",
-            p->center!=NULL  ? "`--center', " : "",
-            p->catname!=NULL ? "`--catalog', " : "",
-            p->section!=NULL ? "`--section', " : "",
-            p->polygon!=NULL ? "`--polygon', " : "");
+            p->center!=NULL  ? "'--center', " : "",
+            p->catname!=NULL ? "'--catalog', " : "",
+            p->section!=NULL ? "'--section', " : "",
+            p->polygon!=NULL ? "'--polygon', " : "");
     }
 
 
@@ -306,7 +306,7 @@ ui_read_check_only_options(struct cropparams *p)
       darray=p->width->array;
       for(i=0;i<p->width->size;++i)
         if(darray[i]<=0.0f)
-          error(EXIT_FAILURE, 0, "%g is <=0. The values to the `--width' "
+          error(EXIT_FAILURE, 0, "%g is <=0. The values to the '--width' "
                 "option must be larger than zero. %g is input number %d to "
                 "this option", darray[i], darray[i], i+1);
     }
@@ -317,23 +317,23 @@ ui_read_check_only_options(struct cropparams *p)
     {
       /* We only want a single number. */
       if(p->incheckcenter->size>1)
-        error(EXIT_FAILURE, 0, "%zu values given to `--checkcenter'. This "
+        error(EXIT_FAILURE, 0, "%zu values given to '--checkcenter'. This "
               "option only takes one value currently",
               p->incheckcenter->size);
 
       darray=p->incheckcenter->array;
       if(*darray<0.0f)
         error(EXIT_FAILURE, 0, "negative value (%f) given to "
-              "`--checkcenter'. This option only takes positive values",
+              "'--checkcenter'. This option only takes positive values",
               *darray);
     }
 
 
   /* Section is currently only defined in Image mode. */
   if(p->section && p->mode!=IMGCROP_MODE_IMG)
-    error(EXIT_FAILURE, 0, "The `--section' option is only available in "
+    error(EXIT_FAILURE, 0, "The '--section' option is only available in "
           "image coordinate mode, currently it doesn't work with WCS mode. "
-          "Please run with `--mode=img' and if necessary, change the "
+          "Please run with '--mode=img' and if necessary, change the "
           "values accordingly");
 
 
@@ -343,15 +343,15 @@ ui_read_check_only_options(struct cropparams *p)
       /* If the searchin option has been given. */
       if(p->cp.searchin==GAL_TABLE_SEARCH_INVALID)
         error(EXIT_FAILURE, 0, "%s: no field specified to search for "
-              "columns. Please use the `--searchin' option to specify "
-              "which column meta-data you would like to search in: `name', "
-              "`unit' and `comment'. You may also select columns by their "
+              "columns. Please use the '--searchin' option to specify "
+              "which column meta-data you would like to search in: 'name', "
+              "'unit' and 'comment'. You may also select columns by their "
               "number, which won't use this option, but for complentess its "
               "best for this option to have a value", p->catname);
 
       /* If it is a FITS file, we need the HDU. */
       if( gal_fits_name_is_fits(p->catname) && p->cathdu==NULL )
-        error(EXIT_FAILURE, 0, "%s: no hdu given. Please use the `--cathdu' "
+        error(EXIT_FAILURE, 0, "%s: no hdu given. Please use the '--cathdu' "
               "option to specify which extension contains the table",
               p->catname);
 
@@ -360,7 +360,7 @@ ui_read_check_only_options(struct cropparams *p)
          given, so we only need to check one of the two in each couple. */
       if(p->coordcol==NULL)
         error(EXIT_FAILURE, 0, "no crop center columns given to read from "
-              "the input catalog (`%s'). Please use `--coordcol' several "
+              "the input catalog ('%s'). Please use '--coordcol' several "
               "times (depending on dimensionality) to specify the column "
               "keeping the center position the respective dimension.\n\n"
               "For more information on how to select columns in Gnuastro, "
@@ -383,7 +383,7 @@ ui_read_check_only_options(struct cropparams *p)
         error(EXIT_FAILURE, 0, "a polygon has to have 3 or more vertices, "
               "you have only given %zu", p->nvertices);
       if(p->polygonout && p->numin>1)
-        error(EXIT_FAILURE, 0, "currently in WCS mode, `--polygonout' can "
+        error(EXIT_FAILURE, 0, "currently in WCS mode, '--polygonout' can "
               "only be set to zero when there is one image, you have given "
               "%zu images. For multiple images the region will be very "
               "large. It is best if you first crop out the larger region "
@@ -406,7 +406,7 @@ ui_read_check_only_options(struct cropparams *p)
 
   /* If we are in WCS mode, noblanks must be off */
   if(p->mode==IMGCROP_MODE_WCS && p->noblank)
-    error(EXIT_FAILURE, 0, "`--noblanks` (`-b`) is only for image mode. "
+    error(EXIT_FAILURE, 0, "'--noblanks' ('-b') is only for image mode. "
           "You have called it with WCS mode");
 }
 
@@ -424,8 +424,8 @@ ui_check_options_and_arguments(struct cropparams *p)
   /* Make sure that a HDU is also given. */
   if(p->cp.hdu==NULL )
     error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-          "file, a HDU must also be specified, you can use the `--hdu' "
-          "(`-h') option and give it the HDU number (starting from "
+          "file, a HDU must also be specified, you can use the '--hdu' "
+          "('-h') option and give it the HDU number (starting from "
           "zero), extension name, or anything acceptable by CFITSIO");
 
   /* If in image mode, there should only be one input image. */
@@ -442,14 +442,14 @@ ui_check_options_and_arguments(struct cropparams *p)
   if(p->catname)
     {
       /* When multiple threads need to access a file, CFITSIO needs to be
-         configured with the `--enable-reentrant` option and we can only
-         know from the `fits_is_reentrant' function that came from CFITSIO
+         configured with the '--enable-reentrant' option and we can only
+         know from the 'fits_is_reentrant' function that came from CFITSIO
          version 3.30. */
 #if GAL_CONFIG_HAVE_FITS_IS_REENTRANT == 1
       if(p->cp.numthreads>1 && fits_is_reentrant()==0)
         {
           fprintf(stderr, "WARNING: CFITSIO was not configured with the "
-                  "`--enable-reentrant' option but you have asked to crop "
+                  "'--enable-reentrant' option but you have asked to crop "
                   "on %zu threads. Therefore only one thread will be used.\n\n"
                   "Please run the following command to learn more about "
                   "configuring CFITSIO:\n\n"
@@ -460,11 +460,11 @@ ui_check_options_and_arguments(struct cropparams *p)
       if(p->cp.numthreads>1)
         {
           fprintf(stderr, "WARNING: the installed CFITSIO version doesn't "
-                  "have `fits_is_reentrant' function (it is older than "
+                  "have 'fits_is_reentrant' function (it is older than "
                   "version 3.30). But you have asked to crop on %zu threads."
                   "Therefore only one thread will be used.\n\n"
                   "To avoid this warning, you can set the number of threads "
-                  "to one with `-N1' or update your installation of CFITSIO.",
+                  "to one with '-N1' or update your installation of CFITSIO.",
                   p->cp.numthreads);
           p->cp.numthreads=1;
         }
@@ -516,13 +516,13 @@ ui_set_img_sizes(struct cropparams *p)
   /* Make sure a width value is actually given. */
   if(p->width==NULL)
     error(EXIT_FAILURE, 0, "no crop width specified. When crops are "
-          "defined by their center (with `--center' or `--catalog') a "
-          "width is necessary (using the `--width' option)");
+          "defined by their center (with '--center' or '--catalog') a "
+          "width is necessary (using the '--width' option)");
 
   /* Make sure that the width array only has one element or the same number
      of elements as the input's dimensions. */
   if(p->width->size!=ndim && p->width->size!=1)
-    error(EXIT_FAILURE, 0, "%zu values give to `--width', but input is %zu "
+    error(EXIT_FAILURE, 0, "%zu values give to '--width', but input is %zu "
           "dimensions. It can only take either one value (same width in all "
           "dimensions), or the same number as the input's dimensions",
           p->width->size, ndim);
@@ -563,7 +563,7 @@ ui_set_img_sizes(struct cropparams *p)
                   "You can do the conversion to the dataset's WCS units "
                   "prior to calling Crop. Alternatively, you can specify "
                   "all the coordinates/sizes in image (not WCS) units and "
-                  "use the `--mode=img' option", warray[i], i+1, pwidth,
+                  "use the '--mode=img' option", warray[i], i+1, pwidth,
                   p->pixscale[i]);
 
           /* Write the single valued width in WCS and the image width for
@@ -610,7 +610,7 @@ ui_set_img_sizes(struct cropparams *p)
       /* Convert the floating point value to an integer. */
       p->checkcenter=GAL_DIMENSION_FLT_TO_INT(pcheckcenter);
 
-      /* If `checkcenter' isn't zero, but is even, convert it to an odd
+      /* If 'checkcenter' isn't zero, but is even, convert it to an odd
          number (so the actual center can be checked). */
       if(p->checkcenter && p->checkcenter%2==0) p->checkcenter += 1;
     }
@@ -641,9 +641,9 @@ ui_read_cols(struct cropparams *p)
          as the number of dimensions in the input dataset(s). */
       ncoordcols=gal_list_str_number(p->coordcol);
       if( ncoordcols < ndim)
-        error(EXIT_FAILURE, 0, "`--coordcol' was called %zu times, but the "
+        error(EXIT_FAILURE, 0, "'--coordcol' was called %zu times, but the "
               "input dataset%s %zu dimensions. Recall that through "
-              "`--coordcol' you are specifying the columns containing the "
+              "'--coordcol' you are specifying the columns containing the "
               "coordinates of the center of the crop in a catalog",
               ncoordcols, (p->numin==1?" has":"s have"), ndim);
 
@@ -652,7 +652,7 @@ ui_read_cols(struct cropparams *p)
       else if( ncoordcols > ndim )
         {
           /* Go over the columns find the last, but first initialize the
-             two (`lastcolstr' to avoid compiler warnings). */
+             two ('lastcolstr' to avoid compiler warnings). */
           lastcolstr=extracolstr=p->coordcol;
           for(i=0;i<ndim;++i)
             {
@@ -663,7 +663,7 @@ ui_read_cols(struct cropparams *p)
               extracolstr=extracolstr->next;
             }
 
-          /* Set the `next' element of the last node to NULL and free the
+          /* Set the 'next' element of the last node to NULL and free the
              extra ones. */
           lastcolstr->next=NULL;
           gal_list_str_free(extracolstr, 1);
@@ -673,7 +673,7 @@ ui_read_cols(struct cropparams *p)
     error(EXIT_FAILURE, 0, "no coordinate columns specified. When a catalog"
           "is given, it is necessary to identify which columns identify "
           "the coordinate values in which dimension.\n\n"
-          "You can do this by calling `--coordcol' multiple times, the "
+          "You can do this by calling '--coordcol' multiple times, the "
           "order must be in the same order as the input's dimensions. "
           "For more information on how to select columns in Gnuastro, "
           "please run the following command:\n\n"
@@ -711,7 +711,7 @@ ui_read_cols(struct cropparams *p)
     gal_tableintern_error_col_selection(p->catname, p->cathdu, "too many "
                                         "columns were selected by the given "
                                         "values to the options ending in "
-                                        "`col'.");
+                                        "'col'.");
 
 
   /* Put the information in each column in the proper place. */
@@ -747,7 +747,7 @@ ui_read_cols(struct cropparams *p)
         }
 
       /* Sanity check and clean up.  Note that it might happen that the
-         input structure is already freed. In that case, `corrtype' will be
+         input structure is already freed. In that case, 'corrtype' will be
          NULL. */
       if(corrtype)
         {
@@ -759,7 +759,7 @@ ui_read_cols(struct cropparams *p)
                   colname);
 
           /* Free the unnecessary sturcture information. The correct-type
-             (`corrtype') data structure's array is necessary for later
+             ('corrtype') data structure's array is necessary for later
              steps, so its pointer has been copied in the main program's
              structure. Hence, we should set the structure's pointer to
              NULL so the important data isn't freed.*/
@@ -784,7 +784,7 @@ ui_prepare_center(struct cropparams *p)
   errno=0;
   p->centercoords=malloc(ndim*sizeof *p->centercoords);
   if( p->centercoords==NULL )
-    error(EXIT_FAILURE, 0, "%s: %zu bytes for `p->centercoords'",
+    error(EXIT_FAILURE, 0, "%s: %zu bytes for 'p->centercoords'",
           __func__, ndim*sizeof *p->centercoords);
 
 
@@ -904,7 +904,7 @@ ui_preparations(struct cropparams *p)
           error(EXIT_FAILURE, 0, "the WCS structure of %s (hdu: %s) "
                 "image is not recognized. So WCS mode cannot be used "
                 "as input coordinates. You can try with pixel coordinates "
-                "with `--mode=img'", img->name, p->cp.hdu);
+                "with '--mode=img'", img->name, p->cp.hdu);
       fits_close_file(tmpfits, &status);
       gal_fits_io_error(status, NULL);
 
@@ -927,17 +927,17 @@ ui_preparations(struct cropparams *p)
              correspond to the dimensionality of the data. */
           if(p->center && p->center->size!=firstndim)
             error(EXIT_FAILURE, 0, "%s (hdu %s) has %zu dimensions, but "
-                  "%zu coordinates were given to `--center'", img->name,
+                  "%zu coordinates were given to '--center'", img->name,
                   p->cp.hdu, firstndim, p->center->size);
         }
       else
         {
           if(firsttype!=p->type)
-            error(EXIT_FAILURE, 0, "%s: type is `%s' while previous input(s) "
-                  "were `%s' type. All inputs must have the same pixel data "
+            error(EXIT_FAILURE, 0, "%s: type is '%s' while previous input(s) "
+                  "were '%s' type. All inputs must have the same pixel data "
                   "type.\n\nYou can use Gnuastro's Arithmetic program to "
-                  "convert `%s' to `%s', please run this command for more "
-                  "information (press `SPACE' for going down and `q' to "
+                  "convert '%s' to '%s', please run this command for more "
+                  "information (press 'SPACE' for going down and 'q' to "
                   "return to the command-line):\n\n"
                   "    $ info Arithmetic\n",
                   img->name, gal_type_name(p->type, 1),
@@ -962,12 +962,12 @@ ui_preparations(struct cropparams *p)
           p->imgs->name, p->imgs->ndim);
 
 
-  /* Unify central crop methods into `p->centercoords'. */
+  /* Unify central crop methods into 'p->centercoords'. */
   if(p->catname || p->center)
     ui_prepare_center(p);
 
 
-  /* `ui_read_cols' set the number of output crops when a catalog was
+  /* 'ui_read_cols' set the number of output crops when a catalog was
      given, in all other cases, we only have one output. */
   if(p->catname==NULL) p->numout=1;
 
@@ -1007,9 +1007,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
cropparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/crop/wcsmode.c b/bin/crop/wcsmode.c
index 179af2e..cda480f 100644
--- a/bin/crop/wcsmode.c
+++ b/bin/crop/wcsmode.c
@@ -95,8 +95,8 @@ wcsmode_check_prepare(struct cropparams *p, struct inputimgs 
*img)
   if( strcmp(wcs->ctype[0], "RA---TAN")
       || strcmp(wcs->ctype[1], "DEC--TAN") )
     error(EXIT_FAILURE, 0, "currently the only WCS types usable are "
-          "`RA---TAN' and `DEC--TAN' for the first and second axises "
-          "respectively. The WCS types of `%s' (hdu %s) are `%s' and `%s' "
+          "'RA---TAN' and 'DEC--TAN' for the first and second axises "
+          "respectively. The WCS types of '%s' (hdu %s) are '%s' and '%s' "
           "respectively", img->name, p->cp.hdu, wcs->ctype[0], wcs->ctype[1]);
 
 
@@ -127,7 +127,7 @@ wcsmode_check_prepare(struct cropparams *p, struct 
inputimgs *img)
     p->pixscale=pixscale;
 
 
-  /* Set the coordinates of the dataset's corners. Note that `dsize' is in
+  /* Set the coordinates of the dataset's corners. Note that 'dsize' is in
      C order, while pixcrd is in FITS order.*/
   switch(ndim)
     {
@@ -168,8 +168,8 @@ wcsmode_check_prepare(struct cropparams *p, struct 
inputimgs *img)
 
 
   /* Fill in the size of the dataset in WCS from the first pixel in the
-     image. Note that `dsize' is in C axises, while the `pixscale',
-     `corners' and `sized' are in FITS axises. */
+     image. Note that 'dsize' is in C axises, while the 'pixscale',
+     'corners' and 'sized' are in FITS axises. */
   if(ndim==2)
     {
       img->sized[0] = ( img->dsize[1] * p->pixscale[0]
@@ -187,17 +187,17 @@ wcsmode_check_prepare(struct cropparams *p, struct 
inputimgs *img)
 
   /* In case the image crosses the equator, we will calculate these values
      here so later on, we don't have to calculate them on every check. See
-     the explanation above `point_in_dataset'.
+     the explanation above 'point_in_dataset'.
 
      Note that in both 2D and 3D data, the declination is in the second
      coordinate (index 1). */
   if( img->corners[1] * (img->corners[1]+img->sized[1]) < 0 )
     {
-      /* re in the comments above `point_in_dataset'. */
+      /* re in the comments above 'point_in_dataset'. */
       img->equatorcorr[0]=img->corners[0]
         -0.5*img->sized[0]*(1-cos(img->corners[1]*M_PI/180));
 
-      /* sre in the comments above `point_in_dataset'. */
+      /* sre in the comments above 'point_in_dataset'. */
       img->equatorcorr[1]=img->sized[0]*cos(img->corners[1]*M_PI/180);
     }
 
@@ -385,14 +385,14 @@ wcsmode_crop_corners(struct onecropparams *crp)
 
 
   /* In case the crop crosses the equator, then we need these two
-     corrections. See the complete explanations above `point_in_dataset'. */
+     corrections. See the complete explanations above 'point_in_dataset'. */
   if(crp->corners[1]*(crp->corners[1]+crp->sized[1]) < 0 )
     {
-      /* re in the explanations above `point_in_dataset'. */
+      /* re in the explanations above 'point_in_dataset'. */
       crp->equatorcorr[0]=crp->corners[0]
         -0.5*crp->sized[0]*(1-cos(crp->corners[1]*M_PI/180));
 
-      /* sre in the explanations above `point_in_dataset'. */
+      /* sre in the explanations above 'point_in_dataset'. */
       crp->equatorcorr[1]=crp->sized[0]*cos(crp->corners[1]*M_PI/180);
     }
 
@@ -559,7 +559,7 @@ fillcrpipolygon(struct onecropparams *crp)
                                         dp>=d1     &&      dp<=d1+sd
 
    For RA, things become a little more complicated (recall that
-   r1>r3). `n` is defined as half of the extra space between the top
+   r1>r3). 'n' is defined as half of the extra space between the top
    and bottom lines of the two trapezoids.
 
    (North) n=0.5*sr*(1/cos(dp-d1)-1) ==> rp<=r1+n   &&   rp>=r1-sr-n
@@ -572,7 +572,7 @@ fillcrpipolygon(struct onecropparams *crp)
    -------------------------
 
    When d1*(d1+sd)<0, the image crosses the equator (d1 is negative
-   and d1+sd is positive). In this case, we define `re` and `sre` as
+   and d1+sd is positive). In this case, we define 're' and 'sre' as
    an equivalent of r1 and sr but on the equator:
 
        re=r1-0.5*sr*(1-cos(d1))   &&   sre=sr*cos(d1)
diff --git a/bin/fits/Makefile.am b/bin/fits/Makefile.am
index af4a3a1..ed5d8c6 100644
--- a/bin/fits/Makefile.am
+++ b/bin/fits/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astfits
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astfits_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                 $(MAYBE_NORPATH)
 
diff --git a/bin/fits/astfits.conf b/bin/fits/astfits.conf
index 9cfa44b..5270e89 100644
--- a/bin/fits/astfits.conf
+++ b/bin/fits/astfits.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/fits/authors-cite.h b/bin/fits/authors-cite.h
index dd29fc3..ddf8a3d 100644
--- a/bin/fits/authors-cite.h
+++ b/bin/fits/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/fits/fits.c b/bin/fits/fits.c
index e4cc7eb..466cbd5 100644
--- a/bin/fits/fits.c
+++ b/bin/fits/fits.c
@@ -58,8 +58,8 @@ fits_has_error(struct fitsparams *p, int actioncode, char 
*string, int status)
     case FITS_ACTION_REMOVE:        action="removed";      break;
 
     default:
-      error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at `%s' so we "
-            "can fix this problem. The value of `actioncode' must not be %d",
+      error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at '%s' so we "
+            "can fix this problem. The value of 'actioncode' must not be %d",
             __func__, PACKAGE_BUGREPORT, actioncode);
     }
 
@@ -114,7 +114,7 @@ fits_print_extension_info(struct fitsparams *p)
                           "number of rows and columns.");
   gal_list_data_add_alloc(&cols, NULL, GAL_TYPE_STRING, 1, &numext, NULL, 1,
                           -1, 1, "HDU_TYPE", "name", "Image data type or "
-                          "`table' format (ASCII or binary).");
+                          "'table' format (ASCII or binary).");
   gal_list_data_add_alloc(&cols, NULL, GAL_TYPE_STRING, 1, &numext, NULL, 1,
                           -1, 1, "EXTNAME", "name", "Extension name of this "
                           "HDU (EXTNAME in FITS).");
@@ -154,7 +154,7 @@ fits_print_extension_info(struct fitsparams *p)
           break;
 
         default:
-          error(EXIT_FAILURE, 0, "%s: a bug! the `hdutype' code %d not "
+          error(EXIT_FAILURE, 0, "%s: a bug! the 'hdutype' code %d not "
                 "recognized", __func__, hdutype);
         }
 
@@ -178,9 +178,9 @@ fits_print_extension_info(struct fitsparams *p)
       status=0;
 
 
-      /* Write the size into a string. `sprintf' returns the number of
-         written characters (excluding the `\0'). So for each dimension's
-         size that is written, we add to `nc' (the number of
+      /* Write the size into a string. 'sprintf' returns the number of
+         written characters (excluding the '\0'). So for each dimension's
+         size that is written, we add to 'nc' (the number of
          characters). Note that FITS allows blank extensions, in those
          cases, return "0". */
       if(ndim>0)
@@ -230,11 +230,11 @@ fits_print_extension_info(struct fitsparams *p)
   if(!p->cp.quiet)
     {
       printf("%s\nRun on %s-----\n", PROGRAM_STRING, ctime(&p->rawtime));
-      printf("HDU (extension) information: `%s'.\n", p->filename);
-      printf(" Column 1: Index (counting from 0, usable with `--hdu').\n");
-      printf(" Column 2: Name (`EXTNAME' in FITS standard, usable with "
-             "`--hdu').\n");
-      printf(" Column 3: Image data type or `table' format (ASCII or "
+      printf("HDU (extension) information: '%s'.\n", p->filename);
+      printf(" Column 1: Index (counting from 0, usable with '--hdu').\n");
+      printf(" Column 2: Name ('EXTNAME' in FITS standard, usable with "
+             "'--hdu').\n");
+      printf(" Column 3: Image data type or 'table' format (ASCII or "
              "binary).\n");
       printf(" Column 4: Size of data in HDU.\n");
       printf("-----\n");
@@ -325,7 +325,7 @@ fits_hdu_remove(struct fitsparams *p, int *r)
 
 
 
-/* This is similar to the library's `gal_fits_open_to_write', except that
+/* This is similar to the library's 'gal_fits_open_to_write', except that
    it won't create an empty first extension.*/
 fitsfile *
 fits_open_to_write_no_blank(char *filename)
@@ -387,7 +387,7 @@ fits_hdu_copy(struct fitsparams *p, int cut1_copy0, int *r)
         *r=fits_has_error(p, FITS_ACTION_COPY, hdu, status);
       status=0;
 
-      /* If this is a `cut' operation, then remove the extension. */
+      /* If this is a 'cut' operation, then remove the extension. */
       if(cut1_copy0)
         {
           if( fits_delete_hdu(in, &hdutype, &status) )
@@ -414,7 +414,7 @@ fits(struct fitsparams *p)
 
   switch(p->mode)
     {
-    /* Keywords, we have a separate set of functions in `keywords.c'. */
+    /* Keywords, we have a separate set of functions in 'keywords.c'. */
     case FITS_MODE_KEY:
       r=keywords(p);
       break;
diff --git a/bin/fits/keywords.c b/bin/fits/keywords.c
index 7458d0f..59a8070 100644
--- a/bin/fits/keywords.c
+++ b/bin/fits/keywords.c
@@ -92,7 +92,7 @@ keywords_rename_keys(struct fitsparams *p, fitsfile **fptr, 
int *r)
       str=gal_list_str_pop(&p->rename);
 
       /* Take a copy of the input string for error reporting, because
-         `strtok' will write into the array. */
+         'strtok' will write into the array. */
       gal_checkset_allocate_copy(str, &copy);
 
       /* Tokenize the input. */
@@ -101,18 +101,18 @@ keywords_rename_keys(struct fitsparams *p, fitsfile 
**fptr, int *r)
 
       /* Make sure both elements were read. */
       if(from==NULL || to==NULL)
-        error(EXIT_FAILURE, 0, "`%s' could not be tokenized in order to "
+        error(EXIT_FAILURE, 0, "'%s' could not be tokenized in order to "
               "complete rename. There should be a space character "
               "or a comma (,) between the two keyword names. If you have "
               "used the space character, be sure to enclose the value to "
-              "the `--rename' option in double quotation marks", copy);
+              "the '--rename' option in double quotation marks", copy);
 
       /* Rename the keyword */
       fits_modify_name(*fptr, from, to, &status);
       if(status) *r=fits_has_error(p, FITS_ACTION_RENAME, from, status);
       status=0;
 
-      /* Clean up the user's input string. Note that `strtok' just changes
+      /* Clean up the user's input string. Note that 'strtok' just changes
          characters within the allocated string, no extra allocation is
          done. */
       free(str);
@@ -140,7 +140,7 @@ keywords_write_set_value(struct fitsparams *p, fitsfile 
**fptr,
         return 1;
       else
         {
-          /* Calculate and write the `CHECKSUM' and `DATASUM' keywords. */
+          /* Calculate and write the 'CHECKSUM' and 'DATASUM' keywords. */
           if( fits_write_chksum(*fptr, &status) )
             gal_fits_io_error(status, NULL);
 
@@ -161,7 +161,7 @@ keywords_write_set_value(struct fitsparams *p, fitsfile 
**fptr,
     }
   else
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
-          "fix the problem. The `keyname' value `%s' is not "
+          "fix the problem. The 'keyname' value '%s' is not "
           "recognized as one with no value", __func__,
           PACKAGE_BUGREPORT, keyll->keyname);
 
@@ -236,9 +236,9 @@ keywords_write_update(struct fitsparams *p, fitsfile **fptr,
                 gal_fits_io_error(status, NULL);
             }
           else
-            error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at `%s' so "
+            error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at '%s' so "
                   "we can fix this problem. The value %d is not valid for "
-                  "`u1w2'", __func__, PACKAGE_BUGREPORT, u1w2);
+                  "'u1w2'", __func__, PACKAGE_BUGREPORT, u1w2);
 
           /* Add the unit (if one was given). */
           if(keyll->unit
@@ -314,7 +314,7 @@ keywords_verify(struct fitsparams *p, fitsfile **fptr)
            "Checking integrity of %s (hdu %s)\n"
            "%s"
            "--------\n"
-           "Basic info (remove all extra info with `--quiet'):\n"
+           "Basic info (remove all extra info with '--quiet'):\n"
            "    - DATASUM: verifies only the data (not keywords).\n"
            "    - CHECKSUM: verifies data and keywords.\n"
            "They can be added-to/updated-in an extension/HDU with:\n"
@@ -345,13 +345,13 @@ keywords_copykeys(struct fitsparams *p, char *inkeys, 
size_t numinkeys)
   long initial;
   fitsfile *fptr;
 
-  /* Initial sanity check. Since `numinkeys' includes `END' (counting from
+  /* Initial sanity check. Since 'numinkeys' includes 'END' (counting from
      1, as we do here), the first keyword must not be larger OR EQUAL to
-     `numinkeys'. */
+     'numinkeys'. */
   if(p->copykeysrange[0]>=numinkeys)
     error(EXIT_FAILURE, 0, "%s (hdu %s): first keyword number give to "
-          "`--copykeys' (%ld) is larger than the number of keywords in this "
-          "header (%zu, including the `END' keyword)", p->filename, p->cp.hdu,
+          "'--copykeys' (%ld) is larger than the number of keywords in this "
+          "header (%zu, including the 'END' keyword)", p->filename, p->cp.hdu,
           p->copykeysrange[0], numinkeys);
 
   /* If the user wanted to count from the end (by giving a negative value),
@@ -365,7 +365,7 @@ keywords_copykeys(struct fitsparams *p, char *inkeys, 
size_t numinkeys)
       /* Sanity check. */
       if(p->copykeysrange[0]>=p->copykeysrange[1])
         error(EXIT_FAILURE, 0, "%s (hdu %s): the last keyword given to "
-              "`--copykeys' (%ld, or %ld after counting from the bottom) "
+              "'--copykeys' (%ld, or %ld after counting from the bottom) "
               "is earlier than the first (%ld)", p->filename, p->cp.hdu,
               initial, p->copykeysrange[1], p->copykeysrange[0]);
     }
@@ -373,8 +373,8 @@ keywords_copykeys(struct fitsparams *p, char *inkeys, 
size_t numinkeys)
   /* Final sanity check (on range limit). */
   if(p->copykeysrange[1]>=numinkeys)
     error(EXIT_FAILURE, 0, "%s (hdu %s): second keyword number give to "
-          "`--copykeys' (%ld) is larger than the number of keywords in this "
-          "header (%zu, including the `END' keyword)", p->filename, p->cp.hdu,
+          "'--copykeys' (%ld) is larger than the number of keywords in this "
+          "header (%zu, including the 'END' keyword)", p->filename, p->cp.hdu,
           p->copykeysrange[1], numinkeys);
 
 
@@ -417,11 +417,11 @@ keywords_date_to_seconds(struct fitsparams *p, fitsfile 
*fptr)
   /* Print the result (for the sub-seconds, print everything after the */
   if( !p->cp.quiet )
     {
-      printf("%s (hdu %s), key `%s': %s\n", p->filename, p->cp.hdu,
+      printf("%s (hdu %s), key '%s': %s\n", p->filename, p->cp.hdu,
              p->datetosec, fitsdate);
       printf("Seconds since 1970/01/01 (00:00:00): %zu%s\n\n", seconds,
              subsecstr?subsecstr:"");
-      printf("(To suppress verbose output, run with `-q')\n");
+      printf("(To suppress verbose output, run with '-q')\n");
     }
   else
     printf("%zu%s\n", seconds, subsecstr?subsecstr:"");
@@ -454,12 +454,12 @@ keywords_date_to_seconds(struct fitsparams *p, fitsfile 
*fptr)
 /***********************************************************************/
 /* NOTE ON CALLING keywords_open FOR EACH OPERATION:
 
-   `keywords_open' is being called individually for each separate operation
+   'keywords_open' is being called individually for each separate operation
    because the necessary permissions differ: when the user only wants to
    read keywords, they don't necessarily need write permissions. So if they
    haven't asked for any writing/editing operation, we shouldn't open in
    write-mode. Because the user might not have the permissions to write and
-   they might not want to write. `keywords_open' will only open the file
+   they might not want to write. 'keywords_open' will only open the file
    once (if the pointer is already allocated, it won't do anything). */
 int
 keywords(struct fitsparams *p)
diff --git a/bin/fits/ui.c b/bin/fits/ui.c
index 9beea3e..ae1f116 100644
--- a/bin/fits/ui.c
+++ b/bin/fits/ui.c
@@ -153,18 +153,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct fitsparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -228,13 +228,13 @@ ui_check_copykeys(struct fitsparams *p)
   /* For copykeys, an output filename is mandatory. */
   if(p->cp.output==NULL || p->outhdu==NULL)
     error(EXIT_FAILURE, 0, "an output FITS extension (in an existing "
-          "FITS file, specified with the `--output' and `--outhdu') are "
-          "mandatory for running `--copykeys'");
+          "FITS file, specified with the '--output' and '--outhdu') are "
+          "mandatory for running '--copykeys'");
 
   /* Initialize the values. */
   p->copykeysrange[0]=p->copykeysrange[1]=GAL_BLANK_LONG;
 
-  /* Parse the string: `forl': "first-or-last". */
+  /* Parse the string: 'forl': "first-or-last". */
   while(*pt!='\0')
     {
       switch(*pt)
@@ -245,7 +245,7 @@ ui_check_copykeys(struct fitsparams *p)
           break;
         case '.':
           error(EXIT_FAILURE, 0, "the numbers in the argument to "
-                "`--section` (`-s') have to be integers. You input "
+                "'--section' ('-s') have to be integers. You input "
                 "includes a float number: %s", p->copykeys);
           break;
         case ' ': case '\t':
@@ -268,10 +268,10 @@ ui_check_copykeys(struct fitsparams *p)
           break;
           */
         default:
-          error(EXIT_FAILURE, 0, "value to `--copykeys' must only contain "
+          error(EXIT_FAILURE, 0, "value to '--copykeys' must only contain "
                 "integer numbers and these special characters between them: "
-                "`:' when necessary. But it is `%s' (the first "
-                "non-acceptable character is `%c').\n", p->copykeys, *pt);
+                "':' when necessary. But it is '%s' (the first "
+                "non-acceptable character is '%c').\n", p->copykeys, *pt);
           break;
         }
 
@@ -292,17 +292,17 @@ ui_check_copykeys(struct fitsparams *p)
 
   /* Basic sanity checks. */
   if( p->copykeysrange[1]==GAL_BLANK_LONG )
-    error(EXIT_FAILURE, 0, "no ending keyword number given to `--copykeys'. "
+    error(EXIT_FAILURE, 0, "no ending keyword number given to '--copykeys'. "
           "If you want to copy all the keywords after a certain one "
-          "(without worrying about how many there are), you can use `-1'.\n\n"
+          "(without worrying about how many there are), you can use '-1'.\n\n"
           "For example if you want to copy all the keywords after the 20th, "
-          "you can use `--copykeys=20,-1'. Generally, you can use negative "
+          "you can use '--copykeys=20,-1'. Generally, you can use negative "
           "numbers for the last keyword number to count from the end.");
   if( p->copykeysrange[0]<=0 )
-    error(EXIT_FAILURE, 0, "the first number given to `--copykeys' must be "
+    error(EXIT_FAILURE, 0, "the first number given to '--copykeys' must be "
           "positive");
   if( p->copykeysrange[1]>=0 && p->copykeysrange[0]>=p->copykeysrange[1] )
-    error(EXIT_FAILURE, 0, "the first number (%ld) given to `--copykeys' "
+    error(EXIT_FAILURE, 0, "the first number (%ld) given to '--copykeys' "
           "must be smaller than the second (%ld)", p->copykeysrange[0],
           p->copykeysrange[1]);
 
@@ -317,7 +317,7 @@ ui_check_copykeys(struct fitsparams *p)
 
 
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct fitsparams *p)
 {
@@ -333,18 +333,18 @@ ui_read_check_only_options(struct fitsparams *p)
       if(p->cp.hdu==NULL)
         error(EXIT_FAILURE, 0, "a HDU (extension) is necessary for keyword "
               "related options but none was defined. Please use the "
-              "`--hdu' (or `-h') option to select one");
+              "'--hdu' (or '-h') option to select one");
 
       /* If Copy keys has been given, read it and make sure its setup. */
       if(p->copykeys)
         ui_check_copykeys(p);
 
-      /* Currently `datetosec' must be called alone. */
+      /* Currently 'datetosec' must be called alone. */
       if( p->datetosec
           && (p->date || p->comment || p->history || p->asis || p->delete
               || p->rename || p->update || p->write || p->verify
               || p->printallkeys || p->copykeys) )
-        error(EXIT_FAILURE, 0, "`--datetosec' cannot currently be called "
+        error(EXIT_FAILURE, 0, "'--datetosec' cannot currently be called "
               "with any other option");
 
       /* Set the operating mode. */
@@ -368,14 +368,14 @@ ui_read_check_only_options(struct fitsparams *p)
         {
           /* Make sure the other HDU-related options aren't called. */
           if(p->remove || p->copy || p->cut)
-            error(EXIT_FAILURE, 0, "`--numhdus' or `--datasum' options "
+            error(EXIT_FAILURE, 0, "'--numhdus' or '--datasum' options "
                   "must be called alone");
 
           /* Make sure the HDU is given for the datasum option. */
           if( p->datasum && p->cp.hdu==NULL )
             error(EXIT_FAILURE, 0, "a HDU (extension) is necessary for the "
-                  " `--checksum' or `--datasum' options. Please use the "
-                  "`--hdu' (or `-h') option to select one");
+                  " '--checksum' or '--datasum' options. Please use the "
+                  "'--hdu' (or '-h') option to select one");
         }
       else
         {
@@ -439,9 +439,9 @@ ui_check_options_and_arguments(struct fitsparams *p)
 /**************************************************************/
 /*****************       Preparations      ********************/
 /**************************************************************/
-/* The `--update' and `--write' options take multiple values for each
+/* The '--update' and '--write' options take multiple values for each
    keyword, so here, we tokenize them and put them into a
-   `gal_fits_list_key_t' list. */
+   'gal_fits_list_key_t' list. */
 static void
 ui_fill_fits_headerll(gal_list_str_t *input, gal_fits_list_key_t **output,
                       char *option_name)
@@ -459,12 +459,12 @@ ui_fill_fits_headerll(gal_list_str_t *input, 
gal_fits_list_key_t **output,
       i=0;
       tailptr=NULL;
 
-      /* `c' is created in case of an error, so the input value can be
+      /* 'c' is created in case of an error, so the input value can be
          reported. */
       errno=0;
       original=malloc(strlen(tmp->v)+1);
       if(original==NULL)
-        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `original'",
+        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'original'",
               __func__, strlen(tmp->v)+1);
       strcpy(original, tmp->v);
 
@@ -521,14 +521,14 @@ ui_fill_fits_headerll(gal_list_str_t *input, 
gal_fits_list_key_t **output,
 
       /* Make sure the keyname and value (if necessary) is given. */
       if( keyname==NULL || (needsvalue && value==NULL) )
-        error(EXIT_FAILURE, 0, "`--%s' option string (%s) can't be parsed. "
+        error(EXIT_FAILURE, 0, "'--%s' option string (%s) can't be parsed. "
               "The general expected format is (a comment string and unit "
               "are optional):\n\n"
               "    --%s=KEYWORD,value,\"a comment string\",unit\n\n"
               "Any space characters around the the comma (,) characters "
               "will be seen as part of the respective token.\n\n"
               "Note that there are some exceptions (where no value is need)"
-              "please see the manual for more (`$ info astfits')",
+              "please see the manual for more ('$ info astfits')",
               option_name, original, option_name);
       /*
       printf("\n\n-%s-\n-%s-\n-%s-\n-%s-\n", keyname, value, comment, unit);
@@ -547,7 +547,7 @@ ui_fill_fits_headerll(gal_list_str_t *input, 
gal_fits_list_key_t **output,
               errno=0;
               fvalue=lp=malloc(sizeof *lp);
               if(lp==NULL)
-                error(EXIT_FAILURE, errno, "%s: %zu bytes for `lp'",
+                error(EXIT_FAILURE, errno, "%s: %zu bytes for 'lp'",
                       __func__, sizeof *lp);
               *lp=l;
             }
@@ -563,7 +563,7 @@ ui_fill_fits_headerll(gal_list_str_t *input, 
gal_fits_list_key_t **output,
                   fvalue=dp=malloc(sizeof *dp);
                   if(dp==NULL)
                     error(EXIT_FAILURE, errno, "%s: allocating %zu bytes "
-                          "for `dp'", __func__, sizeof *dp);
+                          "for 'dp'", __func__, sizeof *dp);
                   *dp=d;
                 }
               else
@@ -628,9 +628,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
fitsparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/gnuastro.conf b/bin/gnuastro.conf
index 655617d..7c88e3d 100644
--- a/bin/gnuastro.conf
+++ b/bin/gnuastro.conf
@@ -4,13 +4,13 @@
 # Use the long option name of each paramter followed by
 # a value. The name and value should be separated by
 # atleast one of the following charaacters:
-# space, `,`, `=` or `:`
+# space, ',', '=' or ':'
 #
-# Run with `--help` option or read the manual for a full
+# Run with '--help' option or read the manual for a full
 # explanation of what each option means.
 #
 # NOTE I:  All counting is from zero, not one.
-# NOTE II: Lines starting with `#` are ignored.
+# NOTE II: Lines starting with '#' are ignored.
 #
 # Copyright (C) 2015-2020 Free Software Foundation, Inc.
 #
diff --git a/bin/match/Makefile.am b/bin/match/Makefile.am
index 9850e14..742b392 100644
--- a/bin/match/Makefile.am
+++ b/bin/match/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astmatch
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astmatch_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                  $(MAYBE_NORPATH)
 
diff --git a/bin/match/args.h b/bin/match/args.h
index 8e2961a..3049fcf 100644
--- a/bin/match/args.h
+++ b/bin/match/args.h
@@ -81,7 +81,7 @@ struct argp_option program_options[] =
       UI_KEY_OUTCOLS,
       "STR",
       0,
-      "Out cols in CSV, `a': first, `b': second input.",
+      "Out cols in CSV, 'a': first, 'b': second input.",
       GAL_OPTIONS_GROUP_OUTPUT,
       &p->outcols,
       GAL_OPTIONS_NO_ARG_TYPE,
diff --git a/bin/match/astmatch.conf b/bin/match/astmatch.conf
index 8ad5407..43cbea9 100644
--- a/bin/match/astmatch.conf
+++ b/bin/match/astmatch.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/match/authors-cite.h b/bin/match/authors-cite.h
index c31dfc2..785b632 100644
--- a/bin/match/authors-cite.h
+++ b/bin/match/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/match/match.c b/bin/match/match.c
index 7ff8a31..7d5d1d6 100644
--- a/bin/match/match.c
+++ b/bin/match/match.c
@@ -79,7 +79,7 @@ match_add_all_cols(char *filename, char *extname, 
gal_list_str_t *stdinlines,
     }
 
   /* If a new list of columns is ready, re-order tham and write
-     them in. Note that there may be multiple `_all' terms, so we
+     them in. Note that there may be multiple '_all' terms, so we
      need to do this after parsing all the requested columns. */
   gal_list_str_reverse(&finalcols);
 
@@ -111,12 +111,12 @@ match_cat_from_coord(struct matchparams *p, 
gal_list_str_t *cols,
   colcounter=0;
   for(col=cols;col!=NULL;col=col->next)
     {
-      /* In `ui_preparations_out_cols', we have done the necessary sanity
+      /* In 'ui_preparations_out_cols', we have done the necessary sanity
          checks, so we can safely use the values. */
       rptr=gal_type_string_to_number(col->v, &readtype);
       if(readtype!=GAL_TYPE_UINT8)
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. The given string didn't have a `uint8' type",
+              "the problem. The given string didn't have a 'uint8' type",
               __func__, PACKAGE_BUGREPORT);
       read=*((uint8_t *)rptr);
 
@@ -172,13 +172,13 @@ match_catalog_read_write_all(struct matchparams *p, 
size_t *permutation,
   if(p->outcols)
     {
       /* As a special situation, the user can ask to incude all of the
-         columns from one of the inputs with the special `_all' name. So,
+         columns from one of the inputs with the special '_all' name. So,
          we'll check if that is the case and write in all the columns where
          they are requested.*/
       for(tcol=incols; tcol!=NULL; tcol=tcol->next)
         if(!strcmp(tcol->v,"_all")) { hasall=1; break; }
 
-      /* If atleast one instance of `_all' is present, then reset the list
+      /* If atleast one instance of '_all' is present, then reset the list
          of columns to include in output. */
       if(hasall)
         {
@@ -200,8 +200,8 @@ match_catalog_read_write_all(struct matchparams *p, size_t 
*permutation,
   else cols=incols;
 
 
-  /* Read the full table. NOTE that with `--coord', for the second input,
-     both `filename' and `p->stdinlines' will be NULL. */
+  /* Read the full table. NOTE that with '--coord', for the second input,
+     both 'filename' and 'p->stdinlines' will be NULL. */
   if(filename || p->stdinlines)
     cat=gal_table_read(filename, hdu, filename ? NULL : p->stdinlines, cols,
                        p->cp.searchin, p->cp.ignorecase, p->cp.minmapsize,
@@ -238,7 +238,7 @@ match_catalog_read_write_all(struct matchparams *p, size_t 
*permutation,
         else
           tmp->size=tmp->dsize[0]=nummatched;
       }
-  /* If no match was found (`permutation==NULL'), and the matched columns
+  /* If no match was found ('permutation==NULL'), and the matched columns
      are requested, empty all the columns that are to be written (only
      keeping the meta-data). */
   else
@@ -261,10 +261,10 @@ match_catalog_read_write_all(struct matchparams *p, 
size_t *permutation,
       /* Write the catalog to a file. */
       gal_table_write(cat, NULL, p->cp.tableformat, outname, extname, 0);
 
-      /* Correct arrays and sizes (when `notmatched' was called). The
-         `array' element has to be corrected for later freeing.
+      /* Correct arrays and sizes (when 'notmatched' was called). The
+         'array' element has to be corrected for later freeing.
 
-         IMPORTANT: `--notmatched' cannot be called with `--outcols'. So
+         IMPORTANT: '--notmatched' cannot be called with '--outcols'. So
          you don't have to worry about the checks here being done later. */
       if(p->notmatched)
         {
@@ -334,8 +334,8 @@ match_catalog_write_one(struct matchparams *p, gal_data_t 
*a, gal_data_t *b,
   /* A small sanity check. */
   if(a || b)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us to fix the problem. "
-          "The two `a' and `b' arrays must be NULL by this point: "
-          "`a' %s NULL, `b' %s NULL", __func__, a?"is not":"is",
+          "The two 'a' and 'b' arrays must be NULL by this point: "
+          "'a' %s NULL, 'b' %s NULL", __func__, a?"is not":"is",
           b?"is not":"is");
 
   /* Reverse the table and write it out. */
@@ -366,7 +366,7 @@ match_catalog(struct matchparams *p)
     {
       /* Read (and possibly write) the outputs. Note that we only need to
          read the table when it is necessary for the output (the user might
-         have asked for `--outcols', only with columns of one of the two
+         have asked for '--outcols', only with columns of one of the two
          inputs). */
       if(p->outcols==NULL || p->acols)
         a=match_catalog_read_write_all(p, mcols?mcols->array:NULL,
@@ -401,7 +401,7 @@ match_catalog(struct matchparams *p)
       mcols=tmp;
 
       /* We also want everything to be incremented by one. In a C
-         program, counting starts with zero, so `gal_match_coordinates'
+         program, counting starts with zero, so 'gal_match_coordinates'
          will return indexs starting from zero. But outside a C
          program, on the command-line people expect counting to start
          from 1 (for example with AWK). */
diff --git a/bin/match/ui.c b/bin/match/ui.c
index 694d53b..6f76c9d 100644
--- a/bin/match/ui.c
+++ b/bin/match/ui.c
@@ -145,18 +145,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct matchparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -210,12 +210,12 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct matchparams *p)
 {
   if(p->outcols && p->notmatched)
-    error(EXIT_FAILURE, 0, "`--outcols' and `--notmatched' cannot be called "
+    error(EXIT_FAILURE, 0, "'--outcols' and '--notmatched' cannot be called "
           "at the same time. The former is only for cases when the matches "
           "are required");
 }
@@ -225,38 +225,38 @@ ui_read_check_only_options(struct matchparams *p)
 
 
 /* Two necessary catalogs: First:  Standard input, or a file.
-                           Second: `--coord',      or a file.
+                           Second: '--coord',      or a file.
  */
 static void
 ui_check_options_and_arguments(struct matchparams *p)
 {
-  /* When `--coord' is given, there should be no second catalog
+  /* When '--coord' is given, there should be no second catalog
      (argument). */
   if(p->coord)
     {
       /* Make sure no second argument is given. */
       if(p->input2name)
         error(EXIT_FAILURE, 0, "only one argument can be given with the "
-              "`--coord' option");
+              "'--coord' option");
 
-      /* No need for `p->input2name' or `p->ccol2'. */
+      /* No need for 'p->input2name' or 'p->ccol2'. */
       gal_data_free(p->ccol2);
       p->ccol2=NULL;
     }
 
-  /* `--coord' is not given. */
+  /* '--coord' is not given. */
   else
     {
-      /* Without `coord' atleast one input is necessary. */
+      /* Without 'coord' atleast one input is necessary. */
       if(p->input1name==NULL)
         error(EXIT_FAILURE, 0, "no inputs!\n\n"
               "Two inputs are necessary. The first can be a file, or from "
               "the standard input (e.g., a pipe). The second can be a "
               "file, or its coordinates can be directly specified on the "
-              "command-line with `--coord'");
+              "command-line with '--coord'");
 
       /* If the first input should be read from the standard input, the
-         contents of `input1name' actually belong to `input2name'. */
+         contents of 'input1name' actually belong to 'input2name'. */
       if(p->input2name==NULL)
         {
           p->input2name=p->input1name;
@@ -271,14 +271,14 @@ ui_check_options_and_arguments(struct matchparams *p)
       && p->cp.hdu==NULL )
     error(EXIT_FAILURE, 0, "no HDU for first input. When the input is "
           "a FITS file, a HDU must also be specified, you can use the "
-          "`--hdu' (`-h') option and give it the HDU number (starting "
+          "'--hdu' ('-h') option and give it the HDU number (starting "
           "from zero), extension name, or anything acceptable by "
           "CFITSIO");
   if( p->input2name
       && gal_fits_name_is_fits(p->input2name)
       && p->hdu2==NULL )
     error(EXIT_FAILURE, 0, "no HDU for second input. Please use "
-          "the `--hdu2' (`-H') option and give it the HDU number "
+          "the '--hdu2' ('-H') option and give it the HDU number "
           "(starting from zero), extension name, or anything "
           "acceptable by CFITSIO");
 }
@@ -313,7 +313,7 @@ ui_set_mode(struct matchparams *p)
 
   /* We will base the mode on the first input, then check with the
      second. Note that when the first is from standard input (it is
-     `NULL'), then we go into catalog mode because currently we assume
+     'NULL'), then we go into catalog mode because currently we assume
      standard input is only for plain text and WCS matching is not defined
      on plain text. */
   if( p->input1name && gal_fits_name_is_fits(p->input1name) )
@@ -330,13 +330,13 @@ ui_set_mode(struct matchparams *p)
 
   /* Necessary sanity checks. */
   if(p->mode==MATCH_MODE_CATALOG && p->cp.searchin==0)
-    error(EXIT_FAILURE, 0, "no `--searchin' option specified. Please run "
+    error(EXIT_FAILURE, 0, "no '--searchin' option specified. Please run "
           "the following command for more information:\n\n"
           "    $ info gnuastro \"selecting table columns\"\n");
 
 
   /* Now that the mode is set, do some sanity checks on the second
-     catalog. Recall that when `--coord' is given, there is no second input
+     catalog. Recall that when '--coord' is given, there is no second input
      file.*/
   if(p->input2name)
     {
@@ -365,10 +365,10 @@ ui_set_mode(struct matchparams *p)
     }
   else
     {
-      /* When there is no second-input file name (`--coord' is given), we
+      /* When there is no second-input file name ('--coord' is given), we
          cannot be in WCS mode (requiring a FITS file). */
       if(p->mode==MATCH_MODE_WCS)
-        error(EXIT_FAILURE, 0, "%s is an image, while `--coord' is only "
+        error(EXIT_FAILURE, 0, "%s is an image, while '--coord' is only "
               "meaningful for catalogs",
               gal_checkset_dataset_name(p->input1name, p->cp.hdu));
     }
@@ -393,10 +393,10 @@ ui_read_columns_aperture_2d(struct matchparams *p)
   /* A general sanity check: the first two elements of aperture cannot be
      zero or negative. */
   if( oaper[0]<=0 )
-    error(EXIT_FAILURE, 0, "the first value of `--aperture' cannot be "
+    error(EXIT_FAILURE, 0, "the first value of '--aperture' cannot be "
           "zero or negative");
   if( p->aperture->size>1 && oaper[1]<=0 )
-    error(EXIT_FAILURE, 0, "the second value of `--aperture' cannot be "
+    error(EXIT_FAILURE, 0, "the second value of '--aperture' cannot be "
           "zero or negative");
 
   /* Will be needed in more than one case. */
@@ -424,13 +424,13 @@ ui_read_columns_aperture_2d(struct matchparams *p)
 
     case 3:
       if(oaper[1]>1)
-        error(EXIT_FAILURE, 0, "second value to `--aperture' is larger "
+        error(EXIT_FAILURE, 0, "second value to '--aperture' is larger "
               "than one. When three numbers are given to this option, the "
               "second is the axis ratio (which must always be less than 1).");
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%zu values given to `--aperture'. In 2D, this "
+      error(EXIT_FAILURE, 0, "%zu values given to '--aperture'. In 2D, this "
             "option can only take 1, 2, or 3 values", p->aperture->size);
     }
 
@@ -465,10 +465,10 @@ ui_read_columns_aperture_3d(struct matchparams *p)
   /* A general sanity check: the first two elements of aperture cannot be
      zero or negative. */
   if( oaper[0]<=0 )
-    error(EXIT_FAILURE, 0, "the first value of `--aperture' cannot be "
+    error(EXIT_FAILURE, 0, "the first value of '--aperture' cannot be "
           "zero or negative");
   if( p->aperture->size>2 && (oaper[1]<=0 || oaper[2]<=0) )
-    error(EXIT_FAILURE, 0, "the second and third values of `--aperture' "
+    error(EXIT_FAILURE, 0, "the second and third values of '--aperture' "
           "cannot be zero or negative");
 
   /* Will be needed in more than one case. */
@@ -498,8 +498,8 @@ ui_read_columns_aperture_3d(struct matchparams *p)
           naper[3] = naper[4] = naper[5] = 0;
         }
 
-      /* Major axis is along the second dimension. So we want `X' to be in
-         the direction of `y'. Therefore, just the first Eurler ZXZ
+      /* Major axis is along the second dimension. So we want 'X' to be in
+         the direction of 'y'. Therefore, just the first Eurler ZXZ
          rotation is necessary by 90 degrees. Here is how the rotated
          coordinates (X,Y,Z) look like (after one rotation about Z).
 
@@ -511,7 +511,7 @@ ui_read_columns_aperture_3d(struct matchparams *p)
               x /
 
          You see how the major axis (X) now lies in the second original
-         direction (y). The length along `x' is now along `Y' and the third
+         direction (y). The length along 'x' is now along 'Y' and the third
          hasn't changed. Note that we are talking about the semi-axis
          lengths (a scalar, not a vector), so +- is irrelevant. */
       else if(oaper[1]>=oaper[0] && oaper[1]>=oaper[2])
@@ -523,8 +523,8 @@ ui_read_columns_aperture_3d(struct matchparams *p)
           naper[4] = naper[5] = 0;
         }
 
-      /* The major axis is along the third dimension. So we want `X' to
-         point in the direction of `z'. To get to that point, we need 90
+      /* The major axis is along the third dimension. So we want 'X' to
+         point in the direction of 'z'. To get to that point, we need 90
          degree rotations in all three Euler ZXZ rotations.
 
               |z (before)     z'|  /y'            |y''                  |X
@@ -552,13 +552,13 @@ ui_read_columns_aperture_3d(struct matchparams *p)
     case 6:
       if(oaper[1]>1 || oaper[2]>1)
         error(EXIT_FAILURE, 0, "atleast one of the second or third values "
-              "to `--aperture' is larger than one. When size numbers are "
+              "to '--aperture' is larger than one. When size numbers are "
               "given to this option (in 3D), the second and third are the "
               "axis ratios (which must always be less than 1).");
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%zu values given to `--aperture'. In 3D, this "
+      error(EXIT_FAILURE, 0, "%zu values given to '--aperture'. In 3D, this "
             "option can only take 1, 3, or 6 values. See the description of "
             "this option in the book for more with this command:\n\n"
             "    $ info astmatch\n", p->aperture->size);
@@ -586,13 +586,13 @@ ui_set_columns_sanity_check_read_aperture(struct 
matchparams *p)
   if(p->coord)
     {
       if(p->ccol1==NULL)
-        error(EXIT_FAILURE, 0, "no value given to `--ccol1' (necessary with "
-              "`--coord')");
+        error(EXIT_FAILURE, 0, "no value given to '--ccol1' (necessary with "
+              "'--coord')");
     }
   else
     {
       if(p->ccol1==NULL || p->ccol2==NULL)
-        error(EXIT_FAILURE, 0, "both `--ccol1' and `--ccol2' must be given. "
+        error(EXIT_FAILURE, 0, "both '--ccol1' and '--ccol2' must be given. "
               "They specify the columns containing the coordinates to match");
     }
 
@@ -600,9 +600,9 @@ ui_set_columns_sanity_check_read_aperture(struct 
matchparams *p)
   ccol1n = p->ccol1->size;
   ccol2n = p->coord ? p->coord->size : p->ccol2->size;
   if(ccol1n!=ccol2n)
-    error(EXIT_FAILURE, 0, "number of coordinates given to `--ccol1' "
-          "(%zu) and `--%s' (%zu) must be equal.\n\n"
-          "If you didn't call these options, run with `--checkconfig' to "
+    error(EXIT_FAILURE, 0, "number of coordinates given to '--ccol1' "
+          "(%zu) and '--%s' (%zu) must be equal.\n\n"
+          "If you didn't call these options, run with '--checkconfig' to "
           "see which configuration file is responsible. You can always "
           "override the configuration file values by calling the option "
           "manually on the command-line",
@@ -614,7 +614,7 @@ ui_set_columns_sanity_check_read_aperture(struct 
matchparams *p)
       {
       case 1:
         if(p->aperture->size>1)
-          error(EXIT_FAILURE, 0, "%zu values given to `--aperture'. In a 1D "
+          error(EXIT_FAILURE, 0, "%zu values given to '--aperture'. In a 1D "
                 "match, this option can only take one value",
                 p->aperture->size);
         break;
@@ -625,11 +625,11 @@ ui_set_columns_sanity_check_read_aperture(struct 
matchparams *p)
         error(EXIT_FAILURE, 0, "%zu dimensional matches are not currently "
               "supported (maximum is 2 dimensions). The number of "
               "dimensions is deduced from the number of values given to "
-              "`--ccol1' (or `--coord') and `--ccol2'", ccol1n);
+              "'--ccol1' (or '--coord') and '--ccol2'", ccol1n);
       }
   else
     error(EXIT_FAILURE, 0, "no matching aperture specified. Please use "
-          "the `--aperture' option to define the acceptable aperture for "
+          "the '--aperture' option to define the acceptable aperture for "
           "matching the coordinates (in the same units as each "
           "dimension). Please run the following command for more "
           "information.\n\n    $ info %s\n", PROGRAM_EXEC);
@@ -642,7 +642,7 @@ ui_set_columns_sanity_check_read_aperture(struct 
matchparams *p)
 
 
 
-/* Save the manually given coordinates (with `--coord') in column format (a
+/* Save the manually given coordinates (with '--coord') in column format (a
    list of datasets). */
 static gal_data_t *
 ui_set_columns_from_coord(struct matchparams *p)
@@ -678,8 +678,8 @@ ui_read_columns_to_double(struct matchparams *p, char 
*filename, char *hdu,
   gal_data_t *tmp, *ttmp, *tout, *out=NULL;
   struct gal_options_common_params *cp=&p->cp;
   char *diff_cols_error="%s: the number of columns matched (%zu) "
-    "differs from the number of usable calls to `--ccol1' (%zu). "
-    "Please give more specific values to `--ccol1' (column "
+    "differs from the number of usable calls to '--ccol1' (%zu). "
+    "Please give more specific values to '--ccol1' (column "
     "numberes are the only identifiers guaranteed to be unique).";
 
   /* Read the columns. Note that the first input's name can be NULL (if the
@@ -705,7 +705,7 @@ ui_read_columns_to_double(struct matchparams *p, char 
*filename, char *hdu,
   tmp=tout;
   while(tmp!=NULL)
     {
-      /* We need ot set the `next' pointer  */
+      /* We need ot set the 'next' pointer  */
       ttmp=tmp->next;
       tmp->next=NULL;
 
@@ -717,11 +717,11 @@ ui_read_columns_to_double(struct matchparams *p, char 
*filename, char *hdu,
                           gal_data_copy_to_new_type_free(tmp,
                                                          GAL_TYPE_FLOAT64) );
 
-      /* Set `tmp' to the initial `next pointer. */
+      /* Set 'tmp' to the initial 'next pointer. */
       tmp=ttmp;
     }
 
-  /* The `out' above is in reverse, so correct it and return */
+  /* The 'out' above is in reverse, so correct it and return */
   gal_list_data_reverse(&out);
   return out;
 }
@@ -789,7 +789,7 @@ ui_preparations_out_cols(struct matchparams *p)
         {
         case 'a': gal_list_str_add(&p->acols, col+1, 0); break;
         case 'b':
-          /* With `--coord', only numbers that are smaller than the number
+          /* With '--coord', only numbers that are smaller than the number
              of the dimensions are acceptable. */
           if(p->coord)
             {
@@ -809,10 +809,10 @@ ui_preparations_out_cols(struct matchparams *p)
                 }
               if(goodvalue==0)
                 error(EXIT_FAILURE, 0, "bad value to second catalog "
-                      "column (%s) of `--outcols'.\n\n"
-                      "With the `--coord' option, the second catalog is "
+                      "column (%s) of '--outcols'.\n\n"
+                      "With the '--coord' option, the second catalog is "
                       "assumed to have a single row and the given number "
-                      "of columns. Therefore when using `--outcols', only "
+                      "of columns. Therefore when using '--outcols', only "
                       "integers that are less than the number of "
                       "dimensions (%zu in this case) are acceptable", col+1,
                       ndim);
@@ -820,10 +820,10 @@ ui_preparations_out_cols(struct matchparams *p)
           gal_list_str_add(&p->bcols, col+1, 0);
           break;
         default:
-          error(EXIT_FAILURE, 0, "`%s' is not a valid value for "
-                "`--outcols'.\n\n"
+          error(EXIT_FAILURE, 0, "'%s' is not a valid value for "
+                "'--outcols'.\n\n"
                 "The first character of each value to this option must be "
-                "either `a' or `b'. The former specifies a column from the "
+                "either 'a' or 'b'. The former specifies a column from the "
                 "first input and the latter a column from the second. The "
                 "characters after them can be any column identifier (number, "
                 "name, or regular expression). For more on column selection, "
@@ -886,7 +886,7 @@ ui_preparations_out_name(struct matchparams *p)
         }
       else
         {
-          /* Set `p->out1name' and `p->out2name'. */
+          /* Set 'p->out1name' and 'p->out2name'. */
           if(p->cp.output)
             {
               if( gal_fits_name_is_fits(p->cp.output) )
@@ -899,7 +899,7 @@ ui_preparations_out_name(struct matchparams *p)
                   /* Here, we are be using the output name as input to the
                      automatic output generating function (usually it is
                      the input name, not the output name). Therefore, the
-                     `keepinputdir' variable should be 1. So we will
+                     'keepinputdir' variable should be 1. So we will
                      temporarily change it here, then set it back to what
                      it was. */
                   keepinputdir_orig=p->cp.keepinputdir;
@@ -998,9 +998,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
matchparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/mkcatalog/Makefile.am b/bin/mkcatalog/Makefile.am
index 0cbb0d8..1a88d34 100644
--- a/bin/mkcatalog/Makefile.am
+++ b/bin/mkcatalog/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astmkcatalog
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astmkcatalog_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                      $(MAYBE_NORPATH)
 
diff --git a/bin/mkcatalog/args.h b/bin/mkcatalog/args.h
index 9c382ef..a8e7010 100644
--- a/bin/mkcatalog/args.h
+++ b/bin/mkcatalog/args.h
@@ -411,7 +411,7 @@ struct argp_option program_options[] =
       "Identifier columns",
       UI_GROUP_COLUMNS_IDS
     },
-    {  /* `ids' is not a unique column, it is a combination of several
+    {  /* 'ids' is not a unique column, it is a combination of several
           columns. */
       "ids",
       UI_KEY_IDS,
diff --git a/bin/mkcatalog/astmkcatalog.conf b/bin/mkcatalog/astmkcatalog.conf
index ed85245..1f63120 100644
--- a/bin/mkcatalog/astmkcatalog.conf
+++ b/bin/mkcatalog/astmkcatalog.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/mkcatalog/authors-cite.h b/bin/mkcatalog/authors-cite.h
index 92c1c12..b56d057 100644
--- a/bin/mkcatalog/authors-cite.h
+++ b/bin/mkcatalog/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX                                                  \
   "Description of MakeCatalog\n"                                        \
diff --git a/bin/mkcatalog/columns.c b/bin/mkcatalog/columns.c
index 15e692b..00bc599 100644
--- a/bin/mkcatalog/columns.c
+++ b/bin/mkcatalog/columns.c
@@ -52,7 +52,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    requested first or Dec or if they are requested multiple times. So
    before the allocation, we'll check the first one.
 
-   The space that is allocated in `columns_define_alloc' is for the final
+   The space that is allocated in 'columns_define_alloc' is for the final
    values that are written in the output file. */
 static void
 columns_alloc_radec(struct mkcatalogparams *p)
@@ -78,7 +78,7 @@ columns_alloc_radec(struct mkcatalogparams *p)
 
 
 
-/* Similar to `columns_alloc_radec'. */
+/* Similar to 'columns_alloc_radec'. */
 static void
 columns_alloc_georadec(struct mkcatalogparams *p)
 {
@@ -103,7 +103,7 @@ columns_alloc_georadec(struct mkcatalogparams *p)
 
 
 
-/* Similar to `columns_alloc_radec'. */
+/* Similar to 'columns_alloc_radec'. */
 static void
 columns_alloc_clumpsradec(struct mkcatalogparams *p)
 {
@@ -120,7 +120,7 @@ columns_alloc_clumpsradec(struct mkcatalogparams *p)
 
 
 
-/* Similar to `columns_alloc_radec'. */
+/* Similar to 'columns_alloc_radec'. */
 static void
 columns_alloc_clumpsgeoradec(struct mkcatalogparams *p)
 {
@@ -278,7 +278,7 @@ columns_sanity_check(struct mkcatalogparams *p)
           error(EXIT_FAILURE, 0, "no sigma-clip defined! When any of the "
                 "sigma-clipping columns are requested, it is necessary to "
                 "specify the necessary sigma-clipping parameters with the "
-                "`--sigmaclip' option");
+                "'--sigmaclip' option");
         break;
       }
 
@@ -367,8 +367,8 @@ columns_define_alloc(struct mkcatalogparams *p)
   for(colcode=p->columnids; colcode!=NULL; colcode=colcode->next)
     {
       /* Set the column-specific parameters, please follow the same order
-         as `args.h'. IMPORTANT: we want the names to be the same as the
-         option names. Note that zero `disp_' variables will be
+         as 'args.h'. IMPORTANT: we want the names to be the same as the
+         option names. Note that zero 'disp_' variables will be
          automatically determined.*/
       switch(colcode->v)
         {
@@ -1554,7 +1554,7 @@ columns_define_alloc(struct mkcatalogparams *p)
 
 
       /* If this is an objects column, add it to the list of columns. We
-         will be using the `status' element to keep the MakeCatalog code
+         will be using the 'status' element to keep the MakeCatalog code
          for the columns. */
       if(otype!=GAL_TYPE_INVALID)
         {
@@ -1592,7 +1592,7 @@ columns_define_alloc(struct mkcatalogparams *p)
              the user.
 
              We'll just ignore the clump-specific ID-related columns,
-             because the `--ids' (generic for both objects and clumps) is a
+             because the '--ids' (generic for both objects and clumps) is a
              simple generic solution for identifiers. Also, ultimately,
              they aren't measurements. */
           else if( otype==GAL_TYPE_INVALID
@@ -1604,14 +1604,14 @@ columns_define_alloc(struct mkcatalogparams *p)
 
 
   /* If the user has asked for clump-only columns, but no clumps catalog is
-     to be created (the `--clumpscat' option was not given or there were no
+     to be created (the '--clumpscat' option was not given or there were no
      clumps in the specified image), then print an informative message that
      the columns in question will be ignored. */
   if(noclumpimg)
     {
       gal_list_str_reverse(&noclumpimg);
       fprintf(stderr, "WARNING: the following column(s) are unique to "
-              "clumps (not objects), but the `--clumpscat' option has not "
+              "clumps (not objects), but the '--clumpscat' option has not "
               "been called, or there were no clumps in the clumps labeled "
               "image. Hence, these columns will be ignored in the "
               "output.\n\n");
@@ -1816,8 +1816,8 @@ columns_xy_extrema(struct mkcatalog_passparams *pp, 
double *oi, size_t *coord, i
   size_t ndim=pp->tile->ndim;
   gal_data_t *tile=pp->tile, *block=tile->block;
 
-  /* We only want to do the coordinate estimation once: in `columns_fill',
-     we initialized the coordinates with `GAL_BLANK_SIZE_T'. When the
+  /* We only want to do the coordinate estimation once: in 'columns_fill',
+     we initialized the coordinates with 'GAL_BLANK_SIZE_T'. When the
      coordinate has already been measured already, it won't have this value
      any more. */
   if(coord[0]==GAL_BLANK_SIZE_T)
@@ -1826,7 +1826,7 @@ columns_xy_extrema(struct mkcatalog_passparams *pp, 
double *oi, size_t *coord, i
                                                          block->type),
                                  block->ndim, block->dsize, coord);
 
-  /* Return the proper value: note that `coord' is in C standard: starting
+  /* Return the proper value: note that 'coord' is in C standard: starting
      from the slowest dimension and counting from zero. */
   if(oi[OCOL_NUMALL])
     switch(key)
@@ -1860,28 +1860,28 @@ columns_xy_extrema(struct mkcatalog_passparams *pp, 
double *oi, size_t *coord, i
 /* The magnitude error is directly derivable from the S/N:
 
    To derive the error in measuring the magnitude from the S/N, let's take
-   `F' as the flux, `Z' is the zeropoint, `M' is the magnitude, `S' is the
-   S/N, and `D' to stand for capital delta (or error in a value) then from
+   'F' as the flux, 'Z' is the zeropoint, 'M' is the magnitude, 'S' is the
+   S/N, and 'D' to stand for capital delta (or error in a value) then from
 
-      `M = -2.5*log10(F) + Z'
+      'M = -2.5*log10(F) + Z'
 
    we get the following equation after calculating the derivative with
    respect to F.
 
-      `dM/df = -2.5 * ( 1 / ( F * ln(10) ) )'
+      'dM/df = -2.5 * ( 1 / ( F * ln(10) ) )'
 
-   From the Tailor series, `DM' can be written as:
+   From the Tailor series, 'DM' can be written as:
 
-      `DM = dM/dF * DF'
+      'DM = dM/dF * DF'
 
    So
 
-      `DM = |-2.5/ln(10)| * DF/F'
+      'DM = |-2.5/ln(10)| * DF/F'
 
-   But `DF/F' is just the inverse of the Signal to noise ratio, or
-  `1/S'. So
+   But 'DF/F' is just the inverse of the Signal to noise ratio, or
+  '1/S'. So
 
-      `DM = 2.5 / ( S * ln(10) )'               */
+      'DM = 2.5 / ( S * ln(10) )'               */
 #define MAG_ERROR(P,ROW,O0C1) ( 2.5f                                    \
                                 / ( ( columns_sn((P),(ROW),(O0C1)) > 0  \
                                       ? columns_sn((P),(ROW),(O0C1))    \
@@ -1895,7 +1895,7 @@ columns_xy_extrema(struct mkcatalog_passparams *pp, 
double *oi, size_t *coord, i
 
 /* All the raw first and second pass information has been collected, now
    write them into the output columns. The list of columns here is in the
-   same order as `columns_alloc_set_out_cols', see there for the type of
+   same order as 'columns_alloc_set_out_cols', see there for the type of
    each column. */
 #define POS_V_G(ARRAY, SUMWHT_COL, NUMALL_COL, V_COL, G_COL)            \
   ( (ARRAY)[ SUMWHT_COL ]>0                                             \
@@ -2229,8 +2229,8 @@ columns_fill(struct mkcatalog_passparams *pp)
   for(column=p->clumpcols; column!=NULL; column=column->next)
     for(coind=0;coind<pp->clumpsinobj;++coind)
       {
-        /* `coind': clump-in-object-index.
-           `cind': clump-index (over all the catalog). */
+        /* 'coind': clump-in-object-index.
+           'cind': clump-index (over all the catalog). */
         cind   = sr + coind;
         colarr = column->array;
         key    = column->status;
diff --git a/bin/mkcatalog/mkcatalog.c b/bin/mkcatalog/mkcatalog.c
index 8c0bd86..5d060d6 100644
--- a/bin/mkcatalog/mkcatalog.c
+++ b/bin/mkcatalog/mkcatalog.c
@@ -134,8 +134,8 @@ mkcatalog_single_object(void *in_prm)
                                   NULL, NULL, NULL);
 
       /* Set the blank checked flag to 1. By definition, this dataset won't
-         have any blank values. Also `flag' is initialized to `0'. So we
-         just have to set the checked flag (`GAL_DATA_FLAG_BLANK_CH') to
+         have any blank values. Also 'flag' is initialized to '0'. So we
+         just have to set the checked flag ('GAL_DATA_FLAG_BLANK_CH') to
          one to inform later steps that there are no blank values. */
       pp.up_vals->flag |= GAL_DATA_FLAG_BLANK_CH;
     }
@@ -275,8 +275,8 @@ mkcatalog_wcs_conversion(struct mkcatalogparams *p)
       /* Definitions */
       c=NULL;
 
-      /* Set `c' for the columns that must be corrected. Note that this
-         `switch' statement doesn't need any `default', because there are
+      /* Set 'c' for the columns that must be corrected. Note that this
+         'switch' statement doesn't need any 'default', because there are
          probably columns that don't need any correction. */
       switch(column->status)
         {
@@ -307,8 +307,8 @@ mkcatalog_wcs_conversion(struct mkcatalogparams *p)
       /* Definitions */
       c=NULL;
 
-      /* Set `c' for the columns that must be corrected. Note that this
-         `switch' statement doesn't need any `default', because there are
+      /* Set 'c' for the columns that must be corrected. Note that this
+         'switch' statement doesn't need any 'default', because there are
          probably columns that don't need any correction. */
       switch(column->status)
         {
@@ -442,7 +442,7 @@ mkcatalog_outputs_same_start(struct mkcatalogparams *p, int 
o0c1,
       gal_list_str_add(&comments, str, 0);
     }
 
-  /* Write the date. However, `ctime' is going to put a new-line character
+  /* Write the date. However, 'ctime' is going to put a new-line character
      in the end of its string, so we are going to remove it manually. */
   if( asprintf(&str, "%s started on %s", PROGRAM_NAME, ctime(&p->rawtime))<0 )
     error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
@@ -546,7 +546,7 @@ mkcatalog_outputs_same_start(struct mkcatalogparams *p, int 
o0c1,
                                  "because no STD image used.", &str);
       gal_list_str_add(&comments, str, 0);
       gal_checkset_allocate_copy("Ask for column that uses the STD image, "
-                                 "or `--forcereadstd'.", &str);
+                                 "or '--forcereadstd'.", &str);
       gal_list_str_add(&comments, str, 0);
     }
 
@@ -592,7 +592,7 @@ sort_clumps_by_objid(struct mkcatalogparams *p)
   /* Make sure everything is fine. */
   if(p->hostobjid_c==NULL || p->numclumps_c==NULL)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix the "
-          "problem. `p->hostobjid_c' and `p->numclumps_c' must not be "
+          "problem. 'p->hostobjid_c' and 'p->numclumps_c' must not be "
           "NULL.", __func__, PACKAGE_BUGREPORT);
 
 
@@ -683,7 +683,7 @@ mkcatalog_write_outputs(struct mkcatalogparams *p)
         printf("  - Catalog(s) complete, writing spectra.\n");
 
       /* Start counting and writing the files. Note that due to some
-         conditions (for example in debugging), a `p->spectra[i]' may not
+         conditions (for example in debugging), a 'p->spectra[i]' may not
          actually contain any data. So we'll also count the number of
          spectra that are written. */
       scounter=0;
@@ -743,14 +743,14 @@ mkcatalog_write_outputs(struct mkcatalogparams *p)
           if(outisfits)
             {
               if(p->objectcols)
-                printf("  - Spectra in %zu extensions named `SPECTRUM_NN'.\n",
+                printf("  - Spectra in %zu extensions named 'SPECTRUM_NN'.\n",
                        p->numobjects);
               else
                 printf("  - Output: %s (Spectra in %zu extensions named "
-                       "`SPECTRUM_NN').\n)", p->objectsout, p->numobjects);
+                       "'SPECTRUM_NN').\n)", p->objectsout, p->numobjects);
             }
           else
-            printf("  - Spectra in %zu files with `-spec-NN.txt' suffix.\n",
+            printf("  - Spectra in %zu files with '-spec-NN.txt' suffix.\n",
                    p->numobjects);
         }
     }
diff --git a/bin/mkcatalog/parse.c b/bin/mkcatalog/parse.c
index cabd17d..d92b5e6 100644
--- a/bin/mkcatalog/parse.c
+++ b/bin/mkcatalog/parse.c
@@ -169,7 +169,7 @@ parse_spectrum_pepare(struct mkcatalog_passparams *pp, 
size_t *start_end_inc,
                          p->values->unit, "Error in SUM_OTHER column.");
 
   /* Fill up the contents of the first element (note that the first
-     `gal_data_t' is actually in an array, so the skeleton is already
+     'gal_data_t' is actually in an array, so the skeleton is already
      allocated, we just have to allocate its contents. */
   gal_data_initialize(pp->spectrum, NULL, p->specsliceinfo->type, 1,
                       &numslices, NULL, 0, p->cp.minmapsize,
@@ -252,8 +252,8 @@ parse_spectrum_end(struct mkcatalog_passparams *pp, 
gal_data_t *xybin)
       osearr[i] = sqrt( osearr[i] );
     }
 
-  /* Convert the `double' type columns to `float'. The extra precision of
-     `double' was necessary when we were summing values in each slice. But
+  /* Convert the 'double' type columns to 'float'. The extra precision of
+     'double' was necessary when we were summing values in each slice. But
      afterwards, it is not necessary at all (the measurement error is much
      larger than a double-precision floating point number (15
      decimals). But the extra space gained (double) is very useful in not
@@ -271,7 +271,7 @@ parse_spectrum_end(struct mkcatalog_passparams *pp, 
gal_data_t *xybin)
   parse_spectrum_uint32_to_best_type(&oarea);
 
   /* List the datasets and write them into the pointer for this object
-     (exact copy of the statement in `parse_spectrum_pepare'). */
+     (exact copy of the statement in 'parse_spectrum_pepare'). */
   pp->spectrum->next->next                       = area;
   area->next                                     = sum;
   area->next->next                               = esum;
@@ -325,14 +325,14 @@ parse_spectrum(struct mkcatalog_passparams *pp, 
gal_data_t *xybin)
   osarr  = area->next->next->next->next->next->next->array;
   osearr = area->next->next->next->next->next->next->next->array;
 
-  /* If tile-id isn't necessary, set `tid' to a blank value. */
+  /* If tile-id isn't necessary, set 'tid' to a blank value. */
   tid = (p->std && p->std->size>1 && st_std == NULL) ? 0 : GAL_BLANK_SIZE_T;
 
   /* Parse each contiguous patch of memory covered by this object. */
   while( start_end_inc[0] + increment <= start_end_inc[1] )
     {
       /* Set the contiguous range to parse. The pixel-to-pixel counting
-         along the fastest dimension will be done over the `O' pointer. */
+         along the fastest dimension will be done over the 'O' pointer. */
       if( p->values        ) V  = st_v   + increment;
       if( p->std && st_std ) ST = st_std + increment;
       OO = ( O = st_o + increment ) + pp->tile->dsize[ndim-1];
@@ -357,7 +357,7 @@ parse_spectrum(struct mkcatalog_passparams *pp, gal_data_t 
*xybin)
 
                   /* Get the error associated with this voxel. Note that if
                      we are given a variance dataset already, there is no
-                     need to use `st*st', we can directly use `sval'. */
+                     need to use 'st*st', we can directly use 'sval'. */
                   sval = st_std ? *ST : (p->std->size>1?std[tid]:std[0]);
                   st = p->variance ? sqrt(sval) : sval;
                   var = (p->variance ? sval : st*st) + fabs(*V);
@@ -365,8 +365,8 @@ parse_spectrum(struct mkcatalog_passparams *pp, gal_data_t 
*xybin)
               else var = NAN;
 
 
-              /* Projected spectra: see if we have a value of `2' in the
-                 `xybin' array (showing that there is atleast one non-blank
+              /* Projected spectra: see if we have a value of '2' in the
+                 'xybin' array (showing that there is atleast one non-blank
                  element there over the whole spectrum.  */
               ++nproj;
               parr [ sind ] += *V;
@@ -402,8 +402,8 @@ parse_spectrum(struct mkcatalog_passparams *pp, gal_data_t 
*xybin)
       increment += ( gal_tile_block_increment(p->objects, tsize,
                                               num_increment++, NULL) );
 
-      /* Increment the slice number, `sind', and reset the projection (2D)
-         index `pind' if we have just finished parsing a slice. */
+      /* Increment the slice number, 'sind', and reset the projection (2D)
+         index 'pind' if we have just finished parsing a slice. */
       if( (num_increment-1)%pp->tile->dsize[1]==0 )
         {
           /* If there was no measurement, set NaN for the values and their
@@ -447,7 +447,7 @@ parse_objects(struct mkcatalog_passparams *pp)
   float var, sval, varval, skyval, *V=NULL, *SK=NULL, *ST=NULL;
   float *std=p->std?p->std->array:NULL, *sky=p->sky?p->sky->array:NULL;
 
-  /* If tile processing isn't necessary, set `tid' to a blank value. */
+  /* If tile processing isn't necessary, set 'tid' to a blank value. */
   size_t tid = ( ( (p->sky     && p->sky->size>1 && pp->st_sky == NULL )
                    || ( p->std && p->std->size>1 && pp->st_std == NULL ) )
                  ? 0 : GAL_BLANK_SIZE_T );
@@ -496,7 +496,7 @@ parse_objects(struct mkcatalog_passparams *pp)
   while( pp->start_end_inc[0] + increment <= pp->start_end_inc[1] )
     {
       /* Set the contiguous range to parse. The pixel-to-pixel counting
-         along the fastest dimension will be done over the `O' pointer. */
+         along the fastest dimension will be done over the 'O' pointer. */
       if( p->clumps            ) C  = pp->st_c   + increment;
       if( p->values            ) V  = pp->st_v   + increment;
       if( p->sky && pp->st_sky ) SK = pp->st_sky + increment;
@@ -639,9 +639,9 @@ parse_objects(struct mkcatalog_passparams *pp)
                     }
                   /* For each pixel, we have a sky contribution to the
                      counts and the signal's contribution. The standard
-                     deviation in the sky is simply `sval', but the
+                     deviation in the sky is simply 'sval', but the
                      standard deviation of the signal (independent of the
-                     sky) is `sqrt(*V)'. Therefore the total variance of
+                     sky) is 'sqrt(*V)'. Therefore the total variance of
                      this pixel is the variance of the sky added with the
                      absolute value of its sky-subtracted flux. We use the
                      absolute value, because especially as the signal gets
@@ -669,7 +669,7 @@ parse_objects(struct mkcatalog_passparams *pp)
                                               num_increment++, NULL) );
 
       /* If a 2D projection is requested, see if we should initialize (set
-         to zero) the projection-index (`pind') not. */
+         to zero) the projection-index ('pind') not. */
       if(xybin && (num_increment-1)%tsize[1]==0 )
         pind=0;
     }
@@ -741,7 +741,7 @@ parse_clumps(struct mkcatalog_passparams *pp)
   int32_t *objects=p->objects->array, *clumps=p->clumps->array;
   float *std=p->std?p->std->array:NULL, *sky=p->sky?p->sky->array:NULL;
 
-  /* If tile processing isn't necessary, set `tid' to a blank value. */
+  /* If tile processing isn't necessary, set 'tid' to a blank value. */
   size_t tid = ( ( (p->sky     && p->sky->size>1 && pp->st_sky == NULL )
                    || ( p->std && p->std->size>1 && pp->st_std == NULL ) )
                  ? 0 : GAL_BLANK_SIZE_T );
@@ -797,7 +797,7 @@ parse_clumps(struct mkcatalog_passparams *pp)
   while( pp->start_end_inc[0] + increment <= pp->start_end_inc[1] )
     {
       /* Set the contiguous range to parse. The pixel-to-pixel counting
-         along the fastest dimension will be done over the `O' pointer. */
+         along the fastest dimension will be done over the 'O' pointer. */
       C = pp->st_c + increment;
       if( p->values            ) V  = pp->st_v   + increment;
       if( p->sky && pp->st_sky ) SK = pp->st_sky + increment;
@@ -869,7 +869,7 @@ parse_clumps(struct mkcatalog_passparams *pp)
                         }
                     }
 
-                  /* Value related measurements, see `parse_objects' for
+                  /* Value related measurements, see 'parse_objects' for
                      comments. */
                   goodvalue=0;
                   if( p->values && !( p->hasblank && isnan(*V) ) )
@@ -917,7 +917,7 @@ parse_clumps(struct mkcatalog_passparams *pp)
                     }
 
                   /* Sky Standard deviation based measurements, see
-                     `parse_objects' for comments. */
+                     'parse_objects' for comments. */
                   if(p->std)
                     {
                       sval = ( pp->st_std
@@ -947,10 +947,10 @@ parse_clumps(struct mkcatalog_passparams *pp)
                   /* We are on a diffuse (possibly a river) pixel. So the
                      value of this pixel has to be added to any of the
                      clumps in touches. But since it might touch a labeled
-                     region more than once, we use `ngblabs' to keep track
+                     region more than once, we use 'ngblabs' to keep track
                      of which label we have already added its value
-                     to. `ii' is the number of different labels this river
-                     pixel has already been considered for. `ngblabs' will
+                     to. 'ii' is the number of different labels this river
+                     pixel has already been considered for. 'ngblabs' will
                      keep the list labels. */
                   ii=0;
                   memset(ngblabs, 0, nngb*sizeof *ngblabs);
@@ -1019,7 +1019,7 @@ parse_clumps(struct mkcatalog_passparams *pp)
                                               num_increment++, NULL) );
 
       /* If a 2D projection is requested, see if we should initialize (set
-         to zero) the projection-index (`pind') not. */
+         to zero) the projection-index ('pind') not. */
       if(xybin && (num_increment-1) % tsize[1]==0 )
         pind=0;
     }
@@ -1086,7 +1086,7 @@ parse_order_based(struct mkcatalog_passparams *pp)
       errno=0;
       clumpsvals=malloc(pp->clumpsinobj * sizeof *clumpsvals);
       if(clumpsvals==NULL)
-        error(EXIT_FAILURE, errno, "%s: couldn't allocate `clumpsvals' for "
+        error(EXIT_FAILURE, errno, "%s: couldn't allocate 'clumpsvals' for "
               "%zu clumps", __func__, pp->clumpsinobj);
 
 
@@ -1107,7 +1107,7 @@ parse_order_based(struct mkcatalog_passparams *pp)
   while( pp->start_end_inc[0] + increment <= pp->start_end_inc[1] )
     {
       /* Set the contiguous range to parse. The pixel-to-pixel counting
-         along the fastest dimension will be done over the `O' pointer. */
+         along the fastest dimension will be done over the 'O' pointer. */
       V = pp->st_v + increment;
       if(p->clumps) C = pp->st_c + increment;
       OO = ( O = pp->st_o + increment ) + tsize[ndim-1];
@@ -1116,8 +1116,8 @@ parse_order_based(struct mkcatalog_passparams *pp)
       do
         {
           /* If this pixel belongs to the requested object, then do the
-             processing. `hasblank' is constant, so when the values doesn't
-             have any blank values, the `isnan' will never be checked. */
+             processing. 'hasblank' is constant, so when the values doesn't
+             have any blank values, the 'isnan' will never be checked. */
           if( *O==pp->object && !( p->hasblank && isnan(*V) ) )
             {
               /* Copy the value for the whole object. */
diff --git a/bin/mkcatalog/ui.c b/bin/mkcatalog/ui.c
index 01a54b7..dd5d43c 100644
--- a/bin/mkcatalog/ui.c
+++ b/bin/mkcatalog/ui.c
@@ -168,18 +168,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct mkcatalogparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -209,7 +209,7 @@ parse_opt(int key, char *arg, struct argp_state *state)
 
 
 /* Read the user's desired columns. Because the types of these options are
-   `GAL_TYPE_INVALID', this function will not be called when printing the
+   'GAL_TYPE_INVALID', this function will not be called when printing the
    full list of parameters and their values. */
 void *
 ui_column_codes_ll(struct argp_option *option, char *arg,
@@ -224,17 +224,17 @@ ui_column_codes_ll(struct argp_option *option, char *arg,
     {
       if( arg[0]=='0' && arg[1]=='\0' ) return NULL;
       else if ( !(arg[0]=='1' && arg[1]=='\0')  )
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' is not a "
-                      "valid value to the `%s' option: (\"%s\").\n\n`%s' is "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' is not a "
+                      "valid value to the '%s' option: ('%s').\n\n'%s' is "
                       "an on/off option specifying if you want this column "
                       "in the output catalog, it doesn't take any "
                       "arguments. In a configuration file, it can only take "
-                      "a value of `0' (to be ignored) or `1'", arg,
+                      "a value of '0' (to be ignored) or '1'", arg,
                       option->name, option->doc, option->name);
     }
 
 
-  /* The user wants this column, so add it to the list. Note that the `ids'
+  /* The user wants this column, so add it to the list. Note that the 'ids'
      column means three columns. */
   if(option->key==UI_KEY_IDS)
     {
@@ -289,8 +289,8 @@ ui_check_upperlimit(struct argp_option *option, char *arg,
 
       /* Make sure there is at most only two numbers given. */
       if(raw->size>2)
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`--%s') contains %zu numbers, but only one or two "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'--%s') contains %zu numbers, but only one or two "
                       "are acceptable.\n\n"
                       "With this option MakeCatalog will write all the "
                       "positions and values of the random distribution for "
@@ -311,13 +311,13 @@ ui_check_upperlimit(struct argp_option *option, char *arg,
         {
           if( ceil(d[i]) != d[i])
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "%g (value "
-                          "number %zu given to `--%s') is not an "
+                          "number %zu given to '--%s') is not an "
                           "integer. The value(s) to this option are "
                           "object/clump labels/identifiers, so they must be "
                           "integers", d[i], i+1, option->name);
           if( d[i]<=0 )
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "%g (value "
-                          "number %zu given to `--%s') is not positive. "
+                          "number %zu given to '--%s') is not positive. "
                           "The value(s) to this option are object/clump "
                           "labels/identifiers, so they must be positive "
                           "integers", d[i], i+1, option->name);
@@ -356,7 +356,7 @@ ui_check_upperlimit(struct argp_option *option, char *arg,
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct mkcatalogparams *p)
 {
@@ -369,16 +369,16 @@ ui_read_check_only_options(struct mkcatalogparams *p)
      user. */
   if( p->checkuplim[1]!=GAL_BLANK_INT32 && p->clumpscat==0 )
     error(EXIT_FAILURE, 0, "no clumps catalog is requested, hence "
-          "`--checkuplim' is only available for objects (one value "
+          "'--checkuplim' is only available for objects (one value "
           "must be given to it).\n\n"
-          "To ask for a clumps catalog, please append `--clumpscat' to the "
+          "To ask for a clumps catalog, please append '--clumpscat' to the "
           "command calling MakeCatalog.\n\n"
           "If you want the upperlimit check table for an object, only give "
-          "one value (the object's label) to `--checkuplim'.");
+          "one value (the object's label) to '--checkuplim'.");
 
-  /* See if `--skyin' is a filename or a value. When the string is ONLY a
-     number (and nothing else), `tailptr' will point to the end of the
-     string (`\0'). */
+  /* See if '--skyin' is a filename or a value. When the string is ONLY a
+     number (and nothing else), 'tailptr' will point to the end of the
+     string ('\0'). */
   if(p->skyfile)
     {
       tmp=strtod(p->skyfile, &tailptr);
@@ -421,8 +421,8 @@ ui_check_options_and_arguments(struct mkcatalogparams *p)
     {
       if( gal_fits_name_is_fits(p->objectsfile) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-              "file, a HDU must also be specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+              "file, a HDU must also be specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
 
     }
@@ -513,13 +513,13 @@ ui_wcs_info(struct mkcatalogparams *p)
       errno=0;
       p->ctype=malloc(p->objects->ndim * sizeof *p->ctype);
       if(p->ctype==NULL)
-        error(EXIT_FAILURE, 0, "%s: %zu bytes for `p->ctype'", __func__,
+        error(EXIT_FAILURE, 0, "%s: %zu bytes for 'p->ctype'", __func__,
               p->objects->ndim * sizeof *p->ctype);
 
       /* Fill in the values. */
       for(i=0;i<p->objects->ndim;++i)
         {
-          /* CTYPE might contain `-' characters, we just want the first
+          /* CTYPE might contain '-' characters, we just want the first
              non-dash characters. The loop will either stop either at the end
              or where there is a dash. So we can just replace it with an
              end-of-string character. */
@@ -548,7 +548,7 @@ ui_num_clumps(struct mkcatalogparams *p)
   labsinobj=calloc(p->numobjects+1, sizeof *labsinobj);
   if(labsinobj==NULL)
     error(EXIT_FAILURE, 0, "%s: couldn't allocate %zu bytes for "
-          "`labsinobj'", __func__, p->numobjects * sizeof *labsinobj);
+          "'labsinobj'", __func__, p->numobjects * sizeof *labsinobj);
 
   /* Go over each pixel and find the unique clump labels within each
      object. */
@@ -560,7 +560,7 @@ ui_num_clumps(struct mkcatalogparams *p)
           /* See if the label has already been found. */
           for(tmp=labsinobj[*o];tmp!=NULL;tmp=tmp->next) if(tmp->v==*c) break;
 
-          /* When it wasn't found, `tmp==NULL'. */
+          /* When it wasn't found, 'tmp==NULL'. */
           if(tmp==NULL)
             {
               ++numclumps;
@@ -633,7 +633,7 @@ ui_one_tile_per_object_correct_numobjects(struct 
mkcatalogparams *p)
 
   /* Initialize the minimum and maximum position for each tile/object. So,
      we'll initialize the minimum coordinates to the maximum possible
-     `size_t' value (in `GAL_BLANK_SIZE_T') and the maximums to zero. */
+     'size_t' value (in 'GAL_BLANK_SIZE_T') and the maximums to zero. */
   for(i=0;i<p->numobjects;++i)
     for(d=0;d<ndim;++d)
       {
@@ -667,8 +667,8 @@ ui_one_tile_per_object_correct_numobjects(struct 
mkcatalogparams *p)
 
   /* If a label doesn't exist in the image, then write over it and define
      the unique labels to use for the next steps. To over-write, we have
-     two counters: `i' (for the position in the input array) and `no' (or
-     `num-objects' for the counter in the output table). In the end, `no'
+     two counters: 'i' (for the position in the input array) and 'no' (or
+     'num-objects' for the counter in the output table). In the end, 'no'
      counts the total number of unique labels in the input. */
   no=0;
   for(i=0;i<p->numobjects;++i)
@@ -702,7 +702,7 @@ ui_one_tile_per_object_correct_numobjects(struct 
mkcatalogparams *p)
       if(p->inbetweenints || exists) ++no;
       else
         {
-          /* If `rarray' isn't defined yet, define it. */
+          /* If 'rarray' isn't defined yet, define it. */
           if(rarray==NULL)
             {
               /* Note that by initializing with zeros, all (the possibly
@@ -718,7 +718,7 @@ ui_one_tile_per_object_correct_numobjects(struct 
mkcatalogparams *p)
         }
     }
 
-  /* If `rarray!=NULL', then there are elements to remove and we need to
+  /* If 'rarray!=NULL', then there are elements to remove and we need to
      make some modifications/corrections. */
   if(rarray)
     {
@@ -770,7 +770,7 @@ ui_read_labels(struct mkcatalogparams *p)
   ui_check_type_int(p->objectsfile, p->cp.hdu, p->objects->type);
 
 
-  /* Convert it to `int32' type (if it already isn't). */
+  /* Convert it to 'int32' type (if it already isn't). */
   p->objects=gal_data_copy_to_new_type_free(p->objects, GAL_TYPE_INT32);
 
 
@@ -780,9 +780,9 @@ ui_read_labels(struct mkcatalogparams *p)
           "currently only supports 2D or 3D datasets", p->objectsfile,
           p->cp.hdu, p->objects->ndim);
 
-  /* Make sure the `--spectrum' option is not given on a 2D image.  */
+  /* Make sure the '--spectrum' option is not given on a 2D image.  */
   if(p->spectrum && p->objects->ndim!=3)
-    error(EXIT_FAILURE, 0, "%s (hdu %s) has %zu dimensions, but `--spectrum' "
+    error(EXIT_FAILURE, 0, "%s (hdu %s) has %zu dimensions, but '--spectrum' "
           "is currently only defined on 3D datasets", p->objectsfile,
           p->cp.hdu, p->objects->ndim);
 
@@ -826,11 +826,11 @@ ui_read_labels(struct mkcatalogparams *p)
       /* Make sure the HDU is also given. */
       if(p->clumpshdu==NULL)
         error(EXIT_FAILURE, 0, "%s: no HDU/extension provided for the "
-              "CLUMPS dataset. Please use the `--clumpshdu' option to "
+              "CLUMPS dataset. Please use the '--clumpshdu' option to "
               "give a specific HDU using its number (counting from zero) "
               "or name. If the dataset is in another file, please use "
-              "`--clumpsfile' to give the filename. If you don't want any "
-              "clumps catalog output, remove the `--clumpscat' option from "
+              "'--clumpsfile' to give the filename. If you don't want any "
+              "clumps catalog output, remove the '--clumpscat' option from "
               "the command-line or give it a value of zero in a "
               "configuration file", p->usedclumpsfile);
 
@@ -843,7 +843,7 @@ ui_read_labels(struct mkcatalogparams *p)
 
       /* Check its size. */
       if( gal_dimension_is_different(p->objects, p->clumps) )
-        error(EXIT_FAILURE, 0, "`%s' (hdu: %s) and `%s' (hdu: %s) have a"
+        error(EXIT_FAILURE, 0, "'%s' (hdu: %s) and '%s' (hdu: %s) have a"
               "different dimension/size", p->usedclumpsfile, p->clumpshdu,
               p->objectsfile, p->cp.hdu);
 
@@ -867,14 +867,14 @@ ui_read_labels(struct mkcatalogparams *p)
       if(p->numclumps==0)
         {
           /* Just as a sanity check, see if there are any clumps (positive
-             valued pixels) in the array. If there are, then `NUMCLUMPS'
+             valued pixels) in the array. If there are, then 'NUMCLUMPS'
              wasn't set properly and we should abort with an error. */
           tmp=gal_statistics_maximum(p->clumps);
           if( *((int32_t *)(p->clumps->array))>0 )
-            error(EXIT_FAILURE, 0, "%s (hdu: %s): the `NUMCLUMPS' header "
+            error(EXIT_FAILURE, 0, "%s (hdu: %s): the 'NUMCLUMPS' header "
                   "keyword has a value of zero, but there are positive "
                   "pixels in the array, showing that there are clumps in "
-                  "image. This is a wrong usage of the `NUMCLUMPS' keyword."
+                  "image. This is a wrong usage of the 'NUMCLUMPS' keyword."
                   "It must contain the total number of clumps (irrespective "
                   "of how many objects there are). Please correct this issue "
                   "and run MakeCatalog again", p->usedclumpsfile,
@@ -905,8 +905,8 @@ ui_read_labels(struct mkcatalogparams *p)
 /* See which inputs are necessary. Ultimate, there are only three extra
    inputs: a values image, a sky image and a sky standard deviation
    image. However, there are many raw column measurements. So to keep
-   things clean, we'll just put a value of `1' in the three `values', `sky'
-   and `std' pointers everytime a necessary input is found. */
+   things clean, we'll just put a value of '1' in the three 'values', 'sky'
+   and 'std' pointers everytime a necessary input is found. */
 static void
 ui_necessary_inputs(struct mkcatalogparams *p, int *values, int *sky,
                     int *std)
@@ -919,7 +919,7 @@ ui_necessary_inputs(struct mkcatalogparams *p, int *values, 
int *sky,
   if(p->spectrum) *values=*std=1;
 
   /* Go over all the object columns. Note that the objects and clumps (if
-     the `--clumpcat' option is given) inputs are mandatory and it is not
+     the '--clumpcat' option is given) inputs are mandatory and it is not
      necessary to specify it here. */
   for(i=0; i<OCOL_NUMCOLS; ++i)
     if(p->oiflag[i])
@@ -1044,8 +1044,8 @@ ui_preparation_check_size_read_tiles(struct 
mkcatalogparams *p,
   /* See if we should treat this dataset as tile values or not. */
   if( gal_dimension_is_different(p->objects, in) )
     {
-      /* The `tl' structure is initialized here. But this function may be
-         called multiple times. So, first check if the `tl' structure has
+      /* The 'tl' structure is initialized here. But this function may be
+         called multiple times. So, first check if the 'tl' structure has
          already been initialized and if so, don't repeat it. */
       if(tl->ndim==0)
         {
@@ -1055,20 +1055,20 @@ ui_preparation_check_size_read_tiles(struct 
mkcatalogparams *p,
           gal_tile_full_permutation(tl);
         }
 
-      /* See if the size of the `in' dataset corresponds to the
+      /* See if the size of the 'in' dataset corresponds to the
          tessellation. */
       if(in->size!=tl->tottiles)
         error(EXIT_FAILURE, 0, "%s (hdu: %s): doesn't have the right "
               "size (%zu elements or pixels).\n\n"
-              "It must either be the same size as `%s' (hdu: `%s'), or "
+              "It must either be the same size as '%s' (hdu: '%s'), or "
               "it must have the same number of elements as the total "
               "number of tiles in the tessellation (%zu). In the latter "
               "case, each pixel is assumed to be a fixed value for a "
               "complete tile.\n\n"
-              "Run with `-P' to see the (tessellation) options/settings "
+              "Run with '-P' to see the (tessellation) options/settings "
               "and their values). For more information on tessellation in "
               "Gnuastro, please run the following command (use the arrow "
-              "keys for up and down and press `q' to return to the "
+              "keys for up and down and press 'q' to return to the "
               "command-line):\n\n"
               "    $ info gnuastro tessellation",
               filename, hdu, in->size, p->objectsfile, p->cp.hdu,
@@ -1080,7 +1080,7 @@ ui_preparation_check_size_read_tiles(struct 
mkcatalogparams *p,
 
 
 
-/* Subtract `sky' from the input dataset depending on its size (it may be
+/* Subtract 'sky' from the input dataset depending on its size (it may be
    the whole array or a tile-values array).. */
 static void
 ui_subtract_sky(struct mkcatalogparams *p)
@@ -1149,9 +1149,9 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
       if(p->valueshdu==NULL)
         error(EXIT_FAILURE, 0, "%s: no HDU/extension provided for the "
               "VALUES dataset. Atleast one column needs this dataset. "
-              "Please use the `--valueshdu' option to give a specific HDU "
+              "Please use the '--valueshdu' option to give a specific HDU "
               "using its number (counting from zero) or name. If the "
-              "dataset is in another file, please use `--valuesfile' to "
+              "dataset is in another file, please use '--valuesfile' to "
               "give the filename", p->usedvaluesfile);
 
       /* Read the values dataset. */
@@ -1164,11 +1164,11 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
 
       /* Make sure it has the correct size. */
       if( gal_dimension_is_different(p->objects, p->values) )
-        error(EXIT_FAILURE, 0, "`%s' (hdu: %s) and `%s' (hdu: %s) have a"
+        error(EXIT_FAILURE, 0, "'%s' (hdu: %s) and '%s' (hdu: %s) have a"
               "different dimension/size", p->usedvaluesfile, p->valueshdu,
               p->objectsfile, p->cp.hdu);
 
-      /* Initially, `p->hasblank' was set based on the objects image, but
+      /* Initially, 'p->hasblank' was set based on the objects image, but
          it may happen that the objects image only has zero values for
          blank pixels, so we'll also do a check on the input image. */
       p->hasblank = gal_blank_present(p->values, 1);
@@ -1201,9 +1201,9 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
             error(EXIT_FAILURE, 0, "%s: no HDU/extension provided for the "
                   "SKY dataset. Atleast one column needs this dataset, or "
                   "you have asked to subtract the Sky from the values.\n\n"
-                  "Please use the `--skyhdu' option to give a specific HDU "
+                  "Please use the '--skyhdu' option to give a specific HDU "
                   "using its number (counting from zero) or name. If the "
-                  "dataset is in another file, please use `--skyin' to "
+                  "dataset is in another file, please use '--skyin' to "
                   "give the filename", p->usedskyfile);
 
           /* Read the Sky dataset. */
@@ -1233,9 +1233,9 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
         error(EXIT_FAILURE, 0, "%s: no HDU/extension provided for the "
               "SKY STANDARD DEVIATION dataset.\n\n"
               "Atleast one column needs this dataset. Please use the "
-              "`--stdhdu' option to give a specific HDU using its number "
+              "'--stdhdu' option to give a specific HDU using its number "
               "(counting from zero) or name. If the dataset is in another "
-              "file, please use `--stdin' to give the filename",
+              "file, please use '--stdin' to give the filename",
               p->usedstdfile);
 
       /* Read the Sky standard deviation image into memory. */
@@ -1260,7 +1260,7 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
       if(p->checkuplim[0] != GAL_BLANK_INT32
          && p->checkuplim[0] > p->numobjects)
         error(EXIT_FAILURE, 0, "%d (object identifier for the "
-              "`--checkuplim' option) is larger than the number of "
+              "'--checkuplim' option) is larger than the number of "
               "objects in the input labels (%zu)", p->checkuplim[0],
               p->numobjects);
 
@@ -1270,7 +1270,7 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
           /* Make sure the HDU for the mask image is given. */
           if(p->upmaskhdu==NULL)
             error(EXIT_FAILURE, 0, "%s: no HDU/extension provided, please "
-                  "use the `--upmaskhdu' option to specify a specific HDU "
+                  "use the '--upmaskhdu' option to specify a specific HDU "
                   "using its number (counting from zero) or name",
                   p->upmaskfile);
 
@@ -1284,7 +1284,7 @@ ui_preparations_read_inputs(struct mkcatalogparams *p)
 
           /* Check its size. */
           if( gal_dimension_is_different(p->objects, p->upmask) )
-            error(EXIT_FAILURE, 0, "`%s' (hdu: %s) and `%s' (hdu: %s) have a"
+            error(EXIT_FAILURE, 0, "'%s' (hdu: %s) and '%s' (hdu: %s) have a"
                   "different dimension/size", p->upmaskfile, p->upmaskhdu,
                   p->objectsfile, p->cp.hdu);
 
@@ -1341,7 +1341,7 @@ ui_preparations_read_keywords(struct mkcatalogparams *p)
 
           /* If the two keywords couldn't be read. We don't want to slow down
              the user for the median (which needs sorting). So we'll just
-             calculate the minimum which is necessary for the `p->cpscorr'. */
+             calculate the minimum which is necessary for the 'p->cpscorr'. */
           if(keys[1].status) p->medstd=NAN;
           if(keys[0].status)
             {
@@ -1387,7 +1387,7 @@ ui_preparations_both_names(struct mkcatalogparams *p)
     {
       /* When the user has specified a name, any possible directories in
          that name must be respected. So we have kept the actual
-         `keepinputdir' value in a temporary variable above and set it to 1
+         'keepinputdir' value in a temporary variable above and set it to 1
          only for this operation. Later we set it back to what it was. */
       p->cp.keepinputdir=1;
 
@@ -1398,8 +1398,8 @@ ui_preparations_both_names(struct mkcatalogparams *p)
       if( gal_fits_name_is_fits(p->cp.output) )
         {
           /* The output file name that the user has given supersedes the
-             `tableformat' argument. In this case, the filename is a FITS
-             file, so if `tableformat' is a text file, we will change it to
+             'tableformat' argument. In this case, the filename is a FITS
+             file, so if 'tableformat' is a text file, we will change it to
              a default binary FITS table. */
           if( p->cp.tableformat==GAL_TABLE_FORMAT_TXT )
             p->cp.tableformat=GAL_TABLE_FORMAT_BFITS;
@@ -1428,7 +1428,7 @@ ui_preparations_both_names(struct mkcatalogparams *p)
       p->clumpsout=p->objectsout;
     }
 
-  /* Revert `keepinputdir' to what it was. */
+  /* Revert 'keepinputdir' to what it was. */
   p->cp.keepinputdir=keepinputdir;
 }
 
@@ -1447,9 +1447,9 @@ ui_preparations_outnames(struct mkcatalogparams *p)
   if(p->cp.output)
     {
       /* If the output name is a FITS file, then
-         `gal_tableintern_check_fits_format' will see if the tableformat
+         'gal_tableintern_check_fits_format' will see if the tableformat
          corresponds to a FITS table or not. If the output name isn't a
-         FITS file then the current value of `p->cp.tableformat' is
+         FITS file then the current value of 'p->cp.tableformat' is
          irrelevant and it must be set to text. We use this value in the
          end to determine specific features. */
       if( gal_fits_name_is_fits(p->cp.output) )
@@ -1497,11 +1497,11 @@ ui_preparations_outnames(struct mkcatalogparams *p)
                                                     : p->objectsfile),
                                                   suffix);
 
-      /* Set `keepinputdir' to what it was before. */
+      /* Set 'keepinputdir' to what it was before. */
       p->cp.keepinputdir=keepinputdir;
     }
 
-  /* Just to avoid bugs (`p->cp.output' must no longer be used), we'll free
+  /* Just to avoid bugs ('p->cp.output' must no longer be used), we'll free
      it and set it to NULL.*/
   free(p->cp.output);
   p->cp.output=NULL;
@@ -1531,12 +1531,12 @@ ui_preparations_spectrum_wcs(struct mkcatalogparams *p)
 
   /* A small sanity check. */
   if(p->objects->ndim!=3)
-    error(EXIT_FAILURE, 0, "%s (hdu %s) is a %zuD dataset, but `--spectrum' "
+    error(EXIT_FAILURE, 0, "%s (hdu %s) is a %zuD dataset, but '--spectrum' "
           "is currently only defined on 3D datasets", p->objectsfile,
           p->cp.hdu, p->objects->ndim);
 
   /* Allocate space for the slice number as well as the X and Y positions
-     for WCS conversion. Note that the `z' axis is going to be converted to
+     for WCS conversion. Note that the 'z' axis is going to be converted to
      WCS later, so we'll just give it the basic information now.*/
   x=gal_data_alloc(NULL, GAL_TYPE_FLOAT64, 1, &numslices, NULL, 0,
                    p->cp.minmapsize, p->cp.quietmmap, NULL, NULL, NULL);
@@ -1575,7 +1575,7 @@ ui_preparations_spectrum_wcs(struct mkcatalogparams *p)
   else
     for(i=0;i<numslices;++i) ((uint32_t *)(p->specsliceinfo->array))[i]=i+1;
 
-  /* Set the slice WCS column information. Note that `z' is now the WCS
+  /* Set the slice WCS column information. Note that 'z' is now the WCS
      coordinate value of the third dimension, and to avoid wasting extra
      space (this column is repeated one very object's spectrum), we'll
      convert it to a 32-bit floating point dataset. */
@@ -1608,19 +1608,19 @@ ui_preparations_upperlimit(struct mkcatalogparams *p)
     {
       for(i=0;p->uprange[i]!=-1;++i) ++c;
       if(c!=p->objects->ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--uprange', but input "
+        error(EXIT_FAILURE, 0, "%zu values given to '--uprange', but input "
               "has %zu dimensions", c, p->objects->ndim);
     }
 
   /* Check the number of random samples. */
   if( p->upnum < MKCATALOG_UPPERLIMIT_MINIMUM_NUM )
-    error(EXIT_FAILURE, 0, "%zu not acceptable as `--upnum'. The minimum "
+    error(EXIT_FAILURE, 0, "%zu not acceptable as '--upnum'. The minimum "
           "acceptable number of random samples for the upper limit "
           "magnitude is %d", p->upnum, MKCATALOG_UPPERLIMIT_MINIMUM_NUM);
 
   /* Check if sigma-clipping parameters have been given. */
   if( isnan(p->upsigmaclip[0]) )
-    error(EXIT_FAILURE, 0, "`--upsigmaclip' is mandatory for measuring "
+    error(EXIT_FAILURE, 0, "'--upsigmaclip' is mandatory for measuring "
           "the upper-limit magnitude. It takes two numbers separated by "
           "a comma. The first is the multiple of sigma and the second is "
           "the aborting criteria: <1: tolerance level, >1: number of "
@@ -1628,7 +1628,7 @@ ui_preparations_upperlimit(struct mkcatalogparams *p)
 
   /* Check if the sigma multiple is given. */
   if( isnan(p->upnsigma) )
-    error(EXIT_FAILURE, 0, "`--upnsigma' is mandatory for measuring the "
+    error(EXIT_FAILURE, 0, "'--upnsigma' is mandatory for measuring the "
           "upperlimit magnitude. Its value is the multiple of final sigma "
           "that is reported as the upper-limit");
 
@@ -1654,7 +1654,7 @@ ui_preparations(struct mkcatalogparams *p)
   /* If no columns are requested, then inform the user. */
   if(p->columnids==NULL && p->spectrum==0)
     error(EXIT_FAILURE, 0, "no measurements requested! Please run again "
-          "with `--help' for the possible list of measurements");
+          "with '--help' for the possible list of measurements");
 
 
   /* Set the actual filenames to use. */
@@ -1692,7 +1692,7 @@ ui_preparations(struct mkcatalogparams *p)
 
   /* Allocate the reference random number generator and seed values. It
      will be cloned once for every thread. If the user hasn't called
-     `envseed', then we want it to be different for every run, so we need
+     'envseed', then we want it to be different for every run, so we need
      to re-set the seed. */
   if(p->upperlimit) ui_preparations_upperlimit(p);
 
@@ -1705,7 +1705,7 @@ ui_preparations(struct mkcatalogparams *p)
      separately (and not using the actual output columns that have the same
      values), because playing with the output columns can cause bad
      bugs. If the user wants performance, they are encouraged to run
-     MakeCatalog with `--noclumpsort' and avoid the whole process all
+     MakeCatalog with '--noclumpsort' and avoid the whole process all
      together. */
   if(p->clumps && !p->noclumpsort && p->cp.numthreads>1)
     {
@@ -1747,9 +1747,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
mkcatalogparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
@@ -1930,7 +1930,7 @@ ui_free_report(struct mkcatalogparams *p, struct timeval 
*t1)
     {
       /* Note that each element of the array is the first node in a list of
          datasets. So we can't free the first one with
-         `gal_list_data_free', we'll delete all the nodes after it in the
+         'gal_list_data_free', we'll delete all the nodes after it in the
          loop. */
       for(i=0;i<p->numobjects;++i)
         {
@@ -1943,7 +1943,7 @@ ui_free_report(struct mkcatalogparams *p, struct timeval 
*t1)
 
   /* If the Sky or its STD image were given in tiles, then we defined a
      tile structure to deal with them. The initialization of the tile
-     structure is checked with its `ndim' element. */
+     structure is checked with its 'ndim' element. */
   if(p->cp.tl.ndim) gal_tile_full_free_contents(&p->cp.tl);
 
   /* If an upper limit range warning is necessary, print it here. */
@@ -1957,7 +1957,7 @@ ui_free_report(struct mkcatalogparams *p, struct timeval 
*t1)
             "input is less than double their length. If the input is taken "
             "from a larger dataset, this issue can be solved by using a "
             "larger part of it. You can also run MakeCatalog with "
-            "`--checkuplim' to see the distribution for a special "
+            "'--checkuplim' to see the distribution for a special "
             "object or clump as a table and personally inspect its "
             "reliability. \n\n");
 
diff --git a/bin/mkcatalog/upperlimit.c b/bin/mkcatalog/upperlimit.c
index a515e21..19a2eaf 100644
--- a/bin/mkcatalog/upperlimit.c
+++ b/bin/mkcatalog/upperlimit.c
@@ -63,7 +63,7 @@ upperlimit_make_clump_tiles(struct mkcatalog_passparams *pp)
 
   /* Initialize the minimum and maximum position for each tile/clump. So,
      we'll initialize the minimum coordinates to the maximum possible
-     `size_t' value (in `GAL_BLANK_SIZE_T') and the maximums to zero. */
+     'size_t' value (in 'GAL_BLANK_SIZE_T') and the maximums to zero. */
   for(i=0;i<pp->clumpsinobj;++i)
     for(d=0;d<ndim;++d)
       {
@@ -173,7 +173,7 @@ upperlimit_random_range(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
          just use the full possible range. */
       if( p->uprange && p->uprange[d] )
         {
-          /* Set the minimum of the random range. Since `size_t' is always
+          /* Set the minimum of the random range. Since 'size_t' is always
              positive, to make sure the difference isn't negative, we need
              to convert them to integer first. */
           if( (int)coord[d] - ((int)p->uprange[d])/2 > 0 )
@@ -200,7 +200,7 @@ upperlimit_random_range(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
                          - (dsize[d] - tile->dsize[d]) );
             }
 
-          /* `minadd' and `maxadd' were defined to account for the removed
+          /* 'minadd' and 'maxadd' were defined to account for the removed
              smaller range when an object is on the edge. Their role is to
              add to the other side of the range as much as possible when
              one side is decreased on an edge. */
@@ -215,7 +215,7 @@ upperlimit_random_range(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
           /* We are positioning the FIRST pixel of the tile, not the
              center. So, the minimum possible value is zero, and in order
              to not push out of the image, the maximum is the
-             `tile->dsize[d]' away from the edge. */
+             'tile->dsize[d]' away from the edge. */
           min[d]=0;
           max[d]=dsize[d]-tile->dsize[d]-1;
         }
@@ -249,7 +249,7 @@ upperlimit_random_position(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
   size_t r;
   struct mkcatalogparams *p=pp->p;
 
-  /* `gsl_rng_get' returns an inclusive value between the minimum and
+  /* 'gsl_rng_get' returns an inclusive value between the minimum and
      maximum of the particular generator. It may happen that the labeled
      region extends the full range of a dimension. In that case, the only
      possible starting point would be 0. */
@@ -311,7 +311,7 @@ upperlimit_write_comments(struct mkcatalogparams *p,
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
                 "address the problem. The value %zu is not recognized for "
-                "`p->input->ndim'", __func__, PACKAGE_BUGREPORT,
+                "'p->input->ndim'", __func__, PACKAGE_BUGREPORT,
                 p->objects->ndim);
         }
       gal_list_str_add(comments, str, 0);
@@ -405,7 +405,7 @@ upperlimit_write_check(struct mkcatalogparams *p, 
gal_list_sizet_t *check_x,
                    "Sum of pixel values over random footprint.");
 
 
-  /* If `size_t' isn't 32-bit on this system, then convert the unsigned
+  /* If 'size_t' isn't 32-bit on this system, then convert the unsigned
      64-bit values to 32-bit because the FITS table format doesn't
      recognize 64-bit integers.*/
   if( GAL_TYPE_SIZE_T != GAL_TYPE_UINT32 )
@@ -513,7 +513,7 @@ upperlimit_measure(struct mkcatalog_passparams *pp, int32_t 
clumplab,
                   col = clumplab ? CCOL_UPPERLIMIT_S : OCOL_UPPERLIMIT_S;
                   o[col] = scarr[3];
 
-                  /* sigma multiplied by `upnsigma'. */
+                  /* sigma multiplied by 'upnsigma'. */
                   col = clumplab ? CCOL_UPPERLIMIT_B : OCOL_UPPERLIMIT_B;
                   o[col] = scarr[3] * p->upnsigma;
 
@@ -611,8 +611,8 @@ upperlimit_one_tile(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
   upperlimit_random_range(pp, tile, min, max, clumplab);
 
 
-  /* `se_inc' is just used temporarily, the important thing here is
-     `st_oo'. */
+  /* 'se_inc' is just used temporarily, the important thing here is
+     'st_oo'. */
   st_oo = ( clumplab
             ? gal_tile_start_end_ind_inclusive(tile, p->objects, se_inc)
             : pp->st_o );
@@ -632,7 +632,7 @@ upperlimit_one_tile(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
                                            p->objects->type);
 
       /* Starting and ending coordinates for this random position, note
-         that in `pp' we have the starting and ending coordinates of the
+         that in 'pp' we have the starting and ending coordinates of the
          actual tile. */
       increment     = 0;
       num_increment = 1;
@@ -689,7 +689,7 @@ upperlimit_one_tile(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
 
 
       /* Further processing is only necessary if this random tile was fully
-         parsed. If it was, we must reset `nfailed' to zero again. */
+         parsed. If it was, we must reset 'nfailed' to zero again. */
       if(continueparse)
         {
           nfailed=0;
@@ -717,7 +717,7 @@ upperlimit_one_tile(struct mkcatalog_passparams *pp, 
gal_data_t *tile,
 
             default:
               error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s "
-                    "to fix the problem. `ndim' value of %zu is not "
+                    "to fix the problem. 'ndim' value of %zu is not "
                     "recognized", __func__, PACKAGE_BUGREPORT, ndim);
             }
           gal_list_f32_add(&check_s, continueparse ? sum : NAN);
@@ -784,7 +784,7 @@ upperlimit_calculate(struct mkcatalog_passparams *pp)
           && p->checkuplim[1] != GAL_BLANK_INT32
           && p->checkuplim[1] > pp->clumpsinobj )
         error(EXIT_FAILURE, 0, "object %d has %zu clumps, but an upperlimit "
-              "check table (using the `--checkuplim' option) has been "
+              "check table (using the '--checkuplim' option) has been "
               "requested for clump %d", pp->object, pp->clumpsinobj,
               p->checkuplim[1]);
 
diff --git a/bin/mknoise/Makefile.am b/bin/mknoise/Makefile.am
index 9da630e..a94905f 100644
--- a/bin/mknoise/Makefile.am
+++ b/bin/mknoise/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astmknoise
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astmknoise_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                    $(MAYBE_NORPATH)
 
diff --git a/bin/mknoise/astmknoise.conf b/bin/mknoise/astmknoise.conf
index 2c62e32..b029737 100644
--- a/bin/mknoise/astmknoise.conf
+++ b/bin/mknoise/astmknoise.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/mknoise/authors-cite.h b/bin/mknoise/authors-cite.h
index 794347e..43b6a64 100644
--- a/bin/mknoise/authors-cite.h
+++ b/bin/mknoise/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/mknoise/ui.c b/bin/mknoise/ui.c
index e8281e7..b5a8596 100644
--- a/bin/mknoise/ui.c
+++ b/bin/mknoise/ui.c
@@ -158,18 +158,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct mknoiseparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -217,22 +217,22 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct mknoiseparams *p)
 {
-  /* At leaset one of `--sigma' or `--background' are necessary. */
+  /* At leaset one of '--sigma' or '--background' are necessary. */
   if( isnan(p->sigma) && isnan(p->background_mag) )
-    error(EXIT_FAILURE, 0, "at least one of `--sigma' or `--background' "
+    error(EXIT_FAILURE, 0, "at least one of '--sigma' or '--background' "
           "must be given to identify the noise level");
 
 
   /* If a background magnitude is given (and the user hasn't given a
-     `--sigma'), the zeropoint is necessary. */
+     '--sigma'), the zeropoint is necessary. */
   if( isnan(p->sigma) && !isnan(p->background_mag) && isnan(p->zeropoint) )
     error(EXIT_FAILURE, 0, "no zeropoint magnitude given. When the noise is "
           "identified by the background magnitude, a zeropoint magnitude "
-          "is mandatory. Please use the `--zeropoint' option to specify "
+          "is mandatory. Please use the '--zeropoint' option to specify "
           "a zeropoint magnitude");
 }
 
@@ -249,8 +249,8 @@ ui_check_options_and_arguments(struct mknoiseparams *p)
     {
       if( gal_fits_name_is_fits(p->inputname) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-              "file, a HDU must also be specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+              "file, a HDU must also be specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
 
     }
@@ -348,9 +348,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
mknoiseparams *p)
   char message[GAL_TIMING_VERB_MSG_LENGTH_V];
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/mkprof/Makefile.am b/bin/mkprof/Makefile.am
index ce9a7de..0cc7529 100644
--- a/bin/mkprof/Makefile.am
+++ b/bin/mkprof/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astmkprof
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astmkprof_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                   $(MAYBE_NORPATH)
 
diff --git a/bin/mkprof/args.h b/bin/mkprof/args.h
index eae7814..4654615 100644
--- a/bin/mkprof/args.h
+++ b/bin/mkprof/args.h
@@ -169,7 +169,7 @@ struct argp_option program_options[] =
       UI_KEY_MODE,
       "STR",
       0,
-      "Mode of `--ccol': `img' or `wcs'.",
+      "Mode of '--ccol': 'img' or 'wcs'.",
       UI_GROUP_PROFILES,
       &p->mode,
       GAL_TYPE_STRING,
@@ -342,7 +342,7 @@ struct argp_option program_options[] =
 
     {
       0, 0, 0, 0,
-      "Columns, by info (see `--searchin'), or number (starting from 1):",
+      "Columns, by info (see '--searchin'), or number (starting from 1):",
       UI_GROUP_CATALOG
     },
     {
@@ -560,7 +560,7 @@ struct argp_option program_options[] =
       UI_KEY_CUNIT,
       "STR[, ... ]",
       0,
-      "Units of the WCS coordinates (e.g., `deg').",
+      "Units of the WCS coordinates (e.g., 'deg').",
       UI_GROUP_WCS,
       &p->cunit,
       GAL_TYPE_FLOAT64,
diff --git a/bin/mkprof/astmkprof-3d.conf b/bin/mkprof/astmkprof-3d.conf
index 0500c8e..2b7162b 100644
--- a/bin/mkprof/astmkprof-3d.conf
+++ b/bin/mkprof/astmkprof-3d.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/mkprof/astmkprof.conf b/bin/mkprof/astmkprof.conf
index 06e2a46..a707f82 100644
--- a/bin/mkprof/astmkprof.conf
+++ b/bin/mkprof/astmkprof.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/mkprof/authors-cite.h b/bin/mkprof/authors-cite.h
index 1318a37..a733256 100644
--- a/bin/mkprof/authors-cite.h
+++ b/bin/mkprof/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/mkprof/main.h b/bin/mkprof/main.h
index 0fdd3c0..87c97b2 100644
--- a/bin/mkprof/main.h
+++ b/bin/mkprof/main.h
@@ -190,8 +190,8 @@ struct mkprofparams
   char       *mergedimgname;  /* Name of merged image.                    */
   int                  nwcs;  /* for WCSLIB: no. coord. representations.  */
   struct wcsprm        *wcs;  /* WCS information for this dataset.        */
-  size_t               ndim;  /* Number of dimensions (for `nomerged').   */
-                              /* We can't put it in `out' because it is   */
+  size_t               ndim;  /* Number of dimensions (for 'nomerged').   */
+                              /* We can't put it in 'out' because it is   */
                               /* meaning ful there.                       */
 };
 
diff --git a/bin/mkprof/mkprof.c b/bin/mkprof/mkprof.c
index 802c76d..adc249d 100644
--- a/bin/mkprof/mkprof.c
+++ b/bin/mkprof/mkprof.c
@@ -78,7 +78,7 @@ builtqueue_addempty(struct builtqueue **bq)
   errno=0;
   tbq=malloc(sizeof *tbq);
   if(tbq==NULL)
-    error(EXIT_FAILURE, 0, "%s: allocating %zu bytes for `tbq'",
+    error(EXIT_FAILURE, 0, "%s: allocating %zu bytes for 'tbq'",
           __func__, sizeof *tbq);
 
   /* Initialize the values (same order as in structure definition). */
@@ -134,8 +134,8 @@ saveindividual(struct mkonthread *mkp)
   char *filename, *jobname, *outdir=p->outdir;
 
 
-  /* Write the name and remove a similarly named file when the `--kernel'
-     option wasn't called. If `--kernel' is called, then we should just use
+  /* Write the name and remove a similarly named file when the '--kernel'
+     option wasn't called. If '--kernel' is called, then we should just use
      the final merged filename. */
   if(p->kernel)
     filename=p->mergedimgname;
@@ -154,7 +154,7 @@ saveindividual(struct mkonthread *mkp)
   else
     {
       /* Allocate space for the corrected crpix and fill it in. Both
-         `crpix' and `fpixel_i' are in FITS order. */
+         'crpix' and 'fpixel_i' are in FITS order. */
       crpix=gal_pointer_allocate(GAL_TYPE_FLOAT64, ndim, 0, __func__,
                                  "crpix");
       for(i=0;i<ndim;++i)
@@ -345,7 +345,7 @@ mkprof_build_single(struct mkonthread *mkp, long *fpixel_i, 
long *lpixel_i,
      overlapping region. */
   if(p->out)
     {
-      /* Note that `fpixel_i' and `lpixel_o' were in the un-oversampled
+      /* Note that 'fpixel_i' and 'lpixel_o' were in the un-oversampled
          image, they are also in the FITS coordinates. */
       for(i=0;i<ndim;++i)
         {
@@ -413,10 +413,10 @@ mkprof_add_built_to_write_queue(struct mkonthread *mkp,
       p->bq=ibq;
 
       /* If the list was empty when you locked the mutex, then either
-         `mkprof_write` is waiting behind a condition variable for you to
+         'mkprof_write' is waiting behind a condition variable for you to
          fill it up or not (either it hasn't got to setting the condition
          variable yet (this function locked the mutex before
-         `mkprof_write`) or it just got the list to be made and is busy
+         'mkprof_write') or it just got the list to be made and is busy
          writing the arrays in the output). In either case,
          pthread_cond_signal will work. */
       if((*fbq)->next==NULL)
@@ -457,13 +457,13 @@ mkprof_add_built_to_write_queue(struct mkonthread *mkp,
    About the Central x and y of each profile:
 
    The user has asked for the profile to be built on the coordinates
-   (real numbers) of `x` and `y` in an output image in the FITS
+   (real numbers) of 'x' and 'y' in an output image in the FITS
    format. We are building the full image for each galaxy separately
    in an array with an odd number of sides which maybe oversampled.
 
    In the FITS format, the pixel centers have an integer value. So for
    example in 1D, a pixel whose center value is 10.00 covers the area
-   of: [9.5,10.5). We want the fractional part of `x` (don't forget,
+   of: [9.5,10.5). We want the fractional part of 'x' (don't forget,
    this example is 1D) to be in the central pixel of this separate
    array (with odd sides) that we will be building.
 
@@ -489,19 +489,19 @@ mkprof_build(void *inparam)
   /* Make each profile that was specified for this thread. */
   for(i=0; mkp->indexs[i]!=GAL_BLANK_SIZE_T; ++i)
     {
-      /* Create a new builtqueue element with all the information. `fbq'
-         will be used when we want to add `ibq' to `p->bq'. It is defined
-         so we don't have to waste time traversing the `ibq'. Its
-         characteristic compared to the other elements of `ibq' is that
-         `fbq->next==NULL'. So to add ibq to p->bq, we just have to set
-         `fbq->next=p->bq' and then set `p->bq' to `ibq'.*/
+      /* Create a new builtqueue element with all the information. 'fbq'
+         will be used when we want to add 'ibq' to 'p->bq'. It is defined
+         so we don't have to waste time traversing the 'ibq'. Its
+         characteristic compared to the other elements of 'ibq' is that
+         'fbq->next==NULL'. So to add ibq to p->bq, we just have to set
+         'fbq->next=p->bq' and then set 'p->bq' to 'ibq'.*/
       builtqueue_addempty(&mkp->ibq);
       ibq=mkp->ibq;
       id=ibq->id=mkp->indexs[i];
       if(fbq==NULL) fbq=ibq;
 
 
-      /* Write the necessary parameters for this profile into `mkp'.*/
+      /* Write the necessary parameters for this profile into 'mkp'.*/
       oneprofile_set_prof_params(mkp);
 
 
@@ -528,7 +528,7 @@ mkprof_build(void *inparam)
 
           default:
             error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to "
-                  "address the issue. %zu is not recognized for `ndim'",
+                  "address the issue. %zu is not recognized for 'ndim'",
                   __func__, PACKAGE_BUGREPORT, ndim);
           }
 
@@ -693,8 +693,8 @@ mkprof_write(struct mkprofparams *p)
       if(!p->cp.quiet) gettimeofday(&t1, NULL);
 
       /* Write the final image into a FITS file with the requested
-         type. Until now, we were using `p->wcs' for the WCS, but from now
-         on, will put it in `out' to also free it while freeing `out'. */
+         type. Until now, we were using 'p->wcs' for the WCS, but from now
+         on, will put it in 'out' to also free it while freeing 'out'. */
       out->wcs=p->wcs;
       gal_fits_img_write_to_type(out, p->mergedimgname, NULL,
                                  PROGRAM_NAME, p->cp.type);
@@ -761,7 +761,7 @@ mkprof(struct mkprofparams *p)
   errno=0;
   mkp=malloc(nt*sizeof *mkp);
   if(mkp==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `mkp'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'mkp'",
           __func__, (nt-1)*sizeof *mkp);
 
 
@@ -771,7 +771,7 @@ mkprof(struct mkprofparams *p)
   gal_threads_dist_in_threads(p->num, nt, &indexs, &thrdcols);
 
 
-  /* `onaxes' are size of the merged output image without over-sampling or
+  /* 'onaxes' are size of the merged output image without over-sampling or
      shifting in FITS order. When no output merged image is needed, we can
      ignore it. */
   if(p->out)
diff --git a/bin/mkprof/oneprofile.c b/bin/mkprof/oneprofile.c
index 39f7371..b307744 100644
--- a/bin/mkprof/oneprofile.c
+++ b/bin/mkprof/oneprofile.c
@@ -55,7 +55,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
  **************          Radial distance       ******************
  ****************************************************************/
 /* Set the center position of the profile in the oversampled image. Note
-   that `mkp->width' is in the non-oversampled scale. IMPORTANT: the
+   that 'mkp->width' is in the non-oversampled scale. IMPORTANT: the
    ordering is in FITS coordinate order. */
 static void
 oneprofile_center_oversampled(struct mkonthread *mkp)
@@ -92,7 +92,7 @@ oneprofile_set_coord(struct mkonthread *mkp, size_t index)
   gal_dimension_index_to_coord(index, ndim, dsize, coord_c);
 
   /* Convert these coordinates to one where the profile center is at the
-     center and the image is not over-sampled. Note that only `coord_c' is
+     center and the image is not over-sampled. Note that only 'coord_c' is
      in C order.*/
   for(i=0;i<ndim;++i)
     mkp->coord[i] = ( coord_c[ndim-i-1] - mkp->center[i] )/os;
@@ -135,7 +135,7 @@ oneprofile_r_el(struct mkonthread *mkp)
     default:
       error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
             "the problem. The value %zu is not recognized for "
-            "`mkp->p->ndim'", __func__, PACKAGE_BUGREPORT, mkp->p->ndim);
+            "'mkp->p->ndim'", __func__, PACKAGE_BUGREPORT, mkp->p->ndim);
     }
 }
 
@@ -218,7 +218,7 @@ oneprofile_randompoints(struct mkonthread *mkp)
      in checks), but since it has a very negligible cost (compared to the
      random checks above) cost, its good to reset it to help in debugging
      when necessary (avoid confusion when un-commenting the checks in
-     `oneprofile_pix_by_pix'). */
+     'oneprofile_pix_by_pix'). */
   mkp->r=r_before;
   mkp->coord[0]=coord_before[0];
   mkp->coord[1]=coord_before[1];
@@ -325,7 +325,7 @@ integ2d(struct mkonthread *mkp)
 /************       Pixel by pixel building       *************/
 /*********        Positions are in C not FITS         *********/
 /**************************************************************/
-/* `oneprofile_center_oversampled' stored the center of the profile in
+/* 'oneprofile_center_oversampled' stored the center of the profile in
    floating point coordinates. This function will convert that into a
    pixel index. */
 static size_t
@@ -335,9 +335,9 @@ oneprofile_center_pix_index(struct mkonthread *mkp)
   size_t *dsize=mkp->ibq->image->dsize;
   size_t i, coord[3], ndim=mkp->p->ndim;
 
-  /* Find the coordinates of the center point. Note `mkp->center' is in
+  /* Find the coordinates of the center point. Note 'mkp->center' is in
      FITS coordinates, while coord must be in C coordinates (to be used in
-     `gal_dimension_coord_to_index'). */
+     'gal_dimension_coord_to_index'). */
   for(i=0;i<ndim;++i)
     {
       pixfrac = modf(mkp->center[i], &intpart);
@@ -379,7 +379,7 @@ oneprofile_pix_by_pix(struct mkonthread *mkp)
   if(mkp->func==PROFILE_POINT)
     { array[p]=1; return; }
 
-  /* Allocate the `byt' array. It is used as a flag to make sure that we
+  /* Allocate the 'byt' array. It is used as a flag to make sure that we
      don't re-calculate the profile value on a pixel more than once. */
   byt = gal_pointer_allocate(GAL_TYPE_UINT8,
                              gal_dimension_total_size(ndim, dsize), 1,
@@ -585,8 +585,8 @@ oneprofile_set_prof_params(struct mkonthread *mkp)
 
     default:
       error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
-            "address the problem. The value `%zu' is not recognized for "
-            "`ndim'", __func__, PACKAGE_BUGREPORT, ndim);
+            "address the problem. The value '%zu' is not recognized for "
+            "'ndim'", __func__, PACKAGE_BUGREPORT, ndim);
     }
 
 
@@ -772,8 +772,8 @@ oneprofile_make(struct mkonthread *mkp)
       mkp->ibq->accufrac /= sum;
 
       /* Correct all the profile pixels. Note that ideally, if a user wants
-         a NaN valued profile, they should use the `flat' profile with
-         `--mforflatpix', which won't need this correction. However, it
+         a NaN valued profile, they should use the 'flat' profile with
+         '--mforflatpix', which won't need this correction. However, it
          might happen that they forget the later, or the catalog might be
          generated by a script that gives a NaN value for the magnitude
          with any kind of profile. In such cases if we don't check the NaN
diff --git a/bin/mkprof/ui.c b/bin/mkprof/ui.c
index 06e72d8..823d289 100644
--- a/bin/mkprof/ui.c
+++ b/bin/mkprof/ui.c
@@ -130,11 +130,11 @@ ui_profile_name_read(char *string, size_t row)
   else
     {
       if(row)
-        error(EXIT_FAILURE, 0, "`%s' not recognized as a profile function "
+        error(EXIT_FAILURE, 0, "'%s' not recognized as a profile function "
               "name in row %zu", string, row);
       else
-        error(EXIT_FAILURE, 0, "`%s' not recognized as a profile function "
-              "name in values to `--kernel' option", string);
+        error(EXIT_FAILURE, 0, "'%s' not recognized as a profile function "
+              "name in values to '--kernel' option", string);
     }
 
   return PROFILE_INVALID;
@@ -232,18 +232,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct mkprofparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -326,12 +326,12 @@ ui_parse_kernel(struct argp_option *option, char *arg,
     }
   else
     {
-      /* The first part of `arg' (before the first comma) is not
+      /* The first part of 'arg' (before the first comma) is not
          necessarily a number. So we need to separate the first part from
          the rest.*/
       c=arg;while(*c!='\0' && *c!=',') ++c;
       profile=arg;
-      arg = (*c=='\0') ? NULL : c+1;  /* the `point' profile doesn't need */
+      arg = (*c=='\0') ? NULL : c+1;  /* the 'point' profile doesn't need */
       *c='\0';                        /* any numbers.                     */
 
 
@@ -345,13 +345,13 @@ ui_parse_kernel(struct argp_option *option, char *arg,
       for(i=0;i<kernel->size;++i)
         if(darray[i]<=0)
           error(EXIT_FAILURE, 0, "value number %zu (%g) in the given list "
-                "of kernel parameters (`%s') is not acceptable. All "
-                "parameters to the `--kernel' option must be non-zero and "
+                "of kernel parameters ('%s') is not acceptable. All "
+                "parameters to the '--kernel' option must be non-zero and "
                 "positive", i+1, darray[i], arg);
 
 
       /* See if a 2D kernel is requested or a 3D kernel and keep the value
-         in `kernel->flag'. If no dimensionality is defined, then by
+         in 'kernel->flag'. If no dimensionality is defined, then by
          default, we'll assume it is 2D.*/
       c=profile;while(*c!='\0' && *c!='-') ++c;
       if(*c=='\0')
@@ -361,9 +361,9 @@ ui_parse_kernel(struct argp_option *option, char *arg,
           *c='\0';
           dstr=c+1;
           if( (dstr[1]!='d' && dstr[1]!='D') || dstr[2]!='\0')
-            error(EXIT_FAILURE, 0, "bad formatting in `--kernel' "
+            error(EXIT_FAILURE, 0, "bad formatting in '--kernel' "
                   "dimensionality. The dimensionality suffix must be either "
-                  "2d, 3d (not case sensitive). You have given `%s'", dstr);
+                  "2d, 3d (not case sensitive). You have given '%s'", dstr);
           switch(dstr[0])
             {
             case '2': kernel->flag=2; break;
@@ -376,21 +376,21 @@ ui_parse_kernel(struct argp_option *option, char *arg,
         }
 
 
-      /* Write the profile type code into `kernel->status'. If it starts
+      /* Write the profile type code into 'kernel->status'. If it starts
          with a digit, then the user might have given the code of the
          profile directly. In that case, parse the number. Otherwise,
-         let `ui_profile_name_read' find the value. */
+         let 'ui_profile_name_read' find the value. */
       if( isdigit(*profile) )
         {
           profcode=strtol(profile, &tailptr, 0);
           if(*tailptr!='\0')
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' "
                           "couldn't be read as a profile code", profile);
           if(profcode<=0 || profcode>=PROFILE_MAXIMUM_CODE)
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' "
                           "isn't a valid profile code. Please run with "
-                          "`--help' and see the acceptable codes in "
-                          "explanation of the `--fcol' option", profile);
+                          "'--help' and see the acceptable codes in "
+                          "explanation of the '--fcol' option", profile);
           kernel->status=profcode;
         }
       else
@@ -420,8 +420,8 @@ ui_parse_kernel(struct argp_option *option, char *arg,
          are needed. */
       if( kernel->size != need )
         error_at_line(EXIT_FAILURE, 0, filename, lineno, "as a %uD kernel, "
-                      "a `%s' profile needs %zu parameters, but %zu "
-                      "parameter%s given to `--kernel'", kernel->flag,
+                      "a '%s' profile needs %zu parameters, but %zu "
+                      "parameter%s given to '--kernel'", kernel->flag,
                       ui_profile_name_write(kernel->status), need,
                       kernel->size, kernel->size>1?"s are":" is");
 
@@ -456,9 +456,9 @@ ui_parse_coordinate_mode(struct argp_option *option, char 
*arg,
       else if (!strcmp(arg, "wcs"))
         *(uint8_t *)(option->value)=MKPROF_MODE_WCS;
       else
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`--mode') not recognized as a coordinate standard "
-                      "mode. Recognized values are `img' and `wcs'. This "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'--mode') not recognized as a coordinate standard "
+                      "mode. Recognized values are 'img' and 'wcs'. This "
                       "option is necessary to identify the nature of your "
                       "input coordinates", arg);
       return NULL;
@@ -487,7 +487,7 @@ ui_parse_coordinate_mode(struct argp_option *option, char 
*arg,
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct mkprofparams *p)
 {
@@ -495,7 +495,7 @@ ui_read_check_only_options(struct mkprofparams *p)
 
   /* When a no-merged image is to be created, type is necessary. */
   if( p->cp.type==GAL_TYPE_INVALID && p->nomerged==0)
-    error(EXIT_FAILURE, 0, "an output type `--type' is necessary when a "
+    error(EXIT_FAILURE, 0, "an output type '--type' is necessary when a "
           "merged image is to be built.");
 
   /* Check if one of the coordinate columns has been given, the other is
@@ -507,26 +507,26 @@ ui_read_check_only_options(struct mkprofparams *p)
   if(p->kernel==NULL)
     {
       if(p->mode==0)
-        error(EXIT_FAILURE, 0, "the `--mode' option is necessary when "
+        error(EXIT_FAILURE, 0, "the '--mode' option is necessary when "
               "building profiles from a catalog. It can take two values: "
-              "`img' or `wcs' which specify how to interpret the "
+              "'img' or 'wcs' which specify how to interpret the "
               "coordinate columns");
     }
 
-  /* The zeropoint magnitude is only necessary when `mcolisbrightness' is
+  /* The zeropoint magnitude is only necessary when 'mcolisbrightness' is
      not called.  */
   if( p->mcolisbrightness==0 && isnan(p->zeropoint) )
     error(EXIT_FAILURE, 0, "no zeropoint magnitude given. A zeropoint "
-          "magnitude is necessary when `--mcolisbrightness' is not called "
-          "(i.e., when the contents of `--mcol' must be interpretted as "
+          "magnitude is necessary when '--mcolisbrightness' is not called "
+          "(i.e., when the contents of '--mcol' must be interpretted as "
           "a magnitude, not brightness).");
 
-  /* Make sure no zero value is given for the `--mergedsize' option (only
+  /* Make sure no zero value is given for the '--mergedsize' option (only
      when it is necessary). */
   if(p->dsize && p->backname==NULL)
     for(i=0;p->dsize[i]!=GAL_BLANK_SIZE_T;++i)
       if(p->dsize[i]==0)
-        error(EXIT_FAILURE, 0, "values to `--mergedsize' option must not "
+        error(EXIT_FAILURE, 0, "values to '--mergedsize' option must not "
               "be zero");
 }
 
@@ -535,7 +535,7 @@ ui_read_check_only_options(struct mkprofparams *p)
 
 
 /* Sanity check on options AND arguments. If only option values are to be
-   checked, use `ui_read_check_only_options'. */
+   checked, use 'ui_read_check_only_options'. */
 static void
 ui_check_options_and_arguments(struct mkprofparams *p)
 {
@@ -544,14 +544,14 @@ ui_check_options_and_arguments(struct mkprofparams *p)
 
   /* If no kernel is given, make sure an input catalog is given, and if it
      is FITS, that the HDU is also provided. When a kernel option, we will
-     set a fiducial catalog name called `kernel.txt' to automatic output
+     set a fiducial catalog name called 'kernel.txt' to automatic output
      filename generation. */
   if(p->kernel)
     {
       if(p->catname)
-        error(EXIT_FAILURE, 0, "`--kernel' cannot be called with an input "
-              "catalog (`%s'). The parameters necessary to build a single "
-              "kernel output should be given to `--kernel', not in a "
+        error(EXIT_FAILURE, 0, "'--kernel' cannot be called with an input "
+              "catalog ('%s'). The parameters necessary to build a single "
+              "kernel output should be given to '--kernel', not in a "
               "catalog", p->catname);
       p->catname="kernel.option";
     }
@@ -560,7 +560,7 @@ ui_check_options_and_arguments(struct mkprofparams *p)
       if(p->catname)
         {
           if( gal_fits_name_is_fits(p->catname) && p->cp.hdu==NULL)
-            error(EXIT_FAILURE, 0, "no `hdu' specified for the input FITS "
+            error(EXIT_FAILURE, 0, "no 'hdu' specified for the input FITS "
                   "table '%s', to ", p->catname);
         }
     }
@@ -594,7 +594,7 @@ ui_check_options_and_arguments(struct mkprofparams *p)
   p->basename=gal_checkset_not_dir_part(p->mergedimgname);
 
 
-  /* If a merged image is requested (or `--kernel' the option is called),
+  /* If a merged image is requested (or '--kernel' the option is called),
      then delete the final filename if it exists. */
   if(p->nomerged==0 && p->kernel)
     gal_checkset_writable_remove(p->mergedimgname, p->cp.keep,
@@ -662,8 +662,8 @@ ui_read_cols_2d(struct mkprofparams *p)
 
   /* The name of the input catalog is only for informative steps from now
      on (we won't be dealing with the actual file any more). So if the
-     standard input was used (therefore `catname==NULL', set it to
-     `stdin'). */
+     standard input was used (therefore 'catname==NULL', set it to
+     'stdin'). */
   if(p->catname==NULL)
     gal_checkset_allocate_copy("standard-input", &p->catname);
 
@@ -686,8 +686,8 @@ ui_read_cols_2d(struct mkprofparams *p)
         case 1:
         case 2:
           colname = ( counter==1
-                      ? "first coordinate column (`--coordcol')"
-                      : "second coordinate column (`--coordcol')" );
+                      ? "first coordinate column ('--coordcol')"
+                      : "second coordinate column ('--coordcol')" );
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT64);
           switch(counter)
             {
@@ -711,7 +711,7 @@ ui_read_cols_2d(struct mkprofparams *p)
           else
             {
               /* Read the user's profile codes. */
-              colname="profile function code (`fcol')";
+              colname="profile function code ('fcol')";
               corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_UINT8);
               p->f=corrtype->array;
 
@@ -720,12 +720,12 @@ ui_read_cols_2d(struct mkprofparams *p)
                 if(p->f[i]<=PROFILE_INVALID || p->f[i]>=PROFILE_MAXIMUM_CODE)
                   error(EXIT_FAILURE, 0, "%s: row %zu, the function "
                         "code is %u. It should be >%d and <%d. Please run "
-                        "again with `--help' and check the acceptable "
+                        "again with '--help' and check the acceptable "
                         "codes.\n\nAlternatively, you can use alphabetic "
                         "strings to specify the profile functions, see the "
-                        "explanations under `fcol' from the command "
-                        "below (press the `SPACE' key to go down, and the "
-                        "`q' to return back to the command-line):\n\n"
+                        "explanations under 'fcol' from the command "
+                        "below (press the 'SPACE' key to go down, and the "
+                        "'q' to return back to the command-line):\n\n"
                         "    $ info %s\n", p->catname, i+1, p->f[i],
                         PROFILE_INVALID, PROFILE_MAXIMUM_CODE, PROGRAM_EXEC);
             }
@@ -733,7 +733,7 @@ ui_read_cols_2d(struct mkprofparams *p)
 
 
         case 4:
-          colname="radius (`rcol')";
+          colname="radius ('rcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->r=corrtype->array;
 
@@ -741,28 +741,28 @@ ui_read_cols_2d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if(p->f[i]!=PROFILE_POINT && p->r[i]<=0.0f)
               error(EXIT_FAILURE, 0, "%s: row %zu, the radius value %g is "
-                    "not acceptable for a `%s' profile. It has to be larger "
+                    "not acceptable for a '%s' profile. It has to be larger "
                     "than 0", p->catname, i+1, p->r[i],
                     ui_profile_name_write(p->f[i]));
           break;
 
 
         case 5:
-          colname="index (`ncol')";
+          colname="index ('ncol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->n=corrtype->array;
           break;
 
 
         case 6:
-          colname="position angle (`pcol')";
+          colname="position angle ('pcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->p1=corrtype->array;
           break;
 
 
         case 7:
-          colname="axis ratio (`qcol')";
+          colname="axis ratio ('qcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->q1=corrtype->array;
 
@@ -770,14 +770,14 @@ ui_read_cols_2d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if( p->f[i]!=PROFILE_POINT && (p->q1[i]<=0.0f || p->q1[i]>1.0f) )
               error(EXIT_FAILURE, 0, "%s: row %zu, the axis ratio value %g "
-                    "is not acceptable for a `%s' profile. It has to be >0 "
+                    "is not acceptable for a '%s' profile. It has to be >0 "
                     "and <=1", p->catname, i+1, p->q1[i],
                     ui_profile_name_write(p->f[i]));
           break;
 
 
         case 8:
-          colname="magnitude (`mcol')";
+          colname="magnitude ('mcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->m=corrtype->array;
           checkblank=0;          /* Magnitude can be NaN: to mask regions. */
@@ -785,7 +785,7 @@ ui_read_cols_2d(struct mkprofparams *p)
 
 
         case 9:
-          colname="truncation (`tcol')";
+          colname="truncation ('tcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->t=corrtype->array;
 
@@ -793,7 +793,7 @@ ui_read_cols_2d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if(p->f[i]!=PROFILE_POINT && p->t[i]<=0.0f)
               error(EXIT_FAILURE, 0, "%s: row %zu, the truncation radius "
-                    "value %g is not acceptable for a `%s' profile. It has "
+                    "value %g is not acceptable for a '%s' profile. It has "
                     "to be larger than 0", p->catname, i+1, p->t[i],
                     ui_profile_name_write(p->f[i]));
           break;
@@ -805,11 +805,11 @@ ui_read_cols_2d(struct mkprofparams *p)
           gal_tableintern_error_col_selection(p->catname, p->cp.hdu, "too "
                                               "many columns were selected "
                                               "by the given values to the "
-                                              "options ending in `col'.");
+                                              "options ending in 'col'.");
         }
 
       /* Sanity check and clean up.  Note that it might happen that the
-         input structure is already freed. In that case, `corrtype' will be
+         input structure is already freed. In that case, 'corrtype' will be
          NULL. */
       if(corrtype)
         {
@@ -819,7 +819,7 @@ ui_read_cols_2d(struct mkprofparams *p)
                   "Input columns cannot contain blank values", colname);
 
           /* Free the unnecessary sturcture information. The correct-type
-             (`corrtype') data structure's array is necessary for later
+             ('corrtype') data structure's array is necessary for later
              steps, so its pointer has been copied in the main program's
              structure. Hence, we should set the structure's pointer to
              NULL so the important data isn't freed.*/
@@ -838,12 +838,12 @@ ui_read_cols_2d(struct mkprofparams *p)
         {
           error(0, 0, "WARNING: atleast one single-valued profile (point, "
                 "flat, or circumference profiles) has a magnitude column "
-                "value of 0.0 while `--mforflatpix' or "
-                "`--mcolforbrightness' have also been given. In such cases "
+                "value of 0.0 while '--mforflatpix' or "
+                "'--mcolforbrightness' have also been given. In such cases "
                 "the profile's pixels will have a value of zero and thus "
                 "they will not be identifiable from the zero-valued "
                 "background. If this behavior is intended, this warning "
-                "can be suppressed with the `--quiet' (or `-q') option.\n");
+                "can be suppressed with the '--quiet' (or '-q') option.\n");
           break;
         }
 }
@@ -862,11 +862,11 @@ ui_read_cols_3d(struct mkprofparams *p)
   gal_data_t *cols, *tmp, *corrtype=NULL;
   gal_list_str_t *lines, *ccol, *colstrs=NULL;
 
-  /* The 3D-specific columns are not mandatory in `args.h', so we need to
+  /* The 3D-specific columns are not mandatory in 'args.h', so we need to
      check here if they are given or not before starting to read them. */
   if(p->p2col==NULL || p->p3col==NULL || p->q2col==NULL)
-    error(EXIT_FAILURE, 0, "at least one of `--p2col', `--p3col', or "
-          "`--q2col' have not been identified. When building a 3D profile, "
+    error(EXIT_FAILURE, 0, "at least one of '--p2col', '--p3col', or "
+          "'--q2col' have not been identified. When building a 3D profile, "
           "these three columns are also mandatory");
 
   /* The coordinate columns are a linked list of strings. */
@@ -920,10 +920,10 @@ ui_read_cols_3d(struct mkprofparams *p)
         case 2:
         case 3:
           colname = ( counter==1
-                      ? "first coordinate column (`--coordcol')"
+                      ? "first coordinate column ('--coordcol')"
                       : ( counter==2
-                          ? "second coordinate column (`--coordcol')"
-                          : "third coordinate column (`--coordcol')" ) );
+                          ? "second coordinate column ('--coordcol')"
+                          : "third coordinate column ('--coordcol')" ) );
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT64);
           switch(counter)
             {
@@ -947,7 +947,7 @@ ui_read_cols_3d(struct mkprofparams *p)
           else
             {
               /* Read the user's profile codes. */
-              colname="profile function code (`fcol')";
+              colname="profile function code ('fcol')";
               corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_UINT8);
               p->f=corrtype->array;
 
@@ -956,19 +956,19 @@ ui_read_cols_3d(struct mkprofparams *p)
                 if(p->f[i]<=PROFILE_INVALID || p->f[i]>=PROFILE_MAXIMUM_CODE)
                   error(EXIT_FAILURE, 0, "%s: row %zu, the function "
                         "code is %u. It should be >%d and <%d. Please run "
-                        "again with `--help' and check the acceptable "
+                        "again with '--help' and check the acceptable "
                         "codes.\n\nAlternatively, you can use alphabetic "
                         "strings to specify the profile functions, see the "
-                        "explanations under `fcol' from the command "
-                        "below (press the `SPACE' key to go down, and the "
-                        "`q' to return back to the command-line):\n\n"
+                        "explanations under 'fcol' from the command "
+                        "below (press the 'SPACE' key to go down, and the "
+                        "'q' to return back to the command-line):\n\n"
                         "    $ info %s\n", p->catname, i+1, p->f[i],
                         PROFILE_INVALID, PROFILE_MAXIMUM_CODE, PROGRAM_EXEC);
             }
           break;
 
         case 5:
-          colname="radius (`rcol')";
+          colname="radius ('rcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->r=corrtype->array;
 
@@ -976,37 +976,37 @@ ui_read_cols_3d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if(p->f[i]!=PROFILE_POINT && p->r[i]<=0.0f)
               error(EXIT_FAILURE, 0, "%s: row %zu, the radius value %g is "
-                    "not acceptable for a `%s' profile. It has to be larger "
+                    "not acceptable for a '%s' profile. It has to be larger "
                     "than 0", p->catname, i+1, p->r[i],
                     ui_profile_name_write(p->f[i]));
           break;
 
         case 6:
-          colname="index (`ncol')";
+          colname="index ('ncol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->n=corrtype->array;
           break;
 
         case 7:
-          colname="first euler angle (`pcol')";
+          colname="first euler angle ('pcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->p1=corrtype->array;
           break;
 
         case 8:
-          colname="second euler angle (`p2col')";
+          colname="second euler angle ('p2col')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->p2=corrtype->array;
           break;
 
         case 9:
-          colname="third euler angle (`p3col')";
+          colname="third euler angle ('p3col')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->p3=corrtype->array;
           break;
 
         case 10:
-          colname="axis ratio 1 (`qcol')";
+          colname="axis ratio 1 ('qcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->q1=corrtype->array;
 
@@ -1014,13 +1014,13 @@ ui_read_cols_3d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if( p->f[i]!=PROFILE_POINT && (p->q1[i]<=0.0f || p->q1[i]>1.0f) )
               error(EXIT_FAILURE, 0, "%s: row %zu, the first axis ratio "
-                    "value %g is not acceptable for a `%s' profile. It has "
+                    "value %g is not acceptable for a '%s' profile. It has "
                     "to be >0 and <=1", p->catname, i+1, p->q1[i],
                     ui_profile_name_write(p->f[i]));
           break;
 
         case 11:
-          colname="axis ratio 2 (`q2col')";
+          colname="axis ratio 2 ('q2col')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->q2=corrtype->array;
 
@@ -1028,20 +1028,20 @@ ui_read_cols_3d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if( p->f[i]!=PROFILE_POINT && (p->q2[i]<=0.0f || p->q2[i]>1.0f) )
               error(EXIT_FAILURE, 0, "%s: row %zu, the second axis ratio "
-                    "value %g is not acceptable for a `%s' profile. It has "
+                    "value %g is not acceptable for a '%s' profile. It has "
                     "to be >0 and <=1", p->catname, i+1, p->q2[i],
                     ui_profile_name_write(p->f[i]));
           break;
 
         case 12:
-          colname="magnitude (`mcol')";
+          colname="magnitude ('mcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->m=corrtype->array;
           checkblank=0;          /* Magnitude can be NaN: to mask regions. */
           break;
 
         case 13:
-          colname="truncation (`tcol')";
+          colname="truncation ('tcol')";
           corrtype=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT32);
           p->t=corrtype->array;
 
@@ -1049,7 +1049,7 @@ ui_read_cols_3d(struct mkprofparams *p)
           for(i=0;i<p->num;++i)
             if(p->f[i]!=PROFILE_POINT && p->t[i]<=0.0f)
               error(EXIT_FAILURE, 0, "%s: row %zu, the truncation radius "
-                    "value %g is not acceptable for a `%s' profile. It has "
+                    "value %g is not acceptable for a '%s' profile. It has "
                     "to be larger than 0", p->catname, i+1, p->t[i],
                     ui_profile_name_write(p->f[i]));
           break;
@@ -1060,11 +1060,11 @@ ui_read_cols_3d(struct mkprofparams *p)
           gal_tableintern_error_col_selection(p->catname, p->cp.hdu, "too "
                                               "many columns were selected "
                                               "by the given values to the "
-                                              "options ending in `col'.");
+                                              "options ending in 'col'.");
         }
 
       /* Sanity check and clean up.  Note that it might happen that the
-         input structure is already freed. In that case, `corrtype' will be
+         input structure is already freed. In that case, 'corrtype' will be
          NULL. */
       if(corrtype)
         {
@@ -1074,7 +1074,7 @@ ui_read_cols_3d(struct mkprofparams *p)
                   "Input columns cannot contain blank values", colname);
 
           /* Free the unnecessary sturcture information. The correct-type
-             (`corrtype') data structure's array is necessary for later
+             ('corrtype') data structure's array is necessary for later
              steps, so its pointer has been copied in the main program's
              structure. Hence, we should set the structure's pointer to
              NULL so the important data isn't freed.*/
@@ -1089,7 +1089,7 @@ ui_read_cols_3d(struct mkprofparams *p)
 
 
 /* It is possible to define the internal catalog through a catalog or the
-   `--kernel' option. This function will do the job. */
+   '--kernel' option. This function will do the job. */
 static void
 ui_prepare_columns(struct mkprofparams *p)
 {
@@ -1161,7 +1161,7 @@ ui_prepare_columns(struct mkprofparams *p)
             }
 
           /* 3rd-dim axis ratio <=1: No extra rotation is necessary and
-             `q2'can simply be put in the respective column. */
+             'q2'can simply be put in the respective column. */
           else
             {
               p->q2[0] = q2;
@@ -1173,11 +1173,11 @@ ui_prepare_columns(struct mkprofparams *p)
     {
       /* Make sure the number of coordinate columns and number of
          dimensions in outputs are the same. There is no problem if it is
-         more than `ndim'. In that case, the last values (possibly in
+         more than 'ndim'. In that case, the last values (possibly in
          configuration files) will be ignored. */
       if( gal_list_str_number(p->ccol) < p->ndim )
         error(EXIT_FAILURE, 0, "%zu coordinate columns (calls to "
-              "`--coordcol') given but output has %zu dimensions",
+              "'--coordcol') given but output has %zu dimensions",
               gal_list_str_number(p->ccol), p->ndim);
 
       /* Call the respective function. */
@@ -1187,7 +1187,7 @@ ui_prepare_columns(struct mkprofparams *p)
         case 3: ui_read_cols_3d(p);   break;
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
-                "resolve the issue. %zu not recognized for `p->ndim'",
+                "resolve the issue. %zu not recognized for 'p->ndim'",
                 __func__, PACKAGE_BUGREPORT, p->ndim);
         }
     }
@@ -1209,7 +1209,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->crpix)
     {
       if(p->crpix->size!=ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--crpix'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--crpix'. This must be "
               "the same as the output dimension (%zu)", p->crpix->size, ndim);
       return 0;
     }
@@ -1218,7 +1218,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->crval)
     {
       if(p->crval->size!=ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--crval'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--crval'. This must be "
               "the same as the output dimension (%zu)", p->crval->size, ndim);
       return 0;
     }
@@ -1227,7 +1227,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->cdelt)
     {
       if(p->cdelt->size!=ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--cdelt'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--cdelt'. This must be "
               "the same as the output dimension (%zu)", p->cdelt->size, ndim);
       return 0;
     }
@@ -1236,7 +1236,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->pc)
     {
       if(p->pc->size!=ndim*ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--pc'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--pc'. This must be "
               "the square as the output dimension (%zu)", p->pc->size,
               ndim*ndim);
       return 0;
@@ -1246,7 +1246,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->cunit)
     {
       if(p->cunit->size!=ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--cunit'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--cunit'. This must be "
               "the same as the output dimension (%zu)", p->cunit->size, ndim);
       return 0;
     }
@@ -1255,7 +1255,7 @@ ui_wcs_sanity_check(struct mkprofparams *p)
   if(p->ctype)
     {
       if(p->ctype->size!=ndim)
-        error(EXIT_FAILURE, 0, "%zu values given to `--ctype'. This must be "
+        error(EXIT_FAILURE, 0, "%zu values given to '--ctype'. This must be "
               "the same as the output dimension (%zu)", p->ctype->size, ndim);
       return 0;
     }
@@ -1309,7 +1309,7 @@ ui_prepare_wcs(struct mkprofparams *p)
       /* IMPORTANT: At this point, we don't want the WCS to be over-sampled
          because if the user has given RA and Dec for the profiles, they
          need to be converted to non-oversampled and shifted image
-         coordinates. After the conversion (in `ui_finalize_coordinates')
+         coordinates. After the conversion (in 'ui_finalize_coordinates')
          we are going to correct for the oversampling in the WCS.*/
       wcs->crpix[i] = crpix[i];
       wcs->crval[i] = crval[i];
@@ -1347,7 +1347,7 @@ ui_prepare_canvas(struct mkprofparams *p)
       /* Read in the background image and its coordinates, note that when
          no merged image is desired, we just need the WCS information of
          the background image and the number of its dimensions. So
-         `ndim==0' and what `dsize' points to is irrelevant. */
+         'ndim==0' and what 'dsize' points to is irrelevant. */
       tdsize=gal_fits_img_info_dim(p->backname, p->backhdu, &tndim);
       p->wcs=gal_wcs_read(p->backname, p->backhdu, 0, 0, &p->nwcs);
       tndim=gal_dimension_remove_extra(tndim, tdsize, p->wcs);
@@ -1357,7 +1357,7 @@ ui_prepare_canvas(struct mkprofparams *p)
           /* If p->dsize was given as an option, free it. */
           if( p->dsize ) free(p->dsize);
 
-          /* Write the size of the background image into `dsize'. */
+          /* Write the size of the background image into 'dsize'. */
           p->dsize=gal_pointer_allocate(GAL_TYPE_SIZE_T, p->ndim, 0,
                                         __func__, "p->dsize");
           for(i=0;i<p->ndim;++i) p->dsize[i] = p->out->dsize[i];
@@ -1388,13 +1388,13 @@ ui_prepare_canvas(struct mkprofparams *p)
 
           /* Make sure it has the same number of elements as naxis. */
           if(p->ndim!=nshift)
-            error(EXIT_FAILURE, 0, "%zu and %zu elements given to `--ndim' "
-                  "and `--shift' respectively. These two numbers must be the "
+            error(EXIT_FAILURE, 0, "%zu and %zu elements given to '--ndim' "
+                  "and '--shift' respectively. These two numbers must be the "
                   "same", p->ndim, nshift);
         }
       else
         {
-          /* `prepforconv' is only valid when xshift and yshift are both
+          /* 'prepforconv' is only valid when xshift and yshift are both
              zero. Also, a PSF profile should exist in the image. */
           if(p->prepforconv)
             {
@@ -1516,15 +1516,15 @@ ui_finalize_coordinates(struct mkprofparams *p)
   double *cdelt=p->wcs->cdelt, *crpix=p->wcs->crpix;
 
   /* When the user specified RA and Dec columns, the respective values
-     where stored in the `p->x' and `p->y' arrays. So before proceeding, we
+     where stored in the 'p->x' and 'p->y' arrays. So before proceeding, we
      need to change them into actual image coordinates. */
   if(p->mode==MKPROF_MODE_WCS)
     {
-      /* Make list of coordinates for input of `gal_wcs_world_to_img'. */
+      /* Make list of coordinates for input of 'gal_wcs_world_to_img'. */
       for(i=0;i<ndim;++i)
         {
           /* Set the array pointer. Note that we read the WCS columns into
-         the `p->x', `p->y' and `p->z' arrays temporarily before. Here, we
+         the 'p->x', 'p->y' and 'p->z' arrays temporarily before. Here, we
          will convert them to image coordinates in place. */
           switch(i)
             {
@@ -1557,7 +1557,7 @@ ui_finalize_coordinates(struct mkprofparams *p)
                 "(%f, %f) coordinates into image coordinates", i, p->x[i],
                 p->y[i]);
 
-      /* We want the actual arrays of each `coords' column. So, first we'll
+      /* We want the actual arrays of each 'coords' column. So, first we'll
          set all the array elements to NULL, then free it. */
       for(tmp=coords;tmp!=NULL;tmp=tmp->next) tmp->array=NULL;
       gal_list_data_free(coords);
@@ -1569,7 +1569,7 @@ ui_finalize_coordinates(struct mkprofparams *p)
      non-over-sampled image.*/
   for(i=0;i<p->ndim;++i)
     {
-      /* Oversampling has already been applied in `p->shift'. Also note
+      /* Oversampling has already been applied in 'p->shift'. Also note
          that shift is in the C dimension ordring, while crpix is in FITS
          ordering. */
       crpix[i]  = crpix[i]*os + p->shift[ndim-i-1] - os/2;
@@ -1649,7 +1649,7 @@ ui_read_ndim(struct mkprofparams *p)
 
       /* Make sure the kernel and background are not given together. */
       if(p->backname)
-        error(EXIT_FAILURE, 0, "the `--kernel' and `--background' options "
+        error(EXIT_FAILURE, 0, "the '--kernel' and '--background' options "
               "cannot be called together");
     }
   else
@@ -1660,10 +1660,10 @@ ui_read_ndim(struct mkprofparams *p)
           /* Small sanity check. */
           if(p->backhdu==NULL)
             error(EXIT_FAILURE, 0, "no hdu specified for the background "
-                  "image %s. Please run again `--backhdu' option",
+                  "image %s. Please run again '--backhdu' option",
                   p->backname);
 
-          /* If `--nomerged' is given, we don't actually need to load the
+          /* If '--nomerged' is given, we don't actually need to load the
              image, we just need its WCS later. */
           if(p->nomerged)
             {
@@ -1699,7 +1699,7 @@ ui_read_ndim(struct mkprofparams *p)
 
           /* Make sure the dimensionality is supported. */
           if(p->ndim!=2 && p->ndim!=3)
-            error(EXIT_FAILURE, 0, "%zu values given to `--mergedsize'. "
+            error(EXIT_FAILURE, 0, "%zu values given to '--mergedsize'. "
                   "Currently only 2 or 3 dimensional outputs can be produced",
                   p->ndim);
         }
@@ -1717,7 +1717,7 @@ ui_preparations(struct mkprofparams *p)
      use). */
   ui_read_ndim(p);
 
-  /* Read in all the columns (necessary for `--prepforconf' when we want to
+  /* Read in all the columns (necessary for '--prepforconf' when we want to
      build the profiles). */
   ui_prepare_columns(p);
 
@@ -1845,9 +1845,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
mkprofparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/noisechisel/Makefile.am b/bin/noisechisel/Makefile.am
index a8ee328..3fd9f16 100644
--- a/bin/noisechisel/Makefile.am
+++ b/bin/noisechisel/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astnoisechisel
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astnoisechisel_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la \
                        -lgnuastro $(MAYBE_NORPATH)
 
diff --git a/bin/noisechisel/astnoisechisel.conf 
b/bin/noisechisel/astnoisechisel.conf
index 63c055e..add04ee 100644
--- a/bin/noisechisel/astnoisechisel.conf
+++ b/bin/noisechisel/astnoisechisel.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/noisechisel/authors-cite.h b/bin/noisechisel/authors-cite.h
index 1dc649b..14b7ef5 100644
--- a/bin/noisechisel/authors-cite.h
+++ b/bin/noisechisel/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""                                               \
   "Paper on NoiseChisel improvements since 2015\n"                      \
diff --git a/bin/noisechisel/detection.c b/bin/noisechisel/detection.c
index 3c91891..a15061d 100644
--- a/bin/noisechisel/detection.c
+++ b/bin/noisechisel/detection.c
@@ -265,7 +265,7 @@ detection_fill_holes_open(void *in_prm)
       tile->block=fho_prm->workbin;
 
       /* Copy the tile into the contiguous patch of memory to work on, but
-         first reset the size element so `gal_data_copy_to_allocated' knows
+         first reset the size element so 'gal_data_copy_to_allocated' knows
          there is enough space. */
       copy->flag=0;
       copy->size=p->maxltcontig;
@@ -343,8 +343,8 @@ detection_pseudo_find(struct noisechiselparams *p, 
gal_data_t *workbin,
 
   /* Allocate the space necessary to work on each tile (to avoid having to
      allocate it it separately for each tile and within each
-     thread. `maxltcontig' is the maximum contiguous patch of memory needed
-     to store all tiles. Finally, since we are working on a `uint8_t' type,
+     thread. 'maxltcontig' is the maximum contiguous patch of memory needed
+     to store all tiles. Finally, since we are working on a 'uint8_t' type,
      the size of each element is only 1 byte. */
   fho_prm.copyspace=gal_pointer_allocate(GAL_TYPE_UINT8,
                                          p->cp.numthreads*p->maxltcontig, 0,
@@ -365,7 +365,7 @@ detection_pseudo_find(struct noisechiselparams *p, 
gal_data_t *workbin,
       /* Do each step. */
       while(fho_prm.step<3)
         {
-          /* Put a copy of `workbin' into `bin' for every step (only
+          /* Put a copy of 'workbin' into 'bin' for every step (only
              necessary for the second step and after). For the first time
              it was already copied.*/
           if(fho_prm.step>1)
@@ -405,12 +405,12 @@ detection_pseudo_find(struct noisechiselparams *p, 
gal_data_t *workbin,
           ++fho_prm.step;
         }
 
-      /* Clean up: the array in `bin' should just be replaced with that in
-         `workbin' because it is used in later steps. */
+      /* Clean up: the array in 'bin' should just be replaced with that in
+         'workbin' because it is used in later steps. */
       if(workbin->mmapname)
         {
-          /* Delete the memory mapped file and set the filename of `bin'
-             for `workbin'. */
+          /* Delete the memory mapped file and set the filename of 'bin'
+             for 'workbin'. */
           remove(workbin->mmapname);
           free(workbin->mmapname);
           workbin->mmapname=bin->mmapname;
@@ -431,7 +431,7 @@ detection_pseudo_find(struct noisechiselparams *p, 
gal_data_t *workbin,
 
 
   /* Label all regions, but first, deal with the blank pixels in the
-     `workbin' dataset when working on the Sky. Recall that in this case,
+     'workbin' dataset when working on the Sky. Recall that in this case,
      the blank pixels are the detections. On the Sky image, blank should be
      set to 1 (because we want the detected objects to have the same labels
      as the pseudo-detections that cover them). This will allow us to later
@@ -458,8 +458,8 @@ detection_sn_write_to_file(struct noisechiselparams *p, 
gal_data_t *sn,
   gal_list_str_t *comments=NULL;
 
   /* Comment for extension on further explanation. */
-  if( asprintf(&str, "See also: `%s' HDU of output with "
-               "`--checkdetection'", ( s0d1D2<2
+  if( asprintf(&str, "See also: '%s' HDU of output with "
+               "'--checkdetection'", ( s0d1D2<2
                                        ? "PSEUDOS-FOR-SN": "DILATED" ))<0 )
     error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
   gal_list_str_add(&comments, str, 0);
@@ -523,7 +523,7 @@ detection_sn(struct noisechiselparams *p, gal_data_t 
*worklab, size_t num,
 
   /* Allocate all the necessary arrays, note that since we want to put each
      object's information into the same index, the number of allocated
-     spaces has to be `tablen=num+1'. */
+     spaces has to be 'tablen=num+1'. */
   area       = gal_pointer_allocate(GAL_TYPE_SIZE_T,  tablen, 1, __func__,
                                     "area");
   brightness = gal_pointer_allocate(GAL_TYPE_FLOAT64, tablen, 1, __func__,
@@ -770,10 +770,10 @@ detection_pseudo_real(struct noisechiselparams *p)
       if( sn->size < p->minnumfalse)
         error(EXIT_FAILURE, 0, "only %zu pseudo-detections could be found "
               "over the sky region to estimate an S/N. This is less than "
-              "%zu (value to `--minnumfalse' option). Please adjust "
-              "parameters like `--dthresh', `--snminarea', or make sure "
+              "%zu (value to '--minnumfalse' option). Please adjust "
+              "parameters like '--dthresh', '--snminarea', or make sure "
               "that there actually is sufficient sky area after initial "
-              "detection. You can use `--checkdetection' to see every step "
+              "detection. You can use '--checkdetection' to see every step "
               "until this point", sn->size, p->minnumfalse);
 
 
@@ -891,12 +891,12 @@ detection_remove_false_initial(struct noisechiselparams 
*p,
                                           "newlabels");
 
   /* Find the new labels for all the existing labels. Recall that
-     `newlabels' was initialized to zero, so any label that is not given a
+     'newlabels' was initialized to zero, so any label that is not given a
      new label here will be automatically removed. After the first pixel of
      a label overlaps with dbyt[i], we don't need to check the rest of that
      object's pixels. At this point, tokeep is only binary: 0 or 1.
 
-     Note that the zeroth element of `tokeep' can also be non zero, this is
+     Note that the zeroth element of 'tokeep' can also be non zero, this is
      because the holes of the labeled regions might be filled during
      filling the holes, but have not been filled in the original labeled
      array. They are not important so you can just ignore them. */
@@ -928,7 +928,7 @@ detection_remove_false_initial(struct noisechiselparams *p,
      asked for growth, if the edges of the objects in the image are sharp
      enough, no growth will be necessary (and thus the labeled image won't
      be re-written during growth). So it is necessary to check for growth
-     here and later do it in `detection_quantile_expand'. */
+     here and later do it in 'detection_quantile_expand'. */
   p->numexpand=0;
   b=workbin->array;
   l=p->olabel->array;
@@ -988,7 +988,7 @@ detection_remove_false_initial(struct noisechiselparams *p,
 
 /* Expand the initial detections based on the quantile threshold and then
    label the connected regions. If expansion is not possible, then return
-   the `GAL_BLANK_SIZET'.*/
+   the 'GAL_BLANK_SIZET'.*/
 static size_t
 detection_quantile_expand(struct noisechiselparams *p, gal_data_t *workbin)
 {
@@ -1214,8 +1214,8 @@ detection(struct noisechiselparams *p)
 
 
   /* p->binary was used to keep the initial pseudo-detection threshold. But
-     we don't need it any more, so we'll just free it and put the `workbin'
-     array in its place. Note that `workbin' has a map of all the detected
+     we don't need it any more, so we'll just free it and put the 'workbin'
+     array in its place. Note that 'workbin' has a map of all the detected
      objects, which is still necessary during NoiseChisel. */
   gal_data_free(p->binary);
   p->binary=workbin;
@@ -1228,7 +1228,7 @@ detection(struct noisechiselparams *p)
 
 
   /* If the user wanted to check the threshold and hasn't called
-     `continueaftercheck', then stop NoiseChisel. */
+     'continueaftercheck', then stop NoiseChisel. */
   if(p->detectionname && !p->continueaftercheck)
     ui_abort_after_check(p, p->detectionname, NULL,
                          "showing all detection steps");
diff --git a/bin/noisechisel/kernel-2d.h b/bin/noisechisel/kernel-2d.h
index 7705859..e6a62fc 100644
--- a/bin/noisechisel/kernel-2d.h
+++ b/bin/noisechisel/kernel-2d.h
@@ -48,7 +48,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    Convert it to C code
    --------------------
 
-   Put the following C program into a file called `kernel.c'.
+   Put the following C program into a file called 'kernel.c'.
 
      #include <stdio.h>
      #include <stdlib.h>
@@ -74,7 +74,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
                if(i % img->dsize[1] == 0 ) printf("\n\n");
              }
 
-           // We cannot use `\b' here, since we are writing directly
+           // We cannot use '\b' here, since we are writing directly
            // to the command-line, so we'll first write the number,
            // then decide if any subsequent character (a comma)
            // should be written.
@@ -96,7 +96,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    -----------------
 
    We can now compile and run that C program and put the outputs in
-   `kernel.c'. Once its created, copy the contents of `kernel-2d.h' after
+   'kernel.c'. Once its created, copy the contents of 'kernel-2d.h' after
    these comments.
 
      $ astbuildprog -q kernel.c > kernel-2d.h
diff --git a/bin/noisechisel/noisechisel.c b/bin/noisechisel/noisechisel.c
index 6f640a6..16b859f 100644
--- a/bin/noisechisel/noisechisel.c
+++ b/bin/noisechisel/noisechisel.c
@@ -213,7 +213,7 @@ noisechisel_output(struct noisechiselparams *p)
 
   /* Let the user know that the output is written. */
   if(!p->cp.quiet)
-    printf("  - Output written to `%s'.\n", p->cp.output);
+    printf("  - Output written to '%s'.\n", p->cp.output);
 }
 
 
diff --git a/bin/noisechisel/sky.c b/bin/noisechisel/sky.c
index 62f54a8..ff336b2 100644
--- a/bin/noisechisel/sky.c
+++ b/bin/noisechisel/sky.c
@@ -92,7 +92,7 @@ sky_mean_std_undetected(void *in_prm)
 
       /* Correct the fake binary tile's properties to be the same as this
          one, then count the number of zero valued elements in it. Note
-         that the `CHECK_BLANK' flag of `GAL_TILE_PARSE_OPERATE' is set to
+         that the 'CHECK_BLANK' flag of 'GAL_TILE_PARSE_OPERATE' is set to
          1. So blank values in the input array are not counted. */
       bintile->size=tile->size;
       bintile->dsize=tile->dsize;
@@ -109,14 +109,14 @@ sky_mean_std_undetected(void *in_prm)
         {
           /* Re-initialize the usage array's size information (will be
              corrected to this tile's size by
-             `gal_data_copy_to_allocated'). */
+             'gal_data_copy_to_allocated'). */
           busage->ndim = fusage->ndim = ndim;
           busage->size = fusage->size = p->maxtcontig;
           gal_data_copy_to_allocated(tile,    fusage);
           gal_data_copy_to_allocated(bintile, busage);
 
 
-          /* Set all the non-zero pixels in `busage' to NaN in `fusage'. */
+          /* Set all the non-zero pixels in 'busage' to NaN in 'fusage'. */
           busage->flag = fusage->flag = 0;
           gal_blank_flag_apply(fusage, busage);
 
@@ -136,7 +136,7 @@ sky_mean_std_undetected(void *in_prm)
             {
               /* Copy the sigma-clipped mean and STD to their respective
                  places in the tile arrays. But first, make sure
-                 `sigmaclip' has the same type as the sky and std
+                 'sigmaclip' has the same type as the sky and std
                  arrays. */
               sigmaclip=gal_data_copy_to_new_type_free(sigmaclip, type);
               memcpy(gal_pointer_increment(p->sky->array, tind, type),
@@ -291,8 +291,8 @@ sky_subtract(struct noisechiselparams *p)
 
   /* A small sanity check. */
   if(p->sky->type!=GAL_TYPE_FLOAT32)
-    error(EXIT_FAILURE, 0, "%s: only `float32' type is acceptable "
-          "for sky values. but `p->sky' has type `%s'", __func__,
+    error(EXIT_FAILURE, 0, "%s: only 'float32' type is acceptable "
+          "for sky values. but 'p->sky' has type '%s'", __func__,
           gal_type_name(p->sky->type, 1));
 
   /* Go over all the tiles. */
diff --git a/bin/noisechisel/threshold.c b/bin/noisechisel/threshold.c
index f60aace..698dd45 100644
--- a/bin/noisechisel/threshold.c
+++ b/bin/noisechisel/threshold.c
@@ -102,7 +102,7 @@ threshold_apply_on_thread(void *in_prm)
               tile->block=p->conv;
             }
 
-          /* Apply the threshold: When the `>' comparison fails, it can be
+          /* Apply the threshold: When the '>' comparison fails, it can be
              either because the pixel was actually smaller than the
              threshold, or that it was a NaN value. In the first case,
              return 0, in the second, return a blank value.
@@ -142,7 +142,7 @@ threshold_apply_on_thread(void *in_prm)
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so we "
                 "can address the problem. A value of %d had for "
-                "`taprm->kind' is not valid", __func__, PACKAGE_BUGREPORT,
+                "'taprm->kind' is not valid", __func__, PACKAGE_BUGREPORT,
                 taprm->kind);
         }
     }
@@ -219,10 +219,10 @@ threshold_write_sn_table(struct noisechiselparams *p, 
gal_data_t *insn,
   gal_table_comments_add_intro(&comments, PROGRAM_STRING, &p->rawtime);
 
 
-  /* Write the table. Note that we'll set the `dontdelete' argument to 0
+  /* Write the table. Note that we'll set the 'dontdelete' argument to 0
      because when the output is a FITS table, we want all the tables in one
      FITS file. We have already deleted any existing file with the same
-     name in `ui_set_output_names'.*/
+     name in 'ui_set_output_names'.*/
   gal_table_write(cols, comments, p->cp.tableformat, filename, extname, 0);
 
 
@@ -264,13 +264,13 @@ threshold_interp_smooth(struct noisechiselparams *p, 
gal_data_t **first,
 
   /* A small sanity check. */
   if( (*first)->next )
-    error(EXIT_FAILURE, 0, "%s: `first' must not have any `next' pointer.",
+    error(EXIT_FAILURE, 0, "%s: 'first' must not have any 'next' pointer.",
           __func__);
   if( (*second)->next )
-    error(EXIT_FAILURE, 0, "%s: `second' must not have any `next' pointer.",
+    error(EXIT_FAILURE, 0, "%s: 'second' must not have any 'next' pointer.",
           __func__);
   if( third && (*third)->next )
-    error(EXIT_FAILURE, 0, "%s: `third' must not have any `next' pointer.",
+    error(EXIT_FAILURE, 0, "%s: 'third' must not have any 'next' pointer.",
           __func__);
 
   /* Do the interpolation of both arrays. */
@@ -408,7 +408,7 @@ qthresh_on_tile(void *in_prm)
   for(i=0; tprm->indexs[i] != GAL_BLANK_SIZE_T; ++i)
     {
       /* Re-initialize the usage array's space (will be changed in
-         `gal_data_copy_to_allocated' for each tile). */
+         'gal_data_copy_to_allocated' for each tile). */
       usage->ndim=ndim;
       usage->size=p->maxtcontig;
       memcpy(usage->dsize, p->maxtsize, ndim*sizeof *p->maxtsize);
@@ -421,7 +421,7 @@ qthresh_on_tile(void *in_prm)
 
       /* Temporarily change the tile's pointers so we can do the work on
          the convolved image, then copy the desired contents into the
-         already allocated `usage' array. */
+         already allocated 'usage' array. */
       tarray=tile->array; tblock=tile->block;
       tile->array=gal_tile_block_relative_to_other(tile, meanconv);
       tile->block=meanconv;
@@ -432,7 +432,7 @@ qthresh_on_tile(void *in_prm)
 
       /* Find the mean's quantile on this tile, note that we have already
          copied the tile's dataset to a newly allocated place. So we have
-         set the `inplace' flag to `1' to avoid extra allocation. */
+         set the 'inplace' flag to '1' to avoid extra allocation. */
       mean=gal_statistics_mean(usage);
       num=gal_statistics_number(usage);
       mean=gal_data_copy_to_new_type_free(mean, usage->type);
@@ -464,7 +464,7 @@ qthresh_on_tile(void *in_prm)
             }
 
           /* Get the erosion quantile for this tile and save it. Note that
-             the type of `qvalue' is the same as the input dataset. */
+             the type of 'qvalue' is the same as the input dataset. */
           qvalue=gal_statistics_quantile(usage, p->qthresh, 1);
           memcpy(gal_pointer_increment(qprm->erode_th->array, tind, type),
                  qvalue->array, twidth);
@@ -529,9 +529,9 @@ threshold_good_error(size_t number, int before0_after1, 
size_t interpnumngb)
                   "(where the number may decrease even further).");
   char *in3 = ( before0_after1
                 ? "\n"
-                  "  - (slightly) Increase `--outliersclip' to reject less "
+                  "  - (slightly) Increase '--outliersclip' to reject less "
                   "as outliers.\n"
-                  "  - (slightly) Increase `--outliersigma' to reject less "
+                  "  - (slightly) Increase '--outliersigma' to reject less "
                   "as outliers.\n"
                 : "\n");
 
@@ -539,7 +539,7 @@ threshold_good_error(size_t number, int before0_after1, 
size_t interpnumngb)
   error(EXIT_FAILURE, 0, "%zu tiles usable %s!\n\n"
 
         "This is smaller than the requested minimum value of %zu (value to "
-        "the `--interpnumngb' option). %s\n\n"
+        "the '--interpnumngb' option). %s\n\n"
 
         "There are several ways to address the problem. The best and most "
         "highly recommended is to use a larger input if possible (when the "
@@ -548,23 +548,23 @@ threshold_good_error(size_t number, int before0_after1, 
size_t interpnumngb)
         "parameters mentioned below in the respective order (and therefore "
         "cause scatter/inaccuracy in the final result). Hence its best to "
         "not loosen them too much (recall that you can see all the option "
-        "values to Gnuastro's programs by appending `-P' to the end of your "
+        "values to Gnuastro's programs by appending '-P' to the end of your "
         "command).\n"
-        "  - (slightly) Decrease `--tilesize' so your tile-grid has more "
+        "  - (slightly) Decrease '--tilesize' so your tile-grid has more "
         "tiles.\n"
-        "  - (slightly) Increase `--meanmedqdiff' to accept more tiles.%s"
-        "  - (slightly) Decrease `--interpnumngb' to be less than %zu.\n\n"
+        "  - (slightly) Increase '--meanmedqdiff' to accept more tiles.%s"
+        "  - (slightly) Decrease '--interpnumngb' to be less than %zu.\n\n"
 
         "---- Tip ----\n"
-        "Append your command with `--checkqthresh' to see the "
+        "Append your command with '--checkqthresh' to see the "
         "successful tiles in relation with this dataset's contents "
         "before this crash. A visual inspection will greatly help in "
         "finding the cause/solution for this particular dataset (note "
-        "that the output of `--checkqthresh' is a multi-extension FITS "
+        "that the output of '--checkqthresh' is a multi-extension FITS "
         "file).\n\n"
         "To better understand this important step, please run the "
-        "following command (press `SPACE'/arrow-keys to navigate and "
-        "`Q' to return back to the command-line):\n\n"
+        "following command (press 'SPACE'/arrow-keys to navigate and "
+        "'Q' to return back to the command-line):\n\n"
         "    $ info gnuastro \"Quantifying signal in a tile\"\n", number,
         in1, interpnumngb, in2, in3, number);
 }
@@ -590,9 +590,9 @@ threshold_quantile_find_apply(struct noisechiselparams *p)
 
 
   /* Add image to check image if requested. If the user has asked for
-     `oneelempertile', then the size of values is not going to be the same
+     'oneelempertile', then the size of values is not going to be the same
      as the input, making it hard to inspect visually. So we'll only put
-     the full input when `oneelempertile' isn't requested. */
+     the full input when 'oneelempertile' isn't requested. */
   if(p->qthreshname && !tl->oneelempertile)
     {
       gal_fits_img_write(p->conv ? p->conv : p->input, p->qthreshname, NULL,
@@ -626,7 +626,7 @@ threshold_quantile_find_apply(struct noisechiselparams *p)
 
   /* Find the threshold on each tile, free the temporary processing space
      and set the blank flag on both. Since they have the same blank
-     elements, it is only necessary to check one (with the `updateflag'
+     elements, it is only necessary to check one (with the 'updateflag'
      value set to 1), then update the next. */
   qprm.p=p;
   gal_threads_spin_off(qthresh_on_tile, &qprm, tl->tottiles, cp->numthreads);
@@ -716,7 +716,7 @@ threshold_quantile_find_apply(struct noisechiselparams *p)
 
 
   /* If the user wanted to check the threshold and hasn't called
-     `continueaftercheck', then stop NoiseChisel. */
+     'continueaftercheck', then stop NoiseChisel. */
   if(p->qthreshname && !p->continueaftercheck)
     ui_abort_after_check(p, p->qthreshname, NULL, "quantile threshold check");
 }
diff --git a/bin/noisechisel/ui.c b/bin/noisechisel/ui.c
index 3aeeaf2..e9460cc 100644
--- a/bin/noisechisel/ui.c
+++ b/bin/noisechisel/ui.c
@@ -144,7 +144,7 @@ ui_initialize_options(struct noisechiselparams *p,
 
         case GAL_OPTIONS_KEY_TABLEFORMAT:
           cp->coptions[i].mandatory=GAL_OPTIONS_MANDATORY;
-          cp->coptions[i].doc="`txt', `fits-ascii', `fits-binary'.";
+          cp->coptions[i].doc="'txt', 'fits-ascii', 'fits-binary'.";
           break;
         }
     }
@@ -160,18 +160,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct noisechiselparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -219,34 +219,34 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct noisechiselparams *p)
 {
   /* If the convolved option is given, then the convolved HDU is also
      mandatory. */
   if(p->convolvedname && p->chdu==NULL)
-    error(EXIT_FAILURE, 0, "no value given to `--chdu'. When the "
-          "`--convolved' option is called (to specify a convolved image "
+    error(EXIT_FAILURE, 0, "no value given to '--chdu'. When the "
+          "'--convolved' option is called (to specify a convolved image "
           "and avoid convolution) it is mandatory to also specify a HDU "
           "for it");
 
   /* Make sure that the no-erode-quantile is not smaller or equal to
      qthresh. */
   if( p->noerodequant <= p->qthresh)
-    error(EXIT_FAILURE, 0, "the quantile for no erosion (`--noerodequant') "
-          "must be larger than the base quantile threshold (`--qthresh', "
-          "or `-t'). You have provided %.4f and %.4f for the former and "
+    error(EXIT_FAILURE, 0, "the quantile for no erosion ('--noerodequant') "
+          "must be larger than the base quantile threshold ('--qthresh', "
+          "or '-t'). You have provided %.4f and %.4f for the former and "
           "latter, respectively", p->noerodequant, p->qthresh);
 
   /* For the options that make tables, the table formation option is
      mandatory. */
   if( p->checksn && p->cp.tableformat==0 )
-    error(EXIT_FAILURE, 0, "`--tableformat' is necessary with the "
-          "`--checksn' option.\n"
-          "Please see description for `--tableformat' after running the "
-          "following command for more information (use `SPACE' to go down "
-          "the page and `q' to return to the command-line):\n\n"
+    error(EXIT_FAILURE, 0, "'--tableformat' is necessary with the "
+          "'--checksn' option.\n"
+          "Please see description for '--tableformat' after running the "
+          "following command for more information (use 'SPACE' to go down "
+          "the page and 'q' to return to the command-line):\n\n"
           "    $ info gnuastro \"Input Output options\"");
 
   /* Kernel checks. */
@@ -259,7 +259,7 @@ ui_read_check_only_options(struct noisechiselparams *p)
       if( gal_fits_name_is_fits(p->kernelname) && p->khdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified for kernel. When the "
               "kernel is a FITS file, a HDU must also be specified. You "
-              "can use the `--khdu' option and give it the HDU number "
+              "can use the '--khdu' option and give it the HDU number "
               "(starting from zero), extension name, or anything "
               "acceptable by CFITSIO");
     }
@@ -273,8 +273,8 @@ ui_read_check_only_options(struct noisechiselparams *p)
       /* If its FITS, see if a HDU has been provided. */
       if( gal_fits_name_is_fits(p->widekernelname) && p->whdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified for the given wide kernel "
-              "(`%s'). When the wide kernel is a FITS file, a HDU must also "
-              "be specified. You can use the `--whdu' option and give it the "
+              "('%s'). When the wide kernel is a FITS file, a HDU must also "
+              "be specified. You can use the '--whdu' option and give it the "
               "HDU number (starting from zero), extension name, or any "
               "HDU identifier acceptable by CFITSIO", p->widekernelname);
     }
@@ -284,11 +284,11 @@ ui_read_check_only_options(struct noisechiselparams *p)
      (higher-is-better), not the contamination level
      (lower-is-better). This actually happened in a few cases: where we
      wanted a false detection rate of 0.0001 (a super-high value!), and
-     instead of inputing 0.9999, we mistakenly gave `--snquant' a value of
-     `0.0001'. We were thus fully confused with the output (an extremely
+     instead of inputing 0.9999, we mistakenly gave '--snquant' a value of
+     '0.0001'. We were thus fully confused with the output (an extremely
      low value) and thought its a bug, while it wasn't! */
   if(p->snquant<0.1)
-    fprintf(stderr, "\nWARNING: Value of `--snquant' (`-c') is %g. Note "
+    fprintf(stderr, "\nWARNING: Value of '--snquant' ('-c') is %g. Note "
             "that this is not a contamination rate (where lower is "
             "better), it is a purity rate (where higher is better). If you "
             "intentionally asked for such a low purity level, please "
@@ -312,7 +312,7 @@ ui_check_options_and_arguments(struct noisechiselparams *p)
       if( gal_fits_name_is_fits(p->inputname) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified for input. When the input "
               "is a FITS file, a HDU must also be specified, you can use "
-              "the `--hdu' (`-h') option and give it the HDU number "
+              "the '--hdu' ('-h') option and give it the HDU number "
               "(starting from zero), extension name, or anything "
               "acceptable by CFITSIO");
     }
@@ -515,7 +515,7 @@ ui_prepare_tiles(struct noisechiselparams *p)
       gal_fits_img_write(check, tl->tilecheckname, NULL, PROGRAM_NAME);
       gal_data_free(check);
 
-      /* If `continueaftercheck' hasn't been called, abort NoiseChisel. */
+      /* If 'continueaftercheck' hasn't been called, abort NoiseChisel. */
       if(!p->continueaftercheck)
         ui_abort_after_check(p, tl->tilecheckname, NULL,
                              "showing all tiles over the image");
@@ -537,7 +537,7 @@ ui_ngb_check(size_t value, char *optionname, size_t ndim)
     case 2:
       if(value!=4 && value!=8)
         error(EXIT_FAILURE, 0, "%zu is not an acceptable value for "
-              "`--%s'. Acceptable values for 2D inputs are 4 or 8",
+              "'--%s'. Acceptable values for 2D inputs are 4 or 8",
               value, optionname);
       break;
     case 3:
@@ -573,7 +573,7 @@ ui_preparations_read_input(struct noisechiselparams *p)
                                             p->input->dsize,
                                             p->input->wcs);
 
-  /* When the input doesn't have a name, use `INPUT'. */
+  /* When the input doesn't have a name, use 'INPUT'. */
   if(p->input->name==NULL)
     gal_checkset_allocate_copy("INPUT", &p->input->name);
 
@@ -641,8 +641,8 @@ ui_preparations(struct noisechiselparams *p)
 
       /* Make sure the convolved image is the same size as the input. */
       if( gal_dimension_is_different(p->input, p->conv) )
-        error(EXIT_FAILURE, 0, "%s (hdu %s), given to `--convolved' and "
-              "`--convolvehdu', is not the same size as NoiseChisel's "
+        error(EXIT_FAILURE, 0, "%s (hdu %s), given to '--convolved' and "
+              "'--convolvehdu', is not the same size as NoiseChisel's "
               "input: %s (hdu: %s)", p->convolvedname, p->chdu,
               p->inputname, p->cp.hdu);
     }
@@ -695,9 +695,9 @@ ui_read_check_inputs_setup(int argc, char *argv[],
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
@@ -807,12 +807,12 @@ ui_abort_after_check(struct noisechiselparams *p, char 
*filename,
 
   if(file2name)
     {
-      if( asprintf(&name, "`%s' and `%s'", filename, file2name)<0 )
+      if( asprintf(&name, "'%s' and '%s'", filename, file2name)<0 )
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
     }
   else
     {
-      if( asprintf(&name, "`%s'", filename)<0 )
+      if( asprintf(&name, "'%s'", filename)<0 )
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
     }
 
@@ -824,7 +824,7 @@ ui_abort_after_check(struct noisechiselparams *p, char 
*filename,
           "%s (%s) has been created.\n\n"
           "If you want %s to continue its processing AND save any "
           "requested check outputs, please run it again with "
-          "`--continueaftercheck'.\n"
+          "'--continueaftercheck'.\n"
           "------------------------------------------------\n",
           PROGRAM_NAME, name, description, PROGRAM_NAME);
 
diff --git a/bin/script/Makefile.am b/bin/script/Makefile.am
index de7394c..873ed3b 100644
--- a/bin/script/Makefile.am
+++ b/bin/script/Makefile.am
@@ -23,9 +23,9 @@
 
 
 ## List of programs (scripts in this directory) to install under the
-## `prefix/bin' directory (`bin_SCRIPTS'), files necessary to distribute
-## with the tarball (`EXTRA_DIST') and output files (to be cleaned with
-## `make clean).
+## 'prefix/bin' directory ('bin_SCRIPTS'), files necessary to distribute
+## with the tarball ('EXTRA_DIST') and output files (to be cleaned with
+## 'make clean').
 bin_SCRIPTS = astscript-sort-by-night
 
 EXTRA_DIST = sort-by-night.in
@@ -36,7 +36,7 @@ CLEANFILES = $(bin_SCRIPTS)
 
 
 
-## Command to do basic substitutions (anything surrounded by an `@').
+## Command to do basic substitutions (anything surrounded by an '@').
 do_subst = sed -e 's,[@]VERSION[@],$(VERSION),g' \
                -e 's,[@]SCRIPT_NAME[@],$@,g'
 
diff --git a/bin/script/sort-by-night.in b/bin/script/sort-by-night.in
index f45d091..0dcd68f 100644
--- a/bin/script/sort-by-night.in
+++ b/bin/script/sort-by-night.in
@@ -1,7 +1,7 @@
 #!/bin/sh
 
-# Separate input datasets into multiple nights, run with `--help', or see
-# description under `print_help' (below) for more.
+# Separate input datasets into multiple nights, run with '--help', or see
+# description under 'print_help' (below) for more.
 #
 # Original author:
 #     Mohammad Akhlaghi <address@hidden>
@@ -45,7 +45,7 @@ scriptname=@SCRIPT_NAME@
 
 
 
-# Output of `--usage' and `--help':
+# Output of '--usage' and '--help':
 print_usage() {
     cat <<EOF
 $scriptname: run with '--help' for list of options
@@ -112,7 +112,7 @@ EOF
 
 
 
-# Output of `--version':
+# Output of '--version':
 print_version() {
     cat <<EOF
 $scriptname (GNU Astronomy Utilities) $version
@@ -157,23 +157,23 @@ check_v() {
 # OPTIONS WITH A VALUE:
 #
 #   Each option has three lines because we want to all common formats: for
-#   long option names: `--longname value' and `--longname=value'. For short
-#   option names we want `-l value', `-l=value' and `-lvalue' (where `-l'
-#   is the short version of the hypothetical `--longname' option).
+#   long option names: '--longname value' and '--longname=value'. For short
+#   option names we want '-l value', '-l=value' and '-lvalue' (where '-l'
+#   is the short version of the hypothetical '--longname' option).
 #
 #   The first case (with a space between the name and value) is two
 #   command-line arguments. So, we'll need to shift it two times. The
 #   latter two cases are a single command-line argument, so we just need to
 #   "shift" the counter by one. IMPORTANT NOTE: the ORDER OF THE LATTER TWO
-#   cases matters: `-h*' should be checked only when we are sure that its
-#   not `-h=*').
+#   cases matters: '-h*' should be checked only when we are sure that its
+#   not '-h=*').
 #
 # OPTIONS WITH NO VALUE (ON-OFF OPTIONS)
 #
-#   For these, we just want the two forms of `--longname' or `-l'. Nothing
+#   For these, we just want the two forms of '--longname' or '-l'. Nothing
 #   else. So if an equal sign is given we should definitely crash and also,
 #   if a value is appended to the short format it should crash. So in the
-#   second test for these (`-l*') will account for both the case where we
+#   second test for these ('-l*') will account for both the case where we
 #   have an equal sign and where we don't.
 while [ $# -gt 0 ]
 do
@@ -211,7 +211,7 @@ do
         # Unrecognized option:
         -*) echo "$scriptname: unknown option '$1'"; exit 1;;
 
-        # Not an option (not starting with a `-'): assumed to be input FITS
+        # Not an option (not starting with a '-'): assumed to be input FITS
         # file name.
         *) inputs="$1 $inputs"; shift;;
     esac
diff --git a/bin/segment/Makefile.am b/bin/segment/Makefile.am
index ce89d67..e5f0953 100644
--- a/bin/segment/Makefile.am
+++ b/bin/segment/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astsegment
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astsegment_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                    $(MAYBE_NORPATH)
 
diff --git a/bin/segment/astsegment.conf b/bin/segment/astsegment.conf
index 0d650dc..957c839 100644
--- a/bin/segment/astsegment.conf
+++ b/bin/segment/astsegment.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/segment/authors-cite.h b/bin/segment/authors-cite.h
index aa91f00..8f7585a 100644
--- a/bin/segment/authors-cite.h
+++ b/bin/segment/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""                                               \
   "Paper on why Segment was spinned-off from NoiseChisel\n"             \
diff --git a/bin/segment/clumps.c b/bin/segment/clumps.c
index bf290ca..7114bb9 100644
--- a/bin/segment/clumps.c
+++ b/bin/segment/clumps.c
@@ -57,7 +57,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /**********************************************************************/
 /* Make the preparations for the intiial growing the clumps to identify
    objects: a single standard deviation for the whole object and preparing
-   the labels (because the growth is going to happen on the `olabel'
+   the labels (because the growth is going to happen on the 'olabel'
    image. */
 void
 clumps_grow_prepare_initial(struct clumps_thread_params *cltprm)
@@ -127,11 +127,11 @@ clumps_grow_prepare_initial(struct clumps_thread_params 
*cltprm)
      object at this stage: we are also going to re-label the pixels to
      grow. For most astronomical objects, the major part of the detection
      area is going to be diffuse flux, so we will just allocate the same
-     size as `indexs' array (the `dsize' will be corrected after getting
+     size as 'indexs' array (the 'dsize' will be corrected after getting
      the exact number.
 
-     Also note that since `indexs' is already sorted, therefore
-     `diffuseindexs' will also be already sorted. */
+     Also note that since 'indexs' is already sorted, therefore
+     'diffuseindexs' will also be already sorted. */
   cltprm->diffuseindexs=gal_data_alloc(NULL, GAL_TYPE_SIZE_T, 1,
                                        cltprm->indexs->dsize, NULL, 0,
                                        p->cp.minmapsize, p->cp.quietmmap,
@@ -147,7 +147,7 @@ clumps_grow_prepare_initial(struct clumps_thread_params 
*cltprm)
   while(++s<sf);
 
 
-  /* Correct the sizes of the `diffuseindexs' data structure. */
+  /* Correct the sizes of the 'diffuseindexs' data structure. */
   cltprm->diffuseindexs->size = cltprm->diffuseindexs->dsize[0] = ndiffuse;
 }
 
@@ -157,12 +157,12 @@ clumps_grow_prepare_initial(struct clumps_thread_params 
*cltprm)
 
 /* Add all the remaining pixels in the detection (below the growth
    threshold, or those that were not touching). Note that initially
-   `diffuseindexs' was filled with the pixels that are above the growth
+   'diffuseindexs' was filled with the pixels that are above the growth
    threshold. That was necessary for identifying the objects. Now that we
    have identified the objects and labeled them, we want to add the
    remaining diffuse pixels to it too before doing the final growth.
 
-   Note that the most efficient way is just to re-fill the `diffuseindexs'
+   Note that the most efficient way is just to re-fill the 'diffuseindexs'
    array instead of adding the pixels below the threshold and sorting them
    afterwards.*/
 void
@@ -173,7 +173,7 @@ clumps_grow_prepare_final(struct clumps_thread_params 
*cltprm)
   int32_t *olabel=cltprm->clprm->p->olabel->array;
   size_t *s=cltprm->indexs->array, *sf=s+cltprm->indexs->size;
 
-  /* Recall that we initially allocated `diffuseindexs' to have the same
+  /* Recall that we initially allocated 'diffuseindexs' to have the same
      size as the indexs. So there is no problem if there are more pixels in
      this final round compared to the initial round. */
   do
@@ -181,7 +181,7 @@ clumps_grow_prepare_final(struct clumps_thread_params 
*cltprm)
       dindexs[ ndiffuse++ ] = *s;
   while(++s<sf);
 
-  /* Correct the sizes of the `diffuseindexs' data structure. */
+  /* Correct the sizes of the 'diffuseindexs' data structure. */
   cltprm->diffuseindexs->size = cltprm->diffuseindexs->dsize[0] = ndiffuse;
 }
 
@@ -222,15 +222,15 @@ clumps_correct_sky_labels_for_check(struct 
clumps_thread_params *cltprm,
   size_t len=cltprm->numinitclumps+1;
   struct segmentparams *p=cltprm->clprm->p;
 
-  /* If any of the clumps must be kept (`cltprm->snind->size!=0'), then
+  /* If any of the clumps must be kept ('cltprm->snind->size!=0'), then
      re-label them for the check image. Otherwise, remove all clumps. */
   if(cltprm->snind->size)
     {
       /* A small sanity check. */
       if(gal_tile_block(tile)!=p->clabel)
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
-              "address the problem. `tile->block' must point to the "
-              "`clabel' dataset", __func__, PACKAGE_BUGREPORT);
+              "address the problem. 'tile->block' must point to the "
+              "'clabel' dataset", __func__, PACKAGE_BUGREPORT);
 
 
       /* Allocate a dataset with the new indexs, note that it will need to
@@ -261,8 +261,8 @@ clumps_correct_sky_labels_for_check(struct 
clumps_thread_params *cltprm,
 
 
       /* The new indexs array has been initialized to zero. So we just need
-         to go over the labels in `cltprm->sninds' and give them a value of
-         `curlab++'. */
+         to go over the labels in 'cltprm->sninds' and give them a value of
+         'curlab++'. */
       ninds=newinds->array;
       lf = (l=cltprm->snind->array) + cltprm->snind->size;
       do { ninds[*l]=curlab++; *l=ninds[*l]; } while(++l<lf);
@@ -277,7 +277,7 @@ clumps_correct_sky_labels_for_check(struct 
clumps_thread_params *cltprm,
     }
   else
     /* There were no usable clumps in this tile, so just set all the pixels
-       larger than zero (a clump) to `GAL_LABEL_INIT'. */
+       larger than zero (a clump) to 'GAL_LABEL_INIT'. */
     GAL_TILE_PARSE_OPERATE( tile, NULL, 0, 1, {*i=*i>0?GAL_LABEL_INIT:*i;} );
 }
 
@@ -327,7 +327,7 @@ clumps_find_make_sn_table(void *in_prm)
 
 
       /* Get the number of usable elements in this tile (note that tiles
-         can have blank pixels), so we can't simply use `tile->size'. */
+         can have blank pixels), so we can't simply use 'tile->size'. */
       if(p->input->flag & GAL_DATA_FLAG_HASBLANK)
         {
           tmp=gal_statistics_number(tile);
@@ -340,9 +340,9 @@ clumps_find_make_sn_table(void *in_prm)
       /* Find the number of detected pixels over this tile. Since this is
          the binary image, this is just the sum of all the pixels.
 
-         Note that `numdet' can be `nan' when the whole tile is blank and
+         Note that 'numdet' can be 'nan' when the whole tile is blank and
          so there was no values to sum. Recall that in summing, when there
-         is not input, the output is `nan'. */
+         is not input, the output is 'nan'. */
       tmp=gal_statistics_sum(tile);
       numdet=*((double *)(tmp->array));
       gal_data_free(tmp);
@@ -380,10 +380,10 @@ clumps_find_make_sn_table(void *in_prm)
 
           /* Add the index of every sky element to the array of
              indexs. Note that since we know the array is always of type
-             `int32_t', we can call the `GAL_TILE_PO_OISET' macro to avoid
+             'int32_t', we can call the 'GAL_TILE_PO_OISET' macro to avoid
              having to deal with multiple possible types in
-             `GAL_TILE_PARSE_OPERATE'. Since the OUT macro-variable is
-             NULL, the `int' is just a place-holder, it will not be
+             'GAL_TILE_PARSE_OPERATE'. Since the OUT macro-variable is
+             NULL, the 'int' is just a place-holder, it will not be
              used. */
           c=0;
           indarr=cltprm.indexs->array;
@@ -401,7 +401,7 @@ clumps_find_make_sn_table(void *in_prm)
                 *(int32_t *)i=GAL_LABEL_RIVER;
 
               /* This pixel is not on the edge, check if it had a value of
-                 `0' in the binary image (is not detected) then add it to
+                 '0' in the binary image (is not detected) then add it to
                  the list of indexs (note that the binary image also
                  contains the blank pixels, so only sky regions have a
                  value of 0 in the binary image). */
@@ -465,7 +465,7 @@ clumps_find_make_sn_table(void *in_prm)
 
 
           /* If the user wanted to check the steps, remove the clumps that
-             weren't used from the `clabel' image (they have been already
+             weren't used from the 'clabel' image (they have been already
              excluded from the table). */
           if(cltprm.snind)
             clumps_correct_sky_labels_for_check(&cltprm, tile);
@@ -473,7 +473,7 @@ clumps_find_make_sn_table(void *in_prm)
 
           /* If there were no clumps, then just set the S/N table to
              NULL. This must be done after the check image creation (if
-             necessary), because we use `cltprm.snind' as a proxy for the
+             necessary), because we use 'cltprm.snind' as a proxy for the
              check image.*/
           if( cltprm.clprm->sn[ cltprm.id ].size==0 )
             cltprm.snind=cltprm.sn=NULL;
@@ -522,8 +522,8 @@ clumps_write_sn_table(struct segmentparams *p, gal_data_t 
*insn,
       /* A small sanity check. */
       if(ind->size==0 || sn->size==0)
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. For some reason, all the elements in `ind' or "
-              "`sn' are blank", __func__, PACKAGE_BUGREPORT);
+              "the problem. For some reason, all the elements in 'ind' or "
+              "'sn' are blank", __func__, PACKAGE_BUGREPORT);
     }
   else
     {
@@ -593,7 +593,7 @@ clumps_true_find_sn_thresh(struct segmentparams *p)
   /* If the user wants to check the steps of get an S/N table, then we need
      a unique label for each clump. But in each region, the labels start
      from 1. So we need a central place to keep the next available
-     label. Since `p->numclumps' is not used yet, we will use it here. When
+     label. Since 'p->numclumps' is not used yet, we will use it here. When
      multiple threads are used, we will need a mutex to make sure that only
      one thread can change this central variable at every one moment. */
   if(p->checksegmentation || p->checksn)
@@ -674,7 +674,7 @@ clumps_true_find_sn_thresh(struct segmentparams *p)
   if( numsn < p->minnumfalse )
     error(EXIT_FAILURE, 0, "%zu usable clumps found in the undetected "
           "regions. This is smaller than the requested minimum number of "
-          "false/reference clumps (%zu, value to the `--minnumfalse' "
+          "false/reference clumps (%zu, value to the '--minnumfalse' "
           "option).\n\n"
           "There are several ways to address the problem. The best and most "
           "highly recommended is to use a larger input if possible (when the "
@@ -683,22 +683,22 @@ clumps_true_find_sn_thresh(struct segmentparams *p)
           "parameters (and therefore cause more scatter/bias in the final "
           "result). Thus don't loosen them too much. Recall that you can "
           "see all the option values to Gnuastro's programs by appending "
-          "`-P' to the end of your command.\n\n"
-          "  * Slightly decrease `--largetilesize' to have more tiles.\n"
-          "  * Decrease `--minskyfrac' (currently %g) to look into more "
+          "'-P' to the end of your command.\n\n"
+          "  * Slightly decrease '--largetilesize' to have more tiles.\n"
+          "  * Decrease '--minskyfrac' (currently %g) to look into more "
           "tiles.\n"
-          "  * Slightly decrease `--snminarea' (currently %zu) to "
+          "  * Slightly decrease '--snminarea' (currently %zu) to "
           "measure more clumps.\n"
           "  * If Segment already works on a dataset with similar noise "
           "properties, you can directly pass the 'true' clump "
-          "signal-to-noise ratio found there to `--clumpsnthresh' and "
+          "signal-to-noise ratio found there to '--clumpsnthresh' and "
           "avoid having to study the undetected regions any more.\n\n"
-          "Append your previous command with `--checksegmentation' to see "
+          "Append your previous command with '--checksegmentation' to see "
           "the steps and get a better feeling of the cause/solution. Note "
           "that the output is a multi-extension FITS file).\n\n"
           "To better understand the segmentation process and options, "
-          "please run the following command (press `SPACE'/arrow-keys to "
-          "navigate and `Q' to return back to the command-line):\n\n"
+          "please run the following command (press 'SPACE'/arrow-keys to "
+          "navigate and 'Q' to return back to the command-line):\n\n"
           "    $ info gnuastro \"Segmentation options\"\n",
           numsn, p->minnumfalse, p->minskyfrac, p->snminarea);
 
@@ -741,8 +741,8 @@ clumps_true_find_sn_thresh(struct segmentparams *p)
       if(p->cp.numthreads>1)
         gal_list_str_add(&comments, "NOTE: In multi-threaded mode, clump "
                          "IDs differ in each run and are not sorted.", 1);
-      gal_list_str_add(&comments, "See also: `SKY_CLUMPS_FOR_SN' HDU of "
-                       "output with `--checksegmentation'.", 1);
+      gal_list_str_add(&comments, "See also: 'SKY_CLUMPS_FOR_SN' HDU of "
+                       "output with '--checksegmentation'.", 1);
       gal_list_str_add(&comments, "S/N of clumps over undetected regions.",
                        1);
       clumps_write_sn_table(p, sn, snind, p->clumpsn_s_name, comments);
diff --git a/bin/segment/clumps.h b/bin/segment/clumps.h
index cec3efc..a43979f 100644
--- a/bin/segment/clumps.h
+++ b/bin/segment/clumps.h
@@ -39,7 +39,7 @@ struct clumps_params
   gal_data_t            *snind; /* Array of clump S/N index (for check).   */
 
   /* For detections. */
-  gal_data_t        *labindexs; /* Array of `gal_data_t' with obj indexs.  */
+  gal_data_t        *labindexs; /* Array of 'gal_data_t' with obj indexs.  */
   size_t            totobjects; /* Total number of objects at any point.   */
   size_t             totclumps; /* Total number of clumps at any point.    */
 };
diff --git a/bin/segment/kernel-2d.h b/bin/segment/kernel-2d.h
index be6af72..427dfb1 100644
--- a/bin/segment/kernel-2d.h
+++ b/bin/segment/kernel-2d.h
@@ -48,7 +48,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    Convert it to C code
    --------------------
 
-   Put the following C program into a file called `kernel.c'.
+   Put the following C program into a file called 'kernel.c'.
 
      #include <stdio.h>
      #include <stdlib.h>
@@ -74,7 +74,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
                if(i % img->dsize[1] == 0 ) printf("\n\n");
              }
 
-           // We cannot use `\b' here, since we are writing directly
+           // We cannot use '\b' here, since we are writing directly
            // to the command-line, so we'll first write the number,
            // then decide if any subsequent character (a comma)
            // should be written.
@@ -96,7 +96,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    -----------------
 
    We can now compile and run that C program and put the outputs in
-   `kernel.c'. Once its created, copy the contents of `kernel-2d.h' after
+   'kernel.c'. Once its created, copy the contents of 'kernel-2d.h' after
    these comments.
 
      $ astbuildprog -q kernel.c > kernel-2d.h
diff --git a/bin/segment/segment.c b/bin/segment/segment.c
index 98c79e7..6dc3204 100644
--- a/bin/segment/segment.c
+++ b/bin/segment/segment.c
@@ -128,7 +128,7 @@ segment_initialize(struct segmentparams *p)
   p->clabel->wcs=gal_wcs_copy(p->input->wcs);
 
 
-  /* Prepare the `binary', `clabel' and `olabel' arrays. */
+  /* Prepare the 'binary', 'clabel' and 'olabel' arrays. */
   b=p->binary->array;
   o=p->olabel->array;
   f=p->input->array; cf=(c=p->clabel->array)+p->clabel->size;
@@ -210,8 +210,8 @@ segment_relab_noseg(struct clumps_thread_params *cltprm)
    have to be allocated prior to entering this function.
 
    The way to find connected objects is through an adjacency matrix. It is
-   a square matrix with a side equal to numobjs. So to see if regions `a`
-   and `b` are connected. All we have to do is to look at element
+   a square matrix with a side equal to numobjs. So to see if regions 'a'
+   and 'b' are connected. All we have to do is to look at element
    a*numobjs+b or b*numobjs+a and get the answer. Since the number of
    objects in a given region will not be too high, this is efficient. */
 static void
@@ -323,7 +323,7 @@ segment_relab_to_objects(struct clumps_thread_params 
*cltprm)
                 /* For easy reading. */
                 ave=sums[ii]/nums[ii];
 
-                /* In case the average is negative (only possible if `sums'
+                /* In case the average is negative (only possible if 'sums'
                    is negative), don't change the adjacency: it is already
                    initialized to zero. Note that even an area of 1 is
                    acceptable, and we put no area criteria here, because
@@ -370,18 +370,18 @@ segment_relab_to_objects(struct clumps_thread_params 
*cltprm)
     }
 
   /* There was no list of diffuse pixels, this happens when the user sets a
-     very high `gthresh' threshold and wants to make sure that each clump
+     very high 'gthresh' threshold and wants to make sure that each clump
      is a separate object. So we need to define the number of objects and
-     `clumptoobj' manually. */
+     'clumptoobj' manually. */
   else
     {
-      /* Allocate the `clumptoobj' array. */
+      /* Allocate the 'clumptoobj' array. */
       cltprm->clumptoobj = gal_data_alloc(NULL, GAL_TYPE_INT32, 1, &amwidth,
                                           NULL, 1, p->cp.minmapsize,
                                           p->cp.quietmmap, NULL, NULL, NULL);
       clumptoobj = cltprm->clumptoobj->array;
 
-      /* Fill in the `clumptoobj' array with the indexs of the objects. */
+      /* Fill in the 'clumptoobj' array with the indexs of the objects. */
       for(i=0;i<amwidth;++i) clumptoobj[i]=i;
 
       /* Set the number of objects. */
@@ -487,7 +487,7 @@ segment_relab_overall(struct clumps_thread_params *cltprm)
   if(clprm->p->cp.numthreads>1)
     pthread_mutex_unlock(&clprm->labmutex);
 
-  /* Increase all the object labels by `startinglab'. */
+  /* Increase all the object labels by 'startinglab'. */
   if( onlyclumps )
     {
       if(cltprm->numtrueclumps>0)
@@ -551,7 +551,7 @@ segment_on_threads(void *in_prm)
       cltprm.numinitclumps = cltprm.numtrueclumps = cltprm.numobjects = 0;
 
 
-      /* The `topinds' array is only necessary when the user wants to
+      /* The 'topinds' array is only necessary when the user wants to
          ignore true clumps with a peak touching a river. */
       if(p->keepmaxnearriver==0)
         {
@@ -587,7 +587,7 @@ segment_on_threads(void *in_prm)
          the user has also asked for a check image, we can break out of the
          loop at that point.
 
-         Note that the array of `gal_data_t' that keeps the S/N table for
+         Note that the array of 'gal_data_t' that keeps the S/N table for
          each detection is allocated before threading starts. However, when
          the user wants to inspect the steps, this function is called
          multiple times. So we need to avoid over-writing the allocations. */
@@ -648,7 +648,7 @@ segment_on_threads(void *in_prm)
 
               /* If the user has asked for grown clumps in the clumps image
                  instead of the raw clumps, then replace the indexs in the
-                 `clabel' array is well. In this case, there will always be
+                 'clabel' array is well. In this case, there will always be
                  one "clump". */
               if(p->grownclumps)
                 {
@@ -752,7 +752,7 @@ segment_save_sn_table(struct clumps_params *clprm)
 
 
   /* Find the total number of clumps in all the initial detections. Recall
-     that the `size' values were one more than the actual number because
+     that the 'size' values were one more than the actual number because
      the labelings start from 1. */
   for(i=1;i<p->numdetections+1;++i)
     if( clprm->sn[i].size > 1 )
@@ -788,10 +788,10 @@ segment_save_sn_table(struct clumps_params *clprm)
 
 
   /* Write the comments. */
-  gal_list_str_add(&comments, "See also: `CLUMPS_ALL_DET' HDU of "
-                   "output with `--checksegmentation'.", 1);
-  if( asprintf(&msg, "S/N values of `nan': clumps smaller than "
-               "`--snminarea' of %zu.", p->snminarea)<0 )
+  gal_list_str_add(&comments, "See also: 'CLUMPS_ALL_DET' HDU of "
+                   "output with '--checksegmentation'.", 1);
+  if( asprintf(&msg, "S/N values of 'nan': clumps smaller than "
+               "'--snminarea' of %zu.", p->snminarea)<0 )
     error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
   gal_list_str_add(&comments, msg, 0);
   gal_list_str_add(&comments, "S/N of clumps over detected regions.", 1);
@@ -839,7 +839,7 @@ segment_detections(struct segmentparams *p)
 
 
   /* Initialize the necessary thread parameters. Note that since the object
-     labels begin from one, the `sn' array will have one extra element.*/
+     labels begin from one, the 'sn' array will have one extra element.*/
   clprm.p=p;
   clprm.sky0_det1=1;
   clprm.totclumps=0;
@@ -897,7 +897,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "Identified clumps over detections  "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -911,7 +911,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "True clumps found                  "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -927,7 +927,7 @@ segment_detections(struct segmentparams *p)
                   gal_timing_report(NULL, "Identify objects...",
                                     1);
                   if( asprintf(&msg, "True clumps grown                  "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -941,7 +941,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "Identified objects over detections "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -955,7 +955,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "Objects grown to cover full area   "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -969,7 +969,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "Clumps given their final label     "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -983,7 +983,7 @@ segment_detections(struct segmentparams *p)
               if(!p->cp.quiet)
                 {
                   if( asprintf(&msg, "Objects given their final label    "
-                               "(HDU: `%s').", demo->name)<0 )
+                               "(HDU: '%s').", demo->name)<0 )
                     error(EXIT_FAILURE, 0, "%s: asprintf allocation",
                           __func__);
                   gal_timing_report(NULL, msg, 2);
@@ -1136,7 +1136,7 @@ segment_output(struct segmentparams *p)
 
   /* Let the user know that the output is written. */
   if(!p->cp.quiet)
-    printf("  - Output written to `%s'.\n", p->cp.output);
+    printf("  - Output written to '%s'.\n", p->cp.output);
 }
 
 
@@ -1241,7 +1241,7 @@ segment(struct segmentparams *p)
 
 
   /* If the user wanted to check the segmentation and hasn't called
-     `continueaftercheck', then stop Segment. */
+     'continueaftercheck', then stop Segment. */
   if(p->segmentationname && !p->continueaftercheck)
     ui_abort_after_check(p, p->segmentationname, NULL,
                          "showing all segmentation steps");
diff --git a/bin/segment/ui.c b/bin/segment/ui.c
index af92523..abf5e75 100644
--- a/bin/segment/ui.c
+++ b/bin/segment/ui.c
@@ -150,7 +150,7 @@ ui_initialize_options(struct segmentparams *p,
 
         case GAL_OPTIONS_KEY_TABLEFORMAT:
           cp->coptions[i].mandatory=GAL_OPTIONS_MANDATORY;
-          cp->coptions[i].doc="`txt', `fits-ascii', `fits-binary'.";
+          cp->coptions[i].doc="'txt', 'fits-ascii', 'fits-binary'.";
           break;
         }
     }
@@ -166,18 +166,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct segmentparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'ygal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -225,18 +225,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct segmentparams *p)
 {
   /* If the full area is to be used as a single detection, we can't find
      the S/N value from the un-detected regions, so the user must have
-     given the `clumpsnthresh' option. */
+     given the 'clumpsnthresh' option. */
   if( p->detectionname
       && !strcmp(p->detectionname, DETECTION_ALL)
       && isnan(p->clumpsnthresh) )
-    error(EXIT_FAILURE, 0, "`--clumpsnthresh' (`-%c') not given.\n\n"
-          "When `--detection=all' (the whole input dataset is assumed to "
+    error(EXIT_FAILURE, 0, "'--clumpsnthresh' ('-%c') not given.\n\n"
+          "When '--detection=all' (the whole input dataset is assumed to "
           "be a detection), Segment can't use the undetected pixels to find "
           "the signal-to-noise ratio of true clumps. Therefore it is "
           "mandatory to provide a signal-to-noise ratio manually",
@@ -244,19 +244,19 @@ ui_read_check_only_options(struct segmentparams *p)
 
   /* If the convolved HDU is given. */
   if(p->convolvedname && p->chdu==NULL)
-    error(EXIT_FAILURE, 0, "no value given to `--convolvedhdu'. When the "
-          "`--convolved' option is called (to specify a convolved dataset "
+    error(EXIT_FAILURE, 0, "no value given to '--convolvedhdu'. When the "
+          "'--convolved' option is called (to specify a convolved dataset "
           "and avoid convolution) it is mandatory to also specify a HDU "
           "for it");
 
   /* For the options that make tables, the table format option is
      mandatory. */
   if( p->checksn && p->cp.tableformat==0 )
-    error(EXIT_FAILURE, 0, "`--tableformat' is necessary with the "
-          "`--checksn' option.\n"
-          "Please see description for `--tableformat' after running the "
-          "following command for more information (use `SPACE' to go down "
-          "the page and `q' to return to the command-line):\n\n"
+    error(EXIT_FAILURE, 0, "'--tableformat' is necessary with the "
+          "'--checksn' option.\n"
+          "Please see description for '--tableformat' after running the "
+          "following command for more information (use 'SPACE' to go down "
+          "the page and 'q' to return to the command-line):\n\n"
           "    $ info gnuastro \"Input Output options\"");
 
   /* Kernel checks. */
@@ -269,7 +269,7 @@ ui_read_check_only_options(struct segmentparams *p)
       if( gal_fits_name_is_fits(p->kernelname) && p->khdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified for kernel. When the "
               "kernel is a FITS file, a HDU must also be specified. You "
-              "can use the `--khdu' option and give it the HDU number "
+              "can use the '--khdu' option and give it the HDU number "
               "(starting from zero), extension name, or anything "
               "acceptable by CFITSIO");
     }
@@ -279,11 +279,11 @@ ui_read_check_only_options(struct segmentparams *p)
      (higher-is-better), not the contamination level
      (lower-is-better). This actually happened in a few cases: where we
      wanted a false detection rate of 0.0001 (a super-high value!), and
-     instead of inputing 0.9999, we mistakenly gave `--snquant' a value of
-     `0.0001'. We were thus fully confused with the output (an extremely
+     instead of inputing 0.9999, we mistakenly gave '--snquant' a value of
+     '0.0001'. We were thus fully confused with the output (an extremely
      low value) and thought its a bug, while it wasn't! */
   if(p->snquant<0.1)
-    fprintf(stderr, "\nWARNING: Value of `--snquant' (`-c') is %g. Note "
+    fprintf(stderr, "\nWARNING: Value of '--snquant' ('-c') is %g. Note "
             "that this is not a contamination rate (where lower is "
             "better), it is a purity rate (where higher is better). If you "
             "intentionally asked for such a low purity level, please "
@@ -307,8 +307,8 @@ ui_check_options_and_arguments(struct segmentparams *p)
       /* If it is FITS, a HDU is also mandatory. */
       if( gal_fits_name_is_fits(p->inputname) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-              "file, a HDU must also be specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+              "file, a HDU must also be specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
 
     }
@@ -449,14 +449,14 @@ ui_prepare_inputs(struct segmentparams *p)
 
       /* Make sure it is the same size as the input. */
       if( gal_dimension_is_different(p->input, p->conv) )
-        error(EXIT_FAILURE, 0, "%s (hdu %s), given to `--convolved' and "
-              "`--chdu', is not the same size as the input (%s, hdu: %s)",
+        error(EXIT_FAILURE, 0, "%s (hdu %s), given to '--convolved' and "
+              "'--chdu', is not the same size as the input (%s, hdu: %s)",
               p->convolvedname, p->chdu, p->inputname, p->cp.hdu);
     }
 
 
   /* Read the detected label image and check its size. When the user gives
-     `--detection=all', then the whole input is assumed to be a single
+     '--detection=all', then the whole input is assumed to be a single
      detection. */
   if( strcmp(p->useddetectionname, DETECTION_ALL) )
     {
@@ -467,14 +467,14 @@ ui_prepare_inputs(struct segmentparams *p)
       p->olabel->ndim=gal_dimension_remove_extra(p->olabel->ndim,
                                                  p->olabel->dsize, NULL);
       if( gal_dimension_is_different(p->input, p->olabel) )
-        error(EXIT_FAILURE, 0, "`%s' (hdu: %s) and `%s' (hdu: %s) have a"
+        error(EXIT_FAILURE, 0, "'%s' (hdu: %s) and '%s' (hdu: %s) have a"
               "different dimension/size", p->useddetectionname, p->dhdu,
               p->inputname, p->cp.hdu);
 
       /* Make sure the detected labels are not floating point. */
       if(p->olabel->type==GAL_TYPE_FLOAT32
          || p->olabel->type==GAL_TYPE_FLOAT64)
-        error(EXIT_FAILURE, 0, "%s (hdu: %s) has a `%s' type. The detection "
+        error(EXIT_FAILURE, 0, "%s (hdu: %s) has a '%s' type. The detection "
               "(labeled) map must have an integer type (labels/classes can "
               "only be integers). If the pixel values are integers, but only "
               "the numerical type of the image is floating-point, you can "
@@ -630,7 +630,7 @@ ui_prepare_tiles(struct segmentparams *p)
       gal_fits_img_write(check, tl->tilecheckname, NULL, PROGRAM_NAME);
       gal_data_free(check);
 
-      /* If `continueaftercheck' hasn't been called, abort NoiseChisel. */
+      /* If 'continueaftercheck' hasn't been called, abort NoiseChisel. */
       if(!p->continueaftercheck)
         ui_abort_after_check(p, tl->tilecheckname, NULL,
                              "showing all tiles over the image");
@@ -652,15 +652,15 @@ ui_check_size(gal_data_t *base, gal_data_t *comp, size_t 
numtiles,
   if( gal_dimension_is_different(base, comp) && numtiles!=comp->size )
     error(EXIT_FAILURE, 0, "%s (hdu: %s): doesn't have the right size "
           "(%zu elements or pixels).\n\n"
-          "It must either be the same size as `%s' (hdu: `%s'), or "
+          "It must either be the same size as '%s' (hdu: '%s'), or "
           "it must have the same number of elements as the total "
           "number of tiles in the tessellation (%zu). In the latter "
           "case, each pixel is assumed to be a fixed value for a "
           "complete tile.\n\n"
-          "Run with `-P' to see the (tessellation) options/settings "
+          "Run with '-P' to see the (tessellation) options/settings "
           "and their values). For more information on tessellation in "
           "Gnuastro, please run the following command (use the arrow "
-          "keys for up and down and press `q' to return to the "
+          "keys for up and down and press 'q' to return to the "
           "command-line):\n\n"
           "    $ info gnuastro tessellation",
           cname, chdu, comp->size, bname, bhdu, numtiles);
@@ -670,7 +670,7 @@ ui_check_size(gal_data_t *base, gal_data_t *comp, size_t 
numtiles,
 
 
 
-/* Subtract `sky' from the input dataset depending on its size (it may be
+/* Subtract 'sky' from the input dataset depending on its size (it may be
    the whole array or a tile-values array).. */
 static void
 ui_subtract_sky(gal_data_t *in, gal_data_t *sky,
@@ -715,7 +715,7 @@ ui_subtract_sky(gal_data_t *in, gal_data_t *sky,
 
 
 
-/* The Sky and Sky standard deviation images can be a `oneelempertile'
+/* The Sky and Sky standard deviation images can be a 'oneelempertile'
    image (only one element/pixel for a tile). So we need to do some extra
    checks on them (after reading the tessellation). */
 static float
@@ -728,12 +728,12 @@ ui_read_std_and_sky(struct segmentparams *p)
   gal_data_t *sky, *keys=gal_data_array_calloc(3);
 
   /* See if the name used for the standard deviation is a filename or a
-     value. When the string is only a number (and nothing else), `tailptr'
-     will point to the end of the string (`\0'). When the string doesn't
+     value. When the string is only a number (and nothing else), 'tailptr'
+     will point to the end of the string ('\0'). When the string doesn't
      start with a number, it will point to the start of the
-     string. However, file names might also be things like `1_std.fits'. In
-     such cases, `strtod' will return `1.0' and `tailptr' will be
-     `_std.fits'. Thus the most robust test is to see if `tailptr' is the
+     string. However, file names might also be things like '1_std.fits'. In
+     such cases, 'strtod' will return '1.0' and 'tailptr' will be
+     '_std.fits'. Thus the most robust test is to see if 'tailptr' is the
      NULL string character. */
   tmpval=strtod(p->usedstdname, &tailptr);
   if(*tailptr=='\0')
@@ -747,11 +747,11 @@ ui_read_std_and_sky(struct segmentparams *p)
     {
       /* Make sure a HDU is also given. */
       if(p->stdhdu==NULL)
-        error(EXIT_FAILURE, 0, "no value given to `--stdhdu'.\n\n"
+        error(EXIT_FAILURE, 0, "no value given to '--stdhdu'.\n\n"
               "When the Sky standard deviation is a dataset, it is mandatory "
               "specify which HDU/extension it is present in. The file can "
-              "be specified explicitly with `--std'. If not, segment will "
-              "use the file given to `--detection'. If that is also not "
+              "be specified explicitly with '--std'. If not, segment will "
+              "use the file given to '--detection'. If that is also not "
               "called, it will look into the main input file (with no "
               "option)");
 
@@ -769,12 +769,12 @@ ui_read_std_and_sky(struct segmentparams *p)
 
   /* When the Standard deviation dataset (not single value) is made by
      NoiseChisel, it puts three basic statistics of the pre-interpolation
-     distribution of standard deviations in `MEDSTD', `MINSTD' and
-     `MAXSTD'. The `MEDSTD' in particular is most important because it
+     distribution of standard deviations in 'MEDSTD', 'MINSTD' and
+     'MAXSTD'. The 'MEDSTD' in particular is most important because it
      can't be inferred after the interpolations and it can be useful in
      MakeCatalog later to give a more accurate estimate of the noise
      level. So if they are present, we will read them here and write them
-     to the STD output (which is created when `--rawoutput' is not
+     to the STD output (which is created when '--rawoutput' is not
      given). */
   if(!p->rawoutput && p->std->size>1)
     {
@@ -794,7 +794,7 @@ ui_read_std_and_sky(struct segmentparams *p)
       gal_data_array_free(keys, 3, 1);
     }
 
-  /* Similar to `--std' above. */
+  /* Similar to '--std' above. */
   if(p->skyname)
     {
       tmpval=strtod(p->skyname, &tailptr);
@@ -808,11 +808,11 @@ ui_read_std_and_sky(struct segmentparams *p)
         {
           /* Make sure a HDU is also given. */
           if(p->skyhdu==NULL)
-            error(EXIT_FAILURE, 0, "no value given to `--skyhdu'.\n\n"
+            error(EXIT_FAILURE, 0, "no value given to '--skyhdu'.\n\n"
                   "When the Sky is a dataset, it is mandatory specify "
                   "which HDU/extension it is present in. The file can be "
-                  "specified explicitly with `--sky'. If it is a single "
-                  "value, you can just pass the value to `--sky' and no "
+                  "specified explicitly with '--sky'. If it is a single "
+                  "value, you can just pass the value to '--sky' and no "
                   "HDU will be necessary");
 
           /* Read the Sky dataset. */
@@ -899,9 +899,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
segmentparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
@@ -1026,12 +1026,12 @@ ui_abort_after_check(struct segmentparams *p, char 
*filename,
 
   if(file2name)
     {
-      if( asprintf(&name, "`%s' and `%s'", filename, file2name)<0 )
+      if( asprintf(&name, "'%s' and '%s'", filename, file2name)<0 )
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
     }
   else
     {
-      if( asprintf(&name, "`%s'", filename)<0 )
+      if( asprintf(&name, "'%s'", filename)<0 )
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
     }
 
@@ -1043,7 +1043,7 @@ ui_abort_after_check(struct segmentparams *p, char 
*filename,
           "%s (%s) has been created.\n\n"
           "If you want %s to continue its processing AND save any "
           "requested check outputs, please run it again with "
-          "`--continueaftercheck'.\n"
+          "'--continueaftercheck'.\n"
           "------------------------------------------------\n",
           PROGRAM_NAME, name, description, PROGRAM_NAME);
 
diff --git a/bin/statistics/Makefile.am b/bin/statistics/Makefile.am
index ef9325f..8879095 100644
--- a/bin/statistics/Makefile.am
+++ b/bin/statistics/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = aststatistics
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 aststatistics_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la \
                       -lgnuastro $(MAYBE_NORPATH)
 
diff --git a/bin/statistics/args.h b/bin/statistics/args.h
index 6f19b4a..252d390 100644
--- a/bin/statistics/args.h
+++ b/bin/statistics/args.h
@@ -467,7 +467,7 @@ struct argp_option program_options[] =
       UI_KEY_SIGMACLIP,
       0,
       0,
-      "Overall sigma-clipping (see `--sclipparams')",
+      "Overall sigma-clipping (see '--sclipparams')",
       UI_GROUP_PARTICULAR_STAT,
       &p->sigmaclip,
       GAL_OPTIONS_NO_ARG_TYPE,
@@ -611,7 +611,7 @@ struct argp_option program_options[] =
       UI_KEY_CHECKSKY,
       0,
       0,
-      "Store steps in `_sky_steps.fits' file.",
+      "Store steps in '_sky_steps.fits' file.",
       UI_GROUP_SKY,
       &p->checksky,
       GAL_OPTIONS_NO_ARG_TYPE,
diff --git a/bin/statistics/aststatistics.conf 
b/bin/statistics/aststatistics.conf
index 1d749f7..4838c98 100644
--- a/bin/statistics/aststatistics.conf
+++ b/bin/statistics/aststatistics.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/statistics/authors-cite.h b/bin/statistics/authors-cite.h
index c2e6e55..a5f899b 100644
--- a/bin/statistics/authors-cite.h
+++ b/bin/statistics/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/statistics/sky.c b/bin/statistics/sky.c
index 656e037..757d2c0 100644
--- a/bin/statistics/sky.c
+++ b/bin/statistics/sky.c
@@ -85,7 +85,7 @@ sky_on_thread(void *in_prm)
                     ? gal_statistics_quantile_function(tile, mean, 1)
                     : NULL );
 
-      /* Reset the pointers of `tile'. */
+      /* Reset the pointers of 'tile'. */
       if(p->kernel) { tile->array=tarray; tile->block=tblock; }
 
       /* Check the mean quantile value. Note that if the mode is
@@ -94,7 +94,7 @@ sky_on_thread(void *in_prm)
       if( meanquant
           && fabs( *(double *)(meanquant->array)-0.5f) < p->meanmedqdiff )
         {
-          /* Get the sigma-clipped mean and standard deviation. `inplace'
+          /* Get the sigma-clipped mean and standard deviation. 'inplace'
              is irrelevant here because this is a tile and it will be
              copied anyway. */
           sigmaclip=gal_statistics_sigma_clip(tile, p->sclipparams[0],
@@ -261,15 +261,15 @@ sky(struct statisticsparams *p)
           gal_tile_full_values_write(p->std_t, tl, !p->ignoreblankintiles,
                                      p->checkskyname, NULL, PROGRAM_NAME);
           if(!cp->quiet)
-            printf("  - Check image written to `%s'.\n", p->checkskyname);
+            printf("  - Check image written to '%s'.\n", p->checkskyname);
         }
     }
 
 
   /* Save the Sky and its standard deviation. We want the output to have a
-     `_sky.fits' suffix. So we'll temporarily re-set `p->cp.keepinputdir'
+     '_sky.fits' suffix. So we'll temporarily re-set 'p->cp.keepinputdir'
      if the user asked for a specific name. Note that we copied the actual
-     value in the `keepinputdir' above (in the definition). */
+     value in the 'keepinputdir' above (in the definition). */
   p->cp.keepinputdir = p->cp.output ? 1 : keepinputdir;
   outname=gal_checkset_automatic_output(&p->cp,
                                         ( p->cp.output
@@ -287,7 +287,7 @@ sky(struct statisticsparams *p)
   gal_fits_key_write_config(&p->cp.okeys, "Statistics configuration",
                             "STATISTICS-CONFIG", outname, "0");
   if(!cp->quiet)
-    printf("  - Sky and its STD written to `%s'.\n", outname);
+    printf("  - Sky and its STD written to '%s'.\n", outname);
 
 
   /* Clean up and return. */
diff --git a/bin/statistics/statistics.c b/bin/statistics/statistics.c
index f80ce8c..70ed6c8 100644
--- a/bin/statistics/statistics.c
+++ b/bin/statistics/statistics.c
@@ -106,8 +106,8 @@ statistics_print_one_row(struct statisticsparams *p)
   for(tmp=p->singlevalue; tmp!=NULL; tmp=tmp->next)
     switch(tmp->v)
       {
-      /* Calculate respective values. Checking with `if(num==NULL)' gives
-         compiler warnings of `this if clause does not guard ...'. So we
+      /* Calculate respective values. Checking with 'if(num==NULL)' gives
+         compiler warnings of 'this if clause does not guard ...'. So we
          are using this empty-if and else statement. */
       case UI_KEY_NUMBER:
         num = num ? num : gal_statistics_number(p->input);           break;
@@ -211,7 +211,7 @@ statistics_print_one_row(struct statisticsparams *p)
 
       /* Print the number. Note that we don't want any extra white space
          characters before or after the printed outputs. So we have defined
-         `counter' to add a single white space character before any element
+         'counter' to add a single white space character before any element
          except the first one. */
       toprint=gal_type_to_string(out->array, out->type, 0);
       printf("%s%s", counter ? " " : "", toprint);
@@ -415,7 +415,7 @@ statistics_on_tile(struct statisticsparams *p)
                     "recognized", __func__, PACKAGE_BUGREPORT, operation->v);
             }
 
-          /* Put the output value into the `values' array and clean up. */
+          /* Put the output value into the 'values' array and clean up. */
           tmp=gal_data_copy_to_new_type_free(tmp, type);
           memcpy(gal_pointer_increment(values->array, tind++, values->type),
                  tmp->array, gal_type_sizeof(type));
@@ -503,7 +503,7 @@ print_ascii_plot(struct statisticsparams *p, gal_data_t 
*plot,
 
 
 
-/* Data structure that must be fed into `gal_statistics_regular_bins'.*/
+/* Data structure that must be fed into 'gal_statistics_regular_bins'.*/
 static gal_data_t *
 set_bin_range_params(struct statisticsparams *p)
 {
@@ -587,7 +587,7 @@ write_output_table(struct statisticsparams *p, gal_data_t 
*table,
   use_auto_output = p->cp.output ? (p->numoutfiles>1 ? 1 : 0) : 1;
 
 
-  /* Set the `fix' and `suffix' strings. Note that `fix' is necessary in
+  /* Set the 'fix' and 'suffix' strings. Note that 'fix' is necessary in
      every case, even when no automatic output is to be used. Since it is
      used to determine the format of the output. */
   fix = ( p->cp.output
@@ -665,20 +665,20 @@ save_hist_and_or_cfp(struct statisticsparams *p)
   /* Set the histogram as the next pointer of bins. This is again necessary
      in both cases: when only a histogram is requested, it is used for the
      plotting. When only a CFP is desired, it is used as input into
-     `gal_statistics_cfp'. */
+     'gal_statistics_cfp'. */
   bins->next=hist;
 
 
   /* Make the cumulative frequency plot if the user wanted it. Make the
-     CFP, note that for the CFP, `maxbinone' and `normalize' are the same:
+     CFP, note that for the CFP, 'maxbinone' and 'normalize' are the same:
      the last bin (largest value) must be one. So if any of them are given,
      then set the last argument to 1.*/
   if(p->cumulative)
     cfp=gal_statistics_cfp(p->input, bins, p->normalize || p->maxbinone);
 
 
-  /* FITS tables don't accept `uint64_t', so to be consistent, we'll conver
-     the histogram and CFP to `uint32_t'.*/
+  /* FITS tables don't accept 'uint64_t', so to be consistent, we'll conver
+     the histogram and CFP to 'uint32_t'.*/
   if(hist->type==GAL_TYPE_UINT64)
     hist=gal_data_copy_to_new_type_free(hist, GAL_TYPE_UINT32);
   if(cfp && cfp->type==GAL_TYPE_UINT64)
@@ -766,7 +766,7 @@ print_mirror_hist_cfp(struct statisticsparams *p)
 /*******************************************************************/
 /**************           Basic information          ***************/
 /*******************************************************************/
-/* To keep things in `print_basics' clean, we'll define the input data
+/* To keep things in 'print_basics' clean, we'll define the input data
    here, then only print the values there. */
 void
 print_input_info(struct statisticsparams *p)
@@ -874,7 +874,7 @@ print_basics(struct statisticsparams *p)
   tmp=gal_statistics_mode(p->input, mirrdist, 1);
   d=tmp->array;
   if(d[2]>GAL_STATISTICS_MODE_GOOD_SYM)
-    {        /* Same format as `gal_data_write_to_string' */
+    {        /* Same format as 'gal_data_write_to_string' */
       printf("  %-*s %.10g\n", namewidth, "Mode:", d[0]);
       printf("  %-*s %.10g\n", namewidth, "Mode quantile:", d[1]);
     }
@@ -888,7 +888,7 @@ print_basics(struct statisticsparams *p)
   free(str);
 
   /* Print the mean and standard deviation. Same format as
-     `gal_data_write_to_string' */
+     'gal_data_write_to_string' */
   printf("  %-*s %.10g\n", namewidth, "Mean:", mean);
   printf("  %-*s %.10g\n", namewidth, "Standard deviation:", std);
 
diff --git a/bin/statistics/ui.c b/bin/statistics/ui.c
index 43c3259..20ccf91 100644
--- a/bin/statistics/ui.c
+++ b/bin/statistics/ui.c
@@ -164,18 +164,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct statisticsparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -216,25 +216,25 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
   /* In case of printing the option values. */
   if(lineno==-1)
     error(EXIT_FAILURE, 0, "currently the options to be printed in one row "
-          "(like `--number', `--mean', and etc) do not support printing "
-          "with the `--printparams' (`-P'), or writing into configuration "
+          "(like '--number', '--mean', and etc) do not support printing "
+          "with the '--printparams' ('-P'), or writing into configuration "
           "files due to lack of time when implementing these features. "
           "You can put them into configuration files manually. Please get "
-          "in touch with us at `%s', so we can implement it",
+          "in touch with us at '%s', so we can implement it",
           PACKAGE_BUGREPORT);
 
   /* Some of these options take values and some don't. */
   if(option->type==GAL_OPTIONS_NO_ARG_TYPE)
     {
-      /* If this option is given in a configuration file, then `arg' will not
-         be NULL and we don't want to do anything if it is `0'. */
+      /* If this option is given in a configuration file, then 'arg' will not
+         be NULL and we don't want to do anything if it is '0'. */
       if(arg)
         {
-          /* Make sure the value is only `0' or `1'. */
+          /* Make sure the value is only '0' or '1'. */
           if( arg[1]!='\0' && *arg!='0' && *arg!='1' )
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `--%s' "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the '--%s' "
                           "option takes no arguments. In a configuration "
-                          "file it can only have the values `1' or `0', "
+                          "file it can only have the values '1' or '0', "
                           "indicating if it should be used or not",
                           option->name);
 
@@ -250,7 +250,7 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
       /* Read the string of numbers. */
       inputs=gal_options_parse_list_of_numbers(arg, filename, lineno);
       if(inputs->size==0)
-        error(EXIT_FAILURE, 0, "`--%s' needs a value", option->name);
+        error(EXIT_FAILURE, 0, "'--%s' needs a value", option->name);
 
       /* Do the appropriate operations with the  */
       d=inputs->array;
@@ -265,8 +265,8 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
             {
               if(option->key==UI_KEY_QUANTILE && (d[i]<0 || d[i]>1) )
                 error_at_line(EXIT_FAILURE, 0, filename, lineno, "values "
-                              "to `--quantile' (`-u') must be between 0 "
-                              "and 1, you had asked for %g (read from `%s')",
+                              "to '--quantile' ('-u') must be between 0 "
+                              "and 1, you had asked for %g (read from '%s')",
                               d[i], arg);
               gal_list_f64_add(&p->tp_args, d[i]);
               gal_list_i32_add(&p->singlevalue, option->key);
@@ -276,7 +276,7 @@ ui_add_to_single_value(struct argp_option *option, char 
*arg,
         default:
           error_at_line(EXIT_FAILURE, 0, filename, lineno, "a bug! please "
                         "contact us at %s so we can address the problem. "
-                        "the option given to `ui_add_to_print_in_row' is "
+                        "the option given to 'ui_add_to_print_in_row' is "
                         "marked as requiring a value, but is not recognized",
                         PACKAGE_BUGREPORT);
         }
@@ -297,7 +297,7 @@ ui_read_quantile_range(struct argp_option *option, char 
*arg,
   gal_data_t *in;
   struct statisticsparams *p=(struct statisticsparams *)params;
 
-  /* For the `--printparams' (`-P') option:*/
+  /* For the '--printparams' ('-P') option:*/
   if(lineno==-1)
     {
       if( isnan(p->quantmax) )
@@ -318,11 +318,11 @@ ui_read_quantile_range(struct argp_option *option, char 
*arg,
 
   /* Check if there was only two numbers. */
   if(in->size!=1 && in->size!=2)
-    error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `--%s' "
+    error_at_line(EXIT_FAILURE, 0, filename, lineno, "the '--%s' "
                   "option takes one or two values values (separated by "
                   "a comma) to define the range of used values with "
                   "quantiles. However, %zu numbers were read in the "
-                  "string `%s' (value to this option).\n\n"
+                  "string '%s' (value to this option).\n\n"
                   "If there is only one number as input, it will be "
                   "interpretted as the lower quantile (Q) range. The "
                   "higher range will be set to the quantile (1-Q). "
@@ -338,13 +338,13 @@ ui_read_quantile_range(struct argp_option *option, char 
*arg,
   if( (p->quantmin<0 || p->quantmin>1)
       || ( !isnan(p->quantmax) && (p->quantmax<0 || p->quantmax>1) ) )
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "values to the "
-                  "`--quantrange' option must be between 0 and 1 "
-                  "(inclusive). Your input was: `%s'", arg);
+                  "'--quantrange' option must be between 0 and 1 "
+                  "(inclusive). Your input was: '%s'", arg);
 
   /* When only one value is given, make sure it is less than 0.5. */
   if( !isnan(p->quantmax) && p->quantmin>0.5 )
     error(EXIT_FAILURE, 0, "%g>=0.5! When only one value is given to the "
-          "`--%s' option, the range is defined as Q and 1-Q. Thus, the "
+          "'--%s' option, the range is defined as Q and 1-Q. Thus, the "
           "value must be less than 0.5", p->quantmin, option->name);
 
   /* Clean up and return. */
@@ -375,7 +375,7 @@ ui_read_quantile_range(struct argp_option *option, char 
*arg,
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct statisticsparams *p)
 {
@@ -390,7 +390,7 @@ ui_read_check_only_options(struct statisticsparams *p)
   /* If in tile-mode, we must have at least one single valued option. */
   if(p->ontile && p->singlevalue==NULL)
     error(EXIT_FAILURE, 0, "at least one of the single-value measurements "
-          "(for example `--median') must be requested with the `--ontile' "
+          "(for example '--median') must be requested with the '--ontile' "
           "option: there is no value to put in each tile");
 
   /* Tessellation related options. */
@@ -399,18 +399,18 @@ ui_read_check_only_options(struct statisticsparams *p)
       /* The tile or sky mode cannot be called with any other modes. */
       if(p->asciihist || p->asciicfp || p->histogram || p->cumulative
          || p->sigmaclip || !isnan(p->mirror) )
-        error(EXIT_FAILURE, 0, "`--ontile' or `--sky' cannot be called with "
-              "any of the `particular' calculation options, for example "
-              "`--histogram'. This is because the latter work over the whole "
+        error(EXIT_FAILURE, 0, "'--ontile' or '--sky' cannot be called with "
+              "any of the 'particular' calculation options, for example "
+              "'--histogram'. This is because the latter work over the whole "
               "dataset and element positions are changed, but in the former "
               "positions are significant");
 
       /* Make sure the tessellation defining options are given. */
       if( tl->tilesize==NULL || tl->numchannels==NULL
           || isnan(tl->remainderfrac) )
-         error(EXIT_FAILURE, 0, "`--tilesize', `--numchannels', and "
-               "`--remainderfrac' are mandatory options when dealing with "
-               "a tessellation (in `--ontile' or `--sky' mode). Atleast "
+         error(EXIT_FAILURE, 0, "'--tilesize', '--numchannels', and "
+               "'--remainderfrac' are mandatory options when dealing with "
+               "a tessellation (in '--ontile' or '--sky' mode). Atleast "
                "one of these options wasn't given a value.");
     }
 
@@ -421,13 +421,13 @@ ui_read_check_only_options(struct statisticsparams *p)
       /* Mandatory options. */
       if( isnan(p->meanmedqdiff) || isnan(p->sclipparams[0])
           || p->cp.interpmetric==0 || p->cp.interpnumngb==0 )
-        error(EXIT_FAILURE, 0, "`--meanmedqdiff', `--sclipparams', "
-              "`--interpmetric' and `--interpnumngb' are mandatory when "
-              "requesting Sky measurement (`--sky')");
+        error(EXIT_FAILURE, 0, "'--meanmedqdiff', '--sclipparams', "
+              "'--interpmetric' and '--interpnumngb' are mandatory when "
+              "requesting Sky measurement ('--sky')");
 
       /* If mode and median distance is a reasonable value. */
       if(p->meanmedqdiff>0.5)
-        error(EXIT_FAILURE, 0, "%f not acceptable for `--meanmedqdiff'. It "
+        error(EXIT_FAILURE, 0, "%f not acceptable for '--meanmedqdiff'. It "
               "cannot take values larger than 0.5 (quantile of median)",
               p->meanmedqdiff);
 
@@ -435,21 +435,21 @@ ui_read_check_only_options(struct statisticsparams *p)
       if(p->kernelname && gal_fits_name_is_fits(p->kernelname)
          && p->khdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified for the kernel image. When "
-              "A HDU is necessary for FITS files. You can use the `--khdu' "
-              "(`-u') option and give it the HDU number (starting from "
+              "A HDU is necessary for FITS files. You can use the '--khdu' "
+              "('-u') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
     }
 
 
-  /* Sigma-clipping needs `sclipparams'. */
+  /* Sigma-clipping needs 'sclipparams'. */
   if(p->sigmaclip && isnan(p->sclipparams[0]))
-    error(EXIT_FAILURE, 0, "`--sclipparams' is necessary with `--sigmaclip'. "
-          "`--sclipparams' takes two values (separated by a comma) for "
+    error(EXIT_FAILURE, 0, "'--sclipparams' is necessary with '--sigmaclip'. "
+          "'--sclipparams' takes two values (separated by a comma) for "
           "defining the sigma-clip: the multiple of sigma, and tolerance "
           "(<1) or number of clips (>1).");
 
 
-  /* If any of the mode measurements are requested, then `mirrordist' is
+  /* If any of the mode measurements are requested, then 'mirrordist' is
      mandatory. */
   for(tmp=p->singlevalue; tmp!=NULL; tmp=tmp->next)
     switch(tmp->v)
@@ -459,18 +459,18 @@ ui_read_check_only_options(struct statisticsparams *p)
       case UI_KEY_MODEQUANT:
       case UI_KEY_MODESYMVALUE:
         if( isnan(p->mirrordist) )
-          error(EXIT_FAILURE, 0, "`--mirrordist' is required for the "
-                "mode-related single measurements (`--mode', `--modequant', "
-                "`--modesym', and `--modesymvalue')");
+          error(EXIT_FAILURE, 0, "'--mirrordist' is required for the "
+                "mode-related single measurements ('--mode', '--modequant', "
+                "'--modesym', and '--modesymvalue')");
         break;
       case UI_KEY_SIGCLIPSTD:
       case UI_KEY_SIGCLIPMEAN:
       case UI_KEY_SIGCLIPNUMBER:
       case UI_KEY_SIGCLIPMEDIAN:
         if( isnan(p->sclipparams[0]) )
-          error(EXIT_FAILURE, 0, "`--sclipparams' is necessary with "
+          error(EXIT_FAILURE, 0, "'--sclipparams' is necessary with "
                 "sigma-clipping measurements.\n\n"
-                "`--sclipparams' takes two values (separated by a comma) for "
+                "'--sclipparams' takes two values (separated by a comma) for "
                 "defining the sigma-clip: the multiple of sigma, and tolerance 
"
                 "(<1) or number of clips (>1).");
         break;
@@ -481,8 +481,8 @@ ui_read_check_only_options(struct statisticsparams *p)
      to greater than is smaller than the value to less-than. */
   if( !isnan(p->lessthan) && !isnan(p->greaterequal)
       && p->lessthan < p->greaterequal )
-    error(EXIT_FAILURE, 0, "the value to `--lessthan' (%g) must be larger "
-          "than the value to `--greaterequal' (%g)", p->lessthan,
+    error(EXIT_FAILURE, 0, "the value to '--lessthan' (%g) must be larger "
+          "than the value to '--greaterequal' (%g)", p->lessthan,
           p->greaterequal);
 
 
@@ -490,15 +490,15 @@ ui_read_check_only_options(struct statisticsparams *p)
      quantrange. */
   if( ( !isnan(p->lessthan) || !isnan(p->greaterequal) )
       && !isnan(p->quantmin) )
-    error(EXIT_FAILURE, 0, "`--lessthan' and/or `--greaterequal' cannot "
-          "be called together with `--quantrange'");
+    error(EXIT_FAILURE, 0, "'--lessthan' and/or '--greaterequal' cannot "
+          "be called together with '--quantrange'");
 
 
-  /* When binned outputs are requested, make sure that `numbins' is set. */
+  /* When binned outputs are requested, make sure that 'numbins' is set. */
   if( (p->histogram || p->cumulative || !isnan(p->mirror)) && p->numbins==0)
-    error(EXIT_FAILURE, 0, "`--numbins' isn't set. When the histogram or "
+    error(EXIT_FAILURE, 0, "'--numbins' isn't set. When the histogram or "
           "cumulative frequency plots are requested, the number of bins "
-          "(`--numbins') is necessary");
+          "('--numbins') is necessary");
 
 
   /* If an ascii plot is requested, check if the ascii number of bins and
@@ -506,7 +506,7 @@ ui_read_check_only_options(struct statisticsparams *p)
   if( (p->asciihist || p->asciicfp)
       && (p->numasciibins==0 || p->asciiheight==0) )
     error(EXIT_FAILURE, 0, "when an ascii plot is requested, "
-          "`--numasciibins' and `--asciiheight' are mandatory, but atleast "
+          "'--numasciibins' and '--asciiheight' are mandatory, but atleast "
           "one of these has not been given");
 
 
@@ -532,7 +532,7 @@ ui_check_options_and_arguments(struct statisticsparams *p)
           if( p->cp.hdu==NULL )
             error(EXIT_FAILURE, 0, "no HDU specified. When the input is a "
                   "FITS file, a HDU must also be specified, you can use "
-                  "the `--hdu' (`-h') option and give it the HDU number "
+                  "the '--hdu' ('-h') option and give it the HDU number "
                   "(starting from zero), extension name, or anything "
                   "acceptable by CFITSIO");
 
@@ -541,7 +541,7 @@ ui_check_options_and_arguments(struct statisticsparams *p)
           p->hdu_type=gal_fits_hdu_format(p->inputname, p->cp.hdu);
           if(p->hdu_type==IMAGE_HDU && p->column)
             error(EXIT_FAILURE, 0, "%s (hdu: %s): is a FITS image "
-                  "extension. The `--column' option is only applicable "
+                  "extension. The '--column' option is only applicable "
                   "to tables.", p->inputname, p->cp.hdu);
         }
     }
@@ -584,8 +584,8 @@ ui_out_of_range_to_blank(struct statisticsparams *p)
   ref = p->reference ? p->reference : p->input;
 
 
-  /* If the user has given a quantile range, then set the `greaterequal'
-     and `lessthan' values. */
+  /* If the user has given a quantile range, then set the 'greaterequal'
+     and 'lessthan' values. */
   if( !isnan(p->quantmin) )
     {
       /* If only one value was given, set the maximum quantile range. */
@@ -603,7 +603,7 @@ ui_out_of_range_to_blank(struct statisticsparams *p)
     }
 
 
-  /* Set the condition. Note that the `greaterequal' name is for the data
+  /* Set the condition. Note that the 'greaterequal' name is for the data
      we want. So we will set the condition based on those that are
      less-than  */
   if(!isnan(p->greaterequal))
@@ -616,7 +616,7 @@ ui_out_of_range_to_blank(struct statisticsparams *p)
     }
 
 
-  /* Same reasoning as above for `p->greaterthan'. */
+  /* Same reasoning as above for 'p->greaterthan'. */
   if(!isnan(p->lessthan))
     {
       tmp=gal_data_alloc(NULL, GAL_TYPE_FLOAT32, 1, &one, NULL, 0, -1, 1,
@@ -650,7 +650,7 @@ ui_out_of_range_to_blank(struct statisticsparams *p)
 
   /* Set all the pixels that satisfy the condition to blank. Note that a
      blank value will be used in the proper type of the input in the
-     `where' operator.*/
+     'where' operator.*/
   gal_arithmetic(GAL_ARITHMETIC_OP_WHERE, 1, flagsor, p->input, cond, blank);
 
 
@@ -751,12 +751,12 @@ ui_read_columns(struct statisticsparams *p)
           error(EXIT_FAILURE, 0, "%s is a table containing more than one "
                 "column. However, the specific column to work on isn't "
                 "specified.\n\n"
-                "Please use the `--column' (`-c') option to specify a "
+                "Please use the '--column' ('-c') option to specify a "
                 "column. You can either give it the column number "
                 "(couting from 1), or a match/search in its meta-data (e.g., "
                 "column names).\n\n"
                 "For more information, please run the following command "
-                "(press the `SPACE' key to go down and `q' to return to the "
+                "(press the 'SPACE' key to go down and 'q' to return to the "
                 "command-line):\n\n"
                 "    $ info gnuastro \"Selecting table columns\"\n",
                 ( p->inputname
@@ -816,7 +816,7 @@ ui_read_columns(struct statisticsparams *p)
         gal_tableintern_error_col_selection(p->inputname, p->cp.hdu, "too "
                                             "many columns were selected by "
                                             "the given values to the "
-                                            "`--column' and/or `--refcol' "
+                                            "'--column' and/or '--refcol' "
                                             "options. Only one is "
                                             "acceptable for each.");
     }
@@ -838,7 +838,7 @@ ui_preparations(struct statisticsparams *p)
   struct gal_tile_two_layer_params *tl=&cp->tl;
   char *checkbasename = p->cp.output ? p->cp.output : p->inputname;
 
-  /* Change `keepinputdir' based on if an output name was given. */
+  /* Change 'keepinputdir' based on if an output name was given. */
   p->cp.keepinputdir = p->cp.output ? 1 : 0;
 
   /* Read the input. */
@@ -919,8 +919,8 @@ ui_preparations(struct statisticsparams *p)
 
       /* Make sure there is data remaining: */
       if(p->input->size==0)
-        error(EXIT_FAILURE, 0, "%s: no data, maybe the `--greaterequal' or "
-              "`--lessthan' options need to be adjusted",
+        error(EXIT_FAILURE, 0, "%s: no data, maybe the '--greaterequal' or "
+              "'--lessthan' options need to be adjusted",
               gal_fits_name_save_as_string(p->inputname, cp->hdu) );
 
       /* Make the sorted array if necessary. */
@@ -931,7 +931,7 @@ ui_preparations(struct statisticsparams *p)
       if( p->histogram || p->cumulative ) ++p->numoutfiles;
     }
 
-  /* Reset `keepinputdir' to what it originally was. */
+  /* Reset 'keepinputdir' to what it originally was. */
   p->cp.keepinputdir=keepinputdir;
 }
 
@@ -963,9 +963,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
statisticsparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
@@ -1011,7 +1011,7 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
statisticsparams *p)
 
   /* Prepare all the options as FITS keywords to write in output
      later. Note that in some modes, there is no output file, and
-     `ui_add_to_single_value' isn't yet prepared. */
+     'ui_add_to_single_value' isn't yet prepared. */
   if( (p->singlevalue && p->ontile) || p->sky || p->histogram \
       || p->cumulative)
     gal_options_as_fits_keywords(&p->cp);
diff --git a/bin/table/Makefile.am b/bin/table/Makefile.am
index c7cb5bc..504aee0 100644
--- a/bin/table/Makefile.am
+++ b/bin/table/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = asttable
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 asttable_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                  $(MAYBE_NORPATH)
 
diff --git a/bin/table/args.h b/bin/table/args.h
index f66434b..d50304e 100644
--- a/bin/table/args.h
+++ b/bin/table/args.h
@@ -158,7 +158,7 @@ struct argp_option program_options[] =
       UI_KEY_INPOLYGON,
       "STR,STR",
       0,
-      "Coord. columns that are inside `--polygon'.",
+      "Coord. columns that are inside '--polygon'.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->inpolygon,
       GAL_TYPE_STRING,
@@ -172,7 +172,7 @@ struct argp_option program_options[] =
       UI_KEY_OUTPOLYGON,
       "STR,STR",
       0,
-      "Coord. columns that are outside `--polygon'.",
+      "Coord. columns that are outside '--polygon'.",
       GAL_OPTIONS_GROUP_INPUT,
       &p->outpolygon,
       GAL_TYPE_STRING,
@@ -186,7 +186,7 @@ struct argp_option program_options[] =
       UI_KEY_POLYGON,
       "FLT:FLT[,...]",
       0,
-      "Polygon for `--inpolygon' or `--outpolygon'.",
+      "Polygon for '--inpolygon' or '--outpolygon'.",
       UI_GROUP_OUTROWS,
       &p->polygon,
       GAL_TYPE_STRING,
diff --git a/bin/table/arithmetic.c b/bin/table/arithmetic.c
index 379dc5b..3eae227 100644
--- a/bin/table/arithmetic.c
+++ b/bin/table/arithmetic.c
@@ -128,8 +128,8 @@ arithmetic_init_wcs(struct tableparams *p, char *operator)
     {
       /* A small sanity check. */
       if(p->wcsfile==NULL || p->wcshdu==NULL)
-        error(EXIT_FAILURE, 0, "`--wcsfile' and `--wcshdu' are necessary "
-              "for the `%s' operator", operator);
+        error(EXIT_FAILURE, 0, "'--wcsfile' and '--wcshdu' are necessary "
+              "for the '%s' operator", operator);
 
       /* Read the WCS. */
       p->wcs=gal_wcs_read(p->wcsfile, p->wcshdu, 0, 0, &p->nwcs);
@@ -213,7 +213,7 @@ arithmetic_init(struct tableparams *p, struct 
arithmetic_token **arith,
           else
             {
               str = ( (token[0]=='$' && isdigit(token[1]))
-                      ? &token[1]   /* Column number (starting with `$'). */
+                      ? &token[1]   /* Column number (starting with '$'). */
                       : token );    /* Column name, just add it.          */
               gal_list_str_add(toread, str, 1);
               node->index=*totcalled;
@@ -227,7 +227,7 @@ arithmetic_init(struct tableparams *p, struct 
arithmetic_token **arith,
 
   /* A small sanity check: the last added token must be an operator. */
   if( node==NULL || node->operator==GAL_ARITHMETIC_OP_INVALID )
-    error(EXIT_FAILURE, 0, "last token in arithmetic column (`%s') is not a "
+    error(EXIT_FAILURE, 0, "last token in arithmetic column ('%s') is not a "
           "recognized operator", lasttoken);
 }
 
@@ -320,10 +320,10 @@ arithmetic_stack_pop(gal_data_t **stack, int operator)
   if(*stack)
     *stack=(*stack)->next;
   else
-    error(EXIT_FAILURE, 0, "not enough operands for `%s'",
+    error(EXIT_FAILURE, 0, "not enough operands for '%s'",
           arithmetic_operator_name(operator));
 
-  /* Remove the `next' element to break from the stack and return. */
+  /* Remove the 'next' element to break from the stack and return. */
   out->next=NULL;
   return out;
 }
@@ -440,14 +440,14 @@ arithmetic_angular_dist(struct tableparams *p, gal_data_t 
**stack, int operator)
   double *o, *a1, *a2, *b1, *b2;
   gal_data_t *a, *b, *tmp, *out;
 
-  /* Pop the columns for point `b'.*/
+  /* Pop the columns for point 'b'.*/
   tmp=arithmetic_stack_pop(stack, operator);
   tmp=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT64);
   b=arithmetic_stack_pop(stack, operator);
   b=gal_data_copy_to_new_type_free(b, GAL_TYPE_FLOAT64);
   b->next=tmp;
 
-  /* Pop the columns for point `a'.*/
+  /* Pop the columns for point 'a'.*/
   tmp=arithmetic_stack_pop(stack, operator);
   tmp=gal_data_copy_to_new_type_free(tmp, GAL_TYPE_FLOAT64);
   a=arithmetic_stack_pop(stack, operator);
@@ -458,12 +458,12 @@ arithmetic_angular_dist(struct tableparams *p, gal_data_t 
**stack, int operator)
      single coordinate, but we don't know which one. */
   if(a->size!=a->next->size)
     error(EXIT_FAILURE, 0, "the sizes of the third and fourth operands "
-          "of the `%s' operator (respectively containing %zu and %zu "
+          "of the '%s' operator (respectively containing %zu and %zu "
           "numbers) must be equal", arithmetic_operator_name(operator),
           a->next->size, a->size);
   if(b->size!=b->next->size)
     error(EXIT_FAILURE, 0, "the sizes of the third and fourth operands "
-          "of the `%s' operator (respectively containing %zu and %zu "
+          "of the '%s' operator (respectively containing %zu and %zu "
           "numbers) must be equal", arithmetic_operator_name(operator),
           b->next->size, b->size);
 
@@ -549,7 +549,7 @@ arithmetic_operator_run(struct tableparams *p, gal_data_t 
**stack,
   int flags = ( GAL_ARITHMETIC_INPLACE | GAL_ARITHMETIC_FREE
                 | GAL_ARITHMETIC_NUMOK );
 
-  /* When `num_operands!=0', the operator is in the library. */
+  /* When 'num_operands!=0', the operator is in the library. */
   if(num_operands)
     {
       /* Pop the necessary number of operators. Note that the
@@ -582,12 +582,12 @@ arithmetic_operator_run(struct tableparams *p, gal_data_t 
**stack,
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-                "the problem. `%zu' is not recognized as an operand "
-                "counter (with `%s')", __func__, PACKAGE_BUGREPORT,
+                "the problem. '%zu' is not recognized as an operand "
+                "counter (with '%s')", __func__, PACKAGE_BUGREPORT,
                 num_operands, arithmetic_operator_name(operator));
         }
 
-      /* Run the arithmetic operation. Note that `gal_arithmetic' is a
+      /* Run the arithmetic operation. Note that 'gal_arithmetic' is a
          variable argument function (like printf). So the number of
          arguments it uses depend on the operator. In other words, when the
          operator doesn't need three operands, the extra arguments will be
@@ -660,13 +660,13 @@ arithmetic_reverse_polish(struct tableparams *p, struct 
column_pack *outpack)
     }
 
   /* Put everything that remains in the stack (reversed) into the final
-     table. Just note that `gal_list_data_add' behaves differently for
-     lists, so we'll add have to manually set the `next' element to NULL
+     table. Just note that 'gal_list_data_add' behaves differently for
+     lists, so we'll add have to manually set the 'next' element to NULL
      before adding the column to the final table. */
   gal_list_data_reverse(&stack);
   while(stack!=NULL)
     {
-      /* Keep the top element in `single' and move `stack' to the next
+      /* Keep the top element in 'single' and move 'stack' to the next
          element. */
       single=stack;
       stack=stack->next;
@@ -677,7 +677,7 @@ arithmetic_reverse_polish(struct tableparams *p, struct 
column_pack *outpack)
               "single value, but other columns have also been requested "
               "which have more elements/rows");
 
-      /* Set `single->next' to NULL so it isn't treated as a list and
+      /* Set 'single->next' to NULL so it isn't treated as a list and
          remove all metadata */
       single->next=NULL;
       gal_list_data_add(&p->table, single);
@@ -713,7 +713,7 @@ arithmetic_operate(struct tableparams *p)
   struct column_pack *outpack;
 
   /* From now on, we will be looking for columns from the index in
-     `colarray', so to keep things clean, we'll set all the `next' elements
+     'colarray', so to keep things clean, we'll set all the 'next' elements
      to NULL. */
   for(i=0;i<p->numcolarray;++i) p->colarray[i]->next=NULL;
 
diff --git a/bin/table/asttable.conf b/bin/table/asttable.conf
index db9f1ae..0590550 100644
--- a/bin/table/asttable.conf
+++ b/bin/table/asttable.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '[space], or tab). Lines starting with `#' are ignored.
+# example ' '[space], or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/table/authors-cite.h b/bin/table/authors-cite.h
index d3ab481..1750403 100644
--- a/bin/table/authors-cite.h
+++ b/bin/table/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/table/main.h b/bin/table/main.h
index 2f34834..4b103ea 100644
--- a/bin/table/main.h
+++ b/bin/table/main.h
@@ -118,7 +118,7 @@ struct tableparams
   uint8_t              sortin;  /* If the sort column is in the output. */
   time_t              rawtime;  /* Starting time of the program.        */
   gal_data_t       **colarray;  /* Array of columns, with arithmetic.   */
-  size_t          numcolarray;  /* Number of elements in `colarray'.    */
+  size_t          numcolarray;  /* Number of elements in 'colarray'.    */
 
   /* For arithmetic operators. */
   gal_list_str_t  *wcstoimg_p;  /* Pointer to the node.                 */
diff --git a/bin/table/table.c b/bin/table/table.c
index b2170e1..ceea67a 100644
--- a/bin/table/table.c
+++ b/bin/table/table.c
@@ -89,7 +89,7 @@ table_selection_range(struct tableparams *p, gal_data_t *col)
   /* First, make sure everything is OK. */
   if(p->range==NULL)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us to fix the "
-          "problem at %s. `p->range' should not be NULL at this point",
+          "problem at %s. 'p->range' should not be NULL at this point",
           __func__, PACKAGE_BUGREPORT);
 
   /* Allocations. */
@@ -103,7 +103,7 @@ table_selection_range(struct tableparams *p, gal_data_t 
*col)
   ((double *)(min->array))[0] = darr[0];
   ((double *)(max->array))[0] = darr[1];
 
-  /* Move `p->range' to the next element in the list and free the current
+  /* Move 'p->range' to the next element in the list and free the current
      one (we have already read its values and don't need it any more). */
   tmp=p->range;
   p->range=p->range->next;
@@ -180,8 +180,8 @@ table_selection_polygon(struct tableparams *p, gal_data_t 
*col1,
   gal_data_t *out=NULL;
   size_t i, psize=p->polygon->size/2;
 
-  /* Allocate the output array: This array will have a `0' for the points
-     which are inside the polygon and `1' for those that are outside of it
+  /* Allocate the output array: This array will have a '0' for the points
+     which are inside the polygon and '1' for those that are outside of it
      (to be masked/removed from the input). */
   out=gal_data_alloc(NULL, GAL_TYPE_UINT8, 1, col1->dsize, NULL, 0, -1, 1,
                      NULL, NULL, NULL);
@@ -194,9 +194,9 @@ table_selection_polygon(struct tableparams *p, gal_data_t 
*col1,
       point[0]=selection_polygon_read_point(col1, i);
       point[1]=selection_polygon_read_point(col2, i);
 
-      /* For `--inpolygon', if point is inside polygon, put 0, otherwise
+      /* For '--inpolygon', if point is inside polygon, put 0, otherwise
          1. Note that we are building a mask for the rows that must be
-         discarded, so we want `1' for the points we don't want. */
+         discarded, so we want '1' for the points we don't want. */
       oarr[i] = (in1out0
                  ? !gal_polygon_is_inside(p->polygon->array, point, psize)
                  :  gal_polygon_is_inside(p->polygon->array, point, psize));
@@ -214,8 +214,8 @@ table_selection_polygon(struct tableparams *p, gal_data_t 
*col1,
 
 
 
-/* Given a string dataset and a single string, return a `uint8_t' array
-   with the same size as the string dataset that has a `1' for all the
+/* Given a string dataset and a single string, return a 'uint8_t' array
+   with the same size as the string dataset that has a '1' for all the
    elements that are equal. */
 static gal_data_t *
 table_selection_string_eq_ne(gal_data_t *column, char *reference, int e0n1)
@@ -259,18 +259,18 @@ table_selection_equal_or_notequal(struct tableparams *p, 
gal_data_t *col,
   gal_data_t *arg = e0n1 ? p->notequal : p->equal;
 
   /* Note that this operator is used to make the "masked" array, so when
-     `e0n1==0' the operator should be `GAL_ARITHMETIC_OP_NE' and
+     'e0n1==0' the operator should be 'GAL_ARITHMETIC_OP_NE' and
      vice-versa.
 
-     For the merging with other elements, when `e0n1==0', we need the
-     `GAL_ARITHMETIC_OP_AND', but for `e0n1==1', it should be `OR'. */
+     For the merging with other elements, when 'e0n1==0', we need the
+     'GAL_ARITHMETIC_OP_AND', but for 'e0n1==1', it should be 'OR'. */
   int mergeop  = e0n1 ? GAL_ARITHMETIC_OP_OR : GAL_ARITHMETIC_OP_AND;
   int operator = e0n1 ? GAL_ARITHMETIC_OP_EQ : GAL_ARITHMETIC_OP_NE;
 
   /* First, make sure everything is OK. */
   if(arg==NULL)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us to fix the "
-          "problem at %s. `p->range' should not be NULL at this point",
+          "problem at %s. 'p->range' should not be NULL at this point",
           __func__, PACKAGE_BUGREPORT);
 
   /* To easily parse the given values. */
@@ -322,7 +322,7 @@ table_selection_equal_or_notequal(struct tableparams *p, 
gal_data_t *col,
 
 
   /* Move the main pointer to the next possible call of the given
-     option. Note that `arg' already points to `p->equal' or `p->notequal',
+     option. Note that 'arg' already points to 'p->equal' or 'p->notequal',
      so it will automatically be freed with the next step.*/
   if(e0n1) p->notequal=p->notequal->next;
   else     p->equal=p->equal->next;
@@ -362,7 +362,7 @@ table_selection(struct tableparams *p)
           addmask=table_selection_range(p, tmp->col);
           break;
 
-        /* `--inpolygon' and `--outpolygon' need two columns. */
+        /* '--inpolygon' and '--outpolygon' need two columns. */
         case SELECT_TYPE_INPOLYGON:
         case SELECT_TYPE_OUTPOLYGON:
           addmask=table_selection_polygon(p, tmp->col, tmp->next->col,
@@ -489,10 +489,10 @@ table_sort(struct tableparams *p)
           "TIP: if you know the columns contents are all numbers that are "
           "just stored as strings, you can use this program to save the "
           "table as a text file, modify the column meta-data (for example "
-          "to type `i32' or `f32' instead of `strN'), then use this "
+          "to type 'i32' or 'f32' instead of 'strN'), then use this "
           "program again to save it as a FITS table.\n\n"
           "For more on column metadata in plain text format, please run "
-          "the following command (or see the `Gnuastro text table format "
+          "the following command (or see the 'Gnuastro text table format "
           "section of the book/manual):\n\n"
           "    $ info gnuastro \"gnuastro text table format\"");
 
@@ -512,7 +512,7 @@ table_sort(struct tableparams *p)
       case GAL_TYPE_FLOAT64: qsortfn=gal_qsort_index_single_float64_d; break;
       default:
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. The code `%u' wasn't recognized as a data type",
+              "the problem. The code '%u' wasn't recognized as a data type",
               __func__, PACKAGE_BUGREPORT, p->sortcol->type);
       }
   else
@@ -530,7 +530,7 @@ table_sort(struct tableparams *p)
       case GAL_TYPE_FLOAT64: qsortfn=gal_qsort_index_single_float64_i; break;
       default:
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. The code `%u' wasn't recognized as a data type",
+              "the problem. The code '%u' wasn't recognized as a data type",
               __func__, PACKAGE_BUGREPORT, p->sortcol->type);
       }
 
@@ -538,7 +538,7 @@ table_sort(struct tableparams *p)
   gal_qsort_index_single=p->sortcol->array;
   qsort(perm->array, perm->size, sizeof *s, qsortfn);
 
-  /* For a check (only on float32 type `sortcol'):
+  /* For a check (only on float32 type 'sortcol'):
   {
     float *f=p->sortcol->array;
     sf=(s=perm->array)+perm->size;
@@ -571,9 +571,9 @@ table_head_tail(struct tableparams *p)
     {
       /* If we are dealing with strings, we'll need to free the strings
          that the columns that will not be used point to (outside the
-         allocated array directly `gal_data_t'). We don't have to worry
+         allocated array directly 'gal_data_t'). We don't have to worry
          about the space for the actual pointers (they will be free'd by
-         `free' in any case, since they are in the initially allocated
+         'free' in any case, since they are in the initially allocated
          array).*/
       if(col->type==GAL_TYPE_STRING)
         {
@@ -586,8 +586,8 @@ table_head_tail(struct tableparams *p)
           for(i=start; i<end; ++i) { free(strarr[i]); strarr[i]=NULL; }
         }
 
-      /* For `--tail', we'll need to bring the last columns to the
-         start. Note that we are using `memmove' because we want to be safe
+      /* For '--tail', we'll need to bring the last columns to the
+         start. Note that we are using 'memmove' because we want to be safe
          with overlap. */
       if(p->tail!=GAL_BLANK_SIZE_T)
         memmove(col->array,
@@ -626,9 +626,9 @@ table_catcolumn(struct tableparams *p)
         {
           if(hdull) { hdu=hdull->v; hdull=hdull->next; }
           else
-            error(EXIT_FAILURE, 0, "not enough `--catcolhdu's. For every "
-                  "FITS table given to `--catcolumn', a call to "
-                  "`--catcolhdu' is necessary to identify its HDU/extension");
+            error(EXIT_FAILURE, 0, "not enough '--catcolhdu's. For every "
+                  "FITS table given to '--catcolumn', a call to "
+                  "'--catcolhdu' is necessary to identify its HDU/extension");
         }
       else hdu=NULL;
 
@@ -640,7 +640,7 @@ table_catcolumn(struct tableparams *p)
       /* Check the number of rows. */
       if(tocat->dsize[0]!=p->table->dsize[0])
         error(EXIT_FAILURE, 0, "%s: incorrect number of rows. The table given "
-              "to `--catcolumn' must have the same number of rows as the "
+              "to '--catcolumn' must have the same number of rows as the "
               "main argument (after all row-selections have been applied), "
               "but they have %zu and %zu rows respectively",
               gal_fits_name_save_as_string(filell->v, hdu), tocat->dsize[0],
diff --git a/bin/table/ui.c b/bin/table/ui.c
index 38556a7..a2b9a91 100644
--- a/bin/table/ui.c
+++ b/bin/table/ui.c
@@ -70,8 +70,8 @@ doc[] = GAL_STRINGS_TOP_HELP_INFO PROGRAM_NAME" can be used 
to view the "
   "can be plain text (with white-space or comma as delimiters), FITS ascii, "
   "or FITS binary tables. The output columns can either be selected by "
   "number (counting from 1), name or using regular expressions. For regular "
-  "expressions, enclose the value to the `--column' (`-c') option in "
-  "slashes (`\\', as in `-c\\^mag\\'). To print the selected columns on the "
+  "expressions, enclose the value to the '--column' ('-c') option in "
+  "slashes ('\\', as in '-c\\^mag\\'). To print the selected columns on the "
   "command-line, don't specify an output file.\n"
   GAL_STRINGS_MORE_HELP_INFO
   /* After the list of options: */
@@ -162,18 +162,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct tableparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -221,7 +221,7 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /***************       Sanity Check         *******************/
 /**************************************************************/
 /* Read and check ONLY the options. When arguments are involved, do the
-   check in `ui_check_options_and_arguments'. */
+   check in 'ui_check_options_and_arguments'. */
 static void
 ui_read_check_only_options(struct tableparams *p)
 {
@@ -232,49 +232,49 @@ ui_read_check_only_options(struct tableparams *p)
      the output. */
   gal_tableintern_check_fits_format(p->cp.output, p->cp.tableformat);
 
-  /* Some checks on `--range'. */
+  /* Some checks on '--range'. */
   if(p->range)
     for(tmp=p->range;tmp!=NULL;tmp=tmp->next)
       {
         /* Range needs two input numbers. */
         if(tmp->size!=2)
-          error(EXIT_FAILURE, 0, "two values (separated by `:' or `,') are "
-                "necessary for `--range' in this format: "
-                "`--range=COLUMN,min:max'");
+          error(EXIT_FAILURE, 0, "two values (separated by ':' or ',') are "
+                "necessary for '--range' in this format: "
+                "'--range=COLUMN,min:max'");
 
         /* The first must be smaller than the second. */
         darr=tmp->array;
         if( darr[0] > darr[1] )
-          error(EXIT_FAILURE, 0, "first value (%g) given to `--range' must "
+          error(EXIT_FAILURE, 0, "first value (%g) given to '--range' must "
                 "be smaller than the second (%g)", darr[0], darr[1]);
       }
 
-  /* Basic checks for `--inpolygon' or `--outpolygon'. */
+  /* Basic checks for '--inpolygon' or '--outpolygon'. */
   if(p->inpolygon || p->outpolygon)
     {
       if(p->inpolygon && p->outpolygon)
-        error(EXIT_FAILURE, 0, "`--inpolygon' and `--outpolygon' options "
+        error(EXIT_FAILURE, 0, "'--inpolygon' and '--outpolygon' options "
               "cannot be called together");
 
       if(p->inpolygon && p->inpolygon->size!=2)
         error(EXIT_FAILURE, 0, "two columns (for coordinates) can "
-              "be given to `--inpolygon'");
+              "be given to '--inpolygon'");
 
       if(p->outpolygon && p->outpolygon->size!=2)
         error(EXIT_FAILURE, 0, "two columns (for coordinates) can "
-              "be given to `--outpolygon'");
+              "be given to '--outpolygon'");
 
       if(p->polygon==NULL)
-        error(EXIT_FAILURE, 0, "no polygon specified for `--inpolygon' or "
-              "`--outpolygon'! Please provide the vertices of the desired "
-              "polygon with the `--polygon' option in this format: "
+        error(EXIT_FAILURE, 0, "no polygon specified for '--inpolygon' or "
+              "'--outpolygon'! Please provide the vertices of the desired "
+              "polygon with the '--polygon' option in this format: "
               "v1x,v1y:v2x,v2y:v3x,v3y:...");
     }
 
 
-  /* Make sure `--head' and `--tail' aren't given together. */
+  /* Make sure '--head' and '--tail' aren't given together. */
   if(p->head!=GAL_BLANK_SIZE_T && p->tail!=GAL_BLANK_SIZE_T)
-    error(EXIT_FAILURE, 0, "`--head' and `--tail' options cannot be "
+    error(EXIT_FAILURE, 0, "'--head' and '--tail' options cannot be "
           "called together");
 }
 
@@ -291,8 +291,8 @@ ui_check_options_and_arguments(struct tableparams *p)
     {
       if( gal_fits_name_is_fits(p->filename) && p->cp.hdu==NULL )
         error(EXIT_FAILURE, 0, "no HDU specified. When the input is a FITS "
-              "file, a HDU must also be specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+              "file, a HDU must also be specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), extension name, or anything acceptable by CFITSIO");
 
     }
@@ -436,7 +436,7 @@ ui_outcols_last(struct column_pack *list)
 
 
 
-/* Allocate a clean `out_columns' structure and put it at the top of the
+/* Allocate a clean 'out_columns' structure and put it at the top of the
    list. */
 static struct column_pack *
 ui_outcols_add_new_to_end(struct column_pack **list)
@@ -558,7 +558,7 @@ ui_columns_prepare(struct tableparams *p)
   for(tmp=p->columns;tmp!=NULL;tmp=tmp->next)
     {
       /* Read the different comma-separated strings into an array (within a
-         `gal_data_t'). */
+         'gal_data_t'). */
       strs=gal_options_parse_csv_strings_raw(tmp->v, NULL, 0);
       strarr=strs->array;
 
@@ -572,8 +572,8 @@ ui_columns_prepare(struct tableparams *p)
               /* If this is the first arithmetic operation and the user has
                  already asked for some columns, we'll need to put all
                  previously requested simply-printed columns into an
-                 `outcols' structure, then add this arithmetic operation's
-                 `outcols'. */
+                 'outcols' structure, then add this arithmetic operation's
+                 'outcols'. */
               if(p->outcols==NULL && toread)
                 {
                   /* Allocate an empty structure and set the necessary
@@ -660,8 +660,8 @@ ui_columns_prepare(struct tableparams *p)
   */
 
 
-  /* Delete the old list, then reverse the `toread' list, and put it into
-     `p->columns'. */
+  /* Delete the old list, then reverse the 'toread' list, and put it into
+     'p->columns'. */
   gal_list_str_free(p->columns, 1);
   gal_list_str_reverse(&toread);
   p->columns=toread;
@@ -671,7 +671,7 @@ ui_columns_prepare(struct tableparams *p)
 
 
 
-/* The users give column numbers counting from 1. But we need an `index'
+/* The users give column numbers counting from 1. But we need an 'index'
    (starting from 0). So if we can read it as a number, we'll subtract one
    from it. */
 static size_t
@@ -708,8 +708,8 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
   size_t i, j, k, *s, *sf, allncols, numcols, numrows;
   gal_data_t *dtmp, *allcols, *inpolytmp=NULL, *outpolytmp=NULL;
 
-  /* Important note: these have to be in the same order as the `enum
-     select_types' in `main.h'. We'll fill the two polygon elements
+  /* Important note: these have to be in the same order as the 'enum
+     select_types' in 'main.h'. We'll fill the two polygon elements
      later. */
   gal_data_t *select[SELECT_TYPE_NUMBER]={p->range, NULL, NULL,
                                           p->equal, p->notequal};
@@ -783,15 +783,15 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
      zero. */
   if(p->sort && sortind!=GAL_BLANK_SIZE_T && sortind>=numcols)
     error(EXIT_FAILURE, 0, "%s has %zu columns, less than the column "
-          "number given to  `--sort' (%s)",
+          "number given to  '--sort' (%s)",
           gal_fits_name_save_as_string(p->filename, p->cp.hdu), numcols,
           p->sort);
   if(p->selection)
     for(i=0;i<*nselect;++i)
       if(selectind[i]!=GAL_BLANK_SIZE_T && selectind[i]>=numcols)
         error(EXIT_FAILURE, 0, "%s has %zu columns, less than the column "
-              "number given to  `--range', `--inpolygon', `--outpolygon', "
-              "`--equal', or `--sort' (%zu)",
+              "number given to  '--range', '--inpolygon', '--outpolygon', "
+              "'--equal', or '--sort' (%zu)",
               gal_fits_name_save_as_string(p->filename, p->cp.hdu), numcols,
               selectind[i]);
 
@@ -803,9 +803,9 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
       if(selectind[i]==GAL_BLANK_SIZE_T) { selecthasname=1; break; }
   if( (p->sort && sortind==GAL_BLANK_SIZE_T) || selecthasname )
     {
-      /* For `--sort', go over all the columns if an index hasn't been set
+      /* For '--sort', go over all the columns if an index hasn't been set
          yet. If the input columns have a name, see if their names matches
-         the name given to `sort'. */
+         the name given to 'sort'. */
       if(p->sort && sortind==GAL_BLANK_SIZE_T)
         for(i=0;i<numcols;++i)
           if( allcols[i].name && !strcasecmp(allcols[i].name, p->sort) )
@@ -814,7 +814,7 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
       /* Same for the selection. Just note that here we may have multiple
          calls. It is thus important to loop over the values given to range
          first, then loop over the column names from the start for each new
-         `--ran */
+         '--ran */
       i=0;
       for(k=0;k<SELECT_TYPE_NUMBER;++k)
         for(dtmp=select[k];dtmp!=NULL;dtmp=dtmp->next)
@@ -832,7 +832,7 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
   /* The columns must be good indexs now, if they don't the user didn't
      specify the name properly and the program must abort. */
   if( p->sort && sortind==GAL_BLANK_SIZE_T )
-    error(EXIT_FAILURE, 0, "%s: no column named `%s' (value to `--sort') "
+    error(EXIT_FAILURE, 0, "%s: no column named '%s' (value to '--sort') "
           "you can either specify a name or number",
           gal_fits_name_save_as_string(p->filename, p->cp.hdu), p->sort);
   if(p->selection)
@@ -842,8 +842,8 @@ ui_check_select_sort_before(struct tableparams *p, 
gal_list_str_t *lines,
         for(dtmp=select[k];dtmp!=NULL;dtmp=dtmp->next)
           {
             if(selectind[i]==GAL_BLANK_SIZE_T)
-              error(EXIT_FAILURE, 0, "%s: no column named `%s' (value to "
-                    "`--%s') you can either specify a name or number",
+              error(EXIT_FAILURE, 0, "%s: no column named '%s' (value to "
+                    "'--%s') you can either specify a name or number",
                     gal_fits_name_save_as_string(p->filename, p->cp.hdu),
                     dtmp->name,
                     ( k==0?"range":( k==1?"equal":"notequal") ));
@@ -977,12 +977,12 @@ ui_check_select_sort_after(struct tableparams *p, size_t 
nselect,
 
 
   /* Terminate the desired output table where it should be terminated (by
-     setting `origlast->next' to NULL. */
+     setting 'origlast->next' to NULL. */
   origlast->next=NULL;
 
 
-  /*  Also, remove any possibly existing `next' pointer for `sortcol' and
-     `selectcol'. */
+  /*  Also, remove any possibly existing 'next' pointer for 'sortcol' and
+     'selectcol'. */
   if(p->sort && sortindout>=origoutncols)
     { p->sortcol->next=NULL;  p->freesort=1; }
   else p->sortin=1;
@@ -1026,11 +1026,11 @@ ui_preparations(struct tableparams *p)
   ui_columns_prepare(p);
 
 
-  /* If the input is from stdin, save it as `lines'. */
+  /* If the input is from stdin, save it as 'lines'. */
   lines=gal_options_check_stdin(p->filename, p->cp.stdintimeout, "input");
 
 
-  /* If any kind of row-selection is requested set `p->selection' to 1. */
+  /* If any kind of row-selection is requested set 'p->selection' to 1. */
   p->selection = ( p->range || p->inpolygon || p->outpolygon || p->equal
                    || p->notequal );
 
@@ -1090,7 +1090,7 @@ ui_preparations(struct tableparams *p)
 
   /* If the head or tail values are given and are larger than the number of
      rows, just set them to the number of rows (print the all the final
-     rows). This is how the `head' and `tail' programs of GNU Coreutils
+     rows). This is how the 'head' and 'tail' programs of GNU Coreutils
      operate. */
   p->head = ( ((p->head!=GAL_BLANK_SIZE_T) && (p->head > p->table->size))
               ? p->table->size
@@ -1134,9 +1134,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
tableparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/warp/Makefile.am b/bin/warp/Makefile.am
index 83c0003..ee67376 100644
--- a/bin/warp/Makefile.am
+++ b/bin/warp/Makefile.am
@@ -31,7 +31,7 @@ endif
 ## Program definition (name, linking, sources and headers)
 bin_PROGRAMS = astwarp
 
-## Reason for linking with `libgnu' described in `bin/TEMPLATE/Makefile.am'.
+## Reason for linking with 'libgnu' described in 'bin/TEMPLATE/Makefile.am'.
 astwarp_LDADD = $(top_builddir)/bootstrapped/lib/libgnu.la -lgnuastro \
                 $(MAYBE_NORPATH)
 
diff --git a/bin/warp/astwarp.conf b/bin/warp/astwarp.conf
index 3597105..a79e74c 100644
--- a/bin/warp/astwarp.conf
+++ b/bin/warp/astwarp.conf
@@ -3,7 +3,7 @@
 #
 # Use the long option name of each parameter followed by a value. The name
 # and value should be separated by atleast one white-space character (for
-# example ` '(space), or tab). Lines starting with `#' are ignored.
+# example ' '(space), or tab). Lines starting with '#' are ignored.
 #
 # For more information, please run these commands:
 #
diff --git a/bin/warp/authors-cite.h b/bin/warp/authors-cite.h
index dc45ef4..8ce8965 100644
--- a/bin/warp/authors-cite.h
+++ b/bin/warp/authors-cite.h
@@ -26,10 +26,10 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When any specific citation is necessary, please add its BibTeX (from ADS
    hopefully) to this variable along with a title decribing what this
    paper/book does for the progarm in a short line. In the following line
-   put a row of `-' with the same length and then put the BibTeX.
+   put a row of '-' with the same length and then put the BibTeX.
 
-   This macro will be used in `gal_options_print_citation' function of
-   `lib/options.c' (from the top Gnuastro source code directory). */
+   This macro will be used in 'gal_options_print_citation' function of
+   'lib/options.c' (from the top Gnuastro source code directory). */
 
 #define PROGRAM_BIBTEX ""
 
diff --git a/bin/warp/ui.c b/bin/warp/ui.c
index b91ecc1..3f5d49d 100644
--- a/bin/warp/ui.c
+++ b/bin/warp/ui.c
@@ -154,18 +154,18 @@ parse_opt(int key, char *arg, struct argp_state *state)
 {
   struct warpparams *p = state->input;
 
-  /* Pass `gal_options_common_params' into the child parser.  */
+  /* Pass 'gal_options_common_params' into the child parser.  */
   state->child_inputs[0] = &p->cp;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -212,7 +212,7 @@ parse_opt(int key, char *arg, struct argp_state *state)
 /**********      Modular matrix linked list       *************/
 /**************************************************************/
 /* Save the codes of the user's desired modular warpings into the linked
-   list. Because the types of these options are `GAL_TYPE_INVALID', this
+   list. Because the types of these options are 'GAL_TYPE_INVALID', this
    function will not be called when printing the full list of parameters
    and their values. */
 static void *
@@ -224,27 +224,27 @@ ui_add_to_modular_warps_ll(struct argp_option *option, 
char *arg,
   gal_data_t *new;
   struct warpparams *p=(struct warpparams *)params;
 
-  /* When an argument is necessary (note that `--align' doesn't take an
+  /* When an argument is necessary (note that '--align' doesn't take an
      argument), make sure we actually have a string to parse. Also note
      that if an argument is necessary, but none is given Argp will
      automatically abort the program with an informative error. */
   if(arg && *arg=='\0')
-    error(EXIT_FAILURE, 0, "empty string given to `--%s'", option->name);
+    error(EXIT_FAILURE, 0, "empty string given to '--%s'", option->name);
 
   /* Parse the (possible) arguments. */
   if(option->key==UI_KEY_ALIGN)
     {
       /* For functions the standard checking isn't done, so first, we'll
          make sure that if we are in a configuration file (where
-         `arg!=NULL'), the value is either 0 or 1. */
+         'arg!=NULL'), the value is either 0 or 1. */
       if( arg && strcmp(arg, "0") && strcmp(arg, "1") )
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `--align' "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "the '--align' "
                       "option takes no arguments. In a configuration file "
-                      "it can only have the values `1' or `0', indicating "
+                      "it can only have the values '1' or '0', indicating "
                       "if it should be used or not");
 
       /* Align doesn't take any values, but if called in a configuration
-         file with a value of `0', we should ignore it. */
+         file with a value of '0', we should ignore it. */
       if(arg && *arg=='0') return NULL;
 
       /* Allocate the data structure. */
@@ -265,7 +265,7 @@ ui_add_to_modular_warps_ll(struct argp_option *option, char 
*arg,
                       "may be given, you can use multiple modular warpings");
       if(new->size!=4 && new->size!=9)
         error_at_line(EXIT_FAILURE, 0, filename, lineno, "only a 4 or 9 "
-                      "element `matrix' is currently acceptable. `%s' has "
+                      "element 'matrix' is currently acceptable. '%s' has "
                       "%zu elements", arg, new->size);
 
       /* Keep the matrix in the main structure. */
@@ -277,7 +277,7 @@ ui_add_to_modular_warps_ll(struct argp_option *option, char 
*arg,
          warpings. */
       if(new->size>2)
         error_at_line(EXIT_FAILURE, 0, filename, lineno, "%zu numbers "
-                      "given to the `%s' option. Modular warpings can "
+                      "given to the '%s' option. Modular warpings can "
                       "accept 2 numbers at the most currently (for 2D "
                       "datasets)", new->size, option->name);
 
@@ -286,9 +286,9 @@ ui_add_to_modular_warps_ll(struct argp_option *option, char 
*arg,
       if(option->key==UI_KEY_ROTATE)
         {
           if(new->size!=1)
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `rotate' "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "the 'rotate' "
                       "option only takes one value (the angle of rotation). "
-                      "You have given: `%s'", arg);
+                      "You have given: '%s'", arg);
         }
       else if (option->key==UI_KEY_FLIP)
         {
@@ -296,9 +296,9 @@ ui_add_to_modular_warps_ll(struct argp_option *option, char 
*arg,
             {
               tmp=((double *)(new->array))[i];
               if(tmp!=0.0f && tmp!=1.0f)
-                error_at_line(EXIT_FAILURE, 0, filename, lineno, "`flip' "
-                              "only takes values of `1' and `0'. You have "
-                              "given `%s'", arg);
+                error_at_line(EXIT_FAILURE, 0, filename, lineno, "'flip' "
+                              "only takes values of '1' and '0'. You have "
+                              "given '%s'", arg);
             }
         }
 
@@ -340,8 +340,8 @@ ui_check_options_and_arguments(struct warpparams *p)
     {
       /* Make sure a HDU is given. */
       if( gal_fits_name_is_fits(p->inputname) && p->cp.hdu==NULL )
-        error(EXIT_FAILURE, 0, "no HDU specified, you can use the `--hdu' "
-              "(`-h') option and give it the HDU number (starting from "
+        error(EXIT_FAILURE, 0, "no HDU specified, you can use the '--hdu' "
+              "('-h') option and give it the HDU number (starting from "
               "zero), or extension name (generally, anything acceptable "
               "by CFITSIO)");
 
@@ -394,9 +394,9 @@ static void
 ui_error_no_warps()
 {
   error(EXIT_FAILURE, 0, "no warping specified, you can either use the "
-        "`--matrix' option for any low-level warp, or specify multipole "
-        "modular warpings with options like `--rotate', `--scale' and etc. "
-        "You can see the full list with the `--help' option");
+        "'--matrix' option for any low-level warp, or specify multipole "
+        "modular warpings with options like '--rotate', '--scale' and etc. "
+        "You can see the full list with the '--help' option");
 }
 
 
@@ -464,13 +464,13 @@ ui_matrix_make_align(struct warpparams *p, double 
*tmatrix)
   /* Make sure the input image had a WCS structure. */
   if(p->input->wcs==NULL)
     error(EXIT_FAILURE, 0, "%s (hdu: %s): no WCS information present, "
-          "hence the `--align' option cannot be used", p->inputname,
+          "hence the '--align' option cannot be used", p->inputname,
           p->cp.hdu);
 
   /* Check if there is only two WCS axises: */
   if(p->input->wcs->naxis!=2)
     error(EXIT_FAILURE, 0, "the WCS structure of %s (hdu: %s) has %d "
-          "axises. For the `--align' option to operate it must be 2",
+          "axises. For the '--align' option to operate it must be 2",
           p->inputname, p->cp.hdu, p->input->wcs->naxis);
 
 
@@ -479,15 +479,15 @@ ui_matrix_make_align(struct warpparams *p, double 
*tmatrix)
   w=p->inwcsmatrix;
 
 
-  /* Lets call the given WCS orientation `W', the rotation matrix we want
-     to find as `X' and the final (aligned matrix) `P' (which is the pixel
+  /* Lets call the given WCS orientation 'W', the rotation matrix we want
+     to find as 'X' and the final (aligned matrix) 'P' (which is the pixel
      scale):
 
         x0  x1       w0  w1      -P0   0
         x2  x3   *   w2  w3   =   0    P1
 
-     Let's open up the matrix multiplication, so we can find the `X'
-     elements as function of the `W' elements and `a'.
+     Let's open up the matrix multiplication, so we can find the 'X'
+     elements as function of the 'W' elements and 'a'.
 
         x0*w0 + x1*w2 = -P0                                        (1)
         x0*w1 + x1*w3 =  0                                         (2)
@@ -567,7 +567,7 @@ ui_matrix_make_align(struct warpparams *p, double *tmatrix)
 static void
 ui_matrix_inplacw_multiply(double *in, double *with)
 {
-  /* `tin' will keep the values of the input array because we want to
+  /* 'tin' will keep the values of the input array because we want to
      write the multiplication result in the input array. */
   double tin[9]={in[0],in[1],in[2],in[3],in[4],in[5],in[6],in[7],in[8]};
 
@@ -626,7 +626,7 @@ ui_matrix_from_modular(struct warpparams *p)
       v2 = pop->size>1 ? ((double *)(pop->array))[1] : v1;
 
       /* Depending on the type of the modular warp do it. Recall that the
-         code for the warp, was stored in the `status' element of the data
+         code for the warp, was stored in the 'status' element of the data
          structure.*/
       switch(pop->status)
         {
@@ -694,7 +694,7 @@ ui_matrix_from_modular(struct warpparams *p)
 
         default:
           error(EXIT_FAILURE, 0, "a bug! the code %d is not recognized as "
-                "a valid modular warp in `ui_matrix_from_modular', this is "
+                "a valid modular warp in 'ui_matrix_from_modular', this is "
                 "not your fault, something in the programming has gone "
                 "wrong. Please contact us at %s so we can correct it",
                 pop->status, PACKAGE_BUGREPORT);
@@ -727,7 +727,7 @@ ui_matrix_center_on_corner(struct warpparams *p)
   /* Translate them back into the proper FITS center. */
   ui_matrix_inplacw_multiply(before, after);
 
-  /* The final matrix is in `before', so put its values into the output
+  /* The final matrix is in 'before', so put its values into the output
      matrix. */
   b = before;
   df = (d=p->matrix->array) + p->matrix->size;
@@ -761,7 +761,7 @@ ui_matrix_finalize(struct warpparams *p)
     if(!isfinite(*d++))
       {
         ui_matrix_print(p->matrix->array);
-        error(EXIT_FAILURE, 0, "%f is not a `normal' number in the "
+        error(EXIT_FAILURE, 0, "%f is not a 'normal' number in the "
               "input matrix shown above", *(d-1));
       }
   while(d<df);
@@ -835,7 +835,7 @@ ui_set_suffix(struct warpparams *p)
   if(p->matrix==NULL && p->modularll==NULL) ui_error_no_warps();
 
   /* We only want the more meaningful suffix when the list is defined AND
-     when its only has one node (the `next' element is NULL). */
+     when its only has one node (the 'next' element is NULL). */
   if(p->matrix==NULL && p->modularll->next==NULL)
     switch(p->modularll->status)
       {
@@ -863,7 +863,7 @@ ui_set_suffix(struct warpparams *p)
       default:
         error(EXIT_FAILURE, 0, "a bug! please contact us at %s so we can "
               "fix the problem. The modular warp code %d is not recognized "
-              "in `ui_set_suffix'", PACKAGE_BUGREPORT, p->modularll->status);
+              "in 'ui_set_suffix'", PACKAGE_BUGREPORT, p->modularll->status);
         return NULL;
       }
   else
@@ -877,7 +877,7 @@ ui_set_suffix(struct warpparams *p)
 static void
 ui_preparations(struct warpparams *p)
 {
-  /* Set the output name. This needs to be done before `ui_finalize_matrix'
+  /* Set the output name. This needs to be done before 'ui_finalize_matrix'
      because that function will free the linked list of modular warpings
      which we will need to determine the suffix if no output name is
      specified. */
@@ -920,9 +920,9 @@ ui_read_check_inputs_setup(int argc, char *argv[], struct 
warpparams *p)
   struct gal_options_common_params *cp=&p->cp;
 
 
-  /* Include the parameters necessary for argp from this program (`args.h')
-     and for the common options to all Gnuastro (`commonopts.h'). We want
-     to directly put the pointers to the fields in `p' and `cp', so we are
+  /* Include the parameters necessary for argp from this program ('args.h')
+     and for the common options to all Gnuastro ('commonopts.h'). We want
+     to directly put the pointers to the fields in 'p' and 'cp', so we are
      simply including the header here to not have to use long macros in
      those headers which make them hard to read and modify. This also helps
      in having a clean environment: everything in those headers is only
diff --git a/bin/warp/warp.c b/bin/warp/warp.c
index 2cb52b0..285027c 100644
--- a/bin/warp/warp.c
+++ b/bin/warp/warp.c
@@ -74,7 +74,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* Similar to `nearestint_halflower' but:
+/* Similar to 'nearestint_halflower' but:
 
    nearestint_halflower(0.5f) --> 0.0f;
  */
@@ -327,7 +327,7 @@ warp_preparations(struct warpparams *p)
   */
 
   /* Set the final size of the image. The X axis is horizontal. The reason
-     we are using the halflower variation of `nearestint' for the maximums
+     we are using the halflower variation of 'nearestint' for the maximums
      is that these points are the farthest extremes of the input image. If
      they are half a pixel value, they should point to the pixel before. */
   dsize[1]=nearestint_halflower(xmax)-nearestint_halfhigher(xmin)+1;
@@ -335,7 +335,7 @@ warp_preparations(struct warpparams *p)
   p->outfpixval[0]=nearestint_halfhigher(xmin);
   p->outfpixval[1]=nearestint_halfhigher(ymin);
 
-  /* If we have translation, the `dsize's and `outfpixval's should be
+  /* If we have translation, the 'dsize's and 'outfpixval's should be
      corrected. */
   if(matrix[2]!=0.0f || matrix[5]!=0.0f)
     {
@@ -428,7 +428,7 @@ correct_wcs_save_output(struct warpparams *p)
   gal_fits_list_key_t *headers=NULL;
   double *crpix=wcs?wcs->crpix:NULL, *w=p->inwcsmatrix;
 
-  /* `tinv' is the 2 by 2 inverse matrix. Recall that `p->inverse' is 3 by
+  /* 'tinv' is the 2 by 2 inverse matrix. Recall that 'p->inverse' is 3 by
      3 to account for homogeneous coordinates. */
   double tinv[4]={p->inverse[0]/p->inverse[8], p->inverse[1]/p->inverse[8],
                   p->inverse[3]/p->inverse[8], p->inverse[4]/p->inverse[8]};
@@ -462,7 +462,7 @@ correct_wcs_save_output(struct warpparams *p)
 
       /* Due to floating point errors extremely small values of PC matrix
          can be set to zero and extremely small differences between PC1_1
-         and PC2_2 can be ignored. The reason for all the `fabs' functions
+         and PC2_2 can be ignored. The reason for all the 'fabs' functions
          is because the signs are usually different.*/
       if( fabs(wcs->pc[1])<ABSOLUTEFLTERROR ) wcs->pc[1]=0.0f;
       if( fabs(wcs->pc[2])<ABSOLUTEFLTERROR ) wcs->pc[2]=0.0f;
diff --git a/bootstrap.conf b/bootstrap.conf
index e6e5eb0..2a184f6 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -63,7 +63,7 @@
 
 
 # Extra options we want to have added to the execution of gnulib-tool
-# for Gnuastro. See the `gnulib_tool_options' variable in bootstrap
+# for Gnuastro. See the 'gnulib_tool_options' variable in bootstrap
 # for the default options that will be used and as a template.
 gnulib_tool_option_extras="\
  --with-tests\
@@ -98,7 +98,7 @@ gnulib_name="libgnu"
 bootstrap_post_import_hook()
 {
   # List of m4 files we need from the GNU Autoconf Archives (excluding the
-  # `ax_' prefix and `.m4' suffix):
+  # 'ax_' prefix and '.m4' suffix):
   neededm4s="pthread compare_version check_compile_flag"
 
   # Get the necesssary Autoconf-archive macros. It is assumed that
@@ -110,11 +110,11 @@ bootstrap_post_import_hook()
       cp "$GNULIB_SRCDIR/../autoconf-archive/m4/ax_$m4name.m4" $m4_base/
     done
   else
-    # Choose the program to use to download files from the web.  `curl' is
-    # present in most GNU/Linux systems and OS X as well, `wget' is usually
-    # present only on GNU/Linux systems.  Since `curl' is available in more
+    # Choose the program to use to download files from the web.  'curl' is
+    # present in most GNU/Linux systems and OS X as well, 'wget' is usually
+    # present only on GNU/Linux systems.  Since 'curl' is available in more
     # systems, we first try if it's installed, otherwise we fallback on
-    # `wget'.
+    # 'wget'.
     if type curl > /dev/null; then
       downloader="curl -o"
     else
@@ -126,7 +126,7 @@ bootstrap_post_import_hook()
     done
   fi
 
-  # Add a value pointer to `argp_option' for easy setting of option values.
+  # Add a value pointer to 'argp_option' for easy setting of option values.
   awk '{                                                                    \
          if($1=="struct" && $2=="argp_option")                              \
            inargp=1;                                                        \
diff --git a/configure.ac b/configure.ac
index bdf86a5..d571c5f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,10 +75,10 @@ LT_INIT
 
 # This macro will let the libraries know that we are now in the Gnuastro
 # build system, not on the user's system. While we are building Gnuastro,
-# we have the important installation information in `config.h'. But in the
+# we have the important installation information in 'config.h'. But in the
 # user's own programs, this information is defined in
-# `gnuastro/config.h'. With this macro, the installed headers can decide
-# if the latter should be included or not. Note that `gnuastro/config.h'
+# 'gnuastro/config.h'. With this macro, the installed headers can decide
+# if the latter should be included or not. Note that 'gnuastro/config.h'
 # is only built at installation time and doesn't exist when building
 # Gnuastro. Therefore, this macro must not be defined in a user's program.
 AC_DEFINE([IN_GNUASTRO_BUILD], [1], [In building, not usage])
@@ -87,12 +87,12 @@ AC_DEFINE([IN_GNUASTRO_BUILD], [1], [In building, not 
usage])
 
 
 
-# See if `make check' should be made with Valgrind. This should be done
+# See if 'make check' should be made with Valgrind. This should be done
 # before checking the compilation flags because it can re-write
-# `enable-debug').
+# 'enable-debug').
 AC_ARG_ENABLE(check-with-valgrind,
               [AS_HELP_STRING([--enable-check-with-valgrind],
-                              [Run `make check' programs within Valgrind])],
+                              [Run 'make check' programs within Valgrind])],
               [AS_IF([test "x$enable_check_with_valgrind" != xno],
                      [enable_check_with_valgrind=yes])],
               [enable_check_with_valgrind=no])
@@ -101,7 +101,7 @@ AS_IF([test "x$enable_check_with_valgrind" = "xyes"],
         enable_debug=yes;
         AC_CHECK_PROG(has_valgrind, valgrind, [yes], [no])
         AS_IF([test "x$has_valgrind" = "xno"],
-              [AC_MSG_ERROR([Valgrind not found. Please install it or don't 
use `--enable-check-with-valgrind'])])
+              [AC_MSG_ERROR([Valgrind not found. Please install it or don't 
use '--enable-check-with-valgrind'])])
       ])
 AM_CONDITIONAL([COND_CHECK_WITH_VALGRIND], [test 
"x$enable_check_with_valgrind" = "xyes"])
 
@@ -125,15 +125,15 @@ CXXFLAGS="-Wall $cflags_add $CXXFLAGS"
 
 
 
-# See if the C++ compiler was present. `CXX' has already been set by
-# `AC_PROG_CXX' (above). According to the Autoconf manual: "if none of the
-# [AC_PROG_CXX] checks succeed, then as a last resort [it will] set `CXX'
-# to `g++'". Therefore, we can't rely on it to see if the compiler
+# See if the C++ compiler was present. 'CXX' has already been set by
+# 'AC_PROG_CXX' (above). According to the Autoconf manual: "if none of the
+# [AC_PROG_CXX] checks succeed, then as a last resort [it will] set 'CXX'
+# to 'g++'". Therefore, we can't rely on it to see if the compiler
 # executable is actually usable. Therefore tests that rely on it will
-# fail. Unfortunately some OSs (like Fedora), don't install `g++' with
-# `gcc', so it may not always be present. To fix this, here we are just
-# using `AC_CHECK_PROG' to see if the `CXX' executable is reachable in the
-# search path and if it isn't, we'll disable the C++ check during `make
+# fail. Unfortunately some OSs (like Fedora), don't install 'g++' with
+# 'gcc', so it may not always be present. To fix this, here we are just
+# using 'AC_CHECK_PROG' to see if the 'CXX' executable is reachable in the
+# search path and if it isn't, we'll disable the C++ check during 'make
 # check' with an Automake conditional.
 AC_CHECK_PROG(has_cxx, $CXX, "yes", "no")
 AM_CONDITIONAL([COND_HASCXX], [test "x$has_cxx" = "xyes"])
@@ -155,8 +155,8 @@ CC="$PTHREAD_CC"
 
 
 
-# See if the C++ compiler understands `-Qunused-arguments'. AX_PTHREAD adds
-# puts this option in `PTHREAD_CFLAGS' when the C compiler knows this
+# See if the C++ compiler understands '-Qunused-arguments'. AX_PTHREAD adds
+# puts this option in 'PTHREAD_CFLAGS' when the C compiler knows this
 # option. We then pass it to CFLAGS and CXXFLAGS above. But as reported in
 # bug #52490, it can happen that sometimes, the C++ compiler doesn't
 # recognize it. So we need to do a separate check for C++.
@@ -177,7 +177,7 @@ CXXFLAGS="$cxxflags_tmp"
 
 
 
-# Check if `malloc(0)' returns valid pointer
+# Check if 'malloc(0)' returns valid pointer
 AC_FUNC_MALLOC
 
 
@@ -209,9 +209,9 @@ anywarnings=no
 
 
 
-# Remove any occurance of the current directory `./', `.', or the full
+# Remove any occurance of the current directory './', '.', or the full
 # address of the current directory in PATH. The main problem is the
-# `libtool' executable which Gnuastro builds internally in the top build
+# 'libtool' executable which Gnuastro builds internally in the top build
 # directory. However, we also need to know if the system has libtool or
 # not.
 AC_MSG_CHECKING(if PATH contains current directory)
@@ -219,21 +219,21 @@ oldPATH=$PATH
 currpwd=$(pwd)
 
 # The first call to SED will remove any occurance of the current directory:
-# `./', `.', or the full address.
+# './', '.', or the full address.
 #
-#    NOTE 1: We cannot simply remove all `.'s, because hidden directories
-#            (like the `~/.local' that is suggested for local
+#    NOTE 1: We cannot simply remove all '.'s, because hidden directories
+#            (like the '~/.local' that is suggested for local
 #            installations) will also be altered.
 #
-#    NOTE 2: An empty string in the list of strings (separated by `:')
-#            means the current directory. This includes cases like: `::',
-#            or a leading and trailing `:'. So after all the removals of
+#    NOTE 2: An empty string in the list of strings (separated by ':')
+#            means the current directory. This includes cases like: '::',
+#            or a leading and trailing ':'. So after all the removals of
 #            the current directory, we will remove all such cases.
 #
-#    NOTE 3: The SED separator can be any character immediately after `s',
-#            it doesn't just have to be the commonly used `/'. Since `$pwd'
-#            will possibly contain many `/'s, it is much more easier to use
-#            a differen separator (`|' in this call to SED).
+#    NOTE 3: The SED separator can be any character immediately after 's',
+#            it doesn't just have to be the commonly used '/'. Since '$pwd'
+#            will possibly contain many '/'s, it is much more easier to use
+#            a differen separator ('|' in this call to SED).
 PATH=$(AS_ECHO([$PATH]) | $SED -e 's|'"$currpwd"'||g' \
                                -e 's|\.\.*//*||g'     \
                                -e 's|:\.\.*:|:|g'     \
@@ -288,7 +288,7 @@ AS_IF([test "x$LIBGSL" = x],
       [LDADD="$LTLIBGSL $LDADD"; LIBS="$LIBGSL $LIBS"])
 
 
-# Since version 0.42, if `libcurl' is installed, CFITSIO will link with it
+# Since version 0.42, if 'libcurl' is installed, CFITSIO will link with it
 # and thus it will be necessary to explicitly link with libcurl also. If it
 # doesn't exist on the system, then CFITSIO won't link with it and there is
 # no problem for Gnuastro either. So there is no need to stop the configure
@@ -312,7 +312,7 @@ AS_IF([test "x$LIBCURL" = x], [],
 
 
 # Older versions of CFITSIO don't install a shared library, only a static
-# one. Eventhough we add `-lm' to LDADD, on some systems, it complains
+# one. Eventhough we add '-lm' to LDADD, on some systems, it complains
 # about not finding basic math libraries. Therefore the configure script
 # can't find CFITSIO, eventhough it exists. The solution is to manually add
 # the math-library as a dependency of CFITSIO.
@@ -383,7 +383,7 @@ AM_CONDITIONAL([COND_HASLIBTIFF], [test "x$has_libtiff" = 
"xyes"])
 
 
 # Check libgit2. Note that very old versions of libgit2 don't have the
-# `git_libgit2_init' function.
+# 'git_libgit2_init' function.
 AC_ARG_WITH([libgit2],
             [AS_HELP_STRING([--without-libgit2],
                             [disable support for libgit2])],
@@ -409,12 +409,12 @@ AS_IF([test "x$has_libgit2" = "x1"], [], 
[anywarnings=yes])
 #
 # Once we know that a library exsits, we need to check if it has some
 # features or not. This must be done _after_ checking the existance of
-# _all_ the libraries, because they may add elements to `LIBS'/`LDADD' that
+# _all_ the libraries, because they may add elements to 'LIBS'/'LDADD' that
 # causes possibly different versions of the libraries to be read.
 
-# GSL's `gsl_interp_steffen' isn't a function. So we'll need to use
-# `AC_LINK_IFELSE'. However, AC_LINK_IFELSE doesn't use `LDADD', so we'll
-# have to temporarily add `LDADD' to LIBS, then set it back to the
+# GSL's 'gsl_interp_steffen' isn't a function. So we'll need to use
+# 'AC_LINK_IFELSE'. However, AC_LINK_IFELSE doesn't use 'LDADD', so we'll
+# have to temporarily add 'LDADD' to LIBS, then set it back to the
 # original.
 AC_MSG_CHECKING(if GSL supports Steffen splines)
 AC_LINK_IFELSE([AC_LANG_PROGRAM(
@@ -426,7 +426,7 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM(
                 gsl_version_old=yes; anywarnings=yes;])
 
 
-# If the CFITSIO library has the `fits_is_reentrant' function (it was added
+# If the CFITSIO library has the 'fits_is_reentrant' function (it was added
 # since version 3.30 of April 2012).
 AC_CHECK_LIB([cfitsio], [fits_is_reentrant], [has_fits_is_reentrant=1],
              [has_fits_is_reentrant=0], [-lm])
@@ -436,7 +436,7 @@ AC_DEFINE_UNQUOTED([GAL_CONFIG_HAVE_FITS_IS_REENTRANT],
 AC_SUBST(HAVE_FITS_IS_REENTRANT, [$has_fits_is_reentrant])
 
 
-# If the WCS library has the `wcslib_version' function.
+# If the WCS library has the 'wcslib_version' function.
 AC_CHECK_LIB([wcs], [wcslib_version], [has_wcslib_version=1],
              [has_wcslib_version=0], [-lcfitsio -lm])
 AC_DEFINE_UNQUOTED([GAL_CONFIG_HAVE_WCSLIB_VERSION], [$has_wcslib_version],
@@ -444,7 +444,7 @@ AC_DEFINE_UNQUOTED([GAL_CONFIG_HAVE_WCSLIB_VERSION], 
[$has_wcslib_version],
 AC_SUBST(HAVE_WCSLIB_VERSION, [$has_wcslib_version])
 
 
-# If the pthreads library has `pthread_barrier_wait'.
+# If the pthreads library has 'pthread_barrier_wait'.
 AC_CHECK_LIB([pthread], [pthread_barrier_wait], [has_pthread_barrier=1],
              [has_pthread_barrier=0])
 AC_DEFINE_UNQUOTED([GAL_CONFIG_HAVE_PTHREAD_BARRIER], [$has_pthread_barrier],
@@ -479,8 +479,8 @@ AS_IF([test "x$has_libtool" = "xyes"],
         AC_MSG_RESULT( $has_gnulibtool )],
       [ has_gnulibtool=no ])
 
-# When either the `libtool' executable isn't GNU or it doesn't exist, then
-# look for `glibtool'.
+# When either the 'libtool' executable isn't GNU or it doesn't exist, then
+# look for 'glibtool'.
 AS_IF([test "x$has_gnulibtool" = "xyes"],
       [ gnulibtool_exec=libtool ],
       [ AC_CHECK_PROG(has_glibtool, glibtool, [yes], [no])
@@ -488,10 +488,10 @@ AS_IF([test "x$has_gnulibtool" = "xyes"],
                [has_gnulibtool=yes; gnulibtool_exec=glibtool],
                [has_gnulibtool=no; anywarnings=yes] ) ])
 
-# Older versions of GNU Libtool have problems with the `dash' shell (a
-# minimalist shell) and will crash (due to not having the `+=' operator),
+# Older versions of GNU Libtool have problems with the 'dash' shell (a
+# minimalist shell) and will crash (due to not having the '+=' operator),
 # see bug #54430. So we need to check if the system's libtool and shell
-# (called by `sh' as in C's `system' function within BuildProgram) can work
+# (called by 'sh' as in C's 'system' function within BuildProgram) can work
 # with each other. If not, we need to search for Bash and tell BuildProgram
 # to use Bash instead of the default. But older versions of Bash also don't
 # support this operator, so we'll have to check with Bash is well.
@@ -509,7 +509,7 @@ AS_IF([test "x$has_gnulibtool" = "xyes"],
         ltargs="--quiet --tag=CC --mode=link $CC $cprog -O3 -o $outname"
 
         # Check the shells, starting with known shells and ultimately
-        # trying with `sh' (can be any shell).
+        # trying with 'sh' (can be any shell).
         AS_IF([test "x$has_bash" = "xyes"],
               [AS_IF(bash -c "$gnulibtool_exec $ltargs" > /dev/null 2>&1,
                      [libtool_shell="bash"],
@@ -522,7 +522,7 @@ AS_IF([test "x$has_gnulibtool" = "xyes"],
 
         # Clean up: note that no output might have been generated (when no
         # proper shell was found). Therefore, for deleting the output file,
-        # we'll call `rm' with `-f' so it doesn't complain with an error in
+        # we'll call 'rm' with '-f' so it doesn't complain with an error in
         # such cases.
         rm $cprog
         rm -f $outname
@@ -564,8 +564,8 @@ AS_IF([test "x$has_ghostscript" = "xyes"],
        gsversion=$(gs --version)
        AX_COMPARE_VERSION([9.10], [gt], [$gsversion], [has_ghostscript=no])
        AC_MSG_RESULT( $gsversion )])
-# Note: `has_ghostscript' can be set to `no' within the AS_IF above, so
-# `anywarnings' cannot be an [RUN-IF-FALSE] argument to the AS_IF above.
+# Note: 'has_ghostscript' can be set to 'no' within the AS_IF above, so
+# 'anywarnings' cannot be an [RUN-IF-FALSE] argument to the AS_IF above.
 AS_IF([test "x$has_ghostscript" = "xno"], [anywarnings=yes])
 AM_CONDITIONAL([COND_HASGHOSTSCRIPT], [test "x$has_ghostscript" = "xyes"])
 
@@ -624,15 +624,15 @@ AS_IF([test "x$missing_mandatory" = "xyes"],
         AS_ECHO(["dependencies in one command. See the link below:"])
         AS_ECHO(["  
https://www.gnu.org/s/gnuastro/manual/html_node/Dependencies-from-package-managers.html";])
         AS_ECHO([""])
-        AS_ECHO(["If you have already installed a dependency (for example in 
\`/install/path'),"])
+        AS_ECHO(["If you have already installed a dependency (for example in 
'/install/path'),"])
         AS_ECHO(["but this script can't link with it, add the path to the 
LDFLAGS, CPPFLAGS and"])
         AS_ECHO(["LD_LIBRARY_PATH environment variables before running 
configure. For example"])
-        AS_ECHO(["with the following commands (just correct the 
\`/install/path' part)."])
+        AS_ECHO(["with the following commands (just correct the 
'/install/path' part)."])
         AS_ECHO(["  $ export LDFLAGS=\"\$LDFLAGS -L/install/path/lib\""])
         AS_ECHO(["  $ export CPPFLAGS=\"\$CPPFLAGS -I/install/path/include\""])
         AS_ECHO(["  $ export 
LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:/install/path/lib\""])
         AS_ECHO([""])
-        AS_ECHO(["[TIP:] Put these commands in your startup file (for example 
\`~/.bashrc') to"])
+        AS_ECHO(["[TIP:] Put these commands in your startup file (for example 
'~/.bashrc') to"])
         AS_ECHO(["avoid similar problems later. See the link below to learn 
more:"])
         AS_ECHO(["  
https://www.gnu.org/s/gnuastro/manual/html_node/Installation-directory.html";])
         AS_ECHO([""])
@@ -654,7 +654,7 @@ gl_INIT
 # Check if Gnulib tests should be done:
 AC_ARG_ENABLE([gnulibcheck],
               [AS_HELP_STRING([--enable-gnulibcheck],
-                   [In `make check', also test GNU Gnulib.])],
+                   [In 'make check', also test GNU Gnulib.])],
              [enable_gnulibcheck=yes], [enable_gnulibcheck=no])
 AM_CONDITIONAL([COND_GNULIBCHECK], [test $enable_gnulibcheck = yes])
 
@@ -662,10 +662,10 @@ AM_CONDITIONAL([COND_GNULIBCHECK], [test 
$enable_gnulibcheck = yes])
 
 
 
-# Gnulib checks for the proper name for the C99 equivalent `restrict'
-# keyword and puts it in the `ac_cv_c_restrict' variable. If none exists,
-# it will put a `no' inside of this variable. As described in the output
-# `bootstrapped/m4/gnulib-common.m4', this is only necessary until Autoconf
+# Gnulib checks for the proper name for the C99 equivalent 'restrict'
+# keyword and puts it in the 'ac_cv_c_restrict' variable. If none exists,
+# it will put a 'no' inside of this variable. As described in the output
+# 'bootstrapped/m4/gnulib-common.m4', this is only necessary until Autoconf
 # 2.70 is released. Afterwards, we can use AC_C_RESTRICT.
 AS_IF([test "x$ac_cv_c_restrict" = "xno"],
       [gal_restrict_replace=], [gal_restrict_replace=$ac_cv_c_restrict])
@@ -797,7 +797,7 @@ AC_ARG_ENABLE([warp],
 
 
 
-# If we had a "ayes" variable to be "true" if there was a `yes'. So any
+# If we had a "ayes" variable to be "true" if there was a 'yes'. So any
 # program that is not explicitly requested must be ignored and vice versa
 # (if no programs were explicitly requested, then enable all that weren't
 # disabled).
@@ -925,10 +925,10 @@ AC_CONFIG_FILES([Makefile
 # Printing guiding messages. Autoconf will make the variable
 # enable_guide_message from the first argument to AC_ARG_ENABLE. It will
 # also give it a value. From the Autoconf manual, we see that
-# `--disable-guide-message' is equivalent to a value of `no', while with no
-# argument, the value will default to `yes'. In the last argument to
+# '--disable-guide-message' is equivalent to a value of 'no', while with no
+# argument, the value will default to 'yes'. In the last argument to
 # AC_ARG_ENABLE, we also specify the default behavior (when it isn't given
-# at all), here we want the default to be `yes'.
+# at all), here we want the default to be 'yes'.
 AC_ARG_ENABLE([guide-message],
               [AS_HELP_STRING([--disable-guide-message],
                    [No messages after each build step.])],
@@ -1013,8 +1013,8 @@ AS_IF([test x$enable_guide_message = xyes],
                AS_ECHO(["    harm the rest of Gnuastro's building and 
installation. Gnuastro has"])
                AS_ECHO(["    its own internal implementation of GNU Libtool to 
build its self. This"])
                AS_ECHO(["    warning is only to let you know that BuildProgram 
will not be"])
-               AS_ECHO(["    part of this build. The executable names searched 
were \`libtool'"])
-               AS_ECHO(["    and \`glibtool'. The shells searched were \`sh', 
\`bash' and \`zsh'."])
+               AS_ECHO(["    part of this build. The executable names searched 
were 'libtool'"])
+               AS_ECHO(["    and 'glibtool'. The shells searched were 'sh', 
'bash' and 'zsh'."])
                AS_ECHO([])
                AS_IF([test "x$has_gnulibtool" = "xyes"],
                      [AS_ECHO(["    -- GNU Libtool is present, but couldn't be 
run in tested shells."])
@@ -1029,7 +1029,7 @@ AS_IF([test x$enable_guide_message = xyes],
         AS_IF([test "x$has_ghostscript" = "xno"],
               [dependency_notice=yes
                AS_ECHO(["  - GPL GhostScript (https://www.ghostscript.com) 
version 9.10 or later,"])
-               AS_ECHO(["    with the executable name \`gs', was not found in 
your PATH environment"])
+               AS_ECHO(["    with the executable name 'gs', was not found in 
your PATH environment"])
                AS_ECHO(["    variable. If PDF outputs are desired, the 
respective tool it will abort"])
                AS_ECHO(["    with an EPS output which you can convert to PDF 
by other means."])
                AS_ECHO([]) ])
@@ -1059,7 +1059,7 @@ AS_IF([test x$enable_guide_message = xyes],
                AS_ECHO(["    a command and install a matching one, someone 
might install a"])
                AS_ECHO(["    fake command with the name of one that is not 
installed. You can"])
                AS_ECHO(["    always run a program in the current directory by 
explicity adding"])
-               AS_ECHO(["    a \`./' before it's name. Run the following 
command after"])
+               AS_ECHO(["    a './' before it's name. Run the following 
command after"])
                AS_ECHO(["    installing Gnuastro to learn more about PATH:"])
                AS_ECHO(["        $ info gnuastro \"Installation directory\""])
                AS_ECHO([]) ])
diff --git a/developer-build b/developer-build
index 7854d9b..1a430db 100755
--- a/developer-build
+++ b/developer-build
@@ -2,7 +2,7 @@
 
 # This script will configure and build Gnuastro in parallel inside another
 # directory (to keep the source and build directories separate). By default
-# it is in the tmpfs directory of the RAM. Run with `--help' for a more
+# it is in the tmpfs directory of the RAM. Run with '--help' for a more
 # complete description.
 #
 # Original author:
@@ -449,7 +449,7 @@ fi
 # Upload the tarball to the requested server.
 if [ x$upload = x1 ]; then
     # Get the base package name, and use it to make a generic tarball
-    # name. Note that with the `--upload' option, `--dist' is also
+    # name. Note that with the '--upload' option, '--dist' is also
     # activated, so the tarball is already built and ready by this
     # step.
     tarball=$(ls *.tar.lz)
diff --git a/doc/Makefile.am b/doc/Makefile.am
index a029477..820627d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -33,7 +33,7 @@ BUILT_SOURCES = $(srcdir)/authors.texi
 ## bootstrapped from Gnulib. Therefore it is not in this
 ## directory. However, it is needed by gnuastro.texi to build the
 ## documentation. It is the job of AM_MAKEINFOFLAGS, to pass options to the
-## documentation build programs. BOOTSTRPDOC is defined in `configure.ac'.
+## documentation build programs. BOOTSTRPDOC is defined in 'configure.ac'.
 bootstrpdoc = $(top_srcdir)/bootstrapped/doc
 AM_MAKEINFOFLAGS = -I $(bootstrpdoc) -I $(srcdir)
 
@@ -41,7 +41,7 @@ AM_MAKEINFOFLAGS = -I $(bootstrpdoc) -I $(srcdir)
 # This is just a temporary work-around since Automake does not pass the
 # AM_MAKEINFOFLAGS to texi2dvi (which builds DVI and PDF outputs). This was
 # reported in Automake's bug 23599. Note that a space is necessary between
-# the `-I' and directory for texi2dvi.
+# the '-I' and directory for texi2dvi.
 TEXI2DVI = texi2dvi -I $(bootstrpdoc) -I $(srcdir)
 
 
@@ -151,7 +151,7 @@ else
 endif
 
 
-# Build the `man' directory and then put all the man pages in
+# Build the 'man' directory and then put all the man pages in
 # it. Unfortunately as far as I know, pattern rules are not portable in all
 # implementations of Make, so we have to list all the utilities manually.
 toputildir=$(top_builddir)/bin
diff --git a/doc/README b/doc/README
index 123c722..68bafaf 100644
--- a/doc/README
+++ b/doc/README
@@ -13,7 +13,7 @@ Documentation (manual):
 -----------------------
 
 The documentation of Gnuastro is written in Texinfo. The main source
-file is `gnuastro.texi'.
+file is 'gnuastro.texi'.
 
 Webpage (only for maintainer)
 -----------------------------
@@ -30,18 +30,18 @@ in a specified directory anywhere you like (specified by 
the TOPWEBCHECKOUT
 shell variable). You don't have to version control any of the files in that
 directory, but it is easiest to have a fixed place since CVS needs a local
 copy. Unfortunately the GNU webpage runs on CVS! Read the top comments of
-the `forwebpage' script for instructions on what to do for the first time
+the 'forwebpage' script for instructions on what to do for the first time
 and later times.
 
 Update MathJax (for the webpage, only for maintainer)
 -----------------------------------------------------
 
-There is a script in the `MathJax' directory on the Gnuastro webpage
-directory to update MathJax (`addmissing.sh'). You can get a recent
+There is a script in the 'MathJax' directory on the Gnuastro webpage
+directory to update MathJax ('addmissing.sh'). You can get a recent
 version of MathJax from its webpage and put it in the correct place
 (see the comments in the script). That script will then add all the
 new files from MathJax to the checked out files and then you can use
-`cvs -nq update' and `cvs add' to add all the new files and
+'cvs -nq update' and 'cvs add' to add all the new files and
 directories. Just note that CVS is an antique(!) and so you have to
 add all the files in separate directories separately, first add the
 directory, then CVS will find the untracked files inside it and add
@@ -50,7 +50,7 @@ them one by one!
 Image copyright
 ---------------
 
-This directory also contains the `gnuastrologo.xcf' image which is a crude
+This directory also contains the 'gnuastrologo.xcf' image which is a crude
 logo for Gnuastro in case we need it. It is released under the GNU Free
 Documentation License, Version 1.3 or later, just like this README
 (statement is at the bottom of this file)
diff --git a/doc/announce-acknowledge.txt b/doc/announce-acknowledge.txt
index 464ba55..45699ec 100644
--- a/doc/announce-acknowledge.txt
+++ b/doc/announce-acknowledge.txt
@@ -1,6 +1,7 @@
 Alphabetically ordered list to acknowledge in the next release.
 
 Raúl Infante-Sainz
+Raphael Morales
 Alejandro Serrano Borlaff
 Zahra Sharbaf
 Joseph Putko
diff --git a/doc/forwebpage b/doc/forwebpage
index 4577d9a..6af18db 100755
--- a/doc/forwebpage
+++ b/doc/forwebpage
@@ -4,13 +4,13 @@
 # files to the destination directory (local CVS checkout) and commit the
 # changes to the gnu.org/software/gnuastro webpage. Finally, delete the
 # temporary directory. See below for setting up the CVS checkout for the
-# first time. NOTE: This script is defined to be run in Gnuastro's `doc/'
+# first time. NOTE: This script is defined to be run in Gnuastro's 'doc/'
 # directory. It should not be called from anywhere else.
 #
-#    # IMPORTANT: do not end the destination directory with a `/'.
+#    # IMPORTANT: do not end the destination directory with a '/'.
 #    ./forwebpage /destination/directory
 #
-# The temporary directory will be named `/destination/directory_tmp'.
+# The temporary directory will be named '/destination/directory_tmp'.
 #
 # This script will first run gendocs.sh on the Texinfo source which creates
 # the standrard GNU webpage style documentation page. Then it does some
@@ -37,7 +37,7 @@
 # be enough for the initial setup. Afterwards, you can just run this
 # script.
 #
-#   1. Add `export CVS_RSH=ssh' to your ~/.bashrc
+#   1. Add 'export CVS_RSH=ssh' to your ~/.bashrc
 #
 #   2. Choose the top directory to keep your local copy of the webpage
 #      (TOPWEBCHECKOUT). Note that especially because of MathJax,
@@ -63,7 +63,7 @@
 #
 # When a new page is added, after all the "cvs commit: Examining ..."
 # reports, you will see a line for each new file starting with a
-# '?'. Assume FILES is a string of all these files (that have a `?' in
+# '?'. Assume FILES is a string of all these files (that have a '?' in
 # the CVS commit of this script). Run these commands to go into your
 # local checkout and add those files to the repository.
 #
@@ -128,10 +128,10 @@ fi
 
 
 # The date that is printed on the manual is generated by looking at the
-# modification time of gnuastro.texi, not `../configure' (which was used to
+# modification time of gnuastro.texi, not '../configure' (which was used to
 # generate the version number). This can cause confusion, since the version
 # number (coming from the commit) will have a different date in the
-# revision history. To avoid this, here we check if the `../configure'
+# revision history. To avoid this, here we check if the '../configure'
 # modification date is similar to that on 'gnuastro.texi' or not. If it
 # isn't a warning error is printed to let the user know, so they take the
 # appropriate action.
@@ -222,10 +222,10 @@ IFS=''
 echo
 echo %%%%% Correcting the HTMLs %%%%%
 
-# Correct the address of the `(dir)' links on the top pages of both
-# HTML outputs. In the $tmpdir/gnuastro.html, it is `dir.html#top'
+# Correct the address of the '(dir)' links on the top pages of both
+# HTML outputs. In the $tmpdir/gnuastro.html, it is 'dir.html#top'
 # which should be change to index.html. In
-# $tmpdir/html_node/index.html, it is `../dir/index.html' which
+# $tmpdir/html_node/index.html, it is '../dir/index.html' which
 # should become ../index.html
 cat $tmpdir/gnuastro.html | sed s/dir\.html\#Top/index.html/g > tmp.txt
 mv tmp.txt $tmpdir/gnuastro.html
@@ -328,12 +328,12 @@ echo %%%%% DONE %%%%%
 
 
 
-# Copy `gnuastro.en.html' page into `index.html'. Then copy the other
+# Copy 'gnuastro.en.html' page into 'index.html'. Then copy the other
 # necessary webpage files.
 cp gnuastro.en.html $topwebcheckout/gnuastro/gnuastro.html
 cp gnuastro.fr.html gnuastro.translist $topwebcheckout/gnuastro/
 
-# `index.html' must be just a symbolic to `gnuastro.html'. In case this is
+# 'index.html' must be just a symbolic to 'gnuastro.html'. In case this is
 # the first time, CVS might have downloaded a full file and not the
 # link. To be safe, we'll just delete index.html and build a new symbolic
 # link.
@@ -345,7 +345,7 @@ ln -s $topwebcheckout/gnuastro/gnuastro.html 
$topwebcheckout/gnuastro/index.html
 
 
 # Copy the generated files to the proper directory. Note that the majority
-# of the HTML files in `html_node' have not changed, so CVS doesn't check
+# of the HTML files in 'html_node' have not changed, so CVS doesn't check
 # for the file contents, and so will update everything that is copied,
 # therefore we only want to copy the files that have actually changed. But
 # first, reset the IFS variable to its default value.
diff --git a/doc/genauthors b/doc/genauthors
index 989cc62..ee82c33 100755
--- a/doc/genauthors
+++ b/doc/genauthors
@@ -38,15 +38,15 @@ echo "Generating authors list for documentation."
 # directory and might be run from there)
 if [ -d $1/.git ]; then
 
-    # We will need to import the `.mailmap' file from the source directory
+    # We will need to import the '.mailmap' file from the source directory
     # temporarily to correct the changing emails (see the comments in
-    # `.mailmap'). Note that this script is run from within the `doc/'
-    # directory. The original `.mailmap' is in the `TOP_SRCDIR', so even
+    # '.mailmap'). Note that this script is run from within the 'doc/'
+    # directory. The original '.mailmap' is in the 'TOP_SRCDIR', so even
     # when the source and build directories are the same, there is no
     # problem.
     #
-    # But in case `.mailmap' already exists (for example the script is run
-    # in the top source directory not from the `doc' directory, or if a
+    # But in case '.mailmap' already exists (for example the script is run
+    # in the top source directory not from the 'doc' directory, or if a
     # symbolic link was already created), we won't do any copying.
     if [ -e .mailmap ]; then keepmailmap=1;
     else                     keepmailmap=0; ln -s $1/.mailmap .mailmap;
diff --git a/doc/plotsrc/README b/doc/plotsrc/README
index 3222f59..7e1322e 100644
--- a/doc/plotsrc/README
+++ b/doc/plotsrc/README
@@ -21,9 +21,9 @@ PRACTICAL NOTES
 1. When creating the final PDF files here (usually at the end of the
 boostrapping step), you might get this error:
 
-convert: attempt to perform an operation not allowed by the security policy 
`EPS' @ error/constitute.c/IsCoderAuthorized/408.
+convert: attempt to perform an operation not allowed by the security policy 
'EPS' @ error/constitute.c/IsCoderAuthorized/408.
 
-If you do, go to `/etc/ImageMagick-7/policy.xml', and uncomment the line
+If you do, go to '/etc/ImageMagick-7/policy.xml', and uncomment the line
 with the EPS,PDF,etc.... policy limitations. It was apparently due to a bug
 in Ghostscript that has been fixed since version 9.24
 (https://www.kb.cert.org/vuls/id/332928/).
diff --git a/doc/release-checklist.txt b/doc/release-checklist.txt
index 11c3dd1..1b8073c 100644
--- a/doc/release-checklist.txt
+++ b/doc/release-checklist.txt
@@ -8,7 +8,7 @@ This file is primarily intended for the Gnuastro maintainer and 
lists the
 set of operations to do for making each release. This should be done after
 all the commits needed for this release have been completed.
 
- - [STABLE] Run a spell-check (in emacs, with `M-x ispell') on the new
+ - [STABLE] Run a spell-check (in emacs, with 'M-x ispell') on the new
    parts of the book. You can put them in a test file with this command,
    just replace X.X with the previous version:
 
@@ -17,8 +17,8 @@ all the commits needed for this release have been completed.
 
 
  - [STABLE] Check if THANKS, and the book's Acknowledgments section have
-   everyone in `doc/announce-acknowledge.txt' in them. To see who has been
-   added in the `THANKS' file since the last stable release (to add in the
+   everyone in 'doc/announce-acknowledge.txt' in them. To see who has been
+   added in the 'THANKS' file since the last stable release (to add in the
    book), you can use this command:
 
        $ git diff gnuastro_vP.P..HEAD THANKS
@@ -30,7 +30,7 @@ all the commits needed for this release have been completed.
    are very useful in making the package build cleanly on other systems.
 
    If you don't actually want to make a Debian release, in the end, instead
-   of running `git push', just delete the top commits that you made in the
+   of running 'git push', just delete the top commits that you made in the
    three branchs with the following command
 
        $ git checkout master
@@ -53,17 +53,17 @@ all the commits needed for this release have been completed.
 
 
  - Run the following commands to keep the list of people who contributed
-   code and those that must be acknowledged for the announcement (`P.P' is
+   code and those that must be acknowledged for the announcement ('P.P' is
    the previous version).
 
      $ git shortlog gnuastro_vP.P...HEAD --numbered --summary > ~/people.txt
      $ cat doc/announce-acknowledge.txt >> ~/people.txt
 
-     [STABLE] Remove the names in `doc/announce-acknowledge.txt'.
+     [STABLE] Remove the names in 'doc/announce-acknowledge.txt'.
 
 
  - [STABLE] Correct the version links, and date, in the webpage
-   (`doc/gnuastro.en.html' and `doc/gnuastro.fr.html'). Note that this is
+   ('doc/gnuastro.en.html' and 'doc/gnuastro.fr.html'). Note that this is
    not for upload at this stage, it is only for the version control.
 
 
@@ -80,8 +80,8 @@ all the commits needed for this release have been completed.
      $ ./bootstrap --copy --gnulib-srcdir=/path/to/updated/gnulib
 
 
- - Update the version and build Gnuastro, all done with the `-p' option of
-   `./developer-build'. But we'll give it a `pure-junk' directory so it
+ - Update the version and build Gnuastro, all done with the '-p' option of
+   './developer-build'. But we'll give it a 'pure-junk' directory so it
    doesn't actually upload the build.
 
      $ ./developer-build -p pure-junk
@@ -93,7 +93,7 @@ all the commits needed for this release have been completed.
      $ make distcheck -j8
 
 
- - [STABLE]: After the `make distcheck' is safely finished, tag the release:
+ - [STABLE]: After the 'make distcheck' is safely finished, tag the release:
 
      $ cd ..
      $ git tag -a gnuastro_vX.X
@@ -104,11 +104,11 @@ all the commits needed for this release have been 
completed.
 
      $ ./developer-build -a -c -C -d
      $ cd build
-     $ make dist dist-lzip       # to build `tar.gz' and `tar.lz'.
+     $ make dist dist-lzip       # to build 'tar.gz' and 'tar.lz'.
 
 
- - Upload the tarball with the command below: Note that `gnupload'
-   uses `ncftpput' which comes with the `ncftp' package. The replaces
+ - Upload the tarball with the command below: Note that 'gnupload'
+   uses 'ncftpput' which comes with the 'ncftp' package. The replaces
    are necessary for the symbolic links.
 
    - Set the key-ID as a variable for easy steps later:
@@ -133,15 +133,15 @@ all the commits needed for this release have been 
completed.
    directory to build the full webpage with this script. We will build with
    debug flags so the build completes fast.
 
-   IMPORTANT NOTE: don't end the directory with a `/'. The directory should
-   be the one that has `CVSROOT' in it.
+   IMPORTANT NOTE: don't end the directory with a '/'. The directory should
+   be the one that has 'CVSROOT' in it.
 
        $ ./configure --enable-debug
        $ make -j8
        $ cd doc
        $ ./forwebpage /path/to/local/copy/of/webpage
 
-   If any of the files have a `?' in front of them, run these two commands
+   If any of the files have a '?' in front of them, run these two commands
    in the webpage directory:
 
        $ cvs add filename1 filename2 filename3
@@ -160,8 +160,8 @@ all the commits needed for this release have been completed.
 
  - Prepare the announcement, this command will calculate the checksums and
    also make the links ready. You just have to add a starting and ending
-   similar to previous announcements in a text editor. In the `XXXX', put
-   `stable' or `alpha' and in YYYY, put `ftp' for a stable, and `alpha' for
+   similar to previous announcements in a text editor. In the 'XXXX', put
+   'stable' or 'alpha' and in YYYY, put 'ftp' for a stable, and 'alpha' for
    an alpha release.
 
      $ cd build
@@ -173,23 +173,23 @@ all the commits needed for this release have been 
completed.
 
 
  - Based on previous announcements, add an intro, the NEWS file and the
-   contents of `~/people.txt' to the announcement.
+   contents of '~/people.txt' to the announcement.
 
 
  - Add the size of the files (in mega-bytes) to the announcement.
 
 
- - Run a spell-check on the announcement and remove `~/people.txt'.
+ - Run a spell-check on the announcement and remove '~/people.txt'.
 
      $ rm ~/people.txt
 
 
- - Announce the release on `address@hidden', `address@hidden'
+ - Announce the release on 'address@hidden', 'address@hidden'
    (only for STABLE) and Savannah news (only for STABLE).
 
 
- - [STABLE] Open `configure.ac' and increment `GAL_CURRENT' for the next
-   release. See the `Updating library version information' section of the
+ - [STABLE] Open 'configure.ac' and increment 'GAL_CURRENT' for the next
+   release. See the 'Updating library version information' section of the
    GNU Libtool manual as a guide. Note that we are assuming that until the
    next release some change will be made in the library.
 
@@ -220,10 +220,10 @@ Steps necessary to Package Gnuastro for Debian.
 
 
  - It would help to use the most recent versions of packages in Debian. To
-   do that, you can update the `/etc/apt/sources.list' file. You can get
+   do that, you can update the '/etc/apt/sources.list' file. You can get
    the current releases from this webpage:
    http://ftp.debian.org/debian/. See which release is currently the
-   `testing' release and replace its name with the one that is currently
+   'testing' release and replace its name with the one that is currently
    present in that file. Afterwards, run these commands:
 
      $ sudo apt-get update
@@ -246,7 +246,7 @@ Steps necessary to Package Gnuastro for Debian.
      DEBFULLNAME="Your name"
      DEBEMAIL=your@email.address
 
-   Then add these lines to `~/.quiltrc':
+   Then add these lines to '~/.quiltrc':
 
      QUILT_PATCHES=debian/patches
      QUILT_NO_DIFF_INDEX=1
@@ -258,7 +258,7 @@ Steps necessary to Package Gnuastro for Debian.
 
 
  - If you don't already have the Git repository, clone it with the
-   following command. A `gnuastro' directory will be built, but to setup
+   following command. A 'gnuastro' directory will be built, but to setup
    the other to main branches, you'll need to go into the cloned directory
    and checkout to them manually.
 
@@ -291,8 +291,8 @@ Steps necessary to Package Gnuastro for Debian.
 
 
  - [ALPHA] Build an ASCII-armored, detached signature for the tarball with
-   this command (it will make a `.asc' file by default, so use that instead
-   of `.sig' in the two following steps).
+   this command (it will make a '.asc' file by default, so use that instead
+   of '.sig' in the two following steps).
 
      $ gpg -b --armor gnuastro-X.Y.ZZZZ-ZZZZ.tar.gz
 
@@ -311,8 +311,8 @@ Steps necessary to Package Gnuastro for Debian.
      $ export ver=A.B.CCC
 
 
- - Make a standard symbolic link to the tarball (IMPORTANT: the `dash' is
-   changed to an `underscore' and an `orig' is added), then go into the
+ - Make a standard symbolic link to the tarball (IMPORTANT: the 'dash' is
+   changed to an 'underscore' and an 'orig' is added), then go into the
    cloned directory.
 
      $ mv gnuastro-$ver-XXXX.tar.gz      gnuastro_$ver.orig.tar.gz
@@ -320,19 +320,19 @@ Steps necessary to Package Gnuastro for Debian.
      $ cd gnuastro
 
 
- - You need to checkout to the `upstream' branch, clean everything that was
+ - You need to checkout to the 'upstream' branch, clean everything that was
    in it and unpack this release's raw package source files into it as
    shown below.
 
      $ git checkout upstream
-     $ mv .git ../gnuastro-tmp-git         # We want to keep `.git'.
+     $ mv .git ../gnuastro-tmp-git         # We want to keep '.git'.
      $ rm -rf ./* ./.*                     # Delete everything.
-     $ mv ../gnuastro-tmp-git .git         # Bring back the `.git' directory.
+     $ mv ../gnuastro-tmp-git .git         # Bring back the '.git' directory.
      $ tar xf ../gnuastro_$ver.orig.tar.gz --strip-components=1
 
 
- - We now need to commit these into the `upstream' branch of the Git
-   history, tag it and run `pristine-tar' on it.
+ - We now need to commit these into the 'upstream' branch of the Git
+   history, tag it and run 'pristine-tar' on it.
 
      $ git add --all
      $ git commit -m "Upstream Gnuastro $ver"
@@ -341,15 +341,15 @@ Steps necessary to Package Gnuastro for Debian.
                     -s ../gnuastro_$ver.orig.tar.gz.asc
 
 
- - We are done with the `upstream' and `pristine-tar' branches and can
-   checkout `master' and merge with the upstream branch:
+ - We are done with the 'upstream' and 'pristine-tar' branches and can
+   checkout 'master' and merge with the upstream branch:
 
      $ git checkout master
      $ git merge upstream
 
 
  - Check the current Debian policy version and update it in
-   `debian/control'. The policy can be found here:
+   'debian/control'. The policy can be found here:
    https://www.debian.org/doc/debian-policy/
 
      $ emacs debian/control
@@ -357,35 +357,35 @@ Steps necessary to Package Gnuastro for Debian.
 
  - If the soname of the shared libraries has changed:
 
-     - Rename the file `debian/libgnuastroX.install' (set `X' to the new
+     - Rename the file 'debian/libgnuastroX.install' (set 'X' to the new
        soname).
 
-     - In `debian/control', change all the old sonames to the new value.
+     - In 'debian/control', change all the old sonames to the new value.
 
 
- - Update `debian/changelog' with all the Debian-related changes (since
+ - Update 'debian/changelog' with all the Debian-related changes (since
    merging with the upstream branch). Gnuastro's changes don't need to be
    mentioned here. If there was no major changes, just say "New upstream
    version".
 
-   IMPORTANT: An official release should have `unstable' after the
+   IMPORTANT: An official release should have 'unstable' after the
    version. But if you just want to make sure Gnuastro builds on all
-   systems for testing, it should be `experimental'.
+   systems for testing, it should be 'experimental'.
 
    When changing the state (from experimental to unstable or vice versa)
-   add the following line in `debian/changelog' (this is necessary to avoid
+   add the following line in 'debian/changelog' (this is necessary to avoid
    Lintian warnings):
 
    Experimental -> Unstable: "Switch to unstable for upstream stable release"
    Unstable -> Experimental: "Switch to experimental to prepare transition".
 
 
- - Update your version of `pbuilder':
+ - Update your version of 'pbuilder':
 
      $ sudo pbuilder update
 
 
- - Run `pdebuild' to build the package (needs sudo).
+ - Run 'pdebuild' to build the package (needs sudo).
 
      $ sudo pdebuild
 
@@ -397,7 +397,7 @@ Steps necessary to Package Gnuastro for Debian.
 
 
  - Commit the contents of the new release (should be just the contents of
-   the `debian' directory).
+   the 'debian' directory).
 
      $ git add --all
      $ git status                         # For a visual check
diff --git a/doc/style.css b/doc/style.css
index 936ce62..b1ef35e 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -140,11 +140,11 @@ p{
 
 
 /* Select all paragraphs that must not be indented. Some of them don't need
-   any `:first-of-type' because:
+   any ':first-of-type' because:
 
-    - The `header's have only one <p> in the HTMLs.
+    - The 'header's have only one <p> in the HTMLs.
 
-    - All `<p>'s in the `.footnote's and `.bottom-links's must have no
+    - All '<p>'s in the '.footnote's and '.bottom-links's must have no
       indentation, not just the first ones. */
 .header p,
 .footnote p,
diff --git a/genauthors b/genauthors
index 7532b61..a8ff608 100755
--- a/genauthors
+++ b/genauthors
@@ -78,9 +78,9 @@ fi
 
 
 # Set the version number. Note that this script is also run at the start of
-# the bootstrapping process. At that point we don't have the `.version'
-# file, so we will just rely on `.git describe'. Later during `make', this
-# scripot will be run again to set it using `git-version-gen'.
+# the bootstrapping process. At that point we don't have the '.version'
+# file, so we will just rely on '.git describe'. Later during 'make', this
+# scripot will be run again to set it using 'git-version-gen'.
 if [ -f "$1/.version" ]; then
     gnuastroversion="Gnuastro "$(cat "$1/.version")
 else
diff --git a/lib/Makefile.am b/lib/Makefile.am
index f880d6a..afc67cb 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -28,7 +28,7 @@
 ##       the Gnulib functions will be statically linked to the Gnuastro
 ##       library so linking to Gnuastro is enough to access them also.
 ##
-##   SYSCONFIG_DIR: only necessary in `options.c' to get the system
+##   SYSCONFIG_DIR: only necessary in 'options.c' to get the system
 ##       installation directory.
 AM_CPPFLAGS = -I\$(top_srcdir)/bootstrapped/lib            \
               -DSYSCONFIG_DIR=\"$(sysconfdir)\"
@@ -68,7 +68,7 @@ libgnuastro_la_SOURCES = arithmetic.c arithmetic-and.c 
arithmetic-bitand.c \
 
 
 
-# Installed headers, note that we are not blindly including all `.h' files
+# Installed headers, note that we are not blindly including all '.h' files
 # in the $(headersdir) directory. Some of the header files don't need to be
 # installed.
 headersdir=$(top_srcdir)/lib/gnuastro
@@ -125,7 +125,7 @@ CLEANFILES = gnuastro.pc gnuastro/config.h
 
 
 
-# Build `gnuastro/config.h' based on the information in the Makefile after
+# Build 'gnuastro/config.h' based on the information in the Makefile after
 # the Makefile has been built.
 gnuastro/config.h: Makefile $(internaldir)/config.h.in
        rm -f $@ $@.tmp
@@ -145,7 +145,7 @@ gnuastro/config.h: Makefile $(internaldir)/config.h.in
 
 
 
-# Build Gnuastro's pkg-config file similar to `gnuastro/config.h'.
+# Build Gnuastro's pkg-config file similar to 'gnuastro/config.h'.
 gnuastro.pc: Makefile $(srcdir)/gnuastro.pc.in
        rm -f $@ $@.tmp
        ol=""; \
diff --git a/lib/arithmetic-and.c b/lib/arithmetic-and.c
index 31ff364..1a1193c 100644
--- a/lib/arithmetic-and.c
+++ b/lib/arithmetic-and.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_and(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-bitand.c b/lib/arithmetic-bitand.c
index d483ddd..6cc1708 100644
--- a/lib/arithmetic-bitand.c
+++ b/lib/arithmetic-bitand.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_bitand(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-bitlsh.c b/lib/arithmetic-bitlsh.c
index 4e25c66..10179c5 100644
--- a/lib/arithmetic-bitlsh.c
+++ b/lib/arithmetic-bitlsh.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_bitlsh(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-bitor.c b/lib/arithmetic-bitor.c
index 4795b36..e5efacf 100644
--- a/lib/arithmetic-bitor.c
+++ b/lib/arithmetic-bitor.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_bitor(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-bitrsh.c b/lib/arithmetic-bitrsh.c
index 2e97665..296532f 100644
--- a/lib/arithmetic-bitrsh.c
+++ b/lib/arithmetic-bitrsh.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_bitrsh(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-bitxor.c b/lib/arithmetic-bitxor.c
index de60798..f7e5022 100644
--- a/lib/arithmetic-bitxor.c
+++ b/lib/arithmetic-bitxor.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_bitxor(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-divide.c b/lib/arithmetic-divide.c
index 21c6385..f5c68f6 100644
--- a/lib/arithmetic-divide.c
+++ b/lib/arithmetic-divide.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_divide(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-eq.c b/lib/arithmetic-eq.c
index b8a31c3..8a56365 100644
--- a/lib/arithmetic-eq.c
+++ b/lib/arithmetic-eq.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_eq(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-ge.c b/lib/arithmetic-ge.c
index 5b284fd..1159f18 100644
--- a/lib/arithmetic-ge.c
+++ b/lib/arithmetic-ge.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_ge(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-gt.c b/lib/arithmetic-gt.c
index 7e8a34f..358f410 100644
--- a/lib/arithmetic-gt.c
+++ b/lib/arithmetic-gt.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_gt(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-le.c b/lib/arithmetic-le.c
index 9289eab..91c7d81 100644
--- a/lib/arithmetic-le.c
+++ b/lib/arithmetic-le.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_le(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-lt.c b/lib/arithmetic-lt.c
index 8ccfe90..700655c 100644
--- a/lib/arithmetic-lt.c
+++ b/lib/arithmetic-lt.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_lt(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-minus.c b/lib/arithmetic-minus.c
index 31f8883..a6c3f6e 100644
--- a/lib/arithmetic-minus.c
+++ b/lib/arithmetic-minus.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_minus(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-modulo.c b/lib/arithmetic-modulo.c
index f3c2fcc..2fce133 100644
--- a/lib/arithmetic-modulo.c
+++ b/lib/arithmetic-modulo.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT_INT' is defined in `arithmetic-binary.h'. As you see
+/* 'BINARY_SET_LT_INT' is defined in 'arithmetic-binary.h'. As you see
    there, this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_modulo(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-multiply.c b/lib/arithmetic-multiply.c
index e5e18c7..a8013f9 100644
--- a/lib/arithmetic-multiply.c
+++ b/lib/arithmetic-multiply.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_multiply(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-ne.c b/lib/arithmetic-ne.c
index 7860193..dccedea 100644
--- a/lib/arithmetic-ne.c
+++ b/lib/arithmetic-ne.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_ne(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-or.c b/lib/arithmetic-or.c
index 3138605..d548a0f 100644
--- a/lib/arithmetic-or.c
+++ b/lib/arithmetic-or.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_or(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic-plus.c b/lib/arithmetic-plus.c
index 69cd2ee..610b0cf 100644
--- a/lib/arithmetic-plus.c
+++ b/lib/arithmetic-plus.c
@@ -36,11 +36,11 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* `BINARY_SET_LT' is defined in `arithmetic-binary.h'. As you see there,
+/* 'BINARY_SET_LT' is defined in 'arithmetic-binary.h'. As you see there,
    this is a deep macro (calls other macros) to deal with different
    types. This allows efficiency in processing (after compilation), but
    compilation will be very slow. Therefore, for each operator we have
-   defined a separate `.c' file so they are built separately and when built
+   defined a separate '.c' file so they are built separately and when built
    in parallel can be much faster than having them all in a single file. */
 void
 arithmetic_plus(gal_data_t *l, gal_data_t *r, gal_data_t *o)
diff --git a/lib/arithmetic.c b/lib/arithmetic.c
index 62d9275..8a4c8c6 100644
--- a/lib/arithmetic.c
+++ b/lib/arithmetic.c
@@ -91,10 +91,10 @@ arithmetic_check_float_input(gal_data_t *in, int operator, 
char *numstr)
     default:
       error(EXIT_FAILURE, 0, "the %s operator can only accept single or "
             "double precision floating point numbers as its operand. The "
-            "%s operand has type %s. You can use the `float' or `double' "
+            "%s operand has type %s. You can use the 'float' or 'double' "
             "operators before this operator to explicitly convert to the "
             "desired precision floating point type. If the operand was "
-            "originally a typed number (string of characters), add an `f' "
+            "originally a typed number (string of characters), add an 'f' "
             "after it so it is directly read into the proper precision "
             "floating point number (based on the number of non-zero "
             "decimals it has)", gal_arithmetic_operator_string(operator),
@@ -562,10 +562,10 @@ arithmetic_unary_function(int operator, int flags, 
gal_data_t *in)
 
 
   /* Clean up. Note that if the input arrays can be freed, and any of right
-     or left arrays needed conversion, `UNIFUNC_CONVERT_TO_COMPILED_TYPE'
-     has already freed the input arrays, and we only have `r' and `l'
+     or left arrays needed conversion, 'UNIFUNC_CONVERT_TO_COMPILED_TYPE'
+     has already freed the input arrays, and we only have 'r' and 'l'
      allocated in any case. Alternatively, when the inputs shouldn't be
-     freed, the only allocated spaces are the `r' and `l' arrays if their
+     freed, the only allocated spaces are the 'r' and 'l' arrays if their
      types weren't compiled for binary operations, we can tell this from
      the pointers: if they are different from the original pointers, they
      were allocated. */
@@ -580,7 +580,7 @@ arithmetic_unary_function(int operator, int flags, 
gal_data_t *in)
 
 
 
-/* Call functions in the `gnuastro/statistics' library. */
+/* Call functions in the 'gnuastro/statistics' library. */
 static gal_data_t *
 arithmetic_from_statistics(int operator, int flags, gal_data_t *input)
 {
@@ -648,8 +648,8 @@ arithmetic_size(int operator, int flags, gal_data_t *in, 
gal_data_t *arg)
           arg->size);
 
 
-  /* Convert `arg' to `size_t' and read it. Note that we can only free the
-     `arg' array (while changing its type), when the freeing flag has been
+  /* Convert 'arg' to 'size_t' and read it. Note that we can only free the
+     'arg' array (while changing its type), when the freeing flag has been
      set. */
   if(flags & GAL_ARITHMETIC_FREE)
     {
@@ -677,7 +677,7 @@ arithmetic_size(int operator, int flags, gal_data_t *in, 
gal_data_t *arg)
 
 
   /* Allocate the output array and write the desired dimension. Note that
-     `dsize' is in the C order, while the output must be in FITS/Fortran
+     'dsize' is in the C order, while the output must be in FITS/Fortran
      order. Also that C order starts from 0, while the FITS order starts
      from 1. */
   out=gal_data_alloc(NULL, GAL_TYPE_SIZE_T, 1, &one, NULL, 0,
@@ -713,7 +713,7 @@ arithmetic_size(int operator, int flags, gal_data_t *in, 
gal_data_t *arg)
 /***********************************************************************/
 /***************                  Where                   **************/
 /***********************************************************************/
-/* When the `iftrue' dataset only has one element and the element is blank,
+/* When the 'iftrue' dataset only has one element and the element is blank,
    then it will be replaced with the blank value of the type of the output
    data. */
 #define DO_WHERE_OPERATION(ITT, OT) {                                   \
@@ -755,7 +755,7 @@ arithmetic_size(int operator, int flags, gal_data_t *in, 
gal_data_t *arg)
     case GAL_TYPE_FLOAT64:  DO_WHERE_OPERATION( double,   OT);  break;  \
     default:                                                            \
       error(EXIT_FAILURE, 0, "%s: type code %d not recognized for the " \
-            "`iftrue' dataset", "WHERE_OUT_SET", iftrue->type);         \
+            "'iftrue' dataset", "WHERE_OUT_SET", iftrue->type);         \
     }
 
 
@@ -772,8 +772,8 @@ arithmetic_where(int flags, gal_data_t *out, gal_data_t 
*cond,
   /* The condition operator has to be unsigned char. */
   if(cond->type!=GAL_TYPE_UINT8)
     error(EXIT_FAILURE, 0, "%s: the condition operand must be an "
-          "`uint8' type, but the given condition operand has a "
-          "`%s' type", __func__, gal_type_name(cond->type, 1));
+          "'uint8' type, but the given condition operand has a "
+          "'%s' type", __func__, gal_type_name(cond->type, 1));
 
   /* The dimension and sizes of the out and condition data sets must be the
      same. */
@@ -798,7 +798,7 @@ arithmetic_where(int flags, gal_data_t *out, gal_data_t 
*cond,
     case GAL_TYPE_FLOAT32:       WHERE_OUT_SET( float    );      break;
     case GAL_TYPE_FLOAT64:       WHERE_OUT_SET( double   );      break;
     default:
-      error(EXIT_FAILURE, 0, "%s: type code %d not recognized for the `out'",
+      error(EXIT_FAILURE, 0, "%s: type code %d not recognized for the 'out'",
             __func__, out->type);
     }
 
@@ -855,7 +855,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         t=max;                                                          \
         j=tprm->indexs[tind];                                           \
@@ -885,7 +885,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         t=min;                                                          \
         j=tprm->indexs[tind];                                           \
@@ -915,7 +915,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         j=tprm->indexs[tind];                                           \
                                                                         \
@@ -948,7 +948,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         sum=0.0f;                                                       \
         j=tprm->indexs[tind];                                           \
@@ -982,7 +982,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         sum=0.0f;                                                       \
         j=tprm->indexs[tind];                                           \
@@ -1016,7 +1016,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         sum=sum2=0.0f;                                                  \
         j=tprm->indexs[tind];                                           \
@@ -1056,11 +1056,11 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         j=tprm->indexs[tind];                                           \
                                                                         \
-        /* Loop over each array: `i' is input dataset's index. */       \
+        /* Loop over each array: 'i' is input dataset's index. */       \
         for(i=0;i<p->dnum;++i)                                          \
           {                                                             \
             /* Only integers and non-NaN floats: v==v is 1. */          \
@@ -1104,7 +1104,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         j=tprm->indexs[tind];                                           \
                                                                         \
@@ -1150,7 +1150,7 @@ struct multioperandparams
     /* Go over all the pixels assigned to this thread. */               \
     for(tind=0; tprm->indexs[tind] != GAL_BLANK_SIZE_T; ++tind)         \
       {                                                                 \
-        /* Initialize, `j' is desired pixel's index. */                 \
+        /* Initialize, 'j' is desired pixel's index. */                 \
         n=0;                                                            \
         j=tprm->indexs[tind];                                           \
                                                                         \
@@ -1204,7 +1204,7 @@ struct multioperandparams
     errno=0;                                                            \
     a=malloc(p->dnum*sizeof *a);                                        \
     if(a==NULL)                                                         \
-      error(EXIT_FAILURE, 0, "%s: %zu bytes for `a'",                   \
+      error(EXIT_FAILURE, 0, "%s: %zu bytes for 'a'",                   \
             "MULTIOPERAND_TYPE_SET", p->dnum*sizeof *a);                \
                                                                         \
     /* Fill in the array pointers and the blank value for this type. */ \
@@ -1324,7 +1324,7 @@ multioperand_on_thread(void *in_prm)
 
 /* The single operator in this function is assumed to be a linked list. The
    number of operators is determined from the fact that the last node in
-   the linked list must have a NULL pointer as its `next' element. */
+   the linked list must have a NULL pointer as its 'next' element. */
 static gal_data_t *
 arithmetic_multioperand(int operator, int flags, gal_data_t *list,
                         gal_data_t *params, size_t numthreads)
@@ -1336,7 +1336,7 @@ arithmetic_multioperand(int operator, int flags, 
gal_data_t *list,
   gal_data_t *out, *tmp, *ttmp;
 
 
-  /* For generality, `list' can be a NULL pointer, in that case, this
+  /* For generality, 'list' can be a NULL pointer, in that case, this
      function will return a NULL pointer and avoid further processing. */
   if(list==NULL) return NULL;
 
@@ -1361,7 +1361,7 @@ arithmetic_multioperand(int operator, int flags, 
gal_data_t *list,
         {
         case GAL_ARITHMETIC_OP_QUANTILE:
           if(p1<0 || p1>1)
-            error(EXIT_FAILURE, 0, "%s: the parameter given to the `quantile' "
+            error(EXIT_FAILURE, 0, "%s: the parameter given to the 'quantile' "
                   "operator must be between (and including) 0 and 1. The "
                   "given value is: %g", __func__, p1);
           break;
@@ -1484,7 +1484,7 @@ arithmetic_multioperand(int operator, int flags, 
gal_data_t *list,
    don't need to be checked (the floating point standard will do the job
    for us). It is also not necessary to check blanks in bitwise operators,
    but bitwise operators have their own macro
-   (`BINARY_OP_INCR_OT_RT_LT_SET') which doesn' use `checkblanks'.*/
+   ('BINARY_OP_INCR_OT_RT_LT_SET') which doesn' use 'checkblanks'.*/
 int
 gal_arithmetic_binary_checkblank(gal_data_t *l, gal_data_t *r)
 {
@@ -1522,7 +1522,7 @@ arithmetic_binary_out_type(int operator, gal_data_t *l, 
gal_data_t *r)
 static gal_data_t *
 arithmetic_binary(int operator, int flags, gal_data_t *l, gal_data_t *r)
 {
-  /* Read the variable arguments. `lo' and `ro' keep the original data, in
+  /* Read the variable arguments. 'lo' and 'ro' keep the original data, in
      case their type isn't built (based on configure options are configure
      time). */
   int32_t otype;
@@ -1540,10 +1540,10 @@ arithmetic_binary(int operator, int flags, gal_data_t 
*l, gal_data_t *r)
 
 
   /* Set the output type. For the comparison operators, the output type is
-     either 0 or 1, so we will set the output type to `unsigned char' for
+     either 0 or 1, so we will set the output type to 'unsigned char' for
      efficient memory and CPU usage. Since the number of operators without
-     a fixed output type (like the conditionals) is less, by `default' we
-     will set the output type to `unsigned char', and if any of the other
+     a fixed output type (like the conditionals) is less, by 'default' we
+     will set the output type to 'unsigned char', and if any of the other
      operatrs are given, it will be chosen based on the input types.*/
   otype=arithmetic_binary_out_type(operator, l, r);
 
@@ -1564,8 +1564,8 @@ arithmetic_binary(int operator, int flags, gal_data_t *l, 
gal_data_t *r)
 
 
   /* If the output pointer was not set above for any of the possible
-     reasons, allocate it. For `mmapsize', note that since its `size_t', it
-     will always be positive. The `-1' that is recommended to give when you
+     reasons, allocate it. For 'mmapsize', note that since its 'size_t', it
+     will always be positive. The '-1' that is recommended to give when you
      want the value in RAM is actually the largest possible memory
      location. So we just have to choose the smaller minmapsize of the two
      to decide if the output array should be in RAM or not. */
@@ -1720,8 +1720,8 @@ arithmetic_binary_function_flt(int operator, int flags, 
gal_data_t *l,
 
 
   /* If the output pointer was not set for any reason, allocate it. For
-     `mmapsize', note that since its `size_t', it will always be
-     Positive. The `-1' that is recommended to give when you want the value
+     'mmapsize', note that since its 'size_t', it will always be
+     Positive. The '-1' that is recommended to give when you want the value
      in RAM is actually the largest possible memory location. So we just
      have to choose the smaller minmapsize of the two to decide if the
      output array should be in RAM or not. */
@@ -1744,10 +1744,10 @@ arithmetic_binary_function_flt(int operator, int flags, 
gal_data_t *l,
 
 
   /* Clean up. Note that if the input arrays can be freed, and any of right
-     or left arrays needed conversion, `BINFUNC_CONVERT_TO_COMPILED_TYPE'
-     has already freed the input arrays, and we only have `r' and `l'
+     or left arrays needed conversion, 'BINFUNC_CONVERT_TO_COMPILED_TYPE'
+     has already freed the input arrays, and we only have 'r' and 'l'
      allocated in any case. Alternatively, when the inputs shouldn't be
-     freed, the only allocated spaces are the `r' and `l' arrays if their
+     freed, the only allocated spaces are the 'r' and 'l' arrays if their
      types weren't compiled for binary operations, we can tell this from
      the pointers: if they are different from the original pointers, they
      were allocated. */
@@ -2172,7 +2172,7 @@ gal_arithmetic(int operator, size_t numthreads, int 
flags, ...)
 
     /* When the operator is not recognized. */
     default:
-      error(EXIT_FAILURE, 0, "%s: the argument \"%d\" could not be "
+      error(EXIT_FAILURE, 0, "%s: the argument '%d' could not be "
             "interpretted as an operator", __func__, operator);
     }
 
diff --git a/lib/binary.c b/lib/binary.c
index 84b9690..7ebfdf9 100644
--- a/lib/binary.c
+++ b/lib/binary.c
@@ -55,7 +55,7 @@ binary_erode_dilate_2d_4con(gal_data_t *input, int 
dilate0_erode1)
   /* Do a sanity check: */
   if(dilate0_erode1!=1 && dilate0_erode1!=0)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so we can "
-          "fix this problem. The value to `dilate0_erode1' is %u while it "
+          "fix this problem. The value to 'dilate0_erode1' is %u while it "
           "should be 0 or 1", __func__, PACKAGE_BUGREPORT, dilate0_erode1);
 
   /* Set the foreground and background values. */
@@ -259,15 +259,15 @@ binary_erode_dilate_general(gal_data_t *input, unsigned 
char dilate0_erode1,
 
 
 
-/* Erode a binary dataset any number of times. If `inplace' is given a
-   value of `1', then do the erosion within the already allocated space,
+/* Erode a binary dataset any number of times. If 'inplace' is given a
+   value of '1', then do the erosion within the already allocated space,
    otherwise, allocate a new array and save the result into that.
 
    This function will only work on the elements with a value of 1 or 0. It
    will leave all the rest unchanged. Also note that it only works on
-   `uint8_t' type datasets. So if the input doesn't have that type, it is
+   'uint8_t' type datasets. So if the input doesn't have that type, it is
    going to copy it this type and return the newlyallocated dataset. So
-   when the input's type isn't `uint8_t', `inplace' is irrelevant. */
+   when the input's type isn't 'uint8_t', 'inplace' is irrelevant. */
 static gal_data_t *
 binary_erode_dilate(gal_data_t *input, size_t num, int connectivity,
                     int inplace, int d0e1)
@@ -279,7 +279,7 @@ binary_erode_dilate(gal_data_t *input, size_t num, int 
connectivity,
   /* Currently this only works on blocks. */
   if(input->block)
     error(EXIT_FAILURE, 0, "%s: currently only works on a fully "
-          "allocated block of memory, but the input is a tile (its `block' "
+          "allocated block of memory, but the input is a tile (its 'block' "
           "element is not NULL)", __func__);
 
   /* Set the dataset to work on. */
@@ -352,8 +352,8 @@ gal_binary_open(gal_data_t *input, size_t num, int 
connectivity,
   /* First do the necessary number of erosions. */
   out=gal_binary_erode(input, num, connectivity, inplace);
 
-  /* If `inplace' was called, then `out' is the same as `input', if it
-     wasn't, then `out' is a newly allocated array. In any case, we should
+  /* If 'inplace' was called, then 'out' is the same as 'input', if it
+     wasn't, then 'out' is a newly allocated array. In any case, we should
      dilate in the same allocated space. */
   gal_binary_dilate(input, num, connectivity, 1);
 
@@ -397,7 +397,7 @@ gal_binary_connected_components(gal_data_t *binary, 
gal_data_t **out,
 
   /* Two small sanity checks. */
   if(binary->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: the input data set type must be `uint8'",
+    error(EXIT_FAILURE, 0, "%s: the input data set type must be 'uint8'",
           __func__);
   if(binary->block)
     error(EXIT_FAILURE, 0, "%s: currently, the input data structure to "
@@ -412,13 +412,13 @@ gal_binary_connected_components(gal_data_t *binary, 
gal_data_t **out,
 
       /* Make sure the given dataset has the same size as the input. */
       if( gal_dimension_is_different(binary, lab) )
-        error(EXIT_FAILURE, 0, "%s: the `binary' and `out' datasets must "
+        error(EXIT_FAILURE, 0, "%s: the 'binary' and 'out' datasets must "
               "have the same size", __func__);
 
-      /* Make sure it has a `int32' type. */
+      /* Make sure it has a 'int32' type. */
       if( lab->type!=GAL_TYPE_INT32 )
-        error(EXIT_FAILURE, 0, "%s: the `out' dataset must have `int32' type"
-              "but the array you have given is `%s' type", __func__,
+        error(EXIT_FAILURE, 0, "%s: the 'out' dataset must have 'int32' type"
+              "but the array you have given is '%s' type", __func__,
               gal_type_name(lab->type, 1));
 
       /* Reset all its values to zero. */
@@ -491,7 +491,7 @@ gal_binary_connected_components(gal_data_t *binary, 
gal_data_t **out,
 
 
 
-/* Put the indexs of connected labels in a list of `gal_data_t's, each with
+/* Put the indexs of connected labels in a list of 'gal_data_t's, each with
    a one-dimensional array that has the indexs of that connected
    component.*/
 #define BINARY_CONINDEX_VAL 2
@@ -506,7 +506,7 @@ gal_binary_connected_indexs(gal_data_t *binary, int 
connectivity)
 
   /* Small sanity checks. */
   if(binary->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: the input data set type must be `uint8'",
+    error(EXIT_FAILURE, 0, "%s: the input data set type must be 'uint8'",
           __func__);
   if(binary->block)
     error(EXIT_FAILURE, 0, "%s: currently, the input data structure to "
@@ -516,7 +516,7 @@ gal_binary_connected_indexs(gal_data_t *binary, int 
connectivity)
   b=binary->array;
   for(i=0;i<binary->size;++i)
     /* A pixel that has already been recorded is given a value of
-       `BINARY_CONINDEX_VAL'. */
+       'BINARY_CONINDEX_VAL'. */
     if( b[i]==1 )
       {
         /* Add this pixel to the queue of pixels to work with. */
@@ -569,7 +569,7 @@ gal_binary_connected_indexs(gal_data_t *binary, int 
connectivity)
   }
   */
 
-  /* Set all the `2' values back to `1'. */
+  /* Set all the '2' values back to '1'. */
   bf=(b=binary->array)+binary->size;
   do if(*b==BINARY_CONINDEX_VAL) *b=1; while(++b<bf);
 
@@ -597,8 +597,8 @@ gal_binary_connected_adjacency_matrix(gal_data_t *adjacency,
 
   /* Some small sanity checks. */
   if(adjacency->type != GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: input must have type `uint8'. However, the "
-          "input dataset has type of `%s'", __func__,
+    error(EXIT_FAILURE, 0, "%s: input must have type 'uint8'. However, the "
+          "input dataset has type of '%s'", __func__,
           gal_type_name(adjacency->type, 1));
 
   if(adjacency->ndim != 2)
@@ -766,8 +766,8 @@ gal_binary_holes_label(gal_data_t *input, int connectivity,
 
   /* A small sanity check. */
   if( input->type != GAL_TYPE_UINT8 )
-    error(EXIT_FAILURE, 0, "%s: input must have `uint8' type, but its "
-          "input dataset has `%s' type", __func__,
+    error(EXIT_FAILURE, 0, "%s: input must have 'uint8' type, but its "
+          "input dataset has '%s' type", __func__,
           gal_type_name(input->type, 1));
 
 
@@ -785,13 +785,13 @@ gal_binary_holes_label(gal_data_t *input, int 
connectivity,
      we should invert the respective pixel. To do it, we'll use the tile
      that was defined before, just change its block and array.*/
   tile->array=gal_tile_block_relative_to_other(tile, holelabs);
-  tile->block=holelabs; /* has to be after correcting `tile->array'. */
+  tile->block=holelabs; /* has to be after correcting 'tile->array'. */
 
 
-  /* The type of the tile is already known (it is `int32_t') and we have no
-     output/other, so we'll just put `int' as a place-holder. In this way
+  /* The type of the tile is already known (it is 'int32_t') and we have no
+     output/other, so we'll just put 'int' as a place-holder. In this way
      we can avoid the switch statement of GAL_TILE_PARSE_OPERATE, and
-     directly use the workhorse macro `GAL_TILE_PO_OISET'. */
+     directly use the workhorse macro 'GAL_TILE_PO_OISET'. */
   lab=(holelabs)->array;
   GAL_TILE_PO_OISET(int32_t, int, tile, NULL, 0, 0, {
       *lab++ = ( *i
@@ -812,7 +812,7 @@ gal_binary_holes_label(gal_data_t *input, int connectivity,
      from the start, effectively removing the paddings. Therefore, ee will
      just correct the sizes and we won't bother actually re-allocating the
      array size in memory. According to the GNU C library's description
-     after `realloc': "In several allocation implementations, making a
+     after 'realloc': "In several allocation implementations, making a
      block smaller sometimes necessitates copying it, so it can fail if no
      other space is available.". The extra padding is only 2 pixels wide,
      thus, the extra space is negligible compared to the actual array. So
@@ -850,7 +850,7 @@ gal_binary_holes_label(gal_data_t *input, int connectivity,
 
    3. Since we had a 2 pixel padding on the edges of the image, we
       know for sure that all labeled regions with a label of 1 are
-      actually connected `holes' in the input image.
+      actually connected 'holes' in the input image.
 
       Any pixel with a label larger than 1, is therefore a bounded
       hole that is not 8-connected to the rest of the holes.  */
@@ -864,8 +864,8 @@ gal_binary_holes_fill(gal_data_t *input, int connectivity, 
size_t maxsize)
 
   /* Small sanity checks. */
   if( input->type != GAL_TYPE_UINT8 )
-    error(EXIT_FAILURE, 0, "%s: input must have `uint8' type, but its "
-          "input dataset has `%s' type", __func__,
+    error(EXIT_FAILURE, 0, "%s: input must have 'uint8' type, but its "
+          "input dataset has '%s' type", __func__,
           gal_type_name(input->type, 1));
   if(connectivity<1 || connectivity>input->ndim)
     error(EXIT_FAILURE, 0, "%s: connectivity value %d is not acceptable. "
@@ -886,7 +886,7 @@ gal_binary_holes_fill(gal_data_t *input, int connectivity, 
size_t maxsize)
      that was defined before, just change its block and array.*/
   in=input->array;
   tile->array=gal_tile_block_relative_to_other(tile, holelabs);
-  tile->block=holelabs; /* has to be after correcting `tile->array'. */
+  tile->block=holelabs; /* has to be after correcting 'tile->array'. */
 
   /* If the user wants to only fill holes to a certain size, then remove
      those with a larger size. */
@@ -908,10 +908,10 @@ gal_binary_holes_fill(gal_data_t *input, int 
connectivity, size_t maxsize)
       free(sizes);
     }
 
-  /* The type of the tile is already known (it is `int32_t') and we have no
-     output, so we'll just put `int' as a place-holder. In this way we can
+  /* The type of the tile is already known (it is 'int32_t') and we have no
+     output, so we'll just put 'int' as a place-holder. In this way we can
      avoid the switch statement of GAL_TILE_PARSE_OPERATE, and directly use
-     the workhorse macro `GAL_TILE_PO_OISET'. */
+     the workhorse macro 'GAL_TILE_PO_OISET'. */
   GAL_TILE_PO_OISET(int32_t, int, tile, NULL, 0, 0, {
       *in = *i>1 && *i!=GAL_BLANK_INT32 ? 1 : *in;
       ++in;
diff --git a/lib/blank.c b/lib/blank.c
index 5eded42..951efe0 100644
--- a/lib/blank.c
+++ b/lib/blank.c
@@ -41,7 +41,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 /* Write the blank value of the type into an already allocate space. Note
-   that for STRINGS, pointer should actually be `char **'. */
+   that for STRINGS, pointer should actually be 'char **'. */
 void
 gal_blank_write(void *ptr, uint8_t type)
 {
@@ -134,7 +134,7 @@ gal_blank_initialize_array(void *array, size_t size, 
uint8_t type)
 
 
 /* Print the blank value as a string. For the integer types, we'll use the
-   PRIxNN keywords of `inttypes.h' (which is imported into Gnuastro from
+   PRIxNN keywords of 'inttypes.h' (which is imported into Gnuastro from
    Gnulib, so we don't necessarily rely on the host system having it). */
 char *
 gal_blank_as_string(uint8_t type, int width)
@@ -364,13 +364,13 @@ gal_blank_is(void *pointer, uint8_t type)
 
 /* Return 1 if the dataset has a blank value and zero if it doesn't. Before
    checking the dataset, this function will look at its flags. If the
-   `GAL_DATA_FLAG_HASBLANK' or `GAL_DATA_FLAG_DONT_CHECK_ZERO' bits of
-   `input->flag' are set to 1, this function will not do any check and will
+   'GAL_DATA_FLAG_HASBLANK' or 'GAL_DATA_FLAG_DONT_CHECK_ZERO' bits of
+   'input->flag' are set to 1, this function will not do any check and will
    just use the information in the flags.
 
    If you want to re-check a dataset which has non-zero flags, then
    explicitly set the appropriate flag to zero before calling this
-   function. When there are no other flags, you can just set `input->flags'
+   function. When there are no other flags, you can just set 'input->flags'
    to zero, otherwise you can use this expression:
 
        input->flags &= ~ (GAL_DATA_FLAG_HASBLANK | GAL_DATA_FLAG_USE_ZERO);
@@ -602,12 +602,12 @@ gal_blank_flag_apply(gal_data_t *input, gal_data_t *flag)
 
   /* Sanity check. */
   if(flag->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: the `flag' argument has a `%s' type, it "
+    error(EXIT_FAILURE, 0, "%s: the 'flag' argument has a '%s' type, it "
           "must have an unsigned 8-bit type", __func__,
           gal_type_name(flag->type, 1));
   if(gal_dimension_is_different(input, flag))
-    error(EXIT_FAILURE, 0, "%s: the `flag' argument doesn't have the same "
-          "size as the `input' argument", __func__);
+    error(EXIT_FAILURE, 0, "%s: the 'flag' argument doesn't have the same "
+          "size as the 'input' argument", __func__);
 
   /* Write the blank values. */
   switch(input->type)
@@ -660,9 +660,9 @@ gal_blank_flag_apply(gal_data_t *input, gal_data_t *flag)
 
 
 /* Remove blank elements from a dataset, convert it to a 1D dataset and
-   adjust the size properly. In practice this function doesn't `realloc'
+   adjust the size properly. In practice this function doesn't 'realloc'
    the input array, all it does is to shift the blank eleemnts to the end
-   and adjust the size elements of the `gal_data_t'. */
+   and adjust the size elements of the 'gal_data_t'. */
 #define BLANK_REMOVE(IT) {                                              \
     IT b, *a=input->array, *af=a+input->size, *o=input->array;          \
     gal_blank_write(&b, input->type);                                   \
@@ -718,7 +718,7 @@ gal_blank_remove(gal_data_t *input)
 
 
 
-/* Similar to `gal_blank_remove', but also reallocates/frees the extra
+/* Similar to 'gal_blank_remove', but also reallocates/frees the extra
    space. */
 void
 gal_blank_remove_realloc(gal_data_t *input)
diff --git a/lib/box.c b/lib/box.c
index 49751fb..a43c641 100644
--- a/lib/box.c
+++ b/lib/box.c
@@ -102,7 +102,7 @@ gal_box_bound_ellipse(double a, double b, double theta_deg, 
long *width)
 
 /* Find the bounding box of an ellipsoid. An ellipsoid is defined by its
    three axises: the first (a) must be the major axis, the other two must
-   be smaller than `a' but no particular relation between them is
+   be smaller than 'a' but no particular relation between them is
    assumed. We will define the orientation of the ellipsoid from its major
    axis and use the "Proper Euler angles" (ZXZ order) to define that
    orientation.
@@ -117,8 +117,8 @@ gal_box_bound_ellipse(double a, double b, double theta_deg, 
long *width)
 
       https://en.wikipedia.org/wiki/Euler_angles
 
-   Defining the general point `p' as (the transpose of `p' with `p^T' and
-   its inverse with `p^-1'):
+   Defining the general point 'p' as (the transpose of 'p' with 'p^T' and
+   its inverse with 'p^-1'):
 
            | x |
        p = | y |
@@ -138,7 +138,7 @@ gal_box_bound_ellipse(double a, double b, double theta_deg, 
long *width)
    vertical vectors into one matrix. The rotation can be written as the
    following combined affine transformation (only in the three main axises
    (since we aren't dealing with translation here). Here, we'll call
-   `sin(alpha)' as `s1', `cos(beta)' as `c2' and `sin(gamma)' as `s3'.
+   'sin(alpha)' as 's1', 'cos(beta)' as 'c2' and 'sin(gamma)' as 's3'.
 
                    Rotate by Euler angles
                 ----------------------------
@@ -146,7 +146,7 @@ gal_box_bound_ellipse(double a, double b, double theta_deg, 
long *width)
     R = | s1   c1  0 | * | 0   c2  -s2 | * | s3   c3   0 |
         | 0    0   1 |   | 0   s2   c2 |   | 0    0    1 |
 
-   Then `M' (rotation and scaling to obtain ellipsoid from sphere) will be:
+   Then 'M' (rotation and scaling to obtain ellipsoid from sphere) will be:
 
             | a |          | 0 |          | 0 |              | A1 B1 C1 |
     A = R * | 0 |, B = R * | b |, C = R * | 0 |    -->   M = | A2 B2 C2 |
@@ -162,27 +162,27 @@ gal_box_bound_ellipse(double a, double b, double 
theta_deg, long *width)
 
      (M^-1 * p)^T * S * (M^-1 * p) = 0  --> p^T * (M^-T * S * M^-1) * p = 0
 
-   Writing Q = M^-T * S * M^-1, we get: `p^T * Q * p = 0'. Now, we define a
-   plane with a horizontal vector `u = [a b c d ]', such that `u.p=0'. For
-   a point on the ellipsoid (at `p') we have: `u^T=p^T * Q'. This is
-   because: `u.p = u^T * p = p^T * Q * p = 0' (as we showed above).
+   Writing Q = M^-T * S * M^-1, we get: 'p^T * Q * p = 0'. Now, we define a
+   plane with a horizontal vector 'u = [a b c d ]', such that 'u.p=0'. For
+   a point on the ellipsoid (at 'p') we have: 'u^T=p^T * Q'. This is
+   because: 'u.p = u^T * p = p^T * Q * p = 0' (as we showed above).
 
    Tangent planes will have the following useful property:
 
         u^T * Q^-1 * u = p^T * Q * Q^-1 * Q * p = p^T * Q * p = 0
 
    Now, the particular plane that is perpendicular to the X axis has the
-   general form: `u = [ 1 0 0 -x ]'. So, defining `R = Q^1', and using the
+   general form: 'u = [ 1 0 0 -x ]'. So, defining 'R = Q^1', and using the
    property above for tangential planes, we can find the X axis position.
 
-   However, getting to `R' from `M' as described above is not easy. So,
+   However, getting to 'R' from 'M' as described above is not easy. So,
    taking the following considerations into account, we can derive the
    final values: [from that webpage] "Several details of the problem can
-   make computing the planes more efficient. The first is that `S' is
-   involutory, meaning `S^-1 = S'. This means that the product `M * S^-1'
-   can be computed implicitly: it is simply `M' with its last column
-   negated. The last column of `R = M * S^-1 * MT' is the same, because the
-   last column of `M^T' is `[ 0 0 0 1 ]'. In particular, `R[4,4]=-1'.
+   make computing the planes more efficient. The first is that 'S' is
+   involutory, meaning 'S^-1 = S'. This means that the product 'M * S^-1'
+   can be computed implicitly: it is simply 'M' with its last column
+   negated. The last column of 'R = M * S^-1 * MT' is the same, because the
+   last column of 'M^T' is '[ 0 0 0 1 ]'. In particular, 'R[4,4]=-1'.
 
    Not all values of RR are used; in fact, only values from the last column
    and the diagonal appear in the formulae. We know the last column
@@ -192,7 +192,7 @@ gal_box_bound_ellipse(double a, double b, double theta_deg, 
long *width)
 
    So the bounding box lengths along each dimension are the
    following. Recall that in homogenous coordinates, the last column is for
-   translation. So in the case of this function all the `M[i,4]' values are
+   translation. So in the case of this function all the 'M[i,4]' values are
    zero.
 
       x = M[1,4] \pm sqrt( M[1,1]^2 + M[1,2]^2 + M[1,3]^2 )
@@ -242,7 +242,7 @@ gal_box_bound_ellipsoid_extent(double *semiaxes, double 
*euler_deg,
 
 
 
-/* Using `gal_box_bound_ellipsoid_extent', find the integer width of a box
+/* Using 'gal_box_bound_ellipsoid_extent', find the integer width of a box
    that contains the ellipsoid. */
 #define PRINT3BY3(C, A){                                                \
     printf("%s: | %-15g%-15g%-15g |\n"                                  \
@@ -419,7 +419,7 @@ gal_box_overlap(long *naxes, long *fpixel_i, long *lpixel_i,
       */
       if(fpixel_i[i]<1)
         {
-          /* Along any dimension, if `lpixel_i' is also smaller than 1,
+          /* Along any dimension, if 'lpixel_i' is also smaller than 1,
              then there is no overlap. */
           if(lpixel_i[i]<1) return 0;
 
@@ -442,7 +442,7 @@ gal_box_overlap(long *naxes, long *fpixel_i, long *lpixel_i,
         cropped image we should only fill upto c-n.*/
       if(lpixel_i[i]>naxes[i])
         {
-          /* Along any dimension, if `fpixel_i' is larger than the image
+          /* Along any dimension, if 'fpixel_i' is larger than the image
              size, there is no overlap. */
           if(fpixel_i[i]>naxes[i]) return 0;
 
diff --git a/lib/checkset.c b/lib/checkset.c
index 03f332e..a5069f6 100644
--- a/lib/checkset.c
+++ b/lib/checkset.c
@@ -57,13 +57,13 @@ gal_checkset_gsl_rng(uint8_t envseed_bool, const char 
**name,
   gsl_rng *rng;
 
   /* Let GSL read the environment and convert the type name (as string) to
-     `gsl_rng_type'. After this function, `gsl_rng_default' contains the
-     generator's type and `gsl_rng_default_seed' contains the (possibly)
+     'gsl_rng_type'. After this function, 'gsl_rng_default' contains the
+     generator's type and 'gsl_rng_default_seed' contains the (possibly)
      given seed.*/
   gsl_rng_env_setup();
 
   /* Allocate the random number generator based on the requested type and
-     save its name. If no `GSL_RNG_TYPE' is set, then use a fixed
+     save its name. If no 'GSL_RNG_TYPE' is set, then use a fixed
      generator.*/
   rng=gsl_rng_alloc(secure_getenv("GSL_RNG_TYPE")
                     ? gsl_rng_default
@@ -71,7 +71,7 @@ gal_checkset_gsl_rng(uint8_t envseed_bool, const char **name,
   *name = gsl_rng_name(rng);
 
   /* Initialize the random number generator, depending on the
-     `envseed_bool' argument. */
+     'envseed_bool' argument. */
   *seed = ( envseed_bool
             ? gsl_rng_default_seed
             : gal_timing_time_based_rng_seed() );
@@ -270,7 +270,7 @@ gal_checkset_not_dir_part(char *filename)
   size_t i, l;
   char *out, *tmp=filename;
 
-  /* Find the first `/' to identify the directory */
+  /* Find the first '/' to identify the directory */
   l=strlen(filename);
   for(i=l;i!=0;--i)
     if(filename[i]=='/')
@@ -312,7 +312,7 @@ gal_checkset_check_file(char *filename)
 
 
 
-/* Similar to `gal_checkset_check_file', but will report the result instead
+/* Similar to 'gal_checkset_check_file', but will report the result instead
    of doing it quietly. */
 int
 gal_checkset_check_file_return(char *filename)
@@ -343,14 +343,14 @@ gal_checkset_writable_notexist(char *filename)
   char *dir;
   FILE *tmpfile;
 
-  /* If the filename is `NULL' everything is ok (it doesn't exist)! In some
+  /* If the filename is 'NULL' everything is ok (it doesn't exist)! In some
      cases, a NULL filename is interpretted to mean standard output. */
   if(filename==NULL) return 1;
 
   /* We want to make sure that we can open and write to this file. But
      the user might have asked to not delete the file, so the
      contents should not be changed. Therefore we have to open it with
-     `r+`. */
+     'r+'. */
   errno=0;
   tmpfile=fopen(filename, "r+");
   if (tmpfile)                        /* The file opened. */
@@ -387,10 +387,10 @@ gal_checkset_writable_notexist(char *filename)
 
 
 
-/* Check if a file exists and can be opened. If the `keep' value is
+/* Check if a file exists and can be opened. If the 'keep' value is
    non-zero, then the file will remain untouched, otherwise, it will be
    deleted (since most programs need to make a clean output). When the file
-   is to be deleted and `dontdelete' has a non-zero value, then the file
+   is to be deleted and 'dontdelete' has a non-zero value, then the file
    won't be deleted, but the program will abort with an error, informing
    the user that the output can't be made. */
 void
@@ -399,7 +399,7 @@ gal_checkset_writable_remove(char *filename, int keep, int 
dontdelete)
   char *dir;
   FILE *tmpfile;
 
-  /* If the filename is `NULL' everything is ok (it doesn't exist)! In some
+  /* If the filename is 'NULL' everything is ok (it doesn't exist)! In some
      cases, a NULL filename is interpretted to mean standard output. */
   if(filename==NULL)
     return;
@@ -407,7 +407,7 @@ gal_checkset_writable_remove(char *filename, int keep, int 
dontdelete)
   /* We want to make sure that we can open and write to this file. But
      the user might have asked to not delete the file, so the
      contents should not be changed. Therefore we have to open it with
-     `r+`. */
+     'r+'. */
   errno=0;
   tmpfile=fopen(filename, "r+");
   if (tmpfile)                        /* The file opened. */
@@ -423,8 +423,8 @@ gal_checkset_writable_remove(char *filename, int keep, int 
dontdelete)
           /* Make sure it is ok to delete the file. */
           if(dontdelete)
             error(EXIT_FAILURE, 0, "%s already exists and you have "
-                  "asked to not remove it with the `--dontdelete` "
-                  "(`-D`) option", filename);
+                  "asked to not remove it with the '--dontdelete' "
+                  "('-D') option", filename);
 
           /* Delete the file: */
           errno=0;
@@ -444,7 +444,7 @@ gal_checkset_writable_remove(char *filename, int keep, int 
dontdelete)
       errno=0;
       if( access(dir, W_OK) )
         error(EXIT_FAILURE, errno, "cannot create any file(s) in the "
-              "directory `%s'", dir);
+              "directory '%s'", dir);
 
       /* Clean up. */
       free(dir);
@@ -537,15 +537,15 @@ gal_checkset_automatic_output(struct 
gal_options_common_params *cp,
       l=strlen(inname);
       for(i=l-1;i!=0;--i)
         {
-          /* We don't want to touch anything before a `/' (directory
+          /* We don't want to touch anything before a '/' (directory
              names). We are only concerned with file names here. */
           if(out[i]=='/')
             {
-              /* When `/' is the last input character, then the input is
+              /* When '/' is the last input character, then the input is
                  clearly not a filename, but a directory name. In this
                  case, adding a suffix is meaningless (a suffix belongs to
                  a filename for Gnuastro's tools). So close the string
-                 after the `/' and leave the loop. However, if the `/'
+                 after the '/' and leave the loop. However, if the '/'
                  isn't the last input name charector, there is probably a
                  filename (without a "." suffix), so break from the
                  loop. No further action is required, since we initially
@@ -557,9 +557,9 @@ gal_checkset_automatic_output(struct 
gal_options_common_params *cp,
             }
 
           /* The input file names can be compressed names (for example
-             `.fits.gz'). Currently the only compressed formats
+             '.fits.gz'). Currently the only compressed formats
              (decompressed within CFITSIO) are listed in
-             `gal_fits_name_is_fits' and `gal_fits_suffix_is_fits'.*/
+             'gal_fits_name_is_fits' and 'gal_fits_suffix_is_fits'.*/
           else if(out[i]=='.' && !( ( out[i+1]=='g' && out[i+2]=='z' )
                                     || (out[i+1]=='f' && out[i+2]=='z' )
                                     || out[i+1]=='Z' ) )
@@ -596,8 +596,8 @@ gal_checkset_automatic_output(struct 
gal_options_common_params *cp,
 
 
 /* Check write-ability by trying to make a temporary file. Return 0 if the
-   directory is writable, and `errno' if it isn't. We won't be using
-   `facccessat' because its not available on some systems (macOS 10.9 and
+   directory is writable, and 'errno' if it isn't. We won't be using
+   'facccessat' because its not available on some systems (macOS 10.9 and
    earlier, see https://github.com/conda-forge/staged-recipes/pull/9723
    ). */
 static int
@@ -608,7 +608,7 @@ checkset_directory_writable(char *dirname)
   char *tmpname;
 
   /* Set the template for the temporary file (accounting for the possible
-     extra `/'). */
+     extra '/'). */
   if(dirname[strlen(dirname)-1]=='/')
     tmpname=gal_checkset_malloc_cat(dirname, "gnuastroXXXXXX");
   else
@@ -664,18 +664,18 @@ gal_checkset_check_dir_write_add_slash(char **dirname)
   printf("\n\n%s\n\n", tmpname);
   if( write(file_d, buf, strlen(buf)) == -1 )
     error(EXIT_FAILURE, errno, "%s: writing to this temporary file to "
-          "check the given `%s` directory", tmpname, indir);
+          "check the given '%s' directory", tmpname, indir);
   */
   errno=0;
   if( close(file_d) == -1 )
     error(EXIT_FAILURE, errno, "%s: Closing this temporary file to check "
-          "the given `%s` directory", tmpname, indir);
+          "the given '%s' directory", tmpname, indir);
 
   /* Delete the temporary file: */
   errno=0;
   if(unlink(tmpname)==-1)
     error(EXIT_FAILURE, errno, "%s: removing this temporary file made "
-          "to check the given `%s directory`", tmpname, indir);
+          "to check the given '%s directory'", tmpname, indir);
 
   /* Remove the extra characters that were added for the random name. */
   tmpname[strlen(tmpname)-14]='\0';
@@ -691,7 +691,7 @@ gal_checkset_check_dir_write_add_slash(char **dirname)
 /* If the given directory exists and is writable, then nothing is done and
    this function returns 0. If it doesn't, it will be created. If it fails
    at creating the file, or the file isn't writable it returns a non-zero
-   value: the errno, which can be directly used in `error'. */
+   value: the errno, which can be directly used in 'error'. */
 int
 gal_checkset_mkdir(char *dirname)
 {
@@ -709,6 +709,6 @@ gal_checkset_mkdir(char *dirname)
     /* The directory exists, see if its writable. */
     errnum=checkset_directory_writable(dirname);
 
-  /* Return the final `errno'. */
+  /* Return the final 'errno'. */
   return errnum;
 }
diff --git a/lib/convolve.c b/lib/convolve.c
index 3ba6132..8013058 100644
--- a/lib/convolve.c
+++ b/lib/convolve.c
@@ -128,8 +128,8 @@ struct spatial_params
 
 
 /* Define the overlap of the kernel and image over this part of the image,
-   the necessary input image parameters are stored in `overlap' (its
-   `array' and `dsize' elements).  */
+   the necessary input image parameters are stored in 'overlap' (its
+   'array' and 'dsize' elements).  */
 static int
 convolve_spatial_overlap(struct per_thread_spatial_prm *pprm, int tocorrect)
 {
@@ -164,9 +164,9 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
       dim_full_overlap=1;
 
       /* When the tile is on the edge, some pixels in it can have full
-         overlap. So using the `dim_full_overlap', we will do the same
+         overlap. So using the 'dim_full_overlap', we will do the same
          thing we do for the tiles that don't overlap for them. When
-         `tocorrect!=0', then only pixels that are on the edge of the tile
+         'tocorrect!=0', then only pixels that are on the edge of the tile
          will get to this point, so it must always be checked. */
       if( tocorrect ? 1 : pprm->on_edge )
         {
@@ -181,7 +181,7 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
                  With the start: assume that in this dimension, the pixel
                  is at position 2, while the kernel is 11 pixels wide (or 5
                  pixels in half-width). As seen below, the kernel should
-                 start from pixel `5-2=3' in this dimension and the overlap
+                 start from pixel '5-2=3' in this dimension and the overlap
                  size should decrease by the same amount.
 
                     image:            0 1 2 3 4 5 6 7 8 9 ...
@@ -193,7 +193,7 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
                  no longer worried about the overlap or kernel starting
                  point, it is the width that we need to decrease it by:
 
-                   97 + 5 - 100 + 1 : The `1' is because we want the pixel
+                   97 + 5 - 100 + 1 : The '1' is because we want the pixel
                                       immediately after the end.
 
                     image:        ... 92 93 94 95 96 97 98 99 | 100 101 102
@@ -210,7 +210,7 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
               if(is_start) *od -= *k/2 - *p;
               if(is_end)   *od -= *p + *k/2 - *h + 1;
 
-              /* Put the overlap size into the kernel's overlap `dsize'
+              /* Put the overlap size into the kernel's overlap 'dsize'
                  also and then use it to update the total size of the
                  overlap. */
               *kd++ = *od;
@@ -244,13 +244,13 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
   while(++p<pf);
 
 
-  /* Update the `size' element of both overlap datasets. */
+  /* Update the 'size' element of both overlap datasets. */
   pprm->i_overlap->size = pprm->k_overlap->size = size;
 
 
   /* Make correction.
 
-      Normal mode (when `tocorrect==0'): add the host's starting location
+      Normal mode (when 'tocorrect==0'): add the host's starting location
          (necessary when convolution over the host/channel is treated
          independently). In this mode, until now we were working as if the
          the host/channel is the full image so the edges don't get
@@ -259,7 +259,7 @@ convolve_spatial_overlap(struct per_thread_spatial_prm 
*pprm, int tocorrect)
          proper place within the allocated array.
 
       To-correct mode: The boundaries were calculated with respect to the
-         block, so we don't need to correct `overlap_start'. But we need to
+         block, so we don't need to correct 'overlap_start'. But we need to
          correct the pixel position back to its original state (relative to
          the channel). */
   hs=pprm->host_start;
@@ -304,8 +304,8 @@ convolve_spatial_tile(struct per_thread_spatial_prm *pprm)
   size_t j, ndim=block->ndim, csize=tile->dsize[ndim-1];
   gal_data_t *i_overlap=pprm->i_overlap, *k_overlap=pprm->k_overlap;
 
-  /* Variables for scanning a tile (`i_*') and the region around every
-     pixel of a tile (`o_*'). */
+  /* Variables for scanning a tile ('i_*') and the region around every
+     pixel of a tile ('o_*'). */
   size_t start_fastdim;
   size_t i_inc, i_ninc, i_st_en[2];
 
@@ -315,17 +315,17 @@ convolve_spatial_tile(struct per_thread_spatial_prm *pprm)
 
 
   /* Starting pixel for the host of this tile. Note that when we are in
-     `convoverch' mode, `host' refers to the fully allocated block of
+     'convoverch' mode, 'host' refers to the fully allocated block of
      memory. */
   pprm->host=cprm->convoverch ? block : tile->block;
   gal_tile_start_coord(pprm->host, pprm->host_start);
 
 
   /* Set the starting and ending coordinates of this tile (recall that the
-     space for the start and end coordinates is stored in `p->pix'). When
-     `convoverch' is set, we want to convolve over the whole allocated
+     space for the start and end coordinates is stored in 'p->pix'). When
+     'convoverch' is set, we want to convolve over the whole allocated
      block, not just one channel. So in effect, it is the same as
-     `rel_block' in `gal_tile_start_end_coord'. */
+     'rel_block' in 'gal_tile_start_end_coord'. */
   gal_tile_start_end_coord(tile, pprm->pix, cprm->convoverch);
   start_fastdim = pprm->pix[ndim-1];
 
@@ -336,7 +336,7 @@ convolve_spatial_tile(struct per_thread_spatial_prm *pprm)
 
 
   /* If it isn't on the edge and we are correcting an already convolved
-     image (`tocorrect!=NULL'), then this tile can be ignored. */
+     image ('tocorrect!=NULL'), then this tile can be ignored. */
   if(cprm->tocorrect && pprm->on_edge==0) return;
 
 
@@ -346,7 +346,7 @@ convolve_spatial_tile(struct per_thread_spatial_prm *pprm)
   while( i_st_en[0] + i_inc <= i_st_en[1] )
     {
       /* Initialize the value along the fastest dimension (it is not
-         incremented during `gal_tile_block_increment'). */
+         incremented during 'gal_tile_block_increment'). */
       pprm->pix[ndim-1]=start_fastdim;
 
       /* Go over each pixel to convolve. */
@@ -356,7 +356,7 @@ convolve_spatial_tile(struct per_thread_spatial_prm *pprm)
           in_v = i_start + i_inc + j;
 
           /* If the input on this pixel is a NaN, then just set the output
-             to NaN too and go onto the next pixel. `in_v' is the pointer
+             to NaN too and go onto the next pixel. 'in_v' is the pointer
              on this pixel. */
           if( isnan(*in_v) )
             out[ in_v - in ]=NAN;
@@ -428,7 +428,7 @@ convolve_spatial_on_thread(void *inparam)
                                      "dsize");
 
 
-  /* Set all dsize values to 1 (the values within `overlap->dsize' will be
+  /* Set all dsize values to 1 (the values within 'overlap->dsize' will be
      changed during convolution). */
   for(i=0;i<ndim;++i) dsize[i]=1;
 
@@ -467,7 +467,7 @@ convolve_spatial_on_thread(void *inparam)
 
 
   /* Clean up, wait until all other threads finish, then return. In a
-     single thread situation, `tprm->b==NULL'. */
+     single thread situation, 'tprm->b==NULL'. */
   free(pprm->pix);
   free(pprm->host_start);
   free(pprm->kernel_start);
@@ -483,7 +483,7 @@ convolve_spatial_on_thread(void *inparam)
 
 
 /* General spatial convolve function. This function is called by both
-   `gal_convolve_spatial' and */
+   'gal_convolve_spatial' and */
 static gal_data_t *
 gal_convolve_spatial_general(gal_data_t *tiles, gal_data_t *kernel,
                              size_t numthreads, int edgecorrection,
@@ -498,7 +498,7 @@ gal_convolve_spatial_general(gal_data_t *tiles, gal_data_t 
*kernel,
     error(EXIT_FAILURE, 0, "%s: The number of dimensions between the kernel "
           "and input should be the same", __func__);
   if( block->type!=GAL_TYPE_FLOAT32 || kernel->type!=GAL_TYPE_FLOAT32 )
-    error(EXIT_FAILURE, 0, "%s: only accepts `float32' type input and "
+    error(EXIT_FAILURE, 0, "%s: only accepts 'float32' type input and "
           "kernel currently", __func__);
 
   /* It may happen that an input dataset is part of a linked list, but it
@@ -508,8 +508,8 @@ gal_convolve_spatial_general(gal_data_t *tiles, gal_data_t 
*kernel,
   if( tiles->block==NULL && tiles->next && tiles->next->block==NULL )
     error(EXIT_FAILURE, 0, "%s: the input is a linked list but not a "
           "tessellation (a list of tiles). This function is optimized to "
-          "work on a list of tiles. Please (temporarily) set the `next' "
-          "element of the input to `NULL' and call this function again",
+          "work on a list of tiles. Please (temporarily) set the 'next' "
+          "element of the input to 'NULL' and call this function again",
           __func__);
 
 
@@ -543,7 +543,7 @@ gal_convolve_spatial_general(gal_data_t *tiles, gal_data_t 
*kernel,
   errno=0;
   params.pprm=malloc(numthreads * sizeof *params.pprm);
   if(params.pprm==NULL)
-    error(EXIT_FAILURE, 0, "%s: %zu bytes for `params.pprm'",
+    error(EXIT_FAILURE, 0, "%s: %zu bytes for 'params.pprm'",
           __func__, numthreads * sizeof *params.pprm);
 
 
@@ -565,12 +565,12 @@ gal_convolve_spatial_general(gal_data_t *tiles, 
gal_data_t *kernel,
    convolution can be greatly sped up if it is done on separate tiles over
    the image (on multiple threads). So as input, you can either give tile
    values or one full array. Just note that if you give a single array as
-   input, the `next' element has to be `NULL'.*/
+   input, the 'next' element has to be 'NULL'.*/
 gal_data_t *
 gal_convolve_spatial(gal_data_t *tiles, gal_data_t *kernel,
                      size_t numthreads, int edgecorrection, int convoverch)
 {
-  /* When there isn't any tile structure, `convoverch' must be set to
+  /* When there isn't any tile structure, 'convoverch' must be set to
      one. Recall that the input can be a single full dataset also. */
   if(tiles->block==NULL) convoverch=1;
 
@@ -584,7 +584,7 @@ gal_convolve_spatial(gal_data_t *tiles, gal_data_t *kernel,
 
 
 /* Correct the edges of channels in an already convolved image when it was
-   initially convolved with `gal_convolve_spatial' with `convoverch==0'. In
+   initially convolved with 'gal_convolve_spatial' with 'convoverch==0'. In
    that case, strong boundaries exist on the tile edges. So if you later
    need to remove those boundaries, you can call this function, it will
    only do convolution on the tiles that are near the edge, not the full
@@ -598,12 +598,12 @@ gal_convolve_spatial_correct_ch_edge(gal_data_t *tiles, 
gal_data_t *kernel,
 
   /* Some small sanity checks. */
   if( gal_dimension_is_different(block, tocorrect) )
-    error(EXIT_FAILURE, 0, "%s: the `tocorrect' dataset has to have the "
-          "same dimensions/size as the block of the `tiles' input", __func__);
+    error(EXIT_FAILURE, 0, "%s: the 'tocorrect' dataset has to have the "
+          "same dimensions/size as the block of the 'tiles' input", __func__);
   if( block->type != tocorrect->type )
-    error(EXIT_FAILURE, 0, "%s: the `tocorrect' dataset has to have the same "
-          "type as the block of the `tiles' input. The given types are `%s' "
-          "and `%s' respectively", __func__,
+    error(EXIT_FAILURE, 0, "%s: the 'tocorrect' dataset has to have the same "
+          "type as the block of the 'tiles' input. The given types are '%s' "
+          "and '%s' respectively", __func__,
           gal_type_name(tocorrect->type, 1), gal_type_name(block->type, 1));
 
   /* Call the general function, which will do the correction. */
diff --git a/lib/data.c b/lib/data.c
index 7e05060..a487bcf 100644
--- a/lib/data.c
+++ b/lib/data.c
@@ -96,15 +96,15 @@ gal_data_alloc(void *array, uint8_t type, size_t ndim, 
size_t *dsize,
 
    Some notes:
 
-   - The `status' value is the only element that cannot be set by this
+   - The 'status' value is the only element that cannot be set by this
      function, it is initialized to zero.
 
-   - If no `array' is given, a blank array of the given size will be
+   - If no 'array' is given, a blank array of the given size will be
      allocated. If it is given the array pointer will be directly put here,
      so do not free it independently any more. If you want a separate copy
-     of a dataset, you should use `gal_data_copy', not this function.
+     of a dataset, you should use 'gal_data_copy', not this function.
 
-   - Space for the `name', `unit', and `comment' strings within the data
+   - Space for the 'name', 'unit', and 'comment' strings within the data
      structure are allocated here. So you can safely use literal strings,
      or statically allocated ones, or simply the strings from other data
      structures (and not have to worry about which one to free later).
@@ -141,8 +141,8 @@ gal_data_initialize(gal_data_t *data, void *array, uint8_t 
type,
 
 
   /* Allocate space for the dsize array, only if the data are to have any
-     dimensions. Note that in our convention, a number has a `ndim=1' and
-     `dsize[0]=1', A 1D array also has `ndim=1', but `dsize[0]>1'. */
+     dimensions. Note that in our convention, a number has a 'ndim=1' and
+     'dsize[0]=1', A 1D array also has 'ndim=1', but 'dsize[0]>1'. */
   if(ndim)
     {
       /* Allocate dsize. */
@@ -153,7 +153,7 @@ gal_data_initialize(gal_data_t *data, void *array, uint8_t 
type,
               __func__, ndim*sizeof *data->dsize);
 
 
-      /* Fill in the `dsize' array and in the meantime set `size': */
+      /* Fill in the 'dsize' array and in the meantime set 'size': */
       data->size=1;
       for(i=0;i<ndim;++i)
         {
@@ -217,17 +217,17 @@ gal_data_initialize(gal_data_t *data, void *array, 
uint8_t type,
 
 
 /* Free the allocated contents of a data structure, not the structure
-   itsself. The reason that this function is separate from `gal_data_free'
+   itsself. The reason that this function is separate from 'gal_data_free'
    is that the data structure might be allocated as an array (statically
-   like `gal_data_t da[20]', or dynamically like `gal_data_t *da;
+   like 'gal_data_t da[20]', or dynamically like 'gal_data_t *da;
    da=malloc(20*sizeof *da);'). In both cases, a loop will be necessary to
    delete the allocated contents of each element of the data structure
    array, but not the structure its self. After that loop, if the array of
    data structures was statically allocated, you don't have to do
    anything. If it was dynamically allocated, we just have to run
-   `free(da)'.
+   'free(da)'.
 
-   Since we aren't freeing the `gal_data_t' its-self, after the allocated
+   Since we aren't freeing the 'gal_data_t' its-self, after the allocated
    space for each pointer is freed, the pointer is set to NULL for safety
    (to avoid possible re-calls).
 */
@@ -239,7 +239,7 @@ gal_data_free_contents(gal_data_t *data)
 
   if(data==NULL)
     error(EXIT_FAILURE, 0, "%s: the input data structure to "
-          "`gal_data_free_contents' was a NULL pointer", __func__);
+          "'gal_data_free_contents' was a NULL pointer", __func__);
 
   /* Free all the possible allocations. */
   if(data->name)    { free(data->name);    data->name    = NULL; }
@@ -327,14 +327,14 @@ gal_data_array_calloc(size_t size)
   errno=0;
   out=malloc(size*sizeof *out);
   if(out==NULL)
-    error(EXIT_FAILURE, errno, "%s: %zu bytes for `out'", __func__,
+    error(EXIT_FAILURE, errno, "%s: %zu bytes for 'out'", __func__,
           size*sizeof *out);
 
 
   /* Set the pointers to NULL if they didn't exist and the non-pointers to
      impossible integers (so the caller knows the array is only
-     allocated. `minmapsize' should be set when allocating the array and
-     should be set when you run `gal_data_initialize'. */
+     allocated. 'minmapsize' should be set when allocating the array and
+     should be set when you run 'gal_data_initialize'. */
   for(i=0;i<size;++i)
     {
       out[i].array      = NULL;
@@ -409,14 +409,14 @@ gal_data_array_free(gal_data_t *dataarr, size_t size, int 
free_array)
 /*************************************************************
  **************            Copying             ***************
  *************************************************************/
-/* Only to be used in `data_copy_from_string'. */
+/* Only to be used in 'data_copy_from_string'. */
 static void
 data_copy_to_string_not_parsed(char *string, void *to, uint8_t type)
 {
   if( strcmp(string, GAL_BLANK_STRING) )
     gal_blank_write(to, type);
   else
-    error(EXIT_FAILURE, 0, "%s: `%s' couldn't be parsed as `%s' type",
+    error(EXIT_FAILURE, 0, "%s: '%s' couldn't be parsed as '%s' type",
           __func__, string, gal_type_name(type, 1));
 }
 
@@ -424,7 +424,7 @@ data_copy_to_string_not_parsed(char *string, void *to, 
uint8_t type)
 
 
 
-/* The `from' array is an array of strings. We want to keep it as
+/* The 'from' array is an array of strings. We want to keep it as
    numbers. Note that the case where both input and output structures are
    string was */
 static void
@@ -436,9 +436,9 @@ data_copy_from_string(gal_data_t *from, gal_data_t *to)
 
   /* Sanity check. */
   if(from->type!=GAL_TYPE_STRING)
-    error(EXIT_FAILURE, 0, "%s: `from' must have a string type.", __func__);
+    error(EXIT_FAILURE, 0, "%s: 'from' must have a string type.", __func__);
   if(from->block)
-    error(EXIT_FAILURE, 0, "%s: tiles not currently supported (`block' "
+    error(EXIT_FAILURE, 0, "%s: tiles not currently supported ('block' "
           "element must be NULL). Please contact us at %s so we can "
           "implement this feature", __func__, PACKAGE_BUGREPORT);
 
@@ -517,7 +517,7 @@ data_copy_from_string(gal_data_t *from, gal_data_t *to)
   }
 
 /* Convert any given type into a string by printing it into the elements of
-   the already allocated `to->array'. */
+   the already allocated 'to->array'. */
 static void
 data_copy_to_string(gal_data_t *from, gal_data_t *to)
 {
@@ -527,10 +527,10 @@ data_copy_to_string(gal_data_t *from, gal_data_t *to)
 
   /* Sanity check */
   if(to->type!=GAL_TYPE_STRING)
-    error(EXIT_FAILURE, 0, "%s: `to' must have a string type", __func__);
+    error(EXIT_FAILURE, 0, "%s: 'to' must have a string type", __func__);
   if(from->block)
     error(EXIT_FAILURE, 0, "%s: tile inputs not currently supported "
-          "(`block' element must be NULL). Please contact us at %s so we "
+          "('block' element must be NULL). Please contact us at %s so we "
           "can implement this feature", __func__, PACKAGE_BUGREPORT);
 
   /* Do the copying */
@@ -580,7 +580,7 @@ data_copy_to_string(gal_data_t *from, gal_data_t *to)
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%s: type %d not recognized for `from->type'",
+      error(EXIT_FAILURE, 0, "%s: type %d not recognized for 'from->type'",
             __func__, from->type);
     }
 }
@@ -612,7 +612,7 @@ data_copy_to_string(gal_data_t *from, gal_data_t *to)
     /* Parse over the input and copy it. */                             \
     while( s_e_ind[0] + increment <= s_e_ind[1] )                       \
       {                                                                 \
-        /* If we are on a tile, reset `i' and  `f' for each round. */   \
+        /* If we are on a tile, reset 'i' and  'f' for each round. */   \
         if(in!=iblock)                                                  \
           f = ( i = ist + increment ) + contig_len;                     \
                                                                         \
@@ -629,7 +629,7 @@ data_copy_to_string(gal_data_t *from, gal_data_t *to)
             /* If the blank is a NaN value (only for floating point  */ \
             /* types), it will fail any comparison, so we'll exploit */ \
             /* this property in such cases. For other cases, a       */ \
-            /* `*i==ib' is enough.                                   */ \
+            /* '*i==ib' is enough.                                   */ \
             if(ib==ib) do *o++ = *i==ib ? ob : *i; while(++i<f);        \
             else       do *o++ = *i!=*i ? ob : *i; while(++i<f);        \
           }                                                             \
@@ -673,14 +673,14 @@ data_copy_to_string(gal_data_t *from, gal_data_t *to)
                                                                         \
     default:                                                            \
       error(EXIT_FAILURE, 0, "%s: type code %d not recognized for "     \
-            "`in->type'", "COPY_OT_SET", in->type);                     \
+            "'in->type'", "COPY_OT_SET", in->type);                     \
     }
 
 
 
 
 
-/* Wrapper for `gal_data_copy_to_new_type', but will copy to the same type
+/* Wrapper for 'gal_data_copy_to_new_type', but will copy to the same type
    as the input. Recall that if the input is a tile (a part of the input,
    which is not-contiguous if it has more than one dimension), then the
    output will have only the elements that cover the tile.*/
@@ -740,10 +740,10 @@ gal_data_copy_to_new_type_free(gal_data_t *in, uint8_t 
newtype)
         gal_data_free(in);
       else
         fprintf(stderr, "#####\nWarning from "
-                "`gal_data_copy_to_new_type_free'\n#####\n The input "
+                "'gal_data_copy_to_new_type_free'\n#####\n The input "
                 "dataset is a tile, not a contiguous (fully allocated) "
                 "patch of memory. So it has not been freed. Please use "
-                "`gal_data_copy_to_new_type' to avoid this warning.\n"
+                "'gal_data_copy_to_new_type' to avoid this warning.\n"
                 "#####");
       return out;
     }
@@ -753,21 +753,21 @@ gal_data_copy_to_new_type_free(gal_data_t *in, uint8_t 
newtype)
 
 
 
-/* Copy a given dataset (`in') into an already allocated dataset `out' (the
-   actual dataset and its `array' element). The meta-data of `in' (except
-   for `block') will be fully copied into `out' also. `out->size' will be
+/* Copy a given dataset ('in') into an already allocated dataset 'out' (the
+   actual dataset and its 'array' element). The meta-data of 'in' (except
+   for 'block') will be fully copied into 'out' also. 'out->size' will be
    used to find the available space in the allocated space.
 
-   When `in->size != out->size' this function will behave as follows:
+   When 'in->size != out->size' this function will behave as follows:
 
-      `out->size < in->size': it won't re-allocate the necessary space, it
+      'out->size < in->size': it won't re-allocate the necessary space, it
           will abort with an error, so please check before calling this
           function.
 
-      `out->size > in->size': it will update `out->size' and `out->dsize'
+      'out->size > in->size': it will update 'out->size' and 'out->dsize'
           to be the same as the input. So if you want to re-use a
           pre-allocated space with varying input sizes, be sure to reset
-          `out->size' before every call to this function. */
+          'out->size' before every call to this function. */
 void
 gal_data_copy_to_allocated(gal_data_t *in, gal_data_t *out)
 {
@@ -824,7 +824,7 @@ gal_data_copy_to_allocated(gal_data_t *in, gal_data_t *out)
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%s: type %d not recognized for `out->type'",
+      error(EXIT_FAILURE, 0, "%s: type %d not recognized for 'out->type'",
             __func__, out->type);
     }
 
@@ -840,8 +840,8 @@ gal_data_copy_to_allocated(gal_data_t *in, gal_data_t *out)
 
 
 
-/* Just a wrapper around `gal_type_from_string_auto', to return a
-   `gal_data_t' dataset hosting the allocated number. */
+/* Just a wrapper around 'gal_type_from_string_auto', to return a
+   'gal_data_t' dataset hosting the allocated number. */
 gal_data_t *
 gal_data_copy_string_to_number(char *string)
 {
diff --git a/lib/dimension.c b/lib/dimension.c
index e994a92..8187fb4 100644
--- a/lib/dimension.c
+++ b/lib/dimension.c
@@ -78,7 +78,7 @@ gal_dimension_is_different(gal_data_t *first, gal_data_t 
*second)
 
 
 /* Calculate the values necessary to increment/decrement along each
-   dimension of a dataset with size `dsize'. */
+   dimension of a dataset with size 'dsize'. */
 size_t *
 gal_dimension_increment(size_t ndim, size_t *dsize)
 {
@@ -187,10 +187,10 @@ gal_dimension_coord_to_index(size_t ndim, size_t *dsize, 
size_t *coord)
 
 
 
-/* You know the index (`ind') of a point/tile in an n-dimensional (`ndim')
-   array which has `dsize[i]' elements along dimension `i'. You want to
+/* You know the index ('ind') of a point/tile in an n-dimensional ('ndim')
+   array which has 'dsize[i]' elements along dimension 'i'. You want to
    know the coordinates of that point along each dimension. The output is
-   not actually returned, it must be allocated (`ndim' elements) before
+   not actually returned, it must be allocated ('ndim' elements) before
    calling this function. This function will just fill it. The reason for
    this is that this function will often be called with a loop and a single
    allocated space would be enough for the whole loop. */
@@ -335,7 +335,7 @@ dimension_collapse_sanity_check(gal_data_t *in, gal_data_t 
*weight,
 
   /* If there is no blank value, there is no point in calculating the
      number of points in each collapsed dataset (when necessary). In that
-     case, `cnum!=0'. */
+     case, 'cnum!=0'. */
   if(hasblank==0)
     *cnum=in->dsize[c_dim];
 
@@ -411,7 +411,7 @@ dimension_collapse_sizes(gal_data_t *in, size_t c_dim, 
size_t *outndim,
 #define COLLAPSE_CHECKBLANK(OIND,IIND) {                                \
     if(hasblank)                                                        \
       {                                                                 \
-        if(B==B) /* An integer type: blank can be checked with `=='. */ \
+        if(B==B) /* An integer type: blank can be checked with '=='. */ \
           {                                                             \
             if( inarr[IIND] != B )           COLLAPSE_WRITE(OIND,IIND); \
           }                                                             \
@@ -548,7 +548,7 @@ gal_dimension_collapse_sum(gal_data_t *in, size_t c_dim, 
gal_data_t *weight)
             __func__, in->type);
     }
 
-  /* If `num' is zero on any element, set its sum to NaN. */
+  /* If 'num' is zero on any element, set its sum to NaN. */
   if(num)
     {
       ii = num->array;
@@ -557,8 +557,8 @@ gal_dimension_collapse_sum(gal_data_t *in, size_t c_dim, 
gal_data_t *weight)
     }
 
   /* Remove the respective dimension in the WCS structure also (if any
-     exists). Note that `sum->ndim' has already been changed. So we'll use
-     `in->wcs'. */
+     exists). Note that 'sum->ndim' has already been changed. So we'll use
+     'in->wcs'. */
   gal_wcs_remove_dimension(sum->wcs, in->ndim-c_dim);
 
   /* Clean up and return. */
@@ -642,7 +642,7 @@ gal_dimension_collapse_mean(gal_data_t *in, size_t c_dim,
             __func__, in->type);
     }
 
-  /* If `num' is zero on any element, set its sum to NaN. */
+  /* If 'num' is zero on any element, set its sum to NaN. */
   if(num)
     {
       ii = num->array;
@@ -724,8 +724,8 @@ gal_dimension_collapse_number(gal_data_t *in, size_t c_dim)
     }
 
   /* Remove the respective dimension in the WCS structure also (if any
-     exists). Note that `sum->ndim' has already been changed. So we'll use
-     `in->wcs'. */
+     exists). Note that 'sum->ndim' has already been changed. So we'll use
+     'in->wcs'. */
   gal_wcs_remove_dimension(num->wcs, in->ndim-c_dim);
 
   /* Return. */
@@ -786,8 +786,8 @@ gal_dimension_collapse_minmax(gal_data_t *in, size_t c_dim, 
int max1_min0)
     }
 
   /* Remove the respective dimension in the WCS structure also (if any
-     exists). Note that `sum->ndim' has already been changed. So we'll use
-     `in->wcs'. */
+     exists). Note that 'sum->ndim' has already been changed. So we'll use
+     'in->wcs'. */
   gal_wcs_remove_dimension(minmax->wcs, in->ndim-c_dim);
 
   /* Clean up and return. */
@@ -832,7 +832,7 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs)
         /* Shift all subsequent dimensions to replace this one. */
         for(j=i;j<ndim-1;++j) dsize[j]=dsize[j+1];
 
-        /* Decrement the `i' and the total number of dimension. */
+        /* Decrement the 'i' and the total number of dimension. */
         --i;
         --ndim;
       }
diff --git a/lib/eps.c b/lib/eps.c
index bc4611e..2a927b8 100644
--- a/lib/eps.c
+++ b/lib/eps.c
@@ -266,7 +266,7 @@ eps_write_ascii85(gal_data_t *write, FILE *fp, size_t 
numbytes)
                 anint=( arr[j]*256*256*256 + arr[j+1]*256*256
                         + arr[j+2]*256     + arr[j+3]         );
 
-              /* If all four bytes are zero, then just print `z'. */
+              /* If all four bytes are zero, then just print 'z'. */
               if(anint==0) fprintf(fp, "z");
               else
                 {
@@ -387,8 +387,8 @@ gal_eps_write(gal_data_t *in, char *filename, float 
widthincm,
     error(EXIT_FAILURE, 0, "%s: only 1, 3, and 4 color channels are "
           "acceptable, input is a list of %zu data sets", __func__, numch);
   if(in->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: input has a `%s' type, but JPEG images can "
-          "only have a `uint8' type", __func__, gal_type_name(in->type, 1));
+    error(EXIT_FAILURE, 0, "%s: input has a '%s' type, but JPEG images can "
+          "only have a 'uint8' type", __func__, gal_type_name(in->type, 1));
 
 
   /* Read the time to write in the output. */
diff --git a/lib/fits.c b/lib/fits.c
index 7a76a8c..e76ff66 100644
--- a/lib/fits.c
+++ b/lib/fits.c
@@ -94,7 +94,7 @@ gal_fits_io_error(int status, char *message)
  **************           FITS names           ***************
  *************************************************************/
 /* IMPORTANT NOTE: if other compression suffixes are add to this function,
-   include them in `gal_checkset_automatic_output', so the compression
+   include them in 'gal_checkset_automatic_output', so the compression
    suffix can be skipped when the user doesn't specify an output
    filename.*/
 int
@@ -123,7 +123,7 @@ gal_fits_name_is_fits(char *name)
 
 
 /* IMPORTANT NOTE: if other compression suffixes are add to this function,
-   include them in `gal_checkset_automatic_output', so the compression
+   include them in 'gal_checkset_automatic_output', so the compression
    suffix can be skipped when the user doesn't specify an output
    filename.*/
 int
@@ -151,7 +151,7 @@ gal_fits_suffix_is_fits(char *suffix)
 
 
 
-/* If the name is a FITS name, then put a `(hdu: ...)' after it and return
+/* If the name is a FITS name, then put a '(hdu: ...)' after it and return
    the string. If it isn't a FITS file, just print the name. Note that the
    space is allocated. */
 char *
@@ -318,7 +318,7 @@ gal_fits_type_to_datatype(uint8_t type)
     case GAL_TYPE_STRING:           return TSTRING;
 
     /* Types that depend on the host system. The C standard says that the
-       `short', `int' and `long' types are ATLEAST 2, 2, 4 bytes, so to be
+       'short', 'int' and 'long' types are ATLEAST 2, 2, 4 bytes, so to be
        safe, we will check all of them for the 32-bit types.*/
     case GAL_TYPE_UINT16:
       w=2;
@@ -332,9 +332,9 @@ gal_fits_type_to_datatype(uint8_t type)
       else if( sizeof(int)      == w )   return TINT;
       break;
 
-    /* On 32-bit systems, the length of `int' and `long' are both
+    /* On 32-bit systems, the length of 'int' and 'long' are both
        32-bits. But CFITSIO's LONG type is preferred because it is designed
-       to be 32-bit. Its `INT' type is not clearly defined and caused
+       to be 32-bit. Its 'INT' type is not clearly defined and caused
        problems when reading keywords.*/
     case GAL_TYPE_UINT32:
       w=4;
@@ -371,12 +371,12 @@ gal_fits_type_to_datatype(uint8_t type)
   /* If control reaches, here, there was a problem with the host types. */
   if(w)
     error(EXIT_FAILURE, 0, "%s: this system doesn't have a %d byte integer "
-          "type, so type `%s' cannot be written to FITS", __func__, w,
+          "type, so type '%s' cannot be written to FITS", __func__, w,
           gal_type_name(type, 1));
   else
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so we can "
           "fix the problem. Control must not have reached the end for the "
-          "given type `%s'", __func__, PACKAGE_BUGREPORT,
+          "given type '%s'", __func__, PACKAGE_BUGREPORT,
           gal_type_name(type, 1));
   return -1;
 }
@@ -499,14 +499,14 @@ fits_type_correct(int *type, double bscale, char 
*bzero_str)
   int tofloat=1;
   char *tailptr, *bzero_u64="9223372036854775808";
 
-  /* If bzero_str is given and `bscale=1.0' the case might be that we are
+  /* If bzero_str is given and 'bscale=1.0' the case might be that we are
      dealing with an integer dataset that just needs a different sign. */
   if(bzero_str && bscale==1.0f)
     {
-      /* Read the `bzero' string as a `double' number. */
+      /* Read the 'bzero' string as a 'double' number. */
       bzero  = strtod(bzero_str, &tailptr);
       if(tailptr==bzero_str)
-        error(EXIT_FAILURE, 0, "%s: BZERO value `%s' couldn't be "
+        error(EXIT_FAILURE, 0, "%s: BZERO value '%s' couldn't be "
               "parsed as a number", __func__, bzero_str);
 
       /* Work based on type. For the default conversions defined by the
@@ -526,13 +526,13 @@ fits_type_correct(int *type, double bscale, char 
*bzero_str)
           if(bzero == 2147483648LU) { *type = GAL_TYPE_UINT32; tofloat=0; }
           break;
 
-        /* The `bzero' value for unsigned 64-bit integers has 19 decimal
-           digits, but a 64-bit floating point (`double' type) can only
+        /* The 'bzero' value for unsigned 64-bit integers has 19 decimal
+           digits, but a 64-bit floating point ('double' type) can only
            safely store 15 decimal digits. As a result, the safest way to
-           check the `bzero' value for this type is to compare it as a
+           check the 'bzero' value for this type is to compare it as a
            string. But all integers nearby (for example
-           `9223372036854775807') get rounded to this same value (when
-           stored as `double'). So we will also check the parsed number and
+           '9223372036854775807') get rounded to this same value (when
+           stored as 'double'). So we will also check the parsed number and
            if it equals this number, a warning will be printed. */
         case GAL_TYPE_INT64:
           if( !strcmp(bzero_str, bzero_u64) )
@@ -541,8 +541,8 @@ fits_type_correct(int *type, double bscale, char *bzero_str)
             if( bzero == 9223372036854775808LLU )
               {
                 fprintf(stderr, "\nWARNING in %s: the BZERO header keyword "
-                        "value (`%s') is very close (but not exactly equal) "
-                        "to `%s'. The latter value in the FITS standard is "
+                        "value ('%s') is very close (but not exactly equal) "
+                        "to '%s'. The latter value in the FITS standard is "
                         "used to identify that the dataset should be read as "
                         "unsigned 64-bit integers instead of signed 64-bit "
                         "integers. Depending on your version of CFITSIO, "
@@ -552,7 +552,7 @@ fits_type_correct(int *type, double bscale, char *bzero_str)
               }
           break;
 
-          /* For the other types (when `BSCALE=1.0f'), currently no
+          /* For the other types (when 'BSCALE=1.0f'), currently no
              correction is necessary, maybe later we can check if the
              scales are integers and set the integer output type to the
              smallest type that can allow the scaled values. */
@@ -679,7 +679,7 @@ gal_fits_hdu_format(char *filename, char *hdu)
 
 
 
-/* Open a given HDU and return the FITS pointer. `iomode' determines how
+/* Open a given HDU and return the FITS pointer. 'iomode' determines how
    the FITS file will be opened: only to read or to read and write. You
    should use the macros given by the CFITSIO header:
 
@@ -701,7 +701,7 @@ gal_fits_hdu_open(char *filename, char *hdu, int iomode)
     {
       switch(status)
         {
-        /* Since the default HDU is `1', when the file only has one
+        /* Since the default HDU is '1', when the file only has one
            extension, this error is common, so we will put a special
            notice. */
         case END_OF_FILE:
@@ -709,9 +709,9 @@ gal_fits_hdu_open(char *filename, char *hdu, int iomode)
             error(EXIT_FAILURE, 0, "%s has only one extension/HDU but you "
                   "have asked for the second HDU (hdu number 1 in CFITSIO)."
                   "\n\n"
-                  "To fix the problem please add `--hdu=0' (or `-h0') to "
+                  "To fix the problem please add '--hdu=0' (or '-h0') to "
                   "your command when calling Gnuastro's programs. For "
-                  "library users, please give a value of \"0\" to the HDU "
+                  "library users, please give a value of '0' to the HDU "
                   "argument.\n\n"
                   "FOOTNOTE -- When writing a new FITS file, Gnuastro leaves "
                   "the first HDU blank (with no data) and writes the "
@@ -736,12 +736,12 @@ gal_fits_hdu_open(char *filename, char *hdu, int iomode)
                             "the given file");
         }
 
-      error(EXIT_FAILURE, 0, "%s: extension/HDU `%s' doesn't exist. Please "
+      error(EXIT_FAILURE, 0, "%s: extension/HDU '%s' doesn't exist. Please "
             "run the following command to see the extensions/HDUs in "
-            "`%s':\n\n"
+            "'%s':\n\n"
             "    $ astfits %s\n\n"
             "The respective HDU number (or name, when present) may be used "
-            "with the `--hdu' option in Gnuastro's programs (or the `hdu' "
+            "with the '--hdu' option in Gnuastro's programs (or the 'hdu' "
             "argument in Gnuastro's libraries) to open the respective HDU.",
             filename, hdu, filename, filename);
     }
@@ -856,7 +856,7 @@ gal_fits_key_img_blank(uint8_t type)
             "data type", __func__, type);
     }
 
-  /* If `gal_blank_alloc_write' wasn't used (copy!=NULL), then allocate the
+  /* If 'gal_blank_alloc_write' wasn't used (copy!=NULL), then allocate the
      necessary space and fill it in. Note that the width of the signed and
      unsigned values doesn't differ, so we can use the actual input
      type. */
@@ -894,8 +894,8 @@ gal_fits_key_clean_str_value(char *string)
     if(string[end]!=' ')
       break;
 
-  /* Shift all the characters after the first one (which is a `'' back by
-     one and put the string ending characters on the `end'th element. */
+  /* Shift all the characters after the first one (which is a ''' back by
+     one and put the string ending characters on the 'end'th element. */
   cf=(c=string)+end; do *c=*(c+1); while(++c<cf);
   *cf='\0';
 }
@@ -903,11 +903,11 @@ gal_fits_key_clean_str_value(char *string)
 
 
 
-/* Fill the `tm' structure (defined in `time.h') with the values derived
+/* Fill the 'tm' structure (defined in 'time.h') with the values derived
    from a FITS format date-string and return the (optional) sub-second
    information as a double.
 
-   The basic FITS string is defined under the `DATE' keyword in the FITS
+   The basic FITS string is defined under the 'DATE' keyword in the FITS
    standard. For the more complete format which includes timezones, see the
    W3 standard: https://www.w3.org/TR/NOTE-datetime */
 char *
@@ -916,33 +916,33 @@ gal_fits_key_date_to_struct_tm(char *fitsdate, struct tm 
*tp)
   int hasT=0, hassq=0, usesdash=0, usesslash=0, hasZ=0;
   char *C, *cc, *c=NULL, *cf, *subsec=NULL, *nosubsec=fitsdate;
 
-  /* Initialize the `tm' structure to all-zero elements. In particular, The
-     FITS standard times are written in UTC, so, the time zone (`tm_zone'
+  /* Initialize the 'tm' structure to all-zero elements. In particular, The
+     FITS standard times are written in UTC, so, the time zone ('tm_zone'
      element, which specifies number of seconds to shift for the time zone)
-     has to be zero. The day-light saving flag (`isdst' element) also has
+     has to be zero. The day-light saving flag ('isdst' element) also has
      to be set to zero. */
   tp->tm_sec=tp->tm_min=tp->tm_hour=tp->tm_mday=tp->tm_mon=tp->tm_year=0;
   tp->tm_wday=tp->tm_yday=tp->tm_isdst=tp->tm_gmtoff=0;
   tp->tm_zone=NULL;
 
-  /* According to the FITS standard the `T' in the middle of the date and
+  /* According to the FITS standard the 'T' in the middle of the date and
      time of day is optional (the time is not mandatory). */
   cf=(c=fitsdate)+strlen(fitsdate);
   do
     switch(*c)
       {
-      case 'T':  hasT=1;      break; /* With `T' HH:MM:SS are defined.    */
+      case 'T':  hasT=1;      break; /* With 'T' HH:MM:SS are defined.    */
       case '-':  usesdash=1;  break; /* Day definition: YYYY-MM-DD.       */
       case '/':  usesslash=1; break; /* Day definition(old): DD/MM/YY.    */
       case '\'': hassq=1;     break; /* Wholly Wrapped in a single-quote. */
-      case 'Z':  hasZ=1;      break; /* When ends in `Z', means UTC. See  */
+      case 'Z':  hasZ=1;      break; /* When ends in 'Z', means UTC. See  */
                                    /* https://www.w3.org/TR/NOTE-datetime */
 
       /* In case we have sub-seconds in the string, we need to remove it
-         because `strptime' doesn't recognize sub-second resolution.*/
+         because 'strptime' doesn't recognize sub-second resolution.*/
       case '.':
         /* Allocate space (by copying the remaining full string and adding
-           a `\0' where necessary. */
+           a '\0' where necessary. */
         gal_checkset_allocate_copy(c, &subsec);
         gal_checkset_allocate_copy(fitsdate, &nosubsec);
 
@@ -972,19 +972,19 @@ gal_fits_key_date_to_struct_tm(char *fitsdate, struct tm 
*tp)
             )
         );
 
-  /* The value might have sub-seconds. In that case, `c' will point to a
-     `.' and we'll have to parse it as double. */
+  /* The value might have sub-seconds. In that case, 'c' will point to a
+     '.' and we'll have to parse it as double. */
   if( c==NULL || (*c!='.' && *c!='\0') )
-    error(EXIT_FAILURE, 0, "`%s' isn't in the FITS date format.\n\n"
+    error(EXIT_FAILURE, 0, "'%s' isn't in the FITS date format.\n\n"
           "According to the FITS standard, the date must be in one of "
           "these formats:\n"
           "   YYYY-MM-DD\n"
           "   YYYY-MM-DDThh:mm:ss\n"
-          "   YYYY-MM-DDThh:mm:ssZ   (Note the `Z',  see *) \n"
-          "   DD/MM/YY               (Note the `YY', see ^)\n"
+          "   YYYY-MM-DDThh:mm:ssZ   (Note the 'Z',  see *) \n"
+          "   DD/MM/YY               (Note the 'YY', see ^)\n"
           "   DD/MM/YYThh:mm:ss\n"
           "   DD/MM/YYThh:mm:ssZ\n\n"
-          "[*]: The `Z' is interpreted as being in the UTC Timezone.\n"
+          "[*]: The 'Z' is interpreted as being in the UTC Timezone.\n"
           "[^]: Gnuastro's FITS library (this program), interprets the "
           "older (two character for year) format, year values 68 to 99 as "
           "the years 1969 to 1999 and values 0 to 68 as the years 2000 to "
@@ -1006,7 +1006,7 @@ gal_fits_key_date_to_struct_tm(char *fitsdate, struct tm 
*tp)
    the keywords) into number of seconds since 1970/01/01, 00:00:00. Very
    useful to avoid calendar issues like number of days in a different
    months or leap years and etc. The remainder of the format string
-   (sub-seconds) will be put into the two pointer arguments: `subsec' is in
+   (sub-seconds) will be put into the two pointer arguments: 'subsec' is in
    double-precision floating point format and  */
 size_t
 gal_fits_key_date_to_seconds(char *fitsdate, char **subsecstr,
@@ -1017,7 +1017,7 @@ gal_fits_key_date_to_seconds(char *fitsdate, char 
**subsecstr,
   struct tm tp;
   void *outptr=subsec;
 
-  /* Fill in the `tp' elements with values read from the string. */
+  /* Fill in the 'tp' elements with values read from the string. */
   tmp=gal_fits_key_date_to_struct_tm(fitsdate, &tp);
 
   /* If the user cared about the remainder (sub-second string), then set it
@@ -1031,14 +1031,14 @@ gal_fits_key_date_to_seconds(char *fitsdate, char 
**subsecstr,
          (if the given pointer isn't NULL). */
       if(subsec)
         if( gal_type_from_string(&outptr, tmp, GAL_TYPE_FLOAT64) )
-          error(EXIT_FAILURE, 0, "%s: the sub-second portion of `%s' (or "
-                "`%s') couldn't be read as a number", __func__, fitsdate,
+          error(EXIT_FAILURE, 0, "%s: the sub-second portion of '%s' (or "
+                "'%s') couldn't be read as a number", __func__, fitsdate,
                 tmp);
     }
 
-  /* Convert the `tm' structure to `time_t'. Note that the system's
+  /* Convert the 'tm' structure to 'time_t'. Note that the system's
      timezone and daylight saving need to be subtracted from the output of
-     `mktime'. Otherwise the result will be different on different
+     'mktime'. Otherwise the result will be different on different
      host-system timezones (which is not what we want here: bug #57995). */
   t=mktime(&tp)-timezone-daylight;
 
@@ -1051,9 +1051,9 @@ gal_fits_key_date_to_seconds(char *fitsdate, char 
**subsecstr,
 
 
 /* Read the keyword values from a FITS pointer. The input should be a
-   linked list of `gal_data_t'. Before calling this function, you just have
-   to set the `name' and desired `type' values of each element in the list
-   to the keyword you want it to keep the value of. The given `name' value
+   linked list of 'gal_data_t'. Before calling this function, you just have
+   to set the 'name' and desired 'type' values of each element in the list
+   to the keyword you want it to keep the value of. The given 'name' value
    will be directly passed to CFITSIO to read the desired keyword. This
    function will allocate space to keep the value. Here is one example of
    using this function:
@@ -1070,31 +1070,31 @@ gal_fits_key_date_to_seconds(char *fitsdate, char 
**subsecstr,
 
       gal_data_array_free(keysll, N, 1);
 
-   If the `array' pointer of each keyword's dataset is not NULL, then it is
+   If the 'array' pointer of each keyword's dataset is not NULL, then it is
    assumed that the space has already been allocated. If it is NULL, then
    space will be allocated internally here.
 
    Strings need special consideration: the reason is that generally,
-   `gal_data_t' needs to also allow for array of strings (as it supports
+   'gal_data_t' needs to also allow for array of strings (as it supports
    arrays of integers for example). Hence two allocations will be done here
-   (one if `array!=NULL') and `keysll[i].array' must be interpretted as
-   `char **': one allocation for the pointer, one for the actual
+   (one if 'array!=NULL') and 'keysll[i].array' must be interpretted as
+   'char **': one allocation for the pointer, one for the actual
    characters. You don't have to worry about the freeing,
-   `gal_data_array_free' will free both allocations. So to read a string,
+   'gal_data_array_free' will free both allocations. So to read a string,
    one easy way would be the following:
 
       char *str, **strarray;
       strarr = keysll[i].array;
       str    = strarray[0];
 
-   If CFITSIO is unable to read a keyword for any reason the `status'
-   element of the respective `gal_data_t' will be non-zero. You can check
-   the successful reading of the keyword from the `status' value in each
-   keyword's `gal_data_t'. If it is zero, then the keyword was found and
+   If CFITSIO is unable to read a keyword for any reason the 'status'
+   element of the respective 'gal_data_t' will be non-zero. You can check
+   the successful reading of the keyword from the 'status' value in each
+   keyword's 'gal_data_t'. If it is zero, then the keyword was found and
    succesfully read. Otherwise, it a CFITSIO status value. You can use
-   CFITSIO's error reporting tools or `gal_fits_io_error' for reporting the
+   CFITSIO's error reporting tools or 'gal_fits_io_error' for reporting the
    reason. A tip: when the keyword doesn't exist, then CFITSIO's status
-   value will be `KEY_NO_EXIST'.
+   value will be 'KEY_NO_EXIST'.
 
    CFITSIO will start searching for the keywords from the last place in the
    header that it searched for a keyword. So it is much more efficient if
@@ -1124,7 +1124,7 @@ gal_fits_key_read_from_ptr(fitsfile *fptr, gal_data_t 
*keysll,
                                           "tmp->dsize");
         tmp->ndim=tmp->size=tmp->dsize[0]=1;
 
-        /* When the type is a string, `tmp->array' is an array of pointers
+        /* When the type is a string, 'tmp->array' is an array of pointers
            to a separately allocated piece of memory. So we have to
            allocate that space here. If its not a string, then the
            allocated space above is enough to keep the value.*/
@@ -1165,7 +1165,7 @@ gal_fits_key_read_from_ptr(fitsfile *fptr, gal_data_t 
*keysll,
 
         /* Allocate space for the keyword unit if necessary. Note that
            since there is no precise CFITSIO length for units, we will use
-           the `FLEN_COMMENT' length for units too (theoretically, the unit
+           the 'FLEN_COMMENT' length for units too (theoretically, the unit
            might take the full remaining area in the keyword). Also note
            that the unit is only optional, so it needs a separate CFITSIO
            function call which is done here.*/
@@ -1193,7 +1193,7 @@ gal_fits_key_read_from_ptr(fitsfile *fptr, gal_data_t 
*keysll,
         if(tmp->comment && tmp->comment[0]=='\0')
           {free(tmp->comment); tmp->comment=NULL;}
 
-        /* Strings need to be cleaned (CFITSIO puts `'' around them with
+        /* Strings need to be cleaned (CFITSIO puts ''' around them with
            some (possiblly) extra space on the two ends of the string. */
       }
 }
@@ -1202,8 +1202,8 @@ gal_fits_key_read_from_ptr(fitsfile *fptr, gal_data_t 
*keysll,
 
 
 
-/* Same as `gal_fits_read_keywords_fptr', but accepts the filename and HDU
-   as input instead of an already opened CFITSIO `fitsfile' pointer. */
+/* Same as 'gal_fits_read_keywords_fptr', but accepts the filename and HDU
+   as input instead of an already opened CFITSIO 'fitsfile' pointer. */
 void
 gal_fits_key_read(char *filename, char *hdu, gal_data_t *keysll,
                   int readcomment, int readunit)
@@ -1323,7 +1323,7 @@ gal_fits_key_list_reverse(gal_fits_list_key_t **list)
   /* Only do the reversal if there is more than one element. */
   if(in && in->next)
     {
-      /* Fill the `reversed' list. */
+      /* Fill the 'reversed' list. */
       while(in!=NULL)
         {
           tmp=in->next;
@@ -1350,12 +1350,12 @@ gal_fits_key_write_title_in_ptr(char *title, fitsfile 
*fptr)
   int status=0;
   char *cp, *cpf, blankrec[80], titlerec[80];
 
-  /* Just in case title is `NULL'. */
+  /* Just in case title is 'NULL'. */
   if(title)
     {
       /* A small sanity check. */
       if( strlen(title) + strlen(GAL_FITS_KEY_TITLE_START) > 78 )
-        fprintf(stderr, "%s: FITS keyword title `%s' is too long to be fully "
+        fprintf(stderr, "%s: FITS keyword title '%s' is too long to be fully "
                 "included in the keyword record (80 characters, where the "
                 "title is prefixed with %zu space characters)",
                 __func__, title, strlen(GAL_FITS_KEY_TITLE_START));
@@ -1406,7 +1406,7 @@ gal_fits_key_write_filename(char *keynamebase, char 
*filename,
       errno=0;
       keyname=malloc(FLEN_KEYWORD);
       if(keyname==NULL)
-        error(EXIT_FAILURE, errno, "%s: %d bytes for `keyname'", __func__,
+        error(EXIT_FAILURE, errno, "%s: %d bytes for 'keyname'", __func__,
               FLEN_KEYWORD);
       if(len<maxlength)
         strcpy(keyname, keynamebase);
@@ -1457,7 +1457,7 @@ gal_fits_key_write_filename(char *keynamebase, char 
*filename,
               strcpy(keyname, keynamebase);
 
               /* Let the user know that  */
-              error(0,0, "%s: WARNING: `%s' is too long to fit "
+              error(0,0, "%s: WARNING: '%s' is too long to fit "
                     "into a FITS keyword value (max of %zu characters), "
                     "it will be truncated", __func__, filename,
                     maxlength);
@@ -1497,8 +1497,8 @@ gal_fits_key_write_wcsstr(fitsfile *fptr, char *wcsstr, 
int nkeyrec)
       keystart=&wcsstr[i*80];
 
       /* Write it if it isn't blank (first character is a space), or not a
-         comment (first 7 characters equal to `COMMENT'). The reason is
-         that WCSLIB adds a blank line and a `COMMENT' keyword saying its
+         comment (first 7 characters equal to 'COMMENT'). The reason is
+         that WCSLIB adds a blank line and a 'COMMENT' keyword saying its
          own version. But Gnuastro writes the version of WCSLIB as a
          separate keyword along with all other important software, so it is
          redundant and just makes the keywrods hard to read by eye.*/
@@ -1637,7 +1637,7 @@ gal_fits_key_write_version_in_ptr(gal_fits_list_key_t 
**keylist, char *title,
       gal_fits_key_write_in_ptr(keylist, fptr);
     }
 
-  /* Print `Versions and date' title. */
+  /* Print 'Versions and date' title. */
   gal_fits_key_write_title_in_ptr("Versions and date", fptr);
 
   /* Set the version of CFITSIO as a string. */
@@ -1740,11 +1740,11 @@ gal_fits_key_write_config(gal_fits_list_key_t 
**keylist, char *title,
  ***********            Array functions            ***********
  *************************************************************/
 
-/* Note that the FITS standard defines any array as an `image',
+/* Note that the FITS standard defines any array as an 'image',
    irrespective of how many dimensions it has. This function will return
    the Gnuastro-type, the number of dimensions and size along each
    dimension of the image along with its name and units if necessary (not
-   NULL). Note that `*dsize' will be allocated here, so it must not point
+   NULL). Note that '*dsize' will be allocated here, so it must not point
    to any already allocated space. */
 void
 gal_fits_img_info(fitsfile *fptr, int *type, size_t *ndim, size_t **dsize,
@@ -1771,7 +1771,7 @@ gal_fits_img_info(fitsfile *fptr, int *type, size_t 
*ndim, size_t **dsize,
   /* Define the names of the possibly existing important keywords about the
      dataset. We are defining these in the opposite order to be read by
      CFITSIO. The way Gnuastro writes the FITS keywords, the output will
-     first have `BZERO', then `BSCALE', then `EXTNAME', then, `BUNIT'.*/
+     first have 'BZERO', then 'BSCALE', then 'EXTNAME', then, 'BUNIT'.*/
   gal_list_data_add_alloc(&keysll, NULL, GAL_TYPE_STRING, 1, &dsize_key,
                           NULL, 0, -1, 1, "BUNIT", NULL, NULL);
   gal_list_data_add_alloc(&keysll, NULL, GAL_TYPE_STRING, 1, &dsize_key,
@@ -1819,8 +1819,8 @@ gal_fits_img_info(fitsfile *fptr, int *type, size_t 
*ndim, size_t **dsize,
     (*dsize)[i]=naxes[*ndim-1-i];
 
 
-  /* Clean up. Note that bzero_str, gets freed by `gal_data_free' (which is
-     called by `gal_list_data_free'. */
+  /* Clean up. Note that bzero_str, gets freed by 'gal_data_free' (which is
+     called by 'gal_list_data_free'. */
   gal_list_data_free(keysll);
 }
 
@@ -1877,16 +1877,16 @@ gal_fits_img_read(char *filename, char *hdu, size_t 
minmapsize,
     error(EXIT_FAILURE, 0, "%s (hdu: %s) has 0 dimensions! The most common "
           "cause for this is a wrongly specified HDU. In some FITS images, "
           "the first HDU doesn't have any data, the data is in subsequent "
-          "extensions. So probably reading the second HDU (with `--hdu=1' "
-          "or `-h1') will solve the problem (following CFITSIO's "
+          "extensions. So probably reading the second HDU (with '--hdu=1' "
+          "or '-h1') will solve the problem (following CFITSIO's "
           "convention, currently HDU counting starts from 0)." , filename,
           hdu);
 
 
   /* Set the fpixel array (first pixel in all dimensions). Note that the
-     `long' type will not be larger than 64-bits, so, we'll just assume it
+     'long' type will not be larger than 64-bits, so, we'll just assume it
      is 64-bits for space allocation. On 32-bit systems, this won't be a
-     problem, the space will be written/read as 32-bit `long' any way,
+     problem, the space will be written/read as 32-bit 'long' any way,
      we'll just have a few empty bytes that will be freed anyway at the end
      of this function. */
   fpixel=gal_pointer_allocate(GAL_TYPE_INT64, ndim, 0, __func__, "fpixel");
@@ -2044,13 +2044,13 @@ gal_fits_img_write_to_ptr(gal_data_t *input, char 
*filename)
   fptr=gal_fits_open_to_write(filename);
 
 
-  /* Fill the `naxes' array (in opposite order, and `long' type): */
+  /* Fill the 'naxes' array (in opposite order, and 'long' type): */
   for(i=0;i<ndim;++i) naxes[ndim-1-i]=towrite->dsize[i];
 
 
   /* Create the FITS file. Unfortunately CFITSIO doesn't have a macro for
      UINT64, TLONGLONG is only for (signed) INT64. So if the dataset has
-     that type, we'll have to convert it to `INT64' and in the mean-time
+     that type, we'll have to convert it to 'INT64' and in the mean-time
      shift its zero, we will then have to write the BZERO and BSCALE
      keywords accordingly. */
   if(block->type==GAL_TYPE_UINT64)
@@ -2159,7 +2159,7 @@ gal_fits_img_write_to_ptr(gal_data_t *input, char 
*filename)
   /* If a WCS structure is present, write it in */
   if(towrite->wcs)
     {
-      /* Decompose the `PCi_j' matrix and `CDELTi' vector. */
+      /* Decompose the 'PCi_j' matrix and 'CDELTi' vector. */
       gal_wcs_decompose_pc_cdelt(towrite->wcs);
 
       /* Convert the WCS information to text. */
@@ -2340,8 +2340,8 @@ gal_fits_tab_format(fitsfile *fitsptr)
       else if(!strcmp(value, "BINTABLE"))
         return GAL_TABLE_FORMAT_BFITS;
       else
-        error(EXIT_FAILURE, 0, "%s: the `XTENSION' keyword of this FITS "
-              "table (`%s') doesn't have a standard value", __func__, value);
+        error(EXIT_FAILURE, 0, "%s: the 'XTENSION' keyword of this FITS "
+              "table ('%s') doesn't have a standard value", __func__, value);
     }
   else
     {
@@ -2362,9 +2362,9 @@ gal_fits_tab_format(fitsfile *fitsptr)
 
 
 
-/* The general format of the TDISPn keywords in FITS is like this: `Tw.p',
-   where `T' specifies the general format, `w' is the width to be given to
-   this column and `p' is the precision. For integer types, percision is
+/* The general format of the TDISPn keywords in FITS is like this: 'Tw.p',
+   where 'T' specifies the general format, 'w' is the width to be given to
+   this column and 'p' is the precision. For integer types, percision is
    actually the minimum number of integers, for floats, it is the number of
    decimal digits beyond the decimal point. */
 static void
@@ -2410,7 +2410,7 @@ set_display_format(char *tdisp, gal_data_t *data, char 
*filename, char *hdu,
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%s (hdu: %s): Format character `%c' in the "
+      error(EXIT_FAILURE, 0, "%s (hdu: %s): Format character '%c' in the "
             "value (%s) of the keyword %s not recognized in %s", filename, hdu,
             tdisp[0], tdisp, keyname, __func__);
     }
@@ -2423,8 +2423,8 @@ set_display_format(char *tdisp, gal_data_t *data, char 
*filename, char *hdu,
     case '.':      /* Width is set, go onto finding the precision. */
       data->disp_precision = strtol(&tailptr[1], &tailptr, 0);
       if(*tailptr!='\0')
-        error(EXIT_FAILURE, 0, "%s (hdu: %s): The value `%s' of the "
-              "`%s' keyword could not recognized (it doesn't finish after "
+        error(EXIT_FAILURE, 0, "%s (hdu: %s): The value '%s' of the "
+              "'%s' keyword could not recognized (it doesn't finish after "
               "the precision) in %s", filename, hdu, tdisp, keyname, __func__);
       break;
 
@@ -2435,8 +2435,8 @@ set_display_format(char *tdisp, gal_data_t *data, char 
*filename, char *hdu,
       break;
 
     default:
-      error(EXIT_FAILURE, 0, "%s (hdu: %s): The value `%s' of the "
-            "`%s' keyword could not recognized (it doesn't have a `.', or "
+      error(EXIT_FAILURE, 0, "%s (hdu: %s): The value '%s' of the "
+            "'%s' keyword could not recognized (it doesn't have a '.', or "
             "finish, after the width) in %s", filename, hdu, tdisp,
             keyname, __func__);
     }
@@ -2449,7 +2449,7 @@ set_display_format(char *tdisp, gal_data_t *data, char 
*filename, char *hdu,
 
 /* The FITS standard for binary tables (not ASCII tables) does not allow
    unsigned types for short, int and long types, or signed char! So it has
-   `TSCALn' and `TZEROn' to scale the signed types to an unsigned type. It
+   'TSCALn' and 'TZEROn' to scale the signed types to an unsigned type. It
    does this internally, but since we need to define our data type and
    allocate space for it before actually reading the array, it is necessary
    to do this setting here.  */
@@ -2495,7 +2495,7 @@ fits_correct_bin_table_int_types(gal_data_t *allcols, int 
tfields,
 
 
 
-/* See the descriptions of `gal_table_info'. */
+/* See the descriptions of 'gal_table_info'. */
 gal_data_t *
 gal_fits_tab_info(char *filename, char *hdu, size_t *numcols,
                   size_t *numrows, int *tableformat)
@@ -2523,7 +2523,7 @@ gal_fits_tab_info(char *filename, char *hdu, size_t 
*numcols,
   allcols=gal_data_array_calloc(tfields);
 
 
-  /* See comments of `fits_correct_bin_table_int_types'. Here we are
+  /* See comments of 'fits_correct_bin_table_int_types'. Here we are
      allocating the space to keep these values. */
   errno=0;
   tscal=calloc(tfields, sizeof *tscal);
@@ -2548,17 +2548,17 @@ gal_fits_tab_info(char *filename, char *hdu, size_t 
*numcols,
 
       /* For string valued keywords, CFITSIO's function above, keeps the
          single quotes around the value string, one before and one
-         after. `gal_fits_key_clean_str_value' will remove these single
+         after. 'gal_fits_key_clean_str_value' will remove these single
          quotes and any possible trailing space within the allocated
          space.*/
       if(value[0]=='\'') gal_fits_key_clean_str_value(value);
 
       /* COLUMN DATA TYPE. According the the FITS standard, the value of
-         TFORM is most generally in this format: `rTa'. `T' is actually a
-         code of the datatype. `r' is the `repeat' counter and `a' is
+         TFORM is most generally in this format: 'rTa'. 'T' is actually a
+         code of the datatype. 'r' is the 'repeat' counter and 'a' is
          depreciated. Currently we can only read repeat==1 cases. When no
          number exists before the defined capital letter, it defaults to 1,
-         but if a number exists (for example `5D'), then the repeat is 5
+         but if a number exists (for example '5D'), then the repeat is 5
          (there are actually five values in each column). Note that
          value[0] is a single quote.*/
       if(strncmp(keyname, "TFORM", 5)==0)
@@ -2590,7 +2590,7 @@ gal_fits_tab_info(char *filename, char *hdu, size_t 
*numcols,
                       repeat=strtol(value+1, &tailptr, 0);
                       if(*tailptr!='\0')
                         error(EXIT_FAILURE, 0, "%s (hdu: %s): the value to "
-                              "keyword `%s' (`%s') is not in `Aw' format "
+                              "keyword '%s' ('%s') is not in 'Aw' format "
                               "(for strings) as required by the FITS "
                               "standard in %s", filename, hdu, keyname, value,
                               __func__);
@@ -2609,7 +2609,7 @@ gal_fits_tab_info(char *filename, char *hdu, size_t 
*numcols,
               tscal[index]=strtol(value, &tailptr, 0);
               if(*tailptr!='\0')
                 error(EXIT_FAILURE, 0, "%s (hdu: %s): value to %s keyword "
-                      "(`%s') couldn't be read as a number in %s", filename,
+                      "('%s') couldn't be read as a number in %s", filename,
                       hdu, keyname, value, __func__);
             }
         }
@@ -2623,7 +2623,7 @@ gal_fits_tab_info(char *filename, char *hdu, size_t 
*numcols,
               tzero[index]=strtoll(value, &tailptr, 0);
               if(*tailptr!='\0')
                 error(EXIT_FAILURE, 0, "%s (hdu: %s): value to %s keyword "
-                      "(`%s') couldn't be read as a number in %s", filename,
+                      "('%s') couldn't be read as a number in %s", filename,
                       hdu, keyname, value, __func__);
             }
         }
@@ -2741,7 +2741,7 @@ fits_tab_read_ascii_float_special(char *filename, char 
*hdu, fitsfile *fptr,
   for(i=0;i<numrows;++i)
     {
       /* Parse the string, if its not readable as a special number (like
-         `inf' or `nan', then just read it as a NaN. */
+         'inf' or 'nan', then just read it as a NaN. */
       tmp=strtod(strarr[i], &tailptr);
       if(tailptr==strarr[i]) tmp=NAN;
 
@@ -2798,7 +2798,7 @@ gal_fits_tab_read(char *filename, char *hdu, size_t 
numrows,
           /* For a string column, we need an allocated array for each element,
              even in binary values. This value should be stored in the
              disp_width element of the data structure, which is done
-             automatically in `gal_fits_table_info'. */
+             automatically in 'gal_fits_table_info'. */
           if(out->type==GAL_TYPE_STRING)
             {
               strarr=out->array;
@@ -2821,10 +2821,10 @@ gal_fits_tab_read(char *filename, char *hdu, size_t 
numrows,
              types, the FITS standard defines blanks as NaN (same as almost
              any other software like Gnuastro). However if a blank value is
              specified, CFITSIO will convert other special numbers like
-             `inf' to NaN also. We want to be able to distringuish `inf'
+             'inf' to NaN also. We want to be able to distringuish 'inf'
              and NaN here, so for floating point types in binary tables, we
              won't define any blank value. In ASCII tables, CFITSIO doesn't
-             read the `NAN' values (that it has written itself) unless we
+             read the 'NAN' values (that it has written itself) unless we
              specify a blank pointer/value. */
           isfloat = ( out->type==GAL_TYPE_FLOAT32
                       || out->type==GAL_TYPE_FLOAT64 );
@@ -2835,8 +2835,8 @@ gal_fits_tab_read(char *filename, char *hdu, size_t 
numrows,
                         1, 1, out->size, blank, out->array, &anynul, &status);
 
           /* In the ASCII table format, CFITSIO might not be able to read
-             `INF' or `-INF'. In this case, it will set status to `BAD_C2D'
-             or `BAD_C2F'. So, we'll use our own parser for the column
+             'INF' or '-INF'. In this case, it will set status to 'BAD_C2D'
+             or 'BAD_C2F'. So, we'll use our own parser for the column
              values. */
           if( hdutype==ASCII_TBL
               && isfloat
@@ -2858,7 +2858,7 @@ gal_fits_tab_read(char *filename, char *hdu, size_t 
numrows,
       gal_fits_io_error(status, NULL);
     }
 
-  /* There are no rows to read (`numrows==NULL'). Make an empty-sized
+  /* There are no rows to read ('numrows==NULL'). Make an empty-sized
      array. */
   else
     {
@@ -2891,10 +2891,10 @@ gal_fits_tab_read(char *filename, char *hdu, size_t 
numrows,
 
 
 /* This function will allocate new copies for all elements to have the same
-   length as the maximum length and set all trailing elements to `\0' for
+   length as the maximum length and set all trailing elements to '\0' for
    those that are shorter than the length. The return value is the
    allocated space. If the dataset is not a string, the returned value will
-   be -1 (largest number of `size_t'). */
+   be -1 (largest number of 'size_t'). */
 static size_t
 fits_string_fixed_alloc_size(gal_data_t *data)
 {
@@ -2922,8 +2922,8 @@ fits_string_fixed_alloc_size(gal_data_t *data)
         error(EXIT_FAILURE, 0, "%s: %zu bytes for tmp", __func__,
               (maxlen+1)*sizeof *strarr[i]);
 
-      /* Put the old array into the newly allocated space. `tmp' was
-         cleared (all values set to `\0', so we don't need to set the final
+      /* Put the old array into the newly allocated space. 'tmp' was
+         cleared (all values set to '\0', so we don't need to set the final
          one explicity after the copy.*/
       for(j=0;strarr[i][j]!='\0';++j)
         tmp[j]=strarr[i][j];
@@ -2952,7 +2952,7 @@ fits_table_prepare_arrays(gal_data_t *cols, size_t 
numcols, int tableformat,
   char *blank, **tform, **ttype, **tunit;
 
 
-  /* Allocate the arrays to keep the `tform' values */
+  /* Allocate the arrays to keep the 'tform' values */
   errno=0;
   tform=*outtform=malloc(numcols*sizeof *tform);
   if(tform==NULL)
@@ -2973,7 +2973,7 @@ fits_table_prepare_arrays(gal_data_t *cols, size_t 
numcols, int tableformat,
   /* Go over each column and fill in these arrays. */
   for(col=cols; col!=NULL; col=col->next)
     {
-      /* Set the `ttype' and `tunit' values: */
+      /* Set the 'ttype' and 'tunit' values: */
       if( asprintf(&ttype[i], "%s", col->name ? col->name : "")<0 )
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
       if( asprintf(&tunit[i], "%s", col->unit ? col->unit : "")<0 )
@@ -2994,7 +2994,7 @@ fits_table_prepare_arrays(gal_data_t *cols, size_t 
numcols, int tableformat,
             /* We need to check if the blank value needs is larger than the
                expected width or not. Its initial width is set the output
                of the function above, but if the value is larger,
-               `asprintf' (which is used) will make it wider. */
+               'asprintf' (which is used) will make it wider. */
             blank = ( gal_blank_present(col, 0)
                       ? gal_blank_as_string(col->type, col->disp_width)
                       : NULL );
@@ -3093,9 +3093,9 @@ fits_write_tnull_tcomm(fitsfile *fptr, gal_data_t *col, 
int tableformat,
         error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
       blank=gal_blank_as_string(col->type, col->disp_width);
 
-      /* When in exponential form (`tform' starting with `E'), CFITSIO
-         writes a NaN value as `NAN', but when in floating point form
-         (`tform' starting with `F'), it writes it as `nan'. So in the
+      /* When in exponential form ('tform' starting with 'E'), CFITSIO
+         writes a NaN value as 'NAN', but when in floating point form
+         ('tform' starting with 'F'), it writes it as 'nan'. So in the
          former case, we need to convert the string to upper case. */
       if(tform[0]=='E' || tform[0]=='e')
         for(c=blank; *c!='\0'; ++c) *c=toupper(*c);
@@ -3153,7 +3153,7 @@ fits_write_tnull_tcomm(fitsfile *fptr, gal_data_t *col, 
int tableformat,
 
 
 
-/* Write the given columns (a linked list of `gal_data_t') into a FITS
+/* Write the given columns (a linked list of 'gal_data_t') into a FITS
    table.*/
 void
 gal_fits_tab_write(gal_data_t *cols, gal_list_str_t *comments,
@@ -3190,7 +3190,7 @@ gal_fits_tab_write(gal_data_t *cols, gal_list_str_t 
*comments,
 
 
   /* Make the FITS file pointer. Note that tableformat was checked in
-     `fits_table_prepare_arrays'. */
+     'fits_table_prepare_arrays'. */
   tbltype = tableformat==GAL_TABLE_FORMAT_AFITS ? ASCII_TBL : BINARY_TBL;
   fits_create_tbl(fptr, tbltype, numrows, numcols, ttype, tform, tunit,
                   extname, &status);
@@ -3234,7 +3234,7 @@ gal_fits_tab_write(gal_data_t *cols, gal_list_str_t 
*comments,
 
 
   /* Clean up and close the FITS file. Note that each element in the
-     `ttype' and `tunit' arrays just points to the respective string in the
+     'ttype' and 'tunit' arrays just points to the respective string in the
      column data structure, the space for each element of the array wasn't
      allocated.*/
   for(i=0;i<numcols;++i)
diff --git a/lib/gnuastro-internal/README b/lib/gnuastro-internal/README
index 62f7683..4c76919 100644
--- a/lib/gnuastro-internal/README
+++ b/lib/gnuastro-internal/README
@@ -4,7 +4,7 @@ GNU Astronomy Utilities internal header files
 Copyright (C) 2015-2020, Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
-The `.h' files in this directory are headers to Gnuastro's internal
+The '.h' files in this directory are headers to Gnuastro's internal
 libraries: libraries that are only available to Gnuastro's programs. These
 are functions that are mainly to do with running a program, for example the
 common options to all the programs, functions to manage options and
diff --git a/lib/gnuastro-internal/arithmetic-binary.h 
b/lib/gnuastro-internal/arithmetic-binary.h
index f7e07c4..3a4fe34 100644
--- a/lib/gnuastro-internal/arithmetic-binary.h
+++ b/lib/gnuastro-internal/arithmetic-binary.h
@@ -84,7 +84,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 
-/* This is for operators like `&&' and `||', where the right operator is
+/* This is for operators like '&&' and '||', where the right operator is
    not necessarily read (and thus incremented). */
 #define BINARY_OP_INCR_OT_RT_LT_SET(OP, OT, LT, RT) {                   \
     LT *la=l->array;                                                    \
@@ -146,7 +146,7 @@ enum arithmetic_binary_outtype_flags
       break;                                                            \
     default:                                                            \
       error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to "   \
-            "address the problem. %d not recognized for `F'",           \
+            "address the problem. %d not recognized for 'F'",           \
             "BINARY_SET_OUT_INT", PACKAGE_BUGREPORT, F);                \
     }
 
@@ -172,7 +172,7 @@ enum arithmetic_binary_outtype_flags
       break;                                                            \
     default:                                                            \
       error(EXIT_FAILURE, 0, "%s: a bug! please contact us at %s to "   \
-            "address the problem. %d not recognized for `F'",           \
+            "address the problem. %d not recognized for 'F'",           \
             "BINARY_SET_OUT", PACKAGE_BUGREPORT, F);                    \
     }
 
diff --git a/lib/gnuastro-internal/arithmetic-internal.h 
b/lib/gnuastro-internal/arithmetic-internal.h
index 18375c6..23c16d1 100644
--- a/lib/gnuastro-internal/arithmetic-internal.h
+++ b/lib/gnuastro-internal/arithmetic-internal.h
@@ -28,13 +28,13 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #include <gnuastro/data.h>
 
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
-   arithmetic function) is kept in `config.h'. When building a user's
-   programs, this information is kept in `gnuastro/config.h'. Note that all
-   `.c' files must start with the inclusion of `config.h' and that
-   `gnuastro/config.h' is only created at installation time (not present
+   'GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
+   arithmetic function) is kept in 'config.h'. When building a user's
+   programs, this information is kept in 'gnuastro/config.h'. Note that all
+   '.c' files must start with the inclusion of 'config.h' and that
+   'gnuastro/config.h' is only created at installation time (not present
    during the building of Gnuastro).*/
 #ifndef IN_GNUASTRO_BUILD
 #include <gnuastro/config.h>
diff --git a/lib/gnuastro-internal/commonopts.h 
b/lib/gnuastro-internal/commonopts.h
index a9791b9..144f262 100644
--- a/lib/gnuastro-internal/commonopts.h
+++ b/lib/gnuastro-internal/commonopts.h
@@ -31,7 +31,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    IMPORTANT NOTE:
 
      This header should only be included in the programs, not the
-     libraries, and in particular `options.c'. Because we want each program
+     libraries, and in particular 'options.c'. Because we want each program
      to have its own allocation of the common options structure. If it is
      included in options.c, then it will be shared between all the
      programs. */
@@ -60,7 +60,7 @@ struct argp_option gal_commonopts_options[] =
       GAL_OPTIONS_KEY_SEARCHIN,
       "STR",
       0,
-      "Select column(s): `name', `unit', `comment'.",
+      "Select column(s): 'name', 'unit', 'comment'.",
       GAL_OPTIONS_GROUP_INPUT,
       &cp->searchin,
       GAL_TYPE_STRING,
@@ -254,10 +254,10 @@ struct argp_option gal_commonopts_options[] =
       0,
       "Type of output: e.g., int16, float32, etc...",
       GAL_OPTIONS_GROUP_OUTPUT,
-      &cp->type,                /* Internally, `cp->type' is actually an   */
-      GAL_TYPE_STRING,          /* `uint8_t', but the user gives a string. */
+      &cp->type,                /* Internally, 'cp->type' is actually an   */
+      GAL_TYPE_STRING,          /* 'uint8_t', but the user gives a string. */
       GAL_OPTIONS_RANGE_GT_0,   /* So for the sanity checks to pass, we    */
-      GAL_OPTIONS_NOT_MANDATORY,/* use `GAL_TYPE_STRING' for this option.  */
+      GAL_OPTIONS_NOT_MANDATORY,/* use 'GAL_TYPE_STRING' for this option.  */
       GAL_OPTIONS_NOT_SET,
       gal_options_read_type
     },
@@ -266,7 +266,7 @@ struct argp_option gal_commonopts_options[] =
       GAL_OPTIONS_KEY_TABLEFORMAT,
       "STR",
       0,
-      "Table fmt: `fits-ascii', `fits-binary', `txt'.",
+      "Table fmt: 'fits-ascii', 'fits-binary', 'txt'.",
       GAL_OPTIONS_GROUP_OUTPUT,
       &cp->tableformat,
       GAL_TYPE_STRING,
diff --git a/lib/gnuastro-internal/config.h.in 
b/lib/gnuastro-internal/config.h.in
index 3d43212..c3f194e 100644
--- a/lib/gnuastro-internal/config.h.in
+++ b/lib/gnuastro-internal/config.h.in
@@ -27,7 +27,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 /* The restrict keyword might not be present on some systems, so we are
-   redefining it here based on the checks in `configure.ac', see there for
+   redefining it here based on the checks in 'configure.ac', see there for
    more comments. */
 #define restrict @RESTRICT_REPLACEMENT@
 
diff --git a/lib/gnuastro-internal/fixedstringmacros.h 
b/lib/gnuastro-internal/fixedstringmacros.h
index ef733a1..5cdac1b 100644
--- a/lib/gnuastro-internal/fixedstringmacros.h
+++ b/lib/gnuastro-internal/fixedstringmacros.h
@@ -64,7 +64,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* This can be used in the end of error messages related to option
    values. */
 #define GAL_STRINGS_HOW_TO_CHECK_VALUES                                 \
-  " You can check all the input values with the `--printparams' "       \
+  " You can check all the input values with the '--printparams' "       \
   "(-P) option."
 
 
diff --git a/lib/gnuastro-internal/options.h b/lib/gnuastro-internal/options.h
index ec02c61..105e819 100644
--- a/lib/gnuastro-internal/options.h
+++ b/lib/gnuastro-internal/options.h
@@ -43,7 +43,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* When printing the option names, values and comments, we want things to
    be clean and readable (all the comments starting on one line for most,
    ideally all, lines). But in some cases, option values can become too
-   long (for example the `--polygon' option in Crop, which takes many
+   long (for example the '--polygon' option in Crop, which takes many
    coordinates). So simply using the maximum option length is going to make
    the whole thing unreadable and we need to have a maximum so this rule
    only applies to them. */
@@ -63,7 +63,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
    We want the Operating mode group of options to be the last and the input
    and output groups to the be the first. So first we set the operating
-   mdoe group code to `-1', and benefit from the definition of the
+   mdoe group code to '-1', and benefit from the definition of the
    Enumerator type in C, so each field afterwards will be one integer
    larger than the previous. The largest common option group is then used
    to build the codes of program-specific option groups. */
@@ -83,7 +83,7 @@ enum options_standard_groups
 
 /* Key values for the common options, the free alphabetical keys are listed
    below. You can use any of the free letters for an option in a
-   program. Note that `-V', which is used by GNU and implemented by Argp,
+   program. Note that '-V', which is used by GNU and implemented by Argp,
    is also removed from this list.
 
    a b c d e f g i j k l m n p r s t u v w x y z
@@ -151,7 +151,7 @@ enum gal_options_range_values
 
 
 
-/* What to do if option isn't given. Note that in each program's `main.c'
+/* What to do if option isn't given. Note that in each program's 'main.c'
    the main program structure is initialized to zero (or NULL for
    pointers). */
 enum gal_options_mandatory_values
diff --git a/lib/gnuastro-internal/tableintern.h 
b/lib/gnuastro-internal/tableintern.h
index 7c892de..6a405f7 100644
--- a/lib/gnuastro-internal/tableintern.h
+++ b/lib/gnuastro-internal/tableintern.h
@@ -26,7 +26,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /* Include other headers if necessary here. Note that other header files
    must be included before the C++ preparations below */
 
-#include <gnuastro/fits.h> /* Includes `gnuastro/data.h' and `fitsio.h' */
+#include <gnuastro/fits.h> /* Includes 'gnuastro/data.h' and 'fitsio.h' */
 #include <gnuastro/list.h>
 
 
diff --git a/lib/gnuastro-internal/tile-internal.h 
b/lib/gnuastro-internal/tile-internal.h
index b0cd6d6..0465fc5 100644
--- a/lib/gnuastro-internal/tile-internal.h
+++ b/lib/gnuastro-internal/tile-internal.h
@@ -28,13 +28,13 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    must be included before the C++ preparations below */
 
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
-   arithmetic function) is kept in `config.h'. When building a user's
-   programs, this information is kept in `gnuastro/config.h'. Note that all
-   `.c' files must start with the inclusion of `config.h' and that
-   `gnuastro/config.h' is only created at installation time (not present
+   'GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
+   arithmetic function) is kept in 'config.h'. When building a user's
+   programs, this information is kept in 'gnuastro/config.h'. Note that all
+   '.c' files must start with the inclusion of 'config.h' and that
+   'gnuastro/config.h' is only created at installation time (not present
    during the building of Gnuastro).*/
 #ifndef IN_GNUASTRO_BUILD
 #include <gnuastro/config.h>
diff --git a/lib/gnuastro/README b/lib/gnuastro/README
index 6bc8898..8232727 100644
--- a/lib/gnuastro/README
+++ b/lib/gnuastro/README
@@ -14,7 +14,7 @@ Inside of Gnuastro, the directory is given the same name to 
make Gnuastro's
 internal code similar to what a user would use in their own programs once
 the header files are installed. The headers that are not installed are kept
 in the parent directory of this directory mixed with the actual library
-`.c' source files.
+'.c' source files.
 
 
 
diff --git a/lib/gnuastro/arithmetic.h b/lib/gnuastro/arithmetic.h
index 151c4ab..b3f97ad 100644
--- a/lib/gnuastro/arithmetic.h
+++ b/lib/gnuastro/arithmetic.h
@@ -28,13 +28,13 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #include <gnuastro/data.h>
 
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
-   arithmetic function) is kept in `config.h'. When building a user's
-   programs, this information is kept in `gnuastro/config.h'. Note that all
-   `.c' files must start with the inclusion of `config.h' and that
-   `gnuastro/config.h' is only created at installation time (not present
+   'GAL_CONFIG_ARITH_CHAR' and the rest of the types that we needed in the
+   arithmetic function) is kept in 'config.h'. When building a user's
+   programs, this information is kept in 'gnuastro/config.h'. Note that all
+   '.c' files must start with the inclusion of 'config.h' and that
+   'gnuastro/config.h' is only created at installation time (not present
    during the building of Gnuastro).*/
 #ifndef IN_GNUASTRO_BUILD
 #include <gnuastro/config.h>
diff --git a/lib/gnuastro/binary.h b/lib/gnuastro/binary.h
index 35b302d..34fd46e 100644
--- a/lib/gnuastro/binary.h
+++ b/lib/gnuastro/binary.h
@@ -47,7 +47,7 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 
 
 
-/* The binary functions will be working on a `uint8_t' type dataset with
+/* The binary functions will be working on a 'uint8_t' type dataset with
    values of 1 or 0 (no other pixel will be touched). However, in some
    cases, it is necessary to put temporary values in each element during
    the processing of the functions. So if your input datasets have values
diff --git a/lib/gnuastro/blank.h b/lib/gnuastro/blank.h
index 3b4e22f..051197f 100644
--- a/lib/gnuastro/blank.h
+++ b/lib/gnuastro/blank.h
@@ -27,12 +27,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
    must be included before the C++ preparations below */
 #include <gnuastro/data.h>
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
-   `config.h'. When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files in Gnuastro's source must
-   start with the inclusion of `config.h' and that `gnuastro/config.h' is
+   'GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
+   'config.h'. When building a user's programs, this information is kept in
+   'gnuastro/config.h'. Note that all '.c' files in Gnuastro's source must
+   start with the inclusion of 'config.h' and that 'gnuastro/config.h' is
    only created at installation time (not present during the building of
    Gnuastro). */
 #ifndef IN_GNUASTRO_BUILD
diff --git a/lib/gnuastro/data.h b/lib/gnuastro/data.h
index 31bc42e..0d8d2f7 100644
--- a/lib/gnuastro/data.h
+++ b/lib/gnuastro/data.h
@@ -28,12 +28,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #include <math.h>
 #include <wcslib/wcs.h>
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   the `restrict' replacement) is kept in `config.h' (top source
+   the 'restrict' replacement) is kept in 'config.h' (top source
    directory). When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files in Gnuastro's source must
-   start with the inclusion of `config.h' and that `gnuastro/config.h' is
+   'gnuastro/config.h'. Note that all '.c' files in Gnuastro's source must
+   start with the inclusion of 'config.h' and that 'gnuastro/config.h' is
    only created at installation time (not present during the building of
    Gnuastro). */
 #ifndef IN_GNUASTRO_BUILD
@@ -66,11 +66,11 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 
 
 /* Flag values for the dataset. Note that these are bit-values, so to be
-   more clear, we'll use hexadecimal notation: `0x1' (=1), `0x2' (=2),
-   `0x4' (=4), `0x8' (=8), `0x10' (=16), `0x20' (=32) and so on. */
+   more clear, we'll use hexadecimal notation: '0x1' (=1), '0x2' (=2),
+   '0x4' (=4), '0x8' (=8), '0x10' (=16), '0x20' (=32) and so on. */
 
-/* Number of bytes in the unsigned integer hosting the bit-flags (`flag'
-   element) of `gal_data_t'. */
+/* Number of bytes in the unsigned integer hosting the bit-flags ('flag'
+   element) of 'gal_data_t'. */
 #define GAL_DATA_FLAG_SIZE         1
 
 /* Bit 0: The has-blank flag has been checked, so a flag value of 0 for the
@@ -105,15 +105,15 @@ __BEGIN_C_DECLS  /* From C++ preparations */
    mmap (keep data outside of RAM)
    -------------------------------
 
-     `mmap' is C's facility to keep the data on the HDD/SSD instead of
+     'mmap' is C's facility to keep the data on the HDD/SSD instead of
      inside the RAM. This can be very useful for large data sets which can
      be very memory intensive. Ofcourse, the speed of operation greatly
      decreases when defining not using RAM, but that is worth it because
-     increasing RAM might not be possible. So in `gal_data_t' when the size
+     increasing RAM might not be possible. So in 'gal_data_t' when the size
      of the requested array (in bytes) is larger than a certain minimum
      size (in bytes), Gnuastro won't write the array in memory but on
      non-volatile memory (like HDDs and SSDs) as a file in the
-     `./.gnuastro' directory of the directory it was run from.
+     './.gnuastro' directory of the directory it was run from.
 
          - If mmapname==NULL, then the array is allocated (using malloc, in
            the RAM), otherwise its is mmap'd (is actually a file on the
@@ -123,9 +123,9 @@ __BEGIN_C_DECLS  /* From C++ preparations */
            derivative data structures to follow the same number and decide
            if they should be mmap'd or allocated.
 
-         - `minmapsize' ==  0: array is definitely mmap'd.
+         - 'minmapsize' ==  0: array is definitely mmap'd.
 
-         - `minmapsize' == -1: array is definitely in RAM.
+         - 'minmapsize' == -1: array is definitely in RAM.
 
 
    block (work with only a subset of the data)
@@ -135,8 +135,8 @@ __BEGIN_C_DECLS  /* From C++ preparations */
      or tiles, not necessarily overlapping. In such a way that you can work
      on each independently. One option is to copy that region to a separate
      allocated space, but in many contexts this isn't necessary and infact
-     can be a big burden on CPU/Memory usage. The `block' pointer in
-     `gal_data_t' is defined for situations where allocation is not
+     can be a big burden on CPU/Memory usage. The 'block' pointer in
+     'gal_data_t' is defined for situations where allocation is not
      necessary: you just want to read the data or write to it
      independently, or in coordination with, other regions of the
      dataset. Added with parallel processing, this can greatly improve the
@@ -160,35 +160,35 @@ __BEGIN_C_DECLS  /* From C++ preparations */
                 |*|                       |
                 ---------------------------
 
-     To use `gal_data_t's block concept, you allocate a `gal_data_t *tile'
+     To use 'gal_data_t's block concept, you allocate a 'gal_data_t *tile'
      which is initialized with the pointer to the first element in the
-     sub-array (as its `array' argument). Note that this is not necessarily
+     sub-array (as its 'array' argument). Note that this is not necessarily
      the first element in the larger array. You can set the size of the
      tile along with the initialization as you please. Recall that, when
-     given a non-NULL pointer as `array', `gal_data_initialize' (and thus
-     `gal_data_alloc') do not allocate any space and just uses the given
-     pointer for the new `array' element of the `gal_data_t'. So your
-     `tile' data structure will not be pointing to a separately allocated
+     given a non-NULL pointer as 'array', 'gal_data_initialize' (and thus
+     'gal_data_alloc') do not allocate any space and just uses the given
+     pointer for the new 'array' element of the 'gal_data_t'. So your
+     'tile' data structure will not be pointing to a separately allocated
      space.
 
-     After the allocation is done, you just point `tile->block' to the
-     `gal_data_t' which hosts the larger array. Afterwards, the programs
-     that take in the `sub' array can check the `block' pointer to see how
+     After the allocation is done, you just point 'tile->block' to the
+     'gal_data_t' which hosts the larger array. Afterwards, the programs
+     that take in the 'sub' array can check the 'block' pointer to see how
      to deal with dimensions and increments (strides) while working on the
-     `sub' datastructure. For example to increment along the vertical
-     dimension, the program must look at index i+W (where `W' is the width
+     'sub' datastructure. For example to increment along the vertical
+     dimension, the program must look at index i+W (where 'W' is the width
      of the larger array, not the tile).
 
      Since the block structure is defined as a pointer, arbitrary levels of
      tesselation/griding are possible. Therefore, just like a linked list,
-     it is important to have the `block' pointer of the largest dataset set
+     it is important to have the 'block' pointer of the largest dataset set
      to NULL. Normally, you won't have to worry about this, because
-     `gal_data_initialize' (and thus `gal_data_alloc') will set it to NULL
+     'gal_data_initialize' (and thus 'gal_data_alloc') will set it to NULL
      by default (just remember not to change it). You can then only change
-     the `block' element for the tiles you define over the allocated space.
+     the 'block' element for the tiles you define over the allocated space.
 
      In Gnuastro, there is a separate library for tiling operations called
-     `tile.h', see the functions there for tools to effectively use this
+     'tile.h', see the functions there for tools to effectively use this
      feature. This approach to dealing with parts of a larger block was
      inspired from the way the GNU Scientific Library does it in the
      "Vectors and Matrices" chapter.
@@ -197,7 +197,7 @@ typedef struct gal_data_t
 {
   /* Basic information on array of data. */
   void     *restrict array;  /* Array keeping data elements.               */
-  uint8_t             type;  /* Type of data (see `gnuastro/type.h').      */
+  uint8_t             type;  /* Type of data (see 'gnuastro/type.h').      */
   size_t              ndim;  /* Number of dimensions in the array.         */
   size_t            *dsize;  /* Size of array along each dimension.        */
   size_t              size;  /* Total number of data-elements.             */
@@ -217,13 +217,13 @@ typedef struct gal_data_t
   char            *comment;  /* A more detailed description of the data.   */
 
   /* For printing */
-  int             disp_fmt;  /* See `gal_table_diplay_formats'.            */
+  int             disp_fmt;  /* See 'gal_table_diplay_formats'.            */
   int           disp_width;  /* Width of space to print in ASCII.          */
   int       disp_precision;  /* Precision to print in ASCII.               */
 
   /* Pointers to other data structures. */
   struct gal_data_t  *next;  /* To use it as a linked list if necessary.   */
-  struct gal_data_t *block;  /* `gal_data_t' of hosting block, see above.  */
+  struct gal_data_t *block;  /* 'gal_data_t' of hosting block, see above.  */
 } gal_data_t;
 
 
diff --git a/lib/gnuastro/dimension.h b/lib/gnuastro/dimension.h
index ead8d0a..c06b2e1 100644
--- a/lib/gnuastro/dimension.h
+++ b/lib/gnuastro/dimension.h
@@ -141,30 +141,30 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs);
 
    The inputs are:
 
-       `index': The index of the desired point.
+       'index': The index of the desired point.
 
-       `ndim':  The number of dimensions in the dataset.
+       'ndim':  The number of dimensions in the dataset.
 
-       `dsize': The size of the dataset along each dimension (C order).
+       'dsize': The size of the dataset along each dimension (C order).
 
-       `connectivity': The connectivity of the neighbors. This is a single
-                integer with a value between `1' and `ndim' (it is
+       'connectivity': The connectivity of the neighbors. This is a single
+                integer with a value between '1' and 'ndim' (it is
                 irrelevant for a 1D dataset). Below, the case for 3D data
-                is shown. Each `dn' corresponds to `dinc[n]'. See `dinc'
-                below for the `dinc' values.
+                is shown. Each 'dn' corresponds to 'dinc[n]'. See 'dinc'
+                below for the 'dinc' values.
 
-                   `1': At most ONE addition/subtraction. In 1D: only the
+                   '1': At most ONE addition/subtraction. In 1D: only the
                         first line should be used. In 2D, this is 4
                         connectivity. In 3D all the elements that share an
-                        2D-face with the cube at index `i'.
+                        2D-face with the cube at index 'i'.
 
                                        i - d0     i + d0        (1D, 2D & 3D)
                                        i - d1     i + d1        (2D & 3D)
                                        i - d2     i + d2        (3D)
 
-                   `2': At most TWO additions/subtractions. In 2D: 8
+                   '2': At most TWO additions/subtractions. In 2D: 8
                         connectivity. In 3D: all elements that share a 1D
-                        edge with the cube at index `i'.
+                        edge with the cube at index 'i'.
 
                                   i - d0 - d1     i - d0 + d1   (2D & 3D)
                                   i + d0 - d1     i + d0 + d1   (2D & 3D)
@@ -173,16 +173,16 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs);
                                   i - d1 - d2     i - d1 + d2   (3D)
                                   i + d1 - d2     i + d1 + d2   (3D)
 
-                   `3': At most THREE additions/subtractions (only for 3D
+                   '3': At most THREE additions/subtractions (only for 3D
                         and higher dimensions). All cubes that share a 0-D
-                        vertex with the cube at index `i'.
+                        vertex with the cube at index 'i'.
 
                              i - d0 - d1 - d2     i - d0 - d1 + d2
                              i - d0 + d1 - d2     i - d0 + d1 + d2
                              i + d0 - d1 - d2     i + d0 - d1 + d2
                              i + d0 + d1 - d2     i + d0 + d1 + d2
 
-        `dinc': An array keeping the length necessary to increment along
+        'dinc': An array keeping the length necessary to increment along
                 each dimension. You can make this array with the following
                 function:
 
@@ -190,17 +190,17 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs);
 
                 Don't forget to free it afterwards.
 
-        `operation': Any C operation. `nind' is a `size_t' type variable
+        'operation': Any C operation. 'nind' is a 'size_t' type variable
                 that is defined by this macro and will have the index of
-                each neighbor. You can use this `nind' for any processing
-                that you like on the neighbor. Note that `op' will be
+                each neighbor. You can use this 'nind' for any processing
+                that you like on the neighbor. Note that 'op' will be
                 repeated the number of times there is a neighbor.
 
 
    Implementation
    --------------
 
-   To be most efficient (avoid as many `if's as possible), we will start
+   To be most efficient (avoid as many 'if's as possible), we will start
    parsing the neighbors from the fastest dimension. When-ever the element
    is on the edge of the dataset in any dimension, we will store it in a
    bit-wise array (one bit for each dimension, to mark if it is on the edge
@@ -230,8 +230,8 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs);
     gdn_is_end=(uint8_t *)(&gdn_bitstr)+1;                              \
                                                                         \
     /* Start with the slowest dimension and see if it is on the edge */ \
-    /* or not, similar to `gal_dimension_index_to_coord'. In the */     \
-    /* process, also fill the `connectivity==1' neighbors. */           \
+    /* or not, similar to 'gal_dimension_index_to_coord'. In the */     \
+    /* process, also fill the 'connectivity==1' neighbors. */           \
     for(gdn_D=0;gdn_D<ndim;++gdn_D)                                     \
       {                                                                 \
         /* If this dimension is only one element wide, no neighbors. */ \
@@ -265,16 +265,16 @@ gal_dimension_remove_extra(size_t ndim, size_t *dsize, 
struct wcsprm *wcs);
               }                                                         \
           }                                                             \
                                                                         \
-        /* Change `ind' to the remainder of previous dimensions. */     \
+        /* Change 'ind' to the remainder of previous dimensions. */     \
         gdn_ind %= dinc[gdn_D];                                         \
       }                                                                 \
                                                                         \
     /* We now know if the index is on the edge or not. During the */    \
-    /* process above, we also finished the `connectivity==1' case. */   \
+    /* process above, we also finished the 'connectivity==1' case. */   \
     /* So we'll just have to find the rest of the terms. */             \
     if(connectivity>1 && ndim>1)                                        \
       {                                                                 \
-        /* Finalize `is_edge' (bit value 1 for respective dim.). */     \
+        /* Finalize 'is_edge' (bit value 1 for respective dim.). */     \
         gdn_is_edge=(uint8_t *)(&gdn_bitstr)+2;                         \
         *gdn_is_edge = *gdn_is_start | *gdn_is_end;                     \
                                                                         \
diff --git a/lib/gnuastro/fits.h b/lib/gnuastro/fits.h
index 1b00519..df4d192 100644
--- a/lib/gnuastro/fits.h
+++ b/lib/gnuastro/fits.h
@@ -23,12 +23,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #ifndef __GAL_FITS_H__
 #define __GAL_FITS_H__
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_HAVE_WCSLIB_VERION' that we need in `fits.c') is kept in
-   `config.h'. When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files must start with the
-   inclusion of `config.h' and that `gnuastro/config.h' is only created at
+   'GAL_CONFIG_HAVE_WCSLIB_VERION' that we need in 'fits.c') is kept in
+   'config.h'. When building a user's programs, this information is kept in
+   'gnuastro/config.h'. Note that all '.c' files must start with the
+   inclusion of 'config.h' and that 'gnuastro/config.h' is only created at
    installation time (not present during the building of Gnuastro).*/
 #ifndef IN_GNUASTRO_BUILD
 #include <gnuastro/config.h>
diff --git a/lib/gnuastro/speclines.h b/lib/gnuastro/speclines.h
index 65cf01d..d656c4e 100644
--- a/lib/gnuastro/speclines.h
+++ b/lib/gnuastro/speclines.h
@@ -49,7 +49,7 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 /* Spectral line internal codes (SORT BY WAVELENGTH). */
 enum gal_speclines_line_codes
 {
-  /* Allowing `0' to be identied as a known-non-line. */
+  /* Allowing '0' to be identied as a known-non-line. */
   GAL_SPECLINES_INVALID=0,
 
   /* Main list of recognized lines. */
diff --git a/lib/gnuastro/table.h b/lib/gnuastro/table.h
index 1be04d5..4b76eb4 100644
--- a/lib/gnuastro/table.h
+++ b/lib/gnuastro/table.h
@@ -54,7 +54,7 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 
 
 
-/* `printf' default formattings. Note that the string type shouldn't have
+/* 'printf' default formattings. Note that the string type shouldn't have
    any precision and for the width,  */
 #define GAL_TABLE_DEF_WIDTH_STR       6
 #define GAL_TABLE_DEF_WIDTH_INT       6
@@ -72,7 +72,7 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 
 /* Particular display formats for different types: Integers or floating
    point numbers can be printed in various display formats. The values here
-   are stored in `gal_data_t' when necessary to help in printing of the
+   are stored in 'gal_data_t' when necessary to help in printing of the
    data.*/
 enum gal_table_diplay_formats
 {
diff --git a/lib/gnuastro/threads.h b/lib/gnuastro/threads.h
index 7fb0d4d..c03bd5f 100644
--- a/lib/gnuastro/threads.h
+++ b/lib/gnuastro/threads.h
@@ -28,12 +28,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #include <pthread.h>
 #include <gnuastro/blank.h>
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_HAVE_PTHREAD_BARRIER' that we need below) is kept in
-   `config.h'. When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files must start with the
-   inclusion of `config.h' and that `gnuastro/config.h' is only created at
+   'GAL_CONFIG_HAVE_PTHREAD_BARRIER' that we need below) is kept in
+   'config.h'. When building a user's programs, this information is kept in
+   'gnuastro/config.h'. Note that all '.c' files must start with the
+   inclusion of 'config.h' and that 'gnuastro/config.h' is only created at
    installation time (not present during the building of Gnuastro).*/
 #ifndef IN_GNUASTRO_BUILD
 #include <gnuastro/config.h>
@@ -65,7 +65,7 @@ __BEGIN_C_DECLS  /* From C++ preparations */
 /*****************************************************************/
 #if GAL_CONFIG_HAVE_PTHREAD_BARRIER == 0
 
-/* Integer number of nano-seconds that `pthread_barrier_destroy' should
+/* Integer number of nano-seconds that 'pthread_barrier_destroy' should
    wait for a check to see if all barriers have been reached. */
 #define GAL_THREADS_BARRIER_DESTROY_NANOSECS 1000
 
diff --git a/lib/gnuastro/tile.h b/lib/gnuastro/tile.h
index 8add19a..06484e9 100644
--- a/lib/gnuastro/tile.h
+++ b/lib/gnuastro/tile.h
@@ -125,11 +125,11 @@ struct gal_tile_two_layer_params
   size_t         *numtilesinch; /* Tile no. in each dim. on one channel.  */
   char          *tilecheckname; /* Name of file to check tiles.           */
   size_t          *permutation; /* Tile pos. in memory --> pos. overall.  */
-  size_t           *firsttsize; /* See `gal_tile_full_regular_first'.     */
+  size_t           *firsttsize; /* See 'gal_tile_full_regular_first'.     */
 
   /* Actual tile and channel data structures. */
-  gal_data_t            *tiles; /* Tiles array (also linked with `next'). */
-  gal_data_t         *channels; /* Channels array (linked with `next').   */
+  gal_data_t            *tiles; /* Tiles array (also linked with 'next'). */
+  gal_data_t         *channels; /* Channels array (linked with 'next').   */
 };
 
 
@@ -179,11 +179,11 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
 /***********************************************************************/
 /* Useful when the input and other types are already known. We want this to
    be self-sufficient (and be possible to call it independent of
-   `GAL_TILE_PARSE_OPERATE'), so some variables (basic definitions) that
-   are already defined in `GAL_TILE_PARSE_OPERATE' re-defined here. */
+   'GAL_TILE_PARSE_OPERATE'), so some variables (basic definitions) that
+   are already defined in 'GAL_TILE_PARSE_OPERATE' re-defined here. */
 #define GAL_TILE_PO_OISET(IT, OT, IN, OTHER, PARSE_OTHER, CHECK_BLANK, OP) { \
     IT *i=IN->array;                                                    \
-    gal_data_t *tpo_other=OTHER; /* `OTHER' may be NULL. */             \
+    gal_data_t *tpo_other=OTHER; /* 'OTHER' may be NULL. */             \
     gal_data_t *tpo_oblock = OTHER ? gal_tile_block(OTHER) : NULL;      \
                                                                         \
     size_t tpo_s_e_i_junk[2]={0,0};                                     \
@@ -197,19 +197,19 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
     size_t tpo_s_e_i[2]={0,tpo_iblock->size-1}; /* -1: this is INCLUSIVE */ \
                                                                         \
                                                                         \
-    /* A small sanity check: if `OTHER' is given, and it is a block, */ \
-    /* then it must have the same size as `IN's block. On the other  */ \
-    /* hand, when `OTHER' is a tile, its must have `IN's size.       */ \
+    /* A small sanity check: if 'OTHER' is given, and it is a block, */ \
+    /* then it must have the same size as 'IN's block. On the other  */ \
+    /* hand, when 'OTHER' is a tile, its must have 'IN's size.       */ \
     if( tpo_parse_other )                                               \
       {                                                                 \
-        if( OTHER==tpo_oblock )    /* `OTHER' is a block. */            \
+        if( OTHER==tpo_oblock )    /* 'OTHER' is a block. */            \
           {                                                             \
             if( gal_dimension_is_different(tpo_iblock, tpo_oblock) )    \
               {                                                         \
-                /* `error' function, is a GNU extension, see above. */  \
+                /* 'error' function, is a GNU extension, see above. */  \
                 fprintf(stderr, "GAL_TILE_PO_OISET: when "              \
-                        "`PARSE_OTHER' is non-zero, the allocated "     \
-                        "block size of `IN' and `OTHER' must be "       \
+                        "'PARSE_OTHER' is non-zero, the allocated "     \
+                        "block size of 'IN' and 'OTHER' must be "       \
                         "equal, but they are not: %zu and %zu "         \
                         "elements respectively\n", tpo_iblock->size,    \
                         tpo_oblock->size);                              \
@@ -219,12 +219,12 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
         else                                                            \
           if( gal_dimension_is_different(IN, OTHER) )                   \
             {                                                           \
-              /* The `error' function, is a GNU extension and this */   \
+              /* The 'error' function, is a GNU extension and this */   \
               /* is a header, not a library which the user has to  */   \
               /* compile every time (on their own system).         */   \
               fprintf(stderr, "GAL_TILE_PO_OISET: when "                \
-                      "`PARSE_OTHER' is non-zero, the sizes of `IN' "   \
-                      "and `OTHER' must be equal (in all "              \
+                      "'PARSE_OTHER' is non-zero, the sizes of 'IN' "   \
+                      "and 'OTHER' must be equal (in all "              \
                       "dimensions), but they are not: %zu and %zu "     \
                       "elements respectively\n", IN->size,              \
                       tpo_other->size);                                 \
@@ -233,16 +233,16 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
       }                                                                 \
                                                                         \
                                                                         \
-    /* Write the blank value for the input type into `b'. */            \
+    /* Write the blank value for the input type into 'b'. */            \
     gal_blank_write(&b, tpo_iblock->type);                              \
                                                                         \
                                                                         \
     /* If this is a tile, not a full block, then we need to set the  */ \
-    /* starting pointers (`tpo_st' and `tpo_ost'). The latter needs  */ \
+    /* starting pointers ('tpo_st' and 'tpo_ost'). The latter needs  */ \
     /* special attention: if it is a block, then we will use the     */ \
-    /* the same starting element as the input tile. If `OTHER' is a  */ \
+    /* the same starting element as the input tile. If 'OTHER' is a  */ \
     /* tile, then use its own starting position (recall that we have */ \
-    /* already made sure that `IN' and `OTHER' have the same size.   */ \
+    /* already made sure that 'IN' and 'OTHER' have the same size.   */ \
     if(IN!=tpo_iblock)                                                  \
       {                                                                 \
         tpo_st = gal_tile_start_end_ind_inclusive(IN, tpo_iblock,       \
@@ -260,7 +260,7 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
     /* Go over contiguous patches of memory. */                         \
     while( tpo_s_e_i[0] + tpo_i_increment <= tpo_s_e_i[1] )             \
       {                                                                 \
-        /* If we are on a tile, reset `i' and `o'. */                   \
+        /* If we are on a tile, reset 'i' and 'o'. */                   \
         if(IN!=tpo_iblock)                                              \
           {                                                             \
             tpo_f = ( ( i = tpo_st + tpo_i_increment )                  \
@@ -270,9 +270,9 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
                                                                         \
         /* Do the operation depending the nature of the blank value. */ \
         /* Recall that for integer types, the blank value must be    */ \
-        /* checked with `=='. But for floats, the blank value can be */ \
+        /* checked with '=='. But for floats, the blank value can be */ \
         /* a NaN. Recall that a NAN will fail any comparison         */ \
-        /* including `=='. So when the blank value is not equal to   */ \
+        /* including '=='. So when the blank value is not equal to   */ \
         /* itself, then it is floating point and is a NAN. In that   */ \
         /* case, the only way to check if a data element is blank or */ \
         /* not is to see if the value of each element is equal to    */ \
@@ -288,9 +288,9 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
           do    {           {OP;} if(tpo_parse_other) ++o;} while(++i<tpo_f);\
                                                                         \
         /* Set the incrementation. On a fully allocated iblock (when */ \
-        /* `IN==tpo_iblock'), we have already gone through the whole */ \
+        /* 'IN==tpo_iblock'), we have already gone through the whole */ \
         /* array, so we'll set the incrementation to the size of the */ \
-        /* whole block. This will stop the `while' loop above. On a  */ \
+        /* whole block. This will stop the 'while' loop above. On a  */ \
         /* tile, we need to increment to the next contiguous patch   */ \
         /* of memory to continue parsing this tile. */                  \
         tpo_i_increment += ( IN==tpo_iblock                             \
@@ -301,8 +301,8 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
                                                         NULL) );        \
                                                                         \
         /* Similarly, increment the other array if necessary. Like   */ \
-        /* the above, when `OTHER' is a full block, we'll just use   */ \
-        /* the same increment as `IN'. Otherwise, when `OTHER' is a  */ \
+        /* the above, when 'OTHER' is a full block, we'll just use   */ \
+        /* the same increment as 'IN'. Otherwise, when 'OTHER' is a  */ \
         /* tile, calculate its increment based on its own block.     */ \
         if(tpo_parse_other)                                             \
           {                                                             \
@@ -315,7 +315,7 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
           }                                                             \
       }                                                                 \
                                                                         \
-    /* This is done in case the caller doesn't need `o' to avoid */     \
+    /* This is done in case the caller doesn't need 'o' to avoid */     \
     /* compiler warnings. */                                            \
     o = o ? o+0 : NULL;                                                 \
   }
@@ -355,7 +355,7 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
       GAL_TILE_PO_OISET(double,   OT,IN,OTHER,PARSE_OTHER,CHECK_BLANK,OP); \
       break;                                                            \
     default:                                                            \
-      { /* `error' function might not be available for the user. */     \
+      { /* 'error' function might not be available for the user. */     \
         fprintf(stderr, "GAL_TILE_PO_OSET: type code %d not recognized",\
                 tpo_iblock->type);                                      \
         exit(EXIT_FAILURE);                                             \
@@ -365,7 +365,7 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
 
 
 /* Parse over a region of memory (can be an n-dimensional tile or a fully
-   allocated block of memory) and do a certain operation. If `OTHER' is not
+   allocated block of memory) and do a certain operation. If 'OTHER' is not
    NULL, this macro will also parse it at the same time . Note that OTHER
    must either have only one element (for the whole input) or have exactly
    the same number of elements as the input (one value for one
@@ -412,13 +412,13 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl);
         default:                                                        \
           {                                                             \
             fprintf(stderr, "type code %d not recognized in "           \
-                    "`GAL_TILE_PARSE_OPERATE'", tpo_oblock->type);      \
+                    "'GAL_TILE_PARSE_OPERATE'", tpo_oblock->type);      \
             exit(EXIT_FAILURE);                                         \
           }                                                             \
         }                                                               \
     else                                                                \
-      /* When `OTHER==NULL', its type is irrelevant, we'll just use */  \
-      /*`int' as a place holder. */                                     \
+      /* When 'OTHER==NULL', its type is irrelevant, we'll just use */  \
+      /*'int' as a place holder. */                                     \
       GAL_TILE_PO_OSET(int,         IN,OTHER,PARSE_OTHER,CHECK_BLANK,OP); \
   }
 
diff --git a/lib/gnuastro/type.h b/lib/gnuastro/type.h
index 1721419..aed6fe0 100644
--- a/lib/gnuastro/type.h
+++ b/lib/gnuastro/type.h
@@ -28,12 +28,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 #include <gsl/gsl_complex.h>
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
-   `config.h'. When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files in Gnuastro's source must
-   start with the inclusion of `config.h' and that `gnuastro/config.h' is
+   'GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
+   'config.h'. When building a user's programs, this information is kept in
+   'gnuastro/config.h'. Note that all '.c' files in Gnuastro's source must
+   start with the inclusion of 'config.h' and that 'gnuastro/config.h' is
    only created at installation time (not present during the building of
    Gnuastro). */
 #ifndef IN_GNUASTRO_BUILD
@@ -90,13 +90,13 @@ enum gal_types
 
 
 
-/* Define system specific types. For example `size_t' is 4 and 8 bytes on
+/* Define system specific types. For example 'size_t' is 4 and 8 bytes on
    32 and 64 bit systems respectively. In both cases, the standard defines
-   `size_t' to be unsigned. A similar case exists for `long', but it is
-   signed. During `./configure' the sizeof `size_t' and `long' were found
+   'size_t' to be unsigned. A similar case exists for 'long', but it is
+   signed. During './configure' the sizeof 'size_t' and 'long' were found
    and are used to define an alias for these system specific types.
 
-   Note: we are not using `else'. This is done because by any chance, if
+   Note: we are not using 'else'. This is done because by any chance, if
    the length of these types is not what is expected (4 or 8), then the
    aliases are not defined and the compiler will crash. */
 #if GAL_CONFIG_SIZEOF_SIZE_T == 4
diff --git a/lib/gnuastro/units.h b/lib/gnuastro/units.h
index e5eb401..8220999 100644
--- a/lib/gnuastro/units.h
+++ b/lib/gnuastro/units.h
@@ -24,12 +24,12 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #ifndef __GAL_UNITS_H__
 #define __GAL_UNITS_H__
 
-/* When we are within Gnuastro's building process, `IN_GNUASTRO_BUILD' is
+/* When we are within Gnuastro's building process, 'IN_GNUASTRO_BUILD' is
    defined. In the build process, installation information (in particular
-   `GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
-   `config.h'. When building a user's programs, this information is kept in
-   `gnuastro/config.h'. Note that all `.c' files in Gnuastro's source must
-   start with the inclusion of `config.h' and that `gnuastro/config.h' is
+   'GAL_CONFIG_SIZEOF_SIZE_T' that we need below) is kept in
+   'config.h'. When building a user's programs, this information is kept in
+   'gnuastro/config.h'. Note that all '.c' files in Gnuastro's source must
+   start with the inclusion of 'config.h' and that 'gnuastro/config.h' is
    only created at installation time (not present during the building of
    Gnuastro). */
 #ifndef IN_GNUASTRO_BUILD
diff --git a/lib/interpolate.c b/lib/interpolate.c
index d73e405..c57dd96 100644
--- a/lib/interpolate.c
+++ b/lib/interpolate.c
@@ -155,8 +155,8 @@ interpolate_close_neighbors_on_thread(void *in_prm)
          tiled dataset, the caller might want to interpolate the values of
          each channel separately (not mix values from different
          channels). In such a case, the tiles of each channel (and their
-         values in `input' are contiguous. So we need to correct
-         `tprm->indexs[i]' (which is the index over the whole tessellation,
+         values in 'input' are contiguous. So we need to correct
+         'tprm->indexs[i]' (which is the index over the whole tessellation,
          including all channels). */
       if(correct_index)
         {
@@ -248,7 +248,7 @@ interpolate_close_neighbors_on_thread(void *in_prm)
           /* If there are no more meshes to add to the queue, then this
              shows, there were not enough points for
              interpolation. Normally, this loop should only be exited
-             through the `currentnum>=numnearest' check above. */
+             through the 'currentnum>=numnearest' check above. */
           if(sQ==NULL)
             error(EXIT_FAILURE, 0, "%s: only %zu neighbors found while "
                   "you had asked to use %zu neighbors for close neighbor "
@@ -324,9 +324,9 @@ interpolate_copy_input(gal_data_t *input, int aslinkedlist)
 
 
 
-/* Interpolate blank values in an array. If the `tl!=NULL', then it is
+/* Interpolate blank values in an array. If the 'tl!=NULL', then it is
    assumed that the tile values correspond to given tessellation. Such that
-   `input[i]' corresponds to `tiles[i]' in the tessellation. */
+   'input[i]' corresponds to 'tiles[i]' in the tessellation. */
 gal_data_t *
 gal_interpolate_close_neighbors(gal_data_t *input,
                                 struct gal_tile_two_layer_params *tl,
@@ -405,8 +405,8 @@ gal_interpolate_close_neighbors(gal_data_t *input,
 
   /* If we are given a list of datasets, make the necessary
      allocations. The reason we are doing this after a check of
-     `aslinkedlist' is that the `input' might have a `next' element, but
-     the caller might not have called `aslinkedlist'. */
+     'aslinkedlist' is that the 'input' might have a 'next' element, but
+     the caller might not have called 'aslinkedlist'. */
   prm.out->next=NULL;
   if(aslinkedlist)
     for(tin=input->next; tin!=NULL; tin=tin->next)
@@ -546,12 +546,12 @@ gal_interpolate_1d_make_gsl_spline(gal_data_t *X, 
gal_data_t *Y, int type_1d)
     }
 
   /* Initializations. Note that if Y doesn't have any blank elements and is
-     already in `double' type, then we don't need to make a copy. */
+     already in 'double' type, then we don't need to make a copy. */
   Yd = ( (Yhasblank || Y->type!=GAL_TYPE_FLOAT64)
          ? gal_data_copy_to_new_type(Y, GAL_TYPE_FLOAT64)
          : Y );
   Xd = ( X
-         /* Has to be `Yhasblank', we KNOW X doesn't have blank values. */
+         /* Has to be 'Yhasblank', we KNOW X doesn't have blank values. */
          ? ( (Yhasblank || X->type!=GAL_TYPE_FLOAT64)
              ? gal_data_copy_to_new_type(X, GAL_TYPE_FLOAT64)
              : X )
@@ -751,8 +751,8 @@ gal_interpolate_1d_blank(gal_data_t *in, int type_1d)
       }
       */
 
-      /* Set the blank flags, note that `GAL_DATA_FLAG_BLANK_CH' is already set
-         by the top call to `gal_blank_present'. */
+      /* Set the blank flags, note that 'GAL_DATA_FLAG_BLANK_CH' is already set
+         by the top call to 'gal_blank_present'. */
       if(hasblank)
         in->flag |=  GAL_DATA_FLAG_HASBLANK;
       else
diff --git a/lib/jpeg.c b/lib/jpeg.c
index 28b3efc..a4aa5b8 100644
--- a/lib/jpeg.c
+++ b/lib/jpeg.c
@@ -213,14 +213,14 @@ readjpg(char *inname, size_t *outs0, size_t *outs1, 
size_t *numcolors)
   errno=0;
   all=malloc(nc*sizeof *all);
   if(all==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `all'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'all'",
           __func__, nc*sizeof *all);
   for(i=0;i<nc;++i)
     {
       errno=0;
       all[i]=malloc(s0*s1*sizeof *all[i]);
       if(all[i]==NULL)
-        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `all[%zu]'",
+        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'all[%zu]'",
               __func__, s0*s1*sizeof *all[i], i);
     }
 
@@ -411,8 +411,8 @@ gal_jpeg_write(gal_data_t *in, char *filename, uint8_t 
quality,
     error(EXIT_FAILURE, 0, "%s: only 1, 3, and 4 color channels are "
           "acceptable, input is a list of %zu data sets", __func__, numch);
   if(in->type!=GAL_TYPE_UINT8)
-    error(EXIT_FAILURE, 0, "%s: input has a `%s' type, but JPEG images can "
-          "only have a `uint8' type", __func__, gal_type_name(in->type, 1));
+    error(EXIT_FAILURE, 0, "%s: input has a '%s' type, but JPEG images can "
+          "only have a 'uint8' type", __func__, gal_type_name(in->type, 1));
 
   /* Make sure the file doesn't exist and that we have write
      permission. Note that the JPEG standard doesn't have multple
diff --git a/lib/label.c b/lib/label.c
index 15bb721..89fd48e 100644
--- a/lib/label.c
+++ b/lib/label.c
@@ -51,10 +51,10 @@ label_check_type(gal_data_t *in, uint8_t needed_type, char 
*variable,
                  const char *func)
 {
   if(in->type!=needed_type)
-    error(EXIT_FAILURE, 0, "%s: the `%s' dataset has `%s' type, but it "
-          "must have a `%s' type.\n\n"
-          "You can use `gal_data_copy_to_new_type' or "
-          "`gal_data_copy_to_new_type_free' to convert your input dataset "
+    error(EXIT_FAILURE, 0, "%s: the '%s' dataset has '%s' type, but it "
+          "must have a '%s' type.\n\n"
+          "You can use 'gal_data_copy_to_new_type' or "
+          "'gal_data_copy_to_new_type_free' to convert your input dataset "
           "to this type before calling this function", func, variable,
           gal_type_name(in->type, 1), gal_type_name(needed_type, 1));
 }
@@ -81,7 +81,7 @@ label_check_type(gal_data_t *in, uint8_t needed_type, char 
*variable,
 /****************************************************************
  *****************          Indexs           ********************
  ****************************************************************/
-/* Put the indexs of each labeled region into an array of `gal_data_t's
+/* Put the indexs of each labeled region into an array of 'gal_data_t's
    (where each element is a dataset containing the respective label's
    indexs). */
 gal_data_t *
@@ -174,7 +174,7 @@ gal_label_indexs(gal_data_t *labels, size_t numlabs, size_t 
minmapsize,
    values. If a certain pixel (at a certain level) has no neighbors, it is
    a local maximum and will be assigned a new label. If it has a labeled
    neighbor, it will take that label and if there is more than one
-   neighboring labeled region that pixel will be a `river` pixel.
+   neighboring labeled region that pixel will be a 'river' pixel.
 
    DON'T FORGET: SET THE FLAGS FOR CONV EQUAL TO INPUT IN SEGMENT.
 
@@ -197,10 +197,10 @@ gal_label_watershed(gal_data_t *values, gal_data_t 
*indexs,
   label_check_type(indexs, GAL_TYPE_SIZE_T,  "indexs", __func__);
   label_check_type(labels, GAL_TYPE_INT32,   "labels", __func__);
   if( gal_dimension_is_different(values, labels) )
-    error(EXIT_FAILURE, 0, "%s: the `values' and `labels' arguments must "
+    error(EXIT_FAILURE, 0, "%s: the 'values' and 'labels' arguments must "
           "have the same size", __func__);
   if(indexs->ndim!=1)
-    error(EXIT_FAILURE, 0, "%s: `indexs' has to be a 1D array, but it is "
+    error(EXIT_FAILURE, 0, "%s: 'indexs' has to be a 1D array, but it is "
           "%zuD", __func__, indexs->ndim);
 
 
@@ -239,8 +239,8 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
 
 
   /* If the indexs aren't already sorted (by the value they correspond to),
-     sort them given indexs based on their flux (`gal_qsort_index_arr' is
-     defined as static in `gnuastro/qsort.h') */
+     sort them given indexs based on their flux ('gal_qsort_index_arr' is
+     defined as static in 'gnuastro/qsort.h') */
   if( !( (indexs->flag & GAL_DATA_FLAG_SORT_CH)
         && ( indexs->flag
              & (GAL_DATA_FLAG_SORTED_I
@@ -288,7 +288,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
             /* A small sanity check. */
             if(Q!=NULL || cleanup!=NULL)
               error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so "
-                    "we can fix this problem. `Q' and `cleanup' should be "
+                    "we can fix this problem. 'Q' and 'cleanup' should be "
                     "NULL but while checking the equal flux regions they "
                     "aren't", __func__, PACKAGE_BUGREPORT);
 
@@ -332,10 +332,10 @@ gal_label_watershed(gal_data_t *values, gal_data_t 
*indexs,
 
                                     /* If this neighbor has a positive
                                        nlab, it belongs to another object,
-                                       so if `n1' has not been set for the
-                                       whole region (n1==0), put `nlab'
-                                       into `n1'. If `n1' has been set and
-                                       is different from `nlab' then this
+                                       so if 'n1' has not been set for the
+                                       whole region (n1==0), put 'nlab'
+                                       into 'n1'. If 'n1' has been set and
+                                       is different from 'nlab' then this
                                        whole equal flux region should be a
                                        wide river because it is connecting
                                        two connected regions.*/
@@ -361,7 +361,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
                             are on the edge of the indexed region (the
                             neighbor is not in the initial list of pixels
                             to segment). When over-segmenting the noise and
-                            the detections, `label' is zero for the parts
+                            the detections, 'label' is zero for the parts
                             of the image that we are not interested in
                             here. */
                          else labs[*a]=GAL_LABEL_RIVER;
@@ -370,7 +370,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
               }
 
             /* Set the label that is to be given to this equal flux
-               region. If `n1' was set to any value, then that label should
+               region. If 'n1' was set to any value, then that label should
                be used for the whole region. Otherwise, this is a new
                label, see the case for a non-flat region. */
             if(n1) rlab = n1;
@@ -397,7 +397,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
            flux, so simply find the label for this object. */
         else
           {
-            /* `n1' is the label of the first labeled neighbor found, so
+            /* 'n1' is the label of the first labeled neighbor found, so
                we'll initialize it to zero. */
             n1=0;
 
@@ -410,7 +410,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
                set it as a river pixel.*/
             GAL_DIMENSION_NEIGHBOR_OP(*a, ndim, dsize, ndim, dinc,
                {
-                 /* When `n1' has already been set as a river, there is no
+                 /* When 'n1' has already been set as a river, there is no
                     point in looking at the other neighbors. */
                  if(n1!=GAL_LABEL_RIVER)
                    {
@@ -446,7 +446,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
                                     ? GAL_LABEL_RIVER
                                     : n1 ) )
 
-                            /* `nlab==0' (the neighbor lies in the other
+                            /* 'nlab==0' (the neighbor lies in the other
                                domain (sky or detections). To avoid the
                                different domains touching, this pixel
                                should be a river. */
@@ -458,7 +458,7 @@ gal_label_watershed(gal_data_t *values, gal_data_t *indexs,
                of its neighbors. If n1 equals zero, then this is a new
                peak, and a new label should be created.  But if n1!=0, it
                is either a river pixel (has more than one labeled neighbor
-               and has been set to `GAL_LABEL_RIVER' before) or all its
+               and has been set to 'GAL_LABEL_RIVER' before) or all its
                neighbors have the same label. In both such cases, rlab
                should be set to n1.*/
             if(n1) rlab = n1;
@@ -540,20 +540,20 @@ label_clump_significance_sanity(gal_data_t *values, 
gal_data_t *std,
 
   /* Type of values. */
   if( values->type!=GAL_TYPE_FLOAT32 )
-    error(EXIT_FAILURE, 0, "%s: the values dataset must have a `float' "
-          "type, but it has a `%s' type", func,
+    error(EXIT_FAILURE, 0, "%s: the values dataset must have a 'float' "
+          "type, but it has a '%s' type", func,
           gal_type_name(values->type, 1));
 
   /* Type of standard deviation. */
   if( std->type!=GAL_TYPE_FLOAT32 )
     error(EXIT_FAILURE, 0, "%s: the standard deviation dataset must have a "
-          "`float' (`float32') type, but it has a `%s' type", func,
+          "'float' ('float32') type, but it has a '%s' type", func,
           gal_type_name(std->type, 1));
 
   /* Type of labels image. */
   if( label->type!=GAL_TYPE_INT32 )
-    error(EXIT_FAILURE, 0, "%s: the labels dataset must have an `int32' "
-          "type, but it has a `%s' type", func,
+    error(EXIT_FAILURE, 0, "%s: the labels dataset must have an 'int32' "
+          "type, but it has a '%s' type", func,
           gal_type_name(label->type, 1));
 
   /* Dimentionality of the values dataset. */
@@ -564,8 +564,8 @@ label_clump_significance_sanity(gal_data_t *values, 
gal_data_t *std,
 
   /* Type of indexs image. */
   if( indexs->type!=GAL_TYPE_SIZE_T )
-    error(EXIT_FAILURE, 0, "%s: the indexs dataset must have a `size_t' "
-          "type, but it has a `%s' type", func,
+    error(EXIT_FAILURE, 0, "%s: the indexs dataset must have a 'size_t' "
+          "type, but it has a '%s' type", func,
           gal_type_name(label->type, 1));
 
   /* Dimensionality of indexs (must be 1D). */
@@ -590,11 +590,11 @@ label_clump_significance_sanity(gal_data_t *values, 
gal_data_t *std,
           "tessellation (when a tessellation is given)",
           func, std->size, values->size);
 
-  /* If the `array' and `dsize' elements of `sig' have already been set. */
+  /* If the 'array' and 'dsize' elements of 'sig' have already been set. */
   if(sig->array)
     error(EXIT_FAILURE, 0, "%s: the dataset that will contain the "
-          "significance values must have NULL pointers for its `array' "
-          "and `dsize' pointers (they will be allocated here)", func);
+          "significance values must have NULL pointers for its 'array' "
+          "and 'dsize' pointers (they will be allocated here)", func);
 
   /* See if the clumps are to be built starting from local maxima or local
      minima. */
@@ -610,7 +610,7 @@ label_clump_significance_sanity(gal_data_t *values, 
gal_data_t *std,
             if( isnan(second) )
               {
                 /* Note that the elements may have equal values, so for
-                   `second', we want the first non-blank AND different
+                   'second', we want the first non-blank AND different
                    value. */
                 if( f[*a]!=first )
                   second=f[*a];
@@ -622,7 +622,7 @@ label_clump_significance_sanity(gal_data_t *values, 
gal_data_t *std,
   while(++a<af);
 
   /* Note that if all the values are blank or there is only one value
-     covered by all the indexs, then both (or one) of `first' or `second'
+     covered by all the indexs, then both (or one) of 'first' or 'second'
      will be NAN. In either case, the significance measure is not going to
      be meaningful if we assume the clumps start from the maxima or
      minima. So we won't check if they are NaN or not.*/
@@ -649,7 +649,7 @@ enum infocols
     INFO_PEAK_RIVER,     /* Peak (min or max) river value around a clump. */
     INFO_PEAK_CENTER,    /* Peak (min or max) clump value.                */
 
-    INFO_NCOLS,          /* Total number of columns in the `info' table.  */
+    INFO_NCOLS,          /* Total number of columns in the 'info' table.  */
   };
 static void
 label_clump_significance_raw(gal_data_t *values_d, gal_data_t *std_d,
@@ -683,7 +683,7 @@ label_clump_significance_raw(gal_data_t *values_d, 
gal_data_t *std_d,
             /* Add this pixel to this clump's area. */
             ++row[ INFO_INAREA ];
 
-            /* In the loop `INFO_INAREA' is just the pixel counter of this
+            /* In the loop 'INFO_INAREA' is just the pixel counter of this
                clump. The pixels are sorted by flux (decreasing for
                positive clumps and increasing for negative). So the second
                extremum value is just the second pixel of the clump. */
@@ -697,16 +697,16 @@ label_clump_significance_raw(gal_data_t *values_d, 
gal_data_t *std_d,
           {
             /* We are on a river pixel. So the value of this pixel has to
                be added to any of the clumps in touches. But since it might
-               touch a labeled region more than once, we use `ngblabs' to
+               touch a labeled region more than once, we use 'ngblabs' to
                keep track of which label we have already added its value
-               to. `ii` is the number of different labels this river pixel
-               has already been considered for. `ngblabs' will keep the list
+               to. 'ii' is the number of different labels this river pixel
+               has already been considered for. 'ngblabs' will keep the list
                labels. */
             ii=0;
             memset(ngblabs, 0, nngb*sizeof *ngblabs);
 
             /* Look into the 8-connected neighbors (recall that a
-               connectivity of `ndim' means all pixels touching it (even on
+               connectivity of 'ndim' means all pixels touching it (even on
                one vertice). */
             GAL_DIMENSION_NEIGHBOR_OP(*a, ndim, dsize, ndim, dinc, {
                 /* This neighbor's label. */
@@ -784,7 +784,7 @@ gal_label_clump_significance(gal_data_t *values, gal_data_t 
*std,
 
   /* Allocate the arrays to keep the final significance measure (and
      possibly the indexs). */
-  sig->ndim  = 1;                        /* Depends on `cltprm->sn' */
+  sig->ndim  = 1;                        /* Depends on 'cltprm->sn' */
   sig->type  = GAL_TYPE_FLOAT32;
   if(sig->dsize==NULL)
     sig->dsize = gal_pointer_allocate(GAL_TYPE_SIZE_T, 1, 0, __func__,
@@ -823,7 +823,7 @@ gal_label_clump_significance(gal_data_t *values, gal_data_t 
*std,
          for this clump, then do the measurement. */
       if( row[ INFO_INAREA ]>minarea && row[ INFO_RIVAREA ])
         {
-          /* Set the index to write the values. If `keepsmall' is not
+          /* Set the index to write the values. If 'keepsmall' is not
              called, we don't care about the IDs of the clumps anymore, so
              store the signal-to-noise ratios contiguously. Note that
              counter will always be smaller and equal to i. */
@@ -908,7 +908,7 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
   label_check_type(indexs, GAL_TYPE_SIZE_T, "indexs", __func__);
   label_check_type(labels, GAL_TYPE_INT32,  "labels", __func__);
   if(indexs->ndim!=1)
-    error(EXIT_FAILURE, 0, "%s: `indexs' has to be a 1D array, but it is "
+    error(EXIT_FAILURE, 0, "%s: 'indexs' has to be a 1D array, but it is "
           "%zuD", __func__, indexs->ndim);
 
   /* The basic idea is this: after growing, not all the blank pixels are
@@ -920,22 +920,22 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
      pixels left to fill in this round (thisround) equals the number of
      blanks.
 
-     To start the loop, we set `thisround' to one more than the number of
+     To start the loop, we set 'thisround' to one more than the number of
      indexed pixels. Note that it will be corrected immediately after the
-     loop has started, it is just important to pass the `while'. */
+     loop has started, it is just important to pass the 'while'. */
   thisround=ninds+1;
   while( thisround > ninds )
     {
-      /* `thisround' will keep the number of pixels to be inspected in this
-         round. `ninds' will count the number of pixels left without a
-         label by the end of this round. Since `ninds' comes from the
+      /* 'thisround' will keep the number of pixels to be inspected in this
+         round. 'ninds' will count the number of pixels left without a
+         label by the end of this round. Since 'ninds' comes from the
          previous loop (or outside, for the first round) it has to be saved
-         in `thisround' to begin counting a fresh. */
+         in 'thisround' to begin counting a fresh. */
       thisround=ninds;
       ninds=0;
 
-      /* Go over all the available indexs. NOTE: while the `indexs->array'
-         pointer remains unchanged, `indexs->size' can/will change (get
+      /* Go over all the available indexs. NOTE: while the 'indexs->array'
+         pointer remains unchanged, 'indexs->size' can/will change (get
          smaller) in every loop. */
       sf = (s=indexs->array) + indexs->size;
       do
@@ -946,7 +946,7 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
 
           /* Check the neighbors of this pixel. Note that since this
              macro has multiple loops within it, we can't use
-             break. We'll use the `searchngb' variable instead. */
+             break. We'll use the 'searchngb' variable instead. */
           searchngb=1;
           GAL_DIMENSION_NEIGHBOR_OP(*s, labels->ndim, labels->dsize,
             connectivity, dinc,
@@ -972,7 +972,7 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
                           n1=nlab;
 
                           /* If we want to completely fill in the region
-                             (`withrivers==0'), then there is no point in
+                             ('withrivers==0'), then there is no point in
                              looking in other neighbors, the first
                              neighbor we find, is the one we'll use. */
                           if(!withrivers) searchngb=0;
@@ -991,15 +991,15 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
              The first one means that no neighbors were found and this
              pixel should be kept for the next loop (we'll be growing the
              objects pixel-layer by pixel-layer). In the other two cases,
-             we just need to write in the value of `n1'. */
+             we just need to write in the value of 'n1'. */
           if(n1)
             {
               /* Set the label. */
               olabel[*s]=n1;
 
               /* If this pixel is a river (can only happen when
-                 `withrivers' is zero), keep it in the loop, because we
-                 want the `indexs' dataset to contain all non-positive
+                 'withrivers' is zero), keep it in the loop, because we
+                 want the 'indexs' dataset to contain all non-positive
                  (non-labeled) pixels, including rivers. */
               if(n1==GAL_LABEL_RIVER)
                 iarray[ ninds++ ] = *s;
@@ -1007,7 +1007,7 @@ gal_label_grow_indexs(gal_data_t *labels, gal_data_t 
*indexs, int withrivers,
           else
             iarray[ ninds++ ] = *s;
 
-          /* Correct the size of the `indexs' dataset. */
+          /* Correct the size of the 'indexs' dataset. */
           indexs->size = indexs->dsize[0] = ninds;
         }
       while(++s<sf);
diff --git a/lib/list.c b/lib/list.c
index fed10d3..811848f 100644
--- a/lib/list.c
+++ b/lib/list.c
@@ -1182,11 +1182,11 @@ gal_list_dosizet_pop_smallest(gal_list_dosizet_t 
**largest,
     }
   else
     {
-      /* If `smallest' is NULL, `largest' should also be NULL. */
+      /* If 'smallest' is NULL, 'largest' should also be NULL. */
       if(*largest)
-        error(EXIT_FAILURE, 0, "%s: `largest' and `smallest' pointers must "
+        error(EXIT_FAILURE, 0, "%s: 'largest' and 'smallest' pointers must "
               "both be non-NULL or both be NULL. However, in this call, "
-              "`smallest' was NULL while `largest' isn't NULL", __func__);
+              "'smallest' was NULL while 'largest' isn't NULL", __func__);
       value=GAL_BLANK_SIZE_T;
       *tosort=NAN;
     }
@@ -1289,7 +1289,7 @@ gal_list_data_add(gal_data_t **list, gal_data_t *newnode)
       toadd=tmp;
     }
   else
-    /* Its not a list, so just set it to `toadd'. */
+    /* Its not a list, so just set it to 'toadd'. */
     toadd=newnode;
 
 
diff --git a/lib/match.c b/lib/match.c
index 6f0de21..d03f630 100644
--- a/lib/match.c
+++ b/lib/match.c
@@ -126,9 +126,9 @@ match_coordinate_sanity_check_columns(gal_data_t *coord, 
char *info,
       if(tmp->type!=GAL_TYPE_FLOAT64)
         {
           if(inplace)
-            error(EXIT_FAILURE, 0, "%s: when `inplace' is activated, the "
-                  "input coordinates must have `float64' type. At least "
-                  "one node of the %s list has type of `%s'", __func__, info,
+            error(EXIT_FAILURE, 0, "%s: when 'inplace' is activated, the "
+                  "input coordinates must have 'float64' type. At least "
+                  "one node of the %s list has type of '%s'", __func__, info,
                   gal_type_name(tmp->type, 1));
           else
             *allf64=0;
@@ -203,7 +203,7 @@ match_coordinaes_sanity_check(gal_data_t *coord1, 
gal_data_t *coord2,
 
     default:
       error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-            "the issue. The value %zu not recognized for `ndim'", __func__,
+            "the issue. The value %zu not recognized for 'ndim'", __func__,
             PACKAGE_BUGREPORT, ncoord1);
     }
 }
@@ -248,7 +248,7 @@ match_coordinates_prepare(gal_data_t *coord1, gal_data_t 
*coord2,
   gal_data_t *c, *tmp, *A=NULL, *B=NULL;
 
   /* Sort the datasets if they aren't sorted. If the dataset is already
-     sorted, then `inplace' is irrelevant. */
+     sorted, then 'inplace' is irrelevant. */
   if(sorted_by_first && allf64)
     {
       *A_out=coord1;
@@ -256,7 +256,7 @@ match_coordinates_prepare(gal_data_t *coord1, gal_data_t 
*coord2,
     }
   else
     {
-      /* Allocating a new list is only necessary when `inplace==0' or all
+      /* Allocating a new list is only necessary when 'inplace==0' or all
          the columns are double. */
       if( inplace && allf64 )
         {
@@ -318,7 +318,7 @@ match_coordinates_prepare(gal_data_t *coord1, gal_data_t 
*coord2,
 /********************************************************************/
 /*************            Coordinate matching           *************/
 /********************************************************************/
-/* Preparations for `match_coordinates_second_in_first'. */
+/* Preparations for 'match_coordinates_second_in_first'. */
 static void
 match_coordinates_sif_prepare(gal_data_t *A, gal_data_t *B,
                               double *aperture, size_t ndim, double **a,
@@ -485,7 +485,7 @@ match_coordinates_second_in_first(gal_data_t *A, gal_data_t 
*B,
                                   struct match_coordinate_sfll **bina)
 {
   /* To keep things easy to read, all variables related to catalog 1 start
-     with an `a' and things related to catalog 2 are marked with a `b'. The
+     with an 'a' and things related to catalog 2 are marked with a 'b'. The
      redundant variables (those that equal a previous value) are only
      defined to make it easy to read the code.*/
   int iscircle=0;
@@ -501,40 +501,40 @@ match_coordinates_second_in_first(gal_data_t *A, 
gal_data_t *B,
   match_coordinates_sif_prepare(A, B, aperture,  ndim, a, b, dist, c, s,
                                 &iscircle);
 
-  /* For each row/record of catalog `a', make a list of the nearest records
+  /* For each row/record of catalog 'a', make a list of the nearest records
      in catalog b within the maximum distance. Note that both catalogs are
      sorted by their first axis coordinate.*/
   for(ai=0;ai<ar;++ai)
     if(blow<br)
       {
-        /* Initialize `bina'. */
+        /* Initialize 'bina'. */
         bina[ai]=NULL;
 
         /* Find the first (lowest first axis value) row/record in catalog
-           `b' that is within the search radius for this record of catalog
-           `a'. `blow' is the index of the first element to start searching
-           in the catalog `b' for a match to `a[][ai]' (the record in
-           catalog a that is currently being searched). `blow' is only
+           'b' that is within the search radius for this record of catalog
+           'a'. 'blow' is the index of the first element to start searching
+           in the catalog 'b' for a match to 'a[][ai]' (the record in
+           catalog a that is currently being searched). 'blow' is only
            based on the first coordinate, not the second.
 
            Both catalogs are sorted by their first coordinate, so the
-           `blow' to search for the next record in catalog `a' will be
-           larger or equal to that of the previous catalog `a' record. To
+           'blow' to search for the next record in catalog 'a' will be
+           larger or equal to that of the previous catalog 'a' record. To
            account for possibly large distances between the records, we do
-           a search here to change `blow' if necessary before doing further
+           a search here to change 'blow' if necessary before doing further
            searching.*/
         for( blow=prevblow; blow<br && b[0][blow] < a[0][ai]-dist[0]; ++blow)
-          { /* This can be blank, the `for' does all we need :-). */ }
+          { /* This can be blank, the 'for' does all we need :-). */ }
 
 
-        /* `blow' is now found for this `ai' and will be used unchanged to
+        /* 'blow' is now found for this 'ai' and will be used unchanged to
            the end of the loop. So keep its value to help the search for
-           the next entry in catalog `a'. */
+           the next entry in catalog 'a'. */
         prevblow=blow;
 
 
-        /* Go through catalog `b' (starting at `blow') with a first axis
-           value smaller than the maximum acceptable range for `si'. */
+        /* Go through catalog 'b' (starting at 'blow') with a first axis
+           value smaller than the maximum acceptable range for 'si'. */
         for( bi=blow; bi<br && b[0][bi] <= a[0][ai] + dist[0]; ++bi )
           {
             /* Only consider records with a second axis value in the
@@ -553,25 +553,25 @@ match_coordinates_second_in_first(gal_data_t *A, 
gal_data_t *B,
                 || ( b[1][bi] >= a[1][ai]-dist[1]
                      && b[1][bi] <= a[1][ai]+dist[1] ) )
               {
-                /* Now, `bi' is within the rectangular range of `ai'. But
+                /* Now, 'bi' is within the rectangular range of 'ai'. But
                    this is not enough to consider the two objects matched
                    for the following reasons:
 
                    1) Until now we have avoided calculations other than
                    larger or smaller on double precision floating point
-                   variables for efficiency. So the `bi' is within a square
-                   of side `dist[0]*dist[1]' around `ai' (not within a
+                   variables for efficiency. So the 'bi' is within a square
+                   of side 'dist[0]*dist[1]' around 'ai' (not within a
                    fixed radius).
 
-                   2) Other objects in the `b' catalog may be closer to
-                   `ai' than this `bi'.
+                   2) Other objects in the 'b' catalog may be closer to
+                   'ai' than this 'bi'.
 
-                   3) The closest `bi' to `ai' might be closer to another
-                   catalog `a' record.
+                   3) The closest 'bi' to 'ai' might be closer to another
+                   catalog 'a' record.
 
                    To address these problems, we will use a linked list to
-                   keep the indexes of the `b's near `ai', along with their
-                   distance. We only add the `bi's to this list that are
+                   keep the indexes of the 'b's near 'ai', along with their
+                   distance. We only add the 'bi's to this list that are
                    within the acceptable distance.
 
                    Since we are dealing with much fewer objects at this
@@ -596,7 +596,7 @@ match_coordinates_second_in_first(gal_data_t *A, gal_data_t 
*B,
 
 
         /* If there was no objects within the acceptable distance, then the
-           linked list pointer will be NULL, so go on to the next `ai'. */
+           linked list pointer will be NULL, so go on to the next 'ai'. */
         if(bina[ai]==NULL)
           continue;
 
@@ -619,7 +619,7 @@ match_coordinates_second_in_first(gal_data_t *A, gal_data_t 
*B,
 
 
 
-/* In `match_coordinates_second_in_first', we made an array of lists, here
+/* In 'match_coordinates_second_in_first', we made an array of lists, here
    we want to reverse that list to fix the second two issues that were
    discussed there. */
 void
@@ -630,25 +630,25 @@ match_coordinates_rearrange(gal_data_t *A, gal_data_t *B,
   float *fp, *fpf, r, *ainb;
   size_t ai, ar=A->size, br=B->size;
 
-  /* Allocate the space for `ainb' and initialize it to NaN (since zero is
+  /* Allocate the space for 'ainb' and initialize it to NaN (since zero is
      meaningful) in this context (both for indexs and also for
      floats). This is a two column array that will keep the distance and
-     index of the closest element in catalog `a' for each element in
+     index of the closest element in catalog 'a' for each element in
      catalog b. */
   errno=0; ainb=calloc(2*br, sizeof *ainb);
   if(ainb==NULL)
-    error(EXIT_FAILURE, errno, "%s: %zu bytes for `ainb'", __func__,
+    error(EXIT_FAILURE, errno, "%s: %zu bytes for 'ainb'", __func__,
           br*sizeof *ainb);
   fpf=(fp=ainb)+2*br; do *fp++=NAN; while(fp<fpf);
 
-  /* Go over each object in catalog `a' and re-distribute the near objects,
-     to find which ones in catalog `a' are within the search radius of
-     catalog b in a sorted manner. Note that we only need the `ai' with the
-     minimum distance to `bi', the rest are junk.*/
+  /* Go over each object in catalog 'a' and re-distribute the near objects,
+     to find which ones in catalog 'a' are within the search radius of
+     catalog b in a sorted manner. Note that we only need the 'ai' with the
+     minimum distance to 'bi', the rest are junk.*/
   for( ai=0; ai<ar; ++ai )
     while( bina[ai] )  /* As long as its not NULL.            */
       {
-       /* Pop out a `bi' and its distance to this `ai' from `bina'. */
+       /* Pop out a 'bi' and its distance to this 'ai' from 'bina'. */
        match_coordinate_pop_from_sfll(&bina[ai], &bi, &r);
 
        /* If nothing has been put here (the isnan condition below is
@@ -671,7 +671,7 @@ match_coordinates_rearrange(gal_data_t *A, gal_data_t *B,
   }
   */
 
-  /* Re-fill the bina array, but this time only with the `bi' that is
+  /* Re-fill the bina array, but this time only with the 'bi' that is
      closest to it. Note that bina was fully set to NULL after popping all
      the elements in the loop above.*/
   for( bi=0; bi<br; ++bi )
@@ -682,8 +682,8 @@ match_coordinates_rearrange(gal_data_t *A, gal_data_t *B,
        r=ainb[bi*2+1];
        ai=(size_t)(ainb[bi*2]);
 
-       /* Check if this is the first time we are associating a `bi' to
-          this `ai'. If so, then just allocate a single element
+       /* Check if this is the first time we are associating a 'bi' to
+          this 'ai'. If so, then just allocate a single element
           list. Otherwise, see if the distance is closer or not. If so,
           replace the values in the single node. */
        if( bina[ai] )
@@ -764,17 +764,17 @@ gal_match_coordinates_output(gal_data_t *A, gal_data_t 
*B, size_t *A_perm,
                                  "Distance between the match.");
 
 
-  /* Allocate the `Bmatched' array which is a flag for which rows of the
+  /* Allocate the 'Bmatched' array which is a flag for which rows of the
      second catalog were matched. The columns that had a match will get a
      value of one while we are parsing them below. */
   Bmatched=gal_pointer_allocate(GAL_TYPE_UINT8, B->size, 1, __func__,
                                 "Bmatched");
 
 
-  /* Initialize the indexs. We want the first `nummatched' indexs in both
+  /* Initialize the indexs. We want the first 'nummatched' indexs in both
      outputs to be the matching rows. The non-matched rows should start to
      be indexed after the matched ones. So the first non-matched index is
-     at the index `nummatched'. */
+     at the index 'nummatched'. */
   match_i   = 0;
   nomatch_i = nummatched;
 
@@ -794,7 +794,7 @@ gal_match_coordinates_output(gal_data_t *A, gal_data_t *B, 
size_t *A_perm,
           aind[ match_i   ] = A_perm ? A_perm[ai] : ai;
           bind[ match_i++ ] = B_perm ? B_perm[bi] : bi;
 
-          /* Set a `1' for this object in the second catalog. This will
+          /* Set a '1' for this object in the second catalog. This will
              later be used to find which rows didn't match to fill in the
              output.. */
           Bmatched[ B_perm ? B_perm[bi] : bi ] = 1;
@@ -849,21 +849,21 @@ gal_match_coordinates_output(gal_data_t *A, gal_data_t 
*B, size_t *A_perm,
 /********************************************************************/
 /*************            Coordinate matching           *************/
 /********************************************************************/
-/* Match two positions: the two inputs (`coord1' and `coord2') should be
+/* Match two positions: the two inputs ('coord1' and 'coord2') should be
    lists of coordinates (each is a list of datasets). To speed up the
    search, this function will sort the inputs by their first column. If
    both are already sorted, give a non-zero value to
-   `sorted_by_first'. When sorting is necessary and `inplace' is non-zero,
+   'sorted_by_first'. When sorting is necessary and 'inplace' is non-zero,
    the actual inputs will be sorted. Otherwise, an internal copy of the
    inputs will be made which will be used (sorted) and later
-   freed. Therefore when `inplace==0', the input's won't be changed.
+   freed. Therefore when 'inplace==0', the input's won't be changed.
 
    IMPORTANT NOTE: the output permutations will correspond to the initial
-   inputs. Therefore, even when `inplace' is non-zero (and this function
+   inputs. Therefore, even when 'inplace' is non-zero (and this function
    changes the inputs' order), the output permutation will correspond to
    original inputs.
 
-   The output is a list of `gal_data_t' with the following columns:
+   The output is a list of 'gal_data_t' with the following columns:
 
        Node 1: First catalog index (counting from zero).
        Node 2: Second catalog index (counting from zero).
@@ -880,25 +880,25 @@ gal_match_coordinates(gal_data_t *coord1, gal_data_t 
*coord2,
   struct match_coordinate_sfll **bina;
 
   /* Do a small sanity check and make the preparations. After this point,
-     we'll call the two arrays `a' and `b'.*/
+     we'll call the two arrays 'a' and 'b'.*/
   match_coordinaes_sanity_check(coord1, coord2, aperture, inplace,
                                 &allf64);
   match_coordinates_prepare(coord1, coord2, sorted_by_first, inplace, allf64,
                             &A, &B, &A_perm, &B_perm, minmapsize);
 
 
-  /* Allocate the `bina' array (an array of lists). Let's call the first
-     catalog `a' and the second `b'. This array has `a->size' elements
-     (pointers) and for each, it keeps a list of `b' elements that are
+  /* Allocate the 'bina' array (an array of lists). Let's call the first
+     catalog 'a' and the second 'b'. This array has 'a->size' elements
+     (pointers) and for each, it keeps a list of 'b' elements that are
      nearest to it. */
   errno=0;
   bina=calloc(A->size, sizeof *bina);
   if(bina==NULL)
-    error(EXIT_FAILURE, errno, "%s: %zu bytes for `bina'", __func__,
+    error(EXIT_FAILURE, errno, "%s: %zu bytes for 'bina'", __func__,
           A->size*sizeof *bina);
 
 
-  /* All records in `b' that match each `a' (possibly duplicate). */
+  /* All records in 'b' that match each 'a' (possibly duplicate). */
   match_coordinates_second_in_first(A, B, aperture, bina);
 
 
@@ -922,7 +922,7 @@ gal_match_coordinates(gal_data_t *coord1, gal_data_t 
*coord2,
   if(B_perm) free(B_perm);
 
 
-  /* Set `nummatched' and return output. */
+  /* Set 'nummatched' and return output. */
   *nummatched = out ?  out->next->next->size : 0;
   return out;
 }
diff --git a/lib/options.c b/lib/options.c
index 7e5599c..9cf89be 100644
--- a/lib/options.c
+++ b/lib/options.c
@@ -134,8 +134,8 @@ gal_options_abort_if_mandatory_missing(struct 
gal_options_common_params *cp)
           "options and configuration files, please see the \"Options\" and "
           "\"Configuration files\" section of the Gnuastro book "
           "respectively. You can read them on the command-line by running "
-          "the following commands (type `SPACE' to flip through pages, type "
-          "`Q' to return to the command-line):\n\n"
+          "the following commands (type 'SPACE' to flip through pages, type "
+          "'Q' to return to the command-line):\n\n"
           "  info gnuastro Options\n"
           "  info gnuastro \"Configuration files\"\n");
 
@@ -187,7 +187,7 @@ gal_options_check_version(struct argp_option *option, char 
*arg,
   /* First see if we are reading or writing. */
   if(lineno==-1)
     {
-      /* `PACKAGE_VERSION' is a static/literal string, but the pointer
+      /* 'PACKAGE_VERSION' is a static/literal string, but the pointer
          returned by this function will be freed, so we must allocate space
          for it.
 
@@ -205,15 +205,15 @@ gal_options_check_version(struct argp_option *option, 
char *arg,
     {
       if(arg==NULL)
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-              "the problem. The value to `arg' is NULL", __func__,
+              "the problem. The value to 'arg' is NULL", __func__,
               PACKAGE_BUGREPORT);
       else if( strcmp(arg, PACKAGE_VERSION) )
         {
           /* Print an error message and abort.  */
           error_at_line(EXIT_FAILURE, 0, filename, lineno, "version "
                         "mis-match: you are running GNU Astronomy Utilities "
-                        "(Gnuastro) version `%s'. However, the `onlyversion' "
-                        "option is set to version `%s'.\n\n"
+                        "(Gnuastro) version '%s'. However, the 'onlyversion' "
+                        "option is set to version '%s'.\n\n"
                         "This was probably done for reproducibility. "
                         "Therefore, manually removing, or changing, the "
                         "option value might produce errors or unexpected "
@@ -362,15 +362,15 @@ gal_options_check_config(struct argp_option *option, char 
*arg,
       /* Activate the option and let the user know its activated. */
       (*(uint8_t *)(option->value)) = 1;
       printf("-----------------\n"
-             "Parsing of options AFTER `--checkconfig'.\n\n"
+             "Parsing of options AFTER '--checkconfig'.\n\n"
              "IMPORTANT: Any option that was parsed before encountering "
-             "`--checkconfig', on the command-line or in a configuration "
+             "'--checkconfig', on the command-line or in a configuration "
              "file, is not shown here. It is thus recommended to use this "
              "option before calling any other option.\n"
              "-----------------\n");
 
-      /* Print where this option was first seen: if `checkconfig' is called
-         within a configuration file, `filename!=NULL' and has an argument
+      /* Print where this option was first seen: if 'checkconfig' is called
+         within a configuration file, 'filename!=NULL' and has an argument
          (=="1"). But on the command-line, it has no argument or
          filename. */
       if(filename)
@@ -379,7 +379,7 @@ gal_options_check_config(struct argp_option *option, char 
*arg,
         {
           if(arg)
             error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
-                  "fix the problem. `filename==NULL', but `arg!=NULL'",
+                  "fix the problem. 'filename==NULL', but 'arg!=NULL'",
                   __func__, PACKAGE_BUGREPORT);
           else
             printf("Command-line:\n");
@@ -403,7 +403,7 @@ gal_options_read_type(struct argp_option *option, char *arg,
   char *str;
   if(lineno==-1)
     {
-      /* Note that `gal_data_type_as_string' returns a static string. But
+      /* Note that 'gal_data_type_as_string' returns a static string. But
          the output must be an allocated string so we can free it. */
       gal_checkset_allocate_copy(
            gal_type_name( *(uint8_t *)(option->value), 1), &str);
@@ -417,11 +417,11 @@ gal_options_read_type(struct argp_option *option, char 
*arg,
       /* Read the value. */
       if ( (*(uint8_t *)(option->value) = gal_type_from_name(arg) )
            == GAL_TYPE_INVALID )
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`%s' option) couldn't be recognized as a known "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'%s' option) couldn't be recognized as a known "
                       "type.\n\nFor the full list of known types, please "
                       "run the following command (press SPACE key to go "
-                      "down, and `q' to return to the command-line):\n\n"
+                      "down, and 'q' to return to the command-line):\n\n"
                       "    $ info gnuastro \"Numeric data types\"\n",
                       arg, option->name);
 
@@ -442,7 +442,7 @@ gal_options_read_searchin(struct argp_option *option, char 
*arg,
   char *str;
   if(lineno==-1)
     {
-      /* Note that `gal_data_type_as_string' returns a static string. But
+      /* Note that 'gal_data_type_as_string' returns a static string. But
          the output must be an allocated string so we can free it. */
       gal_checkset_allocate_copy(
         gal_tableintern_searchin_as_string( *(uint8_t *)(option->value)),
@@ -457,11 +457,11 @@ gal_options_read_searchin(struct argp_option *option, 
char *arg,
       /* Read the value. */
       if((*(uint8_t *)(option->value)=gal_tableintern_string_to_searchin(arg))
          == GAL_TABLE_SEARCH_INVALID )
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`%s' option) couldn't be recognized as a known table "
-                      "search-in field (`name', `unit', or `comment').\n\n"
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'%s' option) couldn't be recognized as a known table "
+                      "search-in field ('name', 'unit', or 'comment').\n\n"
                       "For more explanation, please run the following "
-                      "command (press SPACE key to go down, and `q' to "
+                      "command (press SPACE key to go down, and 'q' to "
                       "return to the command-line):\n\n"
                       "    $ info gnuastro \"Selecting table columns\"\n",
                       arg, option->name);
@@ -483,7 +483,7 @@ gal_options_read_tableformat(struct argp_option *option, 
char *arg,
   char *str;
   if(lineno==-1)
     {
-      /* Note that `gal_data_type_as_string' returns a static string. But
+      /* Note that 'gal_data_type_as_string' returns a static string. But
          the output must be an allocated string so we can free it. */
       gal_checkset_allocate_copy(
         gal_tableintern_format_as_string( *(uint8_t *)(option->value)), &str);
@@ -497,10 +497,10 @@ gal_options_read_tableformat(struct argp_option *option, 
char *arg,
       /* Read the value. */
       if( (*(uint8_t *)(option->value)=gal_tableintern_string_to_format(arg) )
           ==GAL_TABLE_FORMAT_INVALID )
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`%s' option) couldn't be recognized as a known table "
-                      "format field (`txt', `fits-ascii', or "
-                      "`fits-binary').\n\n", arg, option->name);
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'%s' option) couldn't be recognized as a known table "
+                      "format field ('txt', 'fits-ascii', or "
+                      "'fits-binary').\n\n", arg, option->name);
 
       /* For no un-used variable warning. This function doesn't need the
          pointer.*/
@@ -546,9 +546,9 @@ gal_options_read_interpmetric(struct argp_option *option, 
char *arg,
       else if ( !strcmp(arg, "manhattan") )
         *(uint8_t *)(option->value) = GAL_INTERPOLATE_CLOSE_METRIC_MANHATTAN;
       else
-        error_at_line(EXIT_FAILURE, 0, filename, lineno, "`%s' (value to "
-                      "`%s' option) isn't valid. Currently only `radial' "
-                      "and `manhattan' metrics are recognized for nearest "
+        error_at_line(EXIT_FAILURE, 0, filename, lineno, "'%s' (value to "
+                      "'%s' option) isn't valid. Currently only 'radial' "
+                      "and 'manhattan' metrics are recognized for nearest "
                       "neighbor interpolation", arg, option->name);
 
       /* For no un-used variable warning. This function doesn't need the
@@ -562,9 +562,9 @@ gal_options_read_interpmetric(struct argp_option *option, 
char *arg,
 
 
 /* The input to this function is a string of any number of numbers
-   separated by a comma (`,') and possibly containing fractions, for
-   example: `1,2/3, 4.95'. The output `gal_data_t' contains the array of
-   given values in `double' type. You can read the number from its `size'
+   separated by a comma (',') and possibly containing fractions, for
+   example: '1,2/3, 4.95'. The output 'gal_data_t' contains the array of
+   given values in 'double' type. You can read the number from its 'size'
    element. */
 gal_data_t *
 gal_options_parse_list_of_numbers(char *string, char *filename, size_t lineno)
@@ -576,7 +576,7 @@ gal_options_parse_list_of_numbers(char *string, char 
*filename, size_t lineno)
   double numerator=NAN, denominator=NAN, tmp;
 
   /* The nature of the arrays/numbers read here is very small, so since
-     `p->cp.minmapsize' might not have been read yet, we will set it to -1
+     'p->cp.minmapsize' might not have been read yet, we will set it to -1
      (largest size_t number), so the values are kept in memory. */
   int quietmmap=1;
   size_t minmapsize=-1;
@@ -601,7 +601,7 @@ gal_options_parse_list_of_numbers(char *string, char 
*filename, size_t lineno)
         case ':':
           if(isnan(numerator))
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "a number "
-                          "must be given before `,'. You have given: `%s'",
+                          "must be given before ','. You have given: '%s'",
                           string);
           gal_list_f64_add(&list, isnan(denominator)
                            ? numerator : numerator/denominator);
@@ -613,17 +613,17 @@ gal_options_parse_list_of_numbers(char *string, char 
*filename, size_t lineno)
         /* Divide two numbers. */
         case '/':
           if( isnan(numerator) || !isnan(denominator) )
-            error_at_line(EXIT_FAILURE, 0, filename, lineno, "`/' must "
+            error_at_line(EXIT_FAILURE, 0, filename, lineno, "'/' must "
                           "only be between two numbers and used for "
-                          "division. But you have given `%s'", string);
+                          "division. But you have given '%s'", string);
           ++c;
           break;
 
-        /* Extra dot is an error (cases like 2.5.5). Valid `.'s will be
-           read by `strtod'. */
+        /* Extra dot is an error (cases like 2.5.5). Valid '.'s will be
+           read by 'strtod'. */
         case '.':
-          error_at_line(EXIT_FAILURE, 0, filename, lineno, "extra `.' in "
-                        "`%s'", string);
+          error_at_line(EXIT_FAILURE, 0, filename, lineno, "extra '.' in "
+                        "'%s'", string);
           break;
 
         /* Read the number. */
@@ -633,8 +633,8 @@ gal_options_parse_list_of_numbers(char *string, char 
*filename, size_t lineno)
           tmp=strtod(c, &tailptr);
           if(tailptr==c)
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "the first "
-                          "part of `%s' couldn't be read as a number. This "
-                          "was part of `%s'", c, string);
+                          "part of '%s' couldn't be read as a number. This "
+                          "was part of '%s'", c, string);
 
           /* See if the number should be put in the numerator or
              denominator. */
@@ -646,13 +646,13 @@ gal_options_parse_list_of_numbers(char *string, char 
*filename, size_t lineno)
                                  "than two numbers in each element.");
             }
 
-          /* Set `c' to tailptr. */
+          /* Set 'c' to tailptr. */
           c=tailptr;
         }
     }
 
 
-  /* If the last number wasn't finished by a `,', add the read value to the
+  /* If the last number wasn't finished by a ',', add the read value to the
      list */
   if( !isnan(numerator) )
     {
@@ -703,7 +703,7 @@ gal_options_parse_list_of_strings(char *string, char 
*filename, size_t lineno)
   char *cp, *token, **strarr, delimiters[]=",:";
 
   /* The nature of the arrays/numbers read here is very small, so since
-     `p->cp.minmapsize' might not have been read yet, we will set it to -1
+     'p->cp.minmapsize' might not have been read yet, we will set it to -1
      (largest size_t number), so the values are kept in memory. */
   int quietmmap=1;
   size_t minmapsize=-1;
@@ -735,7 +735,7 @@ gal_options_parse_list_of_strings(char *string, char 
*filename, size_t lineno)
     strarr[--num]=tll->v;
 
   /* Clean up and return. Note that we don't want to free the values in the
-     list, the elements in `out->array' point to them and will later use
+     list, the elements in 'out->array' point to them and will later use
      them.*/
   free(cp);
   gal_list_str_free(list, 0);
@@ -747,9 +747,9 @@ gal_options_parse_list_of_strings(char *string, char 
*filename, size_t lineno)
 
 
 /* The input to this function is a string of any number of strings
-   separated by a comma (`,') for example: `a,abc,abcd'. The output
-   `gal_data_t' contains the array of given strings. You can read the
-   number of inputs from its `size' element. */
+   separated by a comma (',') for example: 'a,abc,abcd'. The output
+   'gal_data_t' contains the array of given strings. You can read the
+   number of inputs from its 'size' element. */
 gal_data_t *
 gal_options_parse_csv_strings_raw(char *string, char *filename, size_t lineno)
 {
@@ -760,7 +760,7 @@ gal_options_parse_csv_strings_raw(char *string, char 
*filename, size_t lineno)
 
 
   /* The nature of the arrays/numbers read here is very small, so since
-     `p->cp.minmapsize' might not have been read yet, we will set it to -1
+     'p->cp.minmapsize' might not have been read yet, we will set it to -1
      (largest size_t number), so the values are kept in memory. */
   int quietmmap=1;
   size_t minmapsize=-1;
@@ -775,15 +775,15 @@ gal_options_parse_csv_strings_raw(char *string, char 
*filename, size_t lineno)
         case ',':
           if(str==NULL)
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "a string "
-                          "must exist before the first `,'. You have "
-                          "given: `%s'", string);
+                          "must exist before the first ','. You have "
+                          "given: '%s'", string);
           *c='\0';
           gal_list_str_add(&list, str, 1);
           str=NULL;  /* Mark that the next character is the start */
           break;
 
         /* If the character isn't a coma, it is either in the middle of a
-           string at the start of it. If `str==NULL', then it is at the
+           string at the start of it. If 'str==NULL', then it is at the
            start. */
         default: if(str==NULL) str=c;
         }
@@ -831,10 +831,10 @@ gal_options_parse_csv_strings_raw(char *string, char 
*filename, size_t lineno)
 
 
 
-/* `arg' is the value given to an option. It contains multiple strings
-   separated by a comma (`,'). This function will parse `arg' and make a
-   `gal_data_t' array of strings from it. The output `gal_data_t' will be
-   put in `option->value'. */
+/* 'arg' is the value given to an option. It contains multiple strings
+   separated by a comma (','). This function will parse 'arg' and make a
+   'gal_data_t' array of strings from it. The output 'gal_data_t' will be
+   put in 'option->value'. */
 void *
 gal_options_parse_csv_strings(struct argp_option *option, char *arg,
                               char *filename, size_t lineno, void *junk)
@@ -912,9 +912,9 @@ gal_options_parse_csv_strings(struct argp_option *option, 
char *arg,
 
 
 /* Parse the given string into a series of size values (integers, stored as
-   an array of size_t). The output array will be stored in the `value'
+   an array of size_t). The output array will be stored in the 'value'
    element of the option. The last element of the array is
-   `GAL_BLANK_SIZE_T' to allow finding the number of elements within it
+   'GAL_BLANK_SIZE_T' to allow finding the number of elements within it
    later (similar to a string which terminates with a '\0' element). */
 void *
 gal_options_parse_sizes_reverse(struct argp_option *option, char *arg,
@@ -969,19 +969,19 @@ gal_options_parse_sizes_reverse(struct argp_option 
*option, char *arg,
         {
           if(v[i]<0)
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "a given "
-                          "value in `%s' (%g) is not 0 or positive. The "
-                          "values to the `--%s' option must be positive",
+                          "value in '%s' (%g) is not 0 or positive. The "
+                          "values to the '--%s' option must be positive",
                           arg, v[i], option->name);
 
           if(ceil(v[i]) != v[i])
             error_at_line(EXIT_FAILURE, 0, filename, lineno, "a given "
-                          "value in `%s' (%g) is not an integer. The "
-                          "values to the `--%s' option must be integers",
+                          "value in '%s' (%g) is not an integer. The "
+                          "values to the '--%s' option must be integers",
                           arg, v[i], option->name);
         }
 
       /* Write the values into an allocated size_t array and finish it with
-         a `-1' so the total number can be found later.*/
+         a '-1' so the total number can be found later.*/
       num=values->size;
       array=gal_pointer_allocate(GAL_TYPE_SIZE_T, num+1, 0, __func__,
                                  "array");
@@ -1060,7 +1060,7 @@ gal_options_parse_csv_float64(struct argp_option *option, 
char *arg,
 
 /* Two numbers must be provided as an argument. This function will read
    them as the sigma-clipping multiple and parameter and store the two in a
-   2-element array. `option->value' must point to an already allocated
+   2-element array. 'option->value' must point to an already allocated
    2-element array of double type. */
 void *
 gal_options_read_sigma_clip(struct argp_option *option, char *arg,
@@ -1083,10 +1083,10 @@ gal_options_read_sigma_clip(struct argp_option *option, 
char *arg,
 
   /* Check if there was only two numbers. */
   if(in->size!=2)
-    error_at_line(EXIT_FAILURE, 0, filename, lineno, "the `--%s' "
+    error_at_line(EXIT_FAILURE, 0, filename, lineno, "the '--%s' "
                   "option takes two values (separated by a comma) for "
                   "defining the sigma-clip. However, %zu numbers were "
-                  "read in the string `%s' (value to this option).\n\n"
+                  "read in the string '%s' (value to this option).\n\n"
                   "The first number is the multiple of sigma, and the "
                   "second is either the tolerance (if its is less than "
                   "1.0), or a specific number of times to clip (if it "
@@ -1094,23 +1094,23 @@ gal_options_read_sigma_clip(struct argp_option *option, 
char *arg,
                   arg);
 
   /* Copy the sigma clip parameters into the space the caller has given (as
-     the `value' element of `option'). */
+     the 'value' element of 'option'). */
   memcpy(option->value, in->array, 2*sizeof *sigmaclip);
 
   /* Multiple of sigma must be positive. */
   if( sigmaclip[0] <= 0 )
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "the first value to "
-                  "the `--%s' option (multiple of sigma), must be "
-                  "greater than zero. From the string `%s' (value to "
+                  "the '--%s' option (multiple of sigma), must be "
+                  "greater than zero. From the string '%s' (value to "
                   "this option), you have given a value of %g for the "
                   "first value", option->name, arg, sigmaclip[0]);
 
   /* Second value must also be positive. */
   if( sigmaclip[1] <= 0 )
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "the second value "
-                  "to the `--%s' option (tolerance to stop clipping or "
+                  "to the '--%s' option (tolerance to stop clipping or "
                   "number of clips), must be greater than zero. From "
-                  "the string `%s' (value to this option), you have "
+                  "the string '%s' (value to this option), you have "
                   "given a value of %g for the second value",
                   option->name, arg, sigmaclip[1]);
 
@@ -1118,10 +1118,10 @@ gal_options_read_sigma_clip(struct argp_option *option, 
char *arg,
      integer. */
   if( sigmaclip[1] >= 1.0f && ceil(sigmaclip[1]) != sigmaclip[1])
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "when the second "
-                  "value to the `--%s' option is >=1, it is interpretted "
+                  "value to the '--%s' option is >=1, it is interpretted "
                   "as an absolute number of clips. So it must be an "
                   "integer. However, your second value is a floating "
-                  "point number: %g (parsed from `%s')", option->name,
+                  "point number: %g (parsed from '%s')", option->name,
                   sigmaclip[1], arg);
 
   /* Clean up and return. */
@@ -1135,8 +1135,8 @@ gal_options_read_sigma_clip(struct argp_option *option, 
char *arg,
 
 /* Parse name and (float64) values:  name,value1,value2,value3,...
 
-   The output is a `gal_data_t', where the `name' is the given name and the
-   values are in its array (of `float64' type).
+   The output is a 'gal_data_t', where the 'name' is the given name and the
+   values are in its array (of 'float64' type).
  */
 static void *
 gal_options_parse_name_and_values(struct argp_option *option, char *arg,
@@ -1152,7 +1152,7 @@ gal_options_parse_name_and_values(struct argp_option 
*option, char *arg,
   /* We want to print the stored values. */
   if(lineno==-1)
     {
-      /* Set the value pointer to `existing'. */
+      /* Set the value pointer to 'existing'. */
       existing=*(gal_data_t **)(option->value);
       if(str0_f641) darray = existing->array;
       else          strarr = existing->array;
@@ -1188,9 +1188,9 @@ gal_options_parse_name_and_values(struct argp_option 
*option, char *arg,
       c=arg; while(*c!='\0' && *c!=',') ++c;
       values = (*c=='\0') ? NULL : c+1;
 
-      /* Name of the dataset (note that `c' is already pointing the end of
-         the `name' and `values' points to the next character). So we can
-         safely set `c' to `\0' to have the `name'. */
+      /* Name of the dataset (note that 'c' is already pointing the end of
+         the 'name' and 'values' points to the next character). So we can
+         safely set 'c' to '\0' to have the 'name'. */
       *c='\0';
       gal_checkset_allocate_copy(arg, &name);
 
@@ -1223,9 +1223,9 @@ gal_options_parse_name_and_values(struct argp_option 
*option, char *arg,
           */
         }
       else
-        error(EXIT_FAILURE, 0, "`--%s' requires a string of numbers "
-              "(separated by `,' or `:') following its first argument, "
-              "please run with `--help' for more information",
+        error(EXIT_FAILURE, 0, "'--%s' requires a string of numbers "
+              "(separated by ',' or ':') following its first argument, "
+              "please run with '--help' for more information",
               option->name);
 
       /* Our job is done, return NULL. */
@@ -1261,7 +1261,7 @@ gal_options_parse_name_and_float64s(struct argp_option 
*option, char *arg,
 
 
 
-/* Parse strings like this: `num1,num2:num3,n4:num5,num6' and return it as
+/* Parse strings like this: 'num1,num2:num3,n4:num5,num6' and return it as
    a data container array: all elements are simply placed after each other
    in the array. */
 static gal_data_t *
@@ -1283,7 +1283,7 @@ options_parse_colon_sep_csv(char *instring, char 
*filename, size_t lineno)
           ++dim;
           if(dim==2)
             error_at_line(EXIT_FAILURE, 0, filename, lineno,
-                          "Extra `,` in `%s`", instring);
+                          "Extra ',' in '%s'", instring);
           ++pt;
           break;
         case ':':
@@ -1321,7 +1321,7 @@ options_parse_colon_sep_csv(char *instring, char 
*filename, size_t lineno)
                           "number", tailptr);
 
           /* Check if there are no extra characters in the number, for
-             example we don't have a case like `1.00132.17', or
+             example we don't have a case like '1.00132.17', or
              1.01i:2.0. Such errors are not uncommon when typing large
              numbers, and if ignored, they can lead to unpredictable
              results, so its best to abort and inform the user. */
@@ -1330,7 +1330,7 @@ options_parse_colon_sep_csv(char *instring, char 
*filename, size_t lineno)
               && strchr(":,", *tailptr)==NULL )
             error_at_line(EXIT_FAILURE, 0, filename, lineno,
                           "'%s' is an invalid floating point number "
-                          "sequence in the value to the `--polygon' "
+                          "sequence in the value to the '--polygon' "
                           "option, error detected at '%s'", pt, tailptr);
 
           /* Add the read coordinate to the list of coordinates. */
@@ -1355,7 +1355,7 @@ options_parse_colon_sep_csv(char *instring, char 
*filename, size_t lineno)
 
 
 /* Parse strings that are given to a function in this format
-   `num1,num2:num3,n4:num5,num6' */
+   'num1,num2:num3,n4:num5,num6' */
 void *
 gal_options_parse_colon_sep_csv(struct argp_option *option, char *arg,
                                 char *filename, size_t lineno, void *junk)
@@ -1368,7 +1368,7 @@ gal_options_parse_colon_sep_csv(struct argp_option 
*option, char *arg,
   /* We want to print the stored values. */
   if(lineno==-1)
     {
-      /* Set the value pointer to `existing'. */
+      /* Set the value pointer to 'existing'. */
       existing=*(gal_data_t **)(option->value);
       darray=existing->array;
 
@@ -1436,10 +1436,10 @@ gal_options_parse_colon_sep_csv(struct argp_option 
*option, char *arg,
 /**********************************************************************/
 /************              Option actions               ***************/
 /**********************************************************************/
-/* The option value has been read and put into the `value' field of the
-   `argp_option' structure. This function will use the `range' field to
+/* The option value has been read and put into the 'value' field of the
+   'argp_option' structure. This function will use the 'range' field to
    define a check and abort with an error if the value is not in the given
-   range. It also takes the `arg' so it can be used for good error message
+   range. It also takes the 'arg' so it can be used for good error message
    (showing the value that could not be read). */
 static void
 options_sanity_check(struct argp_option *option, char *arg,
@@ -1456,7 +1456,7 @@ options_sanity_check(struct argp_option *option, char 
*arg,
                  | GAL_ARITHMETIC_INPLACE );
 
   /* Currently, this function is only for numeric types, so if the value is
-     string type, or its `range' field is `GAL_OPTIONS_RANGE_ANY', then
+     string type, or its 'range' field is 'GAL_OPTIONS_RANGE_ANY', then
      just return without any checks. */
   if( option->type==GAL_TYPE_STRING
       || option->type==GAL_TYPE_STRLL
@@ -1587,8 +1587,8 @@ options_sanity_check(struct argp_option *option, char 
*arg,
 
   /* Use the arithmetic library to check for the condition. We don't want
      to free the value or change its value, so when dealing with the value
-     directly, we won't use the `GAL_ARITHMETIC_FREE', or
-     `GAL_ARITHMETIC_INPLACE' flags. But we will do this when there are
+     directly, we won't use the 'GAL_ARITHMETIC_FREE', or
+     'GAL_ARITHMETIC_INPLACE' flags. But we will do this when there are
      multiple checks so from the two check data structures, we only have
      one remaining. */
   check1=gal_arithmetic(operator1, 1, GAL_ARITHMETIC_NUMOK, value, ref1);
@@ -1602,13 +1602,13 @@ options_sanity_check(struct argp_option *option, char 
*arg,
   /* If the final check is not successful, then print an error. */
   if( *(unsigned char *)(check1->array)==0 )
     error_at_line(EXIT_FAILURE, 0, filename, lineno,
-                  "value to option `%s' must be %s, but the given value "
-                  "is `%s'. Recall that `%s' is \"%s\"", option->name,
+                  "value to option '%s' must be %s, but the given value "
+                  "is '%s'. Recall that '%s' is '%s'", option->name,
                   message, arg, option->name, option->doc);
 
 
   /* Clean up and finish. Note that we used the actual value pointer in the
-     data structure, so first we need to set it to NULL, so `gal_data_free'
+     data structure, so first we need to set it to NULL, so 'gal_data_free'
      doesn't free it, we need it for later (for example to print the option
      values). */
   value->array=NULL;
@@ -1632,8 +1632,8 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
   if(option->func)
     {
       /* For the functions that are defined here (for all programs) and
-         need the last pointer, we must pass the `cp' pointer. For the
-         rest, we must pass the `cp->program_struct'. */
+         need the last pointer, we must pass the 'cp' pointer. For the
+         rest, we must pass the 'cp->program_struct'. */
       switch(option->key)
         {
         case GAL_OPTIONS_KEY_CITE:
@@ -1645,13 +1645,13 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
         }
 
       /* Call the function to parse the value, flag the option as set and
-         return (except for the `--config' option, which must always be
+         return (except for the '--config' option, which must always be
          unset). */
       option->func(option, arg, filename, lineno, topass);
       if(option->key!=GAL_OPTIONS_KEY_CONFIG) option->set=GAL_OPTIONS_SET;
 
-      /* The `--config' option is printed for `--checkconfig' by its
-         function (`gal_options_call_parse_config_file'), so must be
+      /* The '--config' option is printed for '--checkconfig' by its
+         function ('gal_options_call_parse_config_file'), so must be
          ignored here. */
       if(cp->checkconfig && option->key!=GAL_OPTIONS_KEY_CONFIG)
         printf("  %-25s%s\n", option->name, arg?arg:"ACTIVATED");
@@ -1677,10 +1677,10 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
 
           /* Read the string argument into the value. */
           if( gal_type_from_string(&option->value, arg, option->type) )
-            /* Fortunately `error_at_line' will behave like `error' when the
+            /* Fortunately 'error_at_line' will behave like 'error' when the
                filename is NULL (the option was read from a command-line). */
             error_at_line(EXIT_FAILURE, 0, filename, lineno,
-                          "`%s' (value to option `--%s') couldn't be read "
+                          "'%s' (value to option '--%s') couldn't be read "
                           "into the proper numerical type. Common causes "
                           "for this error are:\n"
                           "  - It contains non-numerical characters.\n"
@@ -1715,7 +1715,7 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
       else
         error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to "
               "correct it. Options with no arguments, must have "
-              "type `%s'. However, the `%s' option has type %s",
+              "type '%s'. However, the '%s' option has type %s",
               __func__, PACKAGE_BUGREPORT,
               gal_type_name(GAL_OPTIONS_NO_ARG_TYPE, 1),
               option->name, gal_type_name(option->type, 1));
@@ -1728,7 +1728,7 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
            (arg && option->type!=GAL_OPTIONS_NO_ARG_TYPE)?arg:"ACTIVATED");
 
 
-  /* Flip the `set' flag to `GAL_OPTIONS_SET'. */
+  /* Flip the 'set' flag to 'GAL_OPTIONS_SET'. */
   option->set=GAL_OPTIONS_SET;
 }
 
@@ -1753,7 +1753,7 @@ gal_options_read_check(struct argp_option *option, char 
*arg, char *filename,
 /**********************************************************************/
 /************            Command-line options           ***************/
 /**********************************************************************/
-/* Set the value given to the command-line, where we have the integer `key'
+/* Set the value given to the command-line, where we have the integer 'key'
    of the option, not its long name as a string. */
 error_t
 gal_options_set_from_key(int key, char *arg, struct argp_option *options,
@@ -1810,14 +1810,14 @@ gal_options_common_argp_parse(int key, char *arg, 
struct argp_state *state)
   struct gal_options_common_params *cp=state->input;
 
   /* In case the user incorrectly uses the equal sign (for example
-     with a short format or with space in the long format, then `arg`
+     with a short format or with space in the long format, then 'arg'
      start with (if the short version was called) or be (if the long
      version was called with a space) the equal sign. So, here we
      check if the first character of arg is the equal sign, then the
      user is warned and the program is stopped: */
   if(arg && arg[0]=='=')
-    argp_error(state, "incorrect use of the equal sign (`=`). For short "
-               "options, `=` should not be used and for long options, "
+    argp_error(state, "incorrect use of the equal sign ('='). For short "
+               "options, '=' should not be used and for long options, "
                "there should be no space between the option, equal sign "
                "and value");
 
@@ -1840,11 +1840,11 @@ gal_options_stdin_error(long stdintimeout, int 
precedence, char *name)
                "or the standard input.%s Standard input can come from a "
                "pipe (output of another program) or typed on the "
                "command-line before %ld micro-seconds (configurable with "
-               "the `--stdintimeout' option).", name, name,
+               "the '--stdintimeout' option).", name, name,
                ( precedence
                  ? " If both are provided, a file takes precedence."
                  : "" ), stdintimeout )<0 )
-    error(EXIT_FAILURE, 0, "%s: `asprintf' allocation error", __func__);
+    error(EXIT_FAILURE, 0, "%s: 'asprintf' allocation error", __func__);
 
   return out;
 }
@@ -1996,7 +1996,7 @@ options_set_from_name(char *name, char *arg,  struct 
argp_option *options,
 
                - Not all common options are used by all programs. When a
                  program doesn't use an option, it will be given an
-                 `OPTION_HIDDEN' flag. There is no point in reading the
+                 'OPTION_HIDDEN' flag. There is no point in reading the
                  values of such options.
 
                - When the option already has a value AND it ISN'T a linked
@@ -2063,7 +2063,7 @@ options_parse_file(char *filename,  struct 
gal_options_common_params *cp,
   size_t linelen=10, lineno=0;
 
 
-  /* If `lastconfig' was called prior to this file, then just return and
+  /* If 'lastconfig' was called prior to this file, then just return and
      ignore this configuration file. */
   if( options_lastconfig_has_been_called(cp->coptions) )
     return;
@@ -2082,12 +2082,12 @@ options_parse_file(char *filename,  struct 
gal_options_common_params *cp,
 
 
   /* Allocate the space necessary to keep a copy of each line as we parse
-     it. Note that `getline' is going to later `realloc' this space to fit
+     it. Note that 'getline' is going to later 'realloc' this space to fit
      the line length. */
   errno=0;
   line=malloc(linelen*sizeof *line);
   if(line==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `line'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'line'",
           __func__, linelen*sizeof *line);
 
 
@@ -2101,7 +2101,7 @@ options_parse_file(char *filename,  struct 
gal_options_common_params *cp,
           options_read_name_arg(line, filename, lineno, &name, &arg);
 
           /* First look into this program's options, if the option isn't
-             found there, `options_set_from_name' will return 1. So the
+             found there, 'options_set_from_name' will return 1. So the
              condition will succeed and we will start looking into the
              common options, if it isn't found there either, then report an
              error.*/
@@ -2110,8 +2110,8 @@ options_parse_file(char *filename,  struct 
gal_options_common_params *cp,
             if( options_set_from_name(name, arg, cp->coptions, cp,
                                       filename, lineno) )
               error_at_line(EXIT_FAILURE, 0, filename, lineno,
-                            "unrecognized option `%s', for the full list of "
-                            "options, please run with `--help'", name);
+                            "unrecognized option '%s', for the full list of "
+                            "options, please run with '--help'", name);
         }
     }
 
@@ -2129,15 +2129,15 @@ options_parse_file(char *filename,  struct 
gal_options_common_params *cp,
 
 
 
-/* This function will be used when the `--config' option is called. */
+/* This function will be used when the '--config' option is called. */
 void *
 gal_options_call_parse_config_file(struct argp_option *option, char *arg,
                                    char *filename, size_t lineno, void *c)
 {
   struct gal_options_common_params *cp=(struct gal_options_common_params *)c;
 
-  /* The `--config' option is a special function when it comes to
-     `--checkconfig': we'll have to write its value before interpretting
+  /* The '--config' option is a special function when it comes to
+     '--checkconfig': we'll have to write its value before interpretting
      it. */
   if(cp->checkconfig)
     {
@@ -2166,14 +2166,14 @@ gal_options_call_parse_config_file(struct argp_option 
*option, char *arg,
    into it. The directories containing the configuration files are fixed
    for all the programs.
 
-    - `SYSCONFIG_DIR' is passed onto the library functions at compile time
+    - 'SYSCONFIG_DIR' is passed onto the library functions at compile time
       from the command-line. You can search for it in the outputs of
-      `make'. The main reason is that we want the the user still has the
-      chance to change the installation directory after `configure'.
+      'make'. The main reason is that we want the the user still has the
+      chance to change the installation directory after 'configure'.
 
-    - `USERCONFIG_DIR' is defined in `config.h'.
+    - 'USERCONFIG_DIR' is defined in 'config.h'.
 
-    - `CURDIRCONFIG_DIR' is defined in `config.h'. */
+    - 'CURDIRCONFIG_DIR' is defined in 'config.h'. */
 static void
 gal_options_parse_config_files(struct gal_options_common_params *cp)
 {
@@ -2181,11 +2181,11 @@ gal_options_parse_config_files(struct 
gal_options_common_params *cp)
   char *filename;
 
   /* A small sanity check because in multiple places, we have assumed the
-     on/off options have a type of `unsigned char'. */
+     on/off options have a type of 'unsigned char'. */
   if(GAL_OPTIONS_NO_ARG_TYPE != GAL_TYPE_UINT8)
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s so we can fix "
-          "the problem. `GAL_OPTIONS_NO_ARG_TYPE' must be the "
-          "`uint8' type", __func__, PACKAGE_BUGREPORT);
+          "the problem. 'GAL_OPTIONS_NO_ARG_TYPE' must be the "
+          "'uint8' type", __func__, PACKAGE_BUGREPORT);
 
   /* The program's current directory configuration file. */
   if( asprintf(&filename, ".%s/%s.conf", PACKAGE, cp->program_exec)<0 )
@@ -2261,12 +2261,12 @@ gal_options_read_low_level_checks(struct 
gal_options_common_params *cp)
 {
   size_t suggested_mmap=10000000;
 
-  /* If `numthreads' is 0, use the number of threads available to the
+  /* If 'numthreads' is 0, use the number of threads available to the
      system. */
   if(cp->numthreads==0)
     cp->numthreads=gal_threads_number();
 
-  /* If `minmapsize==0' and quiet isn't given, print a warning. */
+  /* If 'minmapsize==0' and quiet isn't given, print a warning. */
   if(cp->minmapsize==0)
     {
       fprintf(stderr, "\n\n"
@@ -2286,7 +2286,7 @@ gal_options_read_low_level_checks(struct 
gal_options_common_params *cp)
 
               "     --minmapsize=%zu\n\n"
 
-              "[This warning can be disabled with the `--quiet' (or `-q') "
+              "[This warning can be disabled with the '--quiet' (or '-q') "
               "option.]\n"
               "===========================\n\n", suggested_mmap,
               suggested_mmap);
@@ -2379,8 +2379,8 @@ option_is_printable(struct argp_option *option)
 
 
 
-/* For a given type, print the value in `ptr' in a space of `width'
-   elements. If `width==0', then return the width necessary to print the
+/* For a given type, print the value in 'ptr' in a space of 'width'
+   elements. If 'width==0', then return the width necessary to print the
    value. */
 static int
 options_print_any_type(struct argp_option *option, void *ptr, int type,
@@ -2498,17 +2498,17 @@ options_set_lengths(struct argp_option *poptions,
 
 
 
-/* The `#' before the `doc' string are not required by the configuration
+/* The '#' before the 'doc' string are not required by the configuration
    file parser when the documentation string fits in a line. However, when
-   the `doc' string is longer than 80 characters, it will be cut between
-   multiple lines and without the `#', the start of the line will be read
+   the 'doc' string is longer than 80 characters, it will be cut between
+   multiple lines and without the '#', the start of the line will be read
    as an option. */
 static void
 options_print_doc(FILE *fp, const char *doc, int nvwidth)
 {
   size_t len=strlen(doc);
 
-  /* The `+3' is because of the three extra spaces in this line: one before
+  /* The '+3' is because of the three extra spaces in this line: one before
      the variable name, one after it and one after the value. */
   int i, prewidth=nvwidth+3, width=77-prewidth, cwidth;
 
@@ -2627,30 +2627,30 @@ options_print_all(struct gal_options_common_params *cp, 
char *dirname,
               "# %s (%s) %s.\n"
               "# Written at %s#\n"
               "#  - Empty lines are ignored.\n"
-              "#  - Lines starting with `#` are ignored.\n"
+              "#  - Lines starting with '#' are ignored.\n"
               "#  - The long option name is followed by a value.\n"
               "#  - The name and value should be separated by atleast\n"
               "#    one white space character (for example space or tab).\n"
               "#  - If the value has space, enclose the whole value in\n"
               "#    double quotation (\") signs.\n"
               "#  - After the value, the rest of the line is ignored.\n"
-              "#\n# Run `info %s' for a more elaborate description of each "
+              "#\n# Run 'info %s' for a more elaborate description of each "
               "option.\n",
               cp->program_name, PACKAGE_NAME, PACKAGE_VERSION,
               ctime(&rawtime), cp->program_exec);
     }
   else fp=stdout;
 
-  /* Parse all the options with a title, note that the `Input', `Output'
-     and `Operating mode' options are defined in the common options, while
+  /* Parse all the options with a title, note that the 'Input', 'Output'
+     and 'Operating mode' options are defined in the common options, while
      the (possible) other groups are in the program specific options. We
-     will only be dealing with the `topics' linked list in this function
-     and the strings in `poption' are statically allocated, so its fine to
+     will only be dealing with the 'topics' linked list in this function
+     and the strings in 'poption' are statically allocated, so its fine to
      not waste CPU cycles allocating and freeing.*/
   for(i=0; !gal_options_is_last(&coptions[i]); ++i)
     if(coptions[i].name==NULL && coptions[i].key==0 && coptions[i].doc)
       {
-        /* The `(char *)' is because `.doc' is a constant and this helps
+        /* The '(char *)' is because '.doc' is a constant and this helps
            remove the compiler warning. */
         gal_list_i32_add(&group, coptions[i].group);
         gal_list_str_add(&topic, (char *)coptions[i].doc, 0);
@@ -2694,9 +2694,9 @@ options_print_all(struct gal_options_common_params *cp, 
char *dirname,
   if(dirname)
     {
       printf("\nNew/updated configuration file:\n\n  %s\n\n"
-             "You may inspect it with `cat %s'.\n"
+             "You may inspect it with 'cat %s'.\n"
              "You may use your favorite text editor to modify it later.\n"
-             "Or, run %s again with new values for the options and `--%s'.\n",
+             "Or, run %s again with new values for the options and '--%s'.\n",
              filename, filename, cp->program_name, optionname);
       free(filename);
     }
@@ -2731,7 +2731,7 @@ gal_options_print_state(struct gal_options_common_params 
*cp)
           /* Note that these options can have a value of 1 (enabled) or 0
              (explicitly disabled). Therefore the printing should only be
              done if they have a value of 1. This is why we have defined
-             the `OPTIONS_UINT8VAL' macro above. */
+             the 'OPTIONS_UINT8VAL' macro above. */
           sum += OPTIONS_UINT8VAL;
         }
 
@@ -2772,8 +2772,8 @@ gal_options_print_state(struct gal_options_common_params 
*cp)
 
     /* More than one of the printing options has been called. */
     default:
-      error(EXIT_FAILURE, 0, "only one of the `printparams', `setdirconf' "
-            "and `setusrconf' options can be called in each run");
+      error(EXIT_FAILURE, 0, "only one of the 'printparams', 'setdirconf' "
+            "and 'setusrconf' options can be called in each run");
     }
 }
 
@@ -2801,7 +2801,7 @@ options_as_fits_keywords_write(gal_fits_list_key_t **keys,
           for(tmp=*(gal_list_str_t **)(options[i].value);
               tmp!=NULL; tmp=tmp->next)
             {
-              /* `name' and `doc' have a `const' qualifier. */
+              /* 'name' and 'doc' have a 'const' qualifier. */
               gal_checkset_allocate_copy(options[i].name, &name);
               gal_checkset_allocate_copy(options[i].doc,  &doc);
               gal_fits_key_list_add(keys, GAL_TYPE_STRING, name, 1, tmp->v,
@@ -2827,7 +2827,7 @@ options_as_fits_keywords_write(gal_fits_list_key_t **keys,
                          : options[i].value );
               }
 
-            /* Write the keyword. Note that `name' and `doc' have a `const'
+            /* Write the keyword. Note that 'name' and 'doc' have a 'const'
                qualifier. */
             gal_checkset_allocate_copy(options[i].name, &name);
             if(vtype==GAL_TYPE_STRING && strlen(vptr)>FLEN_KEYWORD)
diff --git a/lib/pdf.c b/lib/pdf.c
index f6c1364..8820a46 100644
--- a/lib/pdf.c
+++ b/lib/pdf.c
@@ -108,7 +108,7 @@ gal_pdf_write(gal_data_t *in, char *filename, float 
widthincm,
   /* Write the EPS file. */
   gal_eps_write(in, epsname, widthincm, borderwidth, 0, dontoptimize, 1);
 
-  /* Get the size of the image in `pt' units. */
+  /* Get the size of the image in 'pt' units. */
   gal_eps_to_pt(widthincm, in->dsize, w_h_in_pt);
 
   /* Write the ghostscript command to compile the EPS file to PDF. */
@@ -120,7 +120,7 @@ gal_pdf_write(gal_data_t *in, char *filename, float 
widthincm,
   /* Run Ghostscript. */
   if(system(command))
     error(EXIT_FAILURE, 0, "the command to convert a PostScript file to "
-          "PDF (`%s') was not successful! The PostScript file (%s) is "
+          "PDF ('%s') was not successful! The PostScript file (%s) is "
           "left if you want to convert or use it through any other "
           "means", command, epsname);
 
diff --git a/lib/permutation.c b/lib/permutation.c
index 8168158..ebe6c58 100644
--- a/lib/permutation.c
+++ b/lib/permutation.c
@@ -65,16 +65,16 @@ gal_permutation_check(size_t *permutation, size_t size)
 /***************          Apply permutation        *******************/
 /*********************************************************************/
 /* Re-order the input dataset based on the given permutation. If
-   `permutation' is NULL, then the input won't be touched (no re-ordering).
+   'permutation' is NULL, then the input won't be touched (no re-ordering).
 
-   This is a re-implementation of GSL's `gsl_permute' function (from its
-   `permutation/permute_source.c'). The reason we didn't use that function
-   was that it uses system-specific types (like `long' and `int') which are
+   This is a re-implementation of GSL's 'gsl_permute' function (from its
+   'permutation/permute_source.c'). The reason we didn't use that function
+   was that it uses system-specific types (like 'long' and 'int') which are
    not easily convertable to Gnuastro's width-based types. There is also a
    separate function for each type, heavily using macros to allow a "base"
    function to work on all the types. Thus it is hard to
    read/understand. Since we use fixed-width types, we can easily use
-   `memcpy' and have a type-agnostic implementation (only needing the width
+   'memcpy' and have a type-agnostic implementation (only needing the width
    of the type).
 
    As described in GSL's source code and manual, this implementation comes
@@ -139,7 +139,7 @@ gal_permutation_apply(gal_data_t *input, size_t 
*permutation)
 
 
 /* Apply the inverse of given permutation on the input dataset, see
-   `gal_permutation_apply_inverse'. */
+   'gal_permutation_apply_inverse'. */
 void
 gal_permutation_apply_inverse(gal_data_t *input, size_t *permutation)
 {
diff --git a/lib/pointer.c b/lib/pointer.c
index e01a2a5..e9204fd 100644
--- a/lib/pointer.c
+++ b/lib/pointer.c
@@ -38,16 +38,16 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 /* Increment a give pointer depending on the given type.
 
-   When working with the `array' elements of `gal_data_t', we are actually
-   dealing with `void *' pointers. Pointer arithmetic doesn't apply to
-   `void *', because the system doesn't know how much space each element
+   When working with the 'array' elements of 'gal_data_t', we are actually
+   dealing with 'void *' pointers. Pointer arithmetic doesn't apply to
+   'void *', because the system doesn't know how much space each element
    has to increment the pointer respectively.
 
    So, here, we will use the type information to find the increment. This
-   is mainly useful when dealing with the `block' pointer of a tile over a
-   larger image. This function reads the address as a `char *' type (note
-   that `char' is guaranteed to have a size of 1 (byte)). It then
-   increments the `char *' by `increment*sizeof(type)' */
+   is mainly useful when dealing with the 'block' pointer of a tile over a
+   larger image. This function reads the address as a 'char *' type (note
+   that 'char' is guaranteed to have a size of 1 (byte)). It then
+   increments the 'char *' by 'increment*sizeof(type)' */
 void *
 gal_pointer_increment(void *pointer, size_t increment, uint8_t type)
 {
@@ -60,7 +60,7 @@ gal_pointer_increment(void *pointer, size_t increment, 
uint8_t type)
 
 
 /* Find the number of values between two void pointers with a given
-   type. See the explanations before `gal_data_ptr_increment'. */
+   type. See the explanations before 'gal_data_ptr_increment'. */
 size_t
 gal_pointer_num_between(void *earlier, void *later, uint8_t type)
 {
@@ -73,7 +73,7 @@ gal_pointer_num_between(void *earlier, void *later, uint8_t 
type)
 
 
 /* Allocate an array based on the value of type. Note that the argument
-   `size' is the number of elements, necessary in the array, the number of
+   'size' is the number of elements, necessary in the array, the number of
    bytes each element needs will be determined internaly by this function
    using the datatype argument, so you don't have to worry about it. */
 void *
@@ -90,7 +90,7 @@ gal_pointer_allocate(uint8_t type, size_t size, int clear,
     {
       if(varname)
         error(EXIT_FAILURE, errno, "%s: %zu bytes couldn't be allocated "
-              "for variable `%s'", funcname ? funcname : __func__,
+              "for variable '%s'", funcname ? funcname : __func__,
               size * gal_type_sizeof(type), varname);
       else
         error(EXIT_FAILURE, errno, "%s: %zu bytes couldn't be allocated",
@@ -115,7 +115,7 @@ gal_pointer_allocate_mmap(uint8_t type, size_t size, int 
clear,
   size_t bsize=size*gal_type_sizeof(type);
 
 
-  /* Check if the `.gnuastro_mmap' folder exists, write the file there. If
+  /* Check if the '.gnuastro_mmap' folder exists, write the file there. If
      it doesn't exist, then make it. If it can't be built, we'll make a
      randomly named file in the current directory. */
   gal_checkset_allocate_copy("./.gnuastro_mmap/", &dirname);
@@ -124,12 +124,12 @@ gal_pointer_allocate_mmap(uint8_t type, size_t size, int 
clear,
       /* The directory couldn't be built. Free the old name. */
       free(dirname);
 
-      /* Set `dirname' to NULL so it knows not to write in a directory. */
+      /* Set 'dirname' to NULL so it knows not to write in a directory. */
       dirname=NULL;
     }
 
 
-  /* Set the filename. If `dirname' couldn't be allocated, directly make
+  /* Set the filename. If 'dirname' couldn't be allocated, directly make
      the memory map file in the current directory (just as a hidden
      file). */
   if( asprintf(filename, "%sXXXXXX", dirname?dirname:"./.gnuastro_mmap_")<0 )
@@ -156,13 +156,13 @@ gal_pointer_allocate_mmap(uint8_t type, size_t size, int 
clear,
   /* Inform the user. */
   if(!quietmmap)
     error(EXIT_SUCCESS, 0, "%s: temporary %zu byte file (consider "
-          "`--minmapsize')", *filename, bsize);
+          "'--minmapsize')", *filename, bsize);
 
 
   /* Write to the newly set file position so the space is allocated. To do
-     this, we are simply writing `uc' (a byte with value 0) into the space
-     we identified by `lseek' (above). This will ensure that this space is
-     set a side for this array and prepare us to use `mmap'. */
+     this, we are simply writing 'uc' (a byte with value 0) into the space
+     we identified by 'lseek' (above). This will ensure that this space is
+     set a side for this array and prepare us to use 'mmap'. */
   if( write(filedes, &uc, 1) == -1)
     error(EXIT_FAILURE, errno, "%s: %s: unable to write one byte at the "
           "%zu-th position", __func__, *filename, bsize);
@@ -178,7 +178,7 @@ gal_pointer_allocate_mmap(uint8_t type, size_t size, int 
clear,
               "finite number of mmap allocations. It is recommended to use "
               "ordinary RAM allocation for smaller arrays and keep mmap'd "
               "allocation only for the large volumes.\n\n", __func__);
-      error(EXIT_FAILURE, errno, "couldn't map %zu bytes into the file `%s'",
+      error(EXIT_FAILURE, errno, "couldn't map %zu bytes into the file '%s'",
             bsize, *filename);
     }
 
diff --git a/lib/polygon.c b/lib/polygon.c
index 639df99..8aafad3 100644
--- a/lib/polygon.c
+++ b/lib/polygon.c
@@ -156,7 +156,7 @@ gal_polygon_vertices_sort_convex(double *in, size_t n, 
size_t *ordinds)
     }
 
 
-  /* We only have `n-1' more elements to sort, use the angle of the
+  /* We only have 'n-1' more elements to sort, use the angle of the
      line between the three remaining points and the first point. */
   for(i=0;i<n-1;++i)
     angles[i]=atan2( in[ ordinds[i+1]*2+1 ] - in[ ordinds[0]*2+1 ],
@@ -229,7 +229,7 @@ gal_polygon_is_convex(double *v, size_t n)
    vertices in a counterclockwise order. See the Wikipedia page for
    Polygon for more information.
 
-   `v' points to an array of doubles which keep the positions of the
+   'v' points to an array of doubles which keep the positions of the
    vertices such that v[0] and v[1] are the positions of the first
    corner to be considered.
 
@@ -259,7 +259,7 @@ gal_polygon_area(double *v, size_t n)
   algorithm. See its wiki here:
   https://en.wikipedia.org/wiki/Point_in_polygon#Winding_number_algorithm
 
-  We have a polygon with `n' vertices whose vertices are in the array `v'
+  We have a polygon with 'n' vertices whose vertices are in the array 'v'
   (with 2*n elements). Such that v[0], v[1] are the two coordinates of the
   first vertice. The vertices also have to be sorted in a counter clockwise
   fashion. We also have a point (with coordinates (x, y) == (p[0], p[1])
@@ -282,7 +282,7 @@ gal_polygon_is_inside(double *v, double *p, size_t n)
       if(v[j*2+1] <= p[1])
         {
           if(v[i*2+1] > p[1])
-            /* `p' left of edge is an upward intersection, increase wn. */
+            /* 'p' left of edge is an upward intersection, increase wn. */
             if( GAL_POLYGON_TRI_CROSS_PRODUCT(&v[j*2], &v[i*2], p) > 0 )
               wn++;
         }
@@ -294,7 +294,7 @@ gal_polygon_is_inside(double *v, double *p, size_t n)
             wn--;
       }
 
-      /* Increment `j' */
+      /* Increment 'j' */
       j=i++;
 
       /* For a check:
@@ -308,8 +308,8 @@ gal_polygon_is_inside(double *v, double *p, size_t n)
 
 
 
-/* We have a polygon with `n' vertices whose vertices are in the array
-   `v' (with 2*n elements). Such that v[0], v[1] are the two
+/* We have a polygon with 'n' vertices whose vertices are in the array
+   'v' (with 2*n elements). Such that v[0], v[1] are the two
    coordinates of the first vertice. The vertices also have to be
    sorted in a counter clockwise fashion. We also have a point (with
    coordinates p[0], p[1]) and we want to see if it is inside the
@@ -317,7 +317,7 @@ gal_polygon_is_inside(double *v, double *p, size_t n)
 
    If the point is inside the polygon, it will always be to the left
    of the edge connecting the two vertices when the vertices are
-   traversed in order. See the comments above `gal_polygon_area' for an
+   traversed in order. See the comments above 'gal_polygon_area' for an
    explanation about i and j and the loop.*/
 int
 gal_polygon_is_inside_convex(double *v, double *p, size_t n)
@@ -429,7 +429,7 @@ gal_polygon_to_counterclockwise(double *v, size_t n)
           j++;
         }
 
-      /* Put the vertices in the `gal_data_t' object */
+      /* Put the vertices in the 'gal_data_t' object */
       temp=gal_data_alloc(v, GAL_TYPE_FLOAT64, 1, &n, NULL, 0,
                           -1, 0, NULL, NULL, NULL);
 
@@ -452,7 +452,7 @@ gal_polygon_to_counterclockwise(double *v, size_t n)
 
 
 /* Find the intersection of a line segment (Aa--Ab) and an infinite
-   line (Ba--Bb) and put the intersection point in the output `o'. All
+   line (Ba--Bb) and put the intersection point in the output 'o'. All
    the points are assumed to be two element double arrays already
    allocated outside this function.
 
@@ -551,11 +551,11 @@ seginfintersection(double *Aa, double *Ab, double *Ba, 
double *Bb,
    done
 
    The difference is that we are not using lists, but arrays to keep
-   polygon vertices. The two polygons are called Subject (`s') and
-   Clip (`c') with `n' and `m' vertices respectively.
+   polygon vertices. The two polygons are called Subject ('s') and
+   Clip ('c') with 'n' and 'm' vertices respectively.
 
-   The output is stored in `o' and the number of elements in the
-   output are stored in what `*numcrn' (for number of corners) points
+   The output is stored in 'o' and the number of elements in the
+   output are stored in what '*numcrn' (for number of corners) points
    to.*/
 void
 gal_polygon_clip(double *s, size_t n, double *c, size_t m,
@@ -732,7 +732,7 @@ polygon_leftof_vector(double *in, size_t n, double x, 
double y)
   double test = (rightmost.y-y)*(rightmost.x-leftmost.x) -   \
                 (rightmost.y-leftmost.y)*(rightmost.x-x);
 
-  /* Due to the choice of return value, we multiply `test' by -1 */
+  /* Due to the choice of return value, we multiply 'test' by -1 */
   test = -1*test;
 
   return test?(test>0?1:-1):0;
diff --git a/lib/qsort.c b/lib/qsort.c
index f8d928b..5952ed2 100644
--- a/lib/qsort.c
+++ b/lib/qsort.c
@@ -34,14 +34,14 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /*****************************************************************/
 /**********                  Macros               ****************/
 /*****************************************************************/
-/* When one or both elements are NaN, the simple comparison, like `(tb >
+/* When one or both elements are NaN, the simple comparison, like '(tb >
    ta) - (tb < ta)', will give 0 (as if the elements are equal). However,
    some preference has to be given to the NaN element in a comparison,
    otherwise the output is not going to be reasonable. We also don't want
    to check NaNs on every comparison (it will slow down the processing).
 
    So we'll exploit the fact that when there comparison result doesn't
-   equal zero, we don't have any NaNs and this `COMPARE_FLOAT_POSTPROCESS'
+   equal zero, we don't have any NaNs and this 'COMPARE_FLOAT_POSTPROCESS'
    macro is called only when the comparison gives zero. Being larger or
    smaller isn't defined for NaNs, so we'll just put them in the end of the
    sorted list whether it is sorted by decreasing or increasing mode.*/
diff --git a/lib/speclines.c b/lib/speclines.c
index e22d64a..52010e5 100644
--- a/lib/speclines.c
+++ b/lib/speclines.c
@@ -185,7 +185,7 @@ gal_speclines_line_angstrom(int linecode)
     case GAL_SPECLINES_LYALPHA:       return GAL_SPECLINES_ANGSTROM_LYALPHA;
     case GAL_SPECLINES_LYLIMIT:       return GAL_SPECLINES_ANGSTROM_LYLIMIT;
     default:
-      error(EXIT_FAILURE, 0, "%s: `%d' not recognized line identifier",
+      error(EXIT_FAILURE, 0, "%s: '%d' not recognized line identifier",
             __func__, linecode);
     }
   return NAN;
diff --git a/lib/statistics.c b/lib/statistics.c
index a263eef..28b8727 100644
--- a/lib/statistics.c
+++ b/lib/statistics.c
@@ -55,7 +55,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
  ********               Simple statistics                 *******
  ****************************************************************/
 /* Return the number of non-blank elements in an array as a single element,
-   `size_t' type data structure. */
+   'size_t' type data structure. */
 gal_data_t *
 gal_statistics_number(gal_data_t *input)
 {
@@ -65,7 +65,7 @@ gal_statistics_number(gal_data_t *input)
 
   /* If there is no blank values in the input, then the total number is
      just the size. */
-  if(gal_blank_present(input, 0)) /* `{}' necessary for `else'. */
+  if(gal_blank_present(input, 0)) /* '{}' necessary for 'else'. */
     { GAL_TILE_PARSE_OPERATE(input, NULL, 0, 1, {++counter;}); }
   else
     counter = input->size;
@@ -149,7 +149,7 @@ gal_statistics_sum(gal_data_t *input)
 
   /* See if the input actually has any elements. */
   if(input->size)
-    /* Parse the dataset. Note that in `gal_data_alloc' we set the `clear'
+    /* Parse the dataset. Note that in 'gal_data_alloc' we set the 'clear'
        flag to 1, so it will be 0.0f. */
     GAL_TILE_PARSE_OPERATE(input, out, 0, 1, {++n; *o += *i;});
 
@@ -174,12 +174,12 @@ gal_statistics_mean(gal_data_t *input)
 
   /* See if the input actually has any elements. */
   if(input->size)
-    /* Parse the dataset. Note that in `gal_data_alloc' we set the `clear'
+    /* Parse the dataset. Note that in 'gal_data_alloc' we set the 'clear'
        flag to 1, so it will be 0.0f. */
     GAL_TILE_PARSE_OPERATE(input, out, 0, 1, {++n; *o += *i;});
 
   /* Above, we calculated the sum and number, so if there were any elements
-     in the dataset (`n!=0'), divide the sum by the number, otherwise, put
+     in the dataset ('n!=0'), divide the sum by the number, otherwise, put
      a blank value in the output. */
   if(n) *((double *)(out->array)) /= n;
   else gal_blank_write(out->array, out->type);
@@ -271,7 +271,7 @@ gal_statistics_mean_std(gal_data_t *input)
 
 /* The input is a sorted array with no blank values, we want the median
    value to be put inside the already allocated space which is pointed to
-   by `median'. It is in the same type as the input. */
+   by 'median'. It is in the same type as the input. */
 #define MED_IN_SORTED(IT) {                                             \
     IT *a=sorted->array;                                                \
     *(IT *)median = n%2 ? a[n/2]  : (a[n/2]+a[n/2-1])/2;                \
@@ -308,7 +308,7 @@ statistics_median_in_sorted_no_blank(gal_data_t *sorted, 
void *median)
 
 
 /* Return the median value of the dataset in the same type as the input as
-   a one element dataset. If the `inplace' flag is set, the input data
+   a one element dataset. If the 'inplace' flag is set, the input data
    structure will be modified: it will have no blank values and will be
    sorted (increasing). */
 gal_data_t *
@@ -343,7 +343,7 @@ gal_statistics_quantile_index(size_t size, double quantile)
   /* Some sanity checks. */
   if(size==0)
     {
-      error(0, 0, "%s: `size' is 0. The quantile is not defined for "
+      error(0, 0, "%s: 'size' is 0. The quantile is not defined for "
               "a zero-sized array\n", __func__);
       return GAL_BLANK_SIZE_T;
     }
@@ -420,7 +420,7 @@ gal_statistics_quantile(gal_data_t *input, double quantile, 
int inplace)
 
 
 /* Return the index of the (first) point in the sorted dataset that has the
-   closest value to `value' (which has to be the same type as the `input'
+   closest value to 'value' (which has to be the same type as the 'input'
    dataset). */
 #define STATS_QFUNC_IND(IT) {                                           \
     IT *r, *a=nbs->array, *af=a+nbs->size, v=*((IT *)(value->array));   \
@@ -572,7 +572,7 @@ gal_statistics_quantile_function(gal_data_t *input, 
gal_data_t *value,
     size_t i, j;                                                        \
     TYPE *a=out->array, b;                                              \
                                                                         \
-    /* Write the blank value for this type into `b'. */                 \
+    /* Write the blank value for this type into 'b'. */                 \
     gal_blank_write(&b, out->type);                                     \
                                                                         \
     /* Go over the elements, and set the duplicates to blank. */        \
@@ -611,11 +611,11 @@ gal_statistics_unique(gal_data_t *input, int inplace)
     case GAL_TYPE_FLOAT32: UNIQUE_BYTYPE( float    ); break;
     case GAL_TYPE_FLOAT64: UNIQUE_BYTYPE( double   ); break;
     default:
-      error(EXIT_FAILURE, 0, "the `unique' operator doesn't support type "
-            "code `%u'", out->type);
+      error(EXIT_FAILURE, 0, "the 'unique' operator doesn't support type "
+            "code '%u'", out->type);
     }
 
-  /* Remove all blank elements (note that `gal_blank_remove' also corrects
+  /* Remove all blank elements (note that 'gal_blank_remove' also corrects
      the size of the dataset and sets it to 1D). */
   gal_blank_remove_realloc(out);
   return out;
@@ -674,7 +674,7 @@ struct statistics_mode_params
 
 
 /*
-  Given a mirror point (`m'), return the maximum distance between the
+  Given a mirror point ('m'), return the maximum distance between the
   mirror distribution and the original distribution.
 
   The basic idea behind finding the mode is comparing the mirrored CDF
@@ -684,28 +684,28 @@ struct statistics_mode_params
   checked, it then finds the maximum difference between the mirrored CDF
   about the given point and the input CDF.
 
-  `zf` keeps the value at the mirror (zero) point.  `i` is used to count
-  the pixels after the mirror in the mirror distribution. So `m+i` is the
+  'zf' keeps the value at the mirror (zero) point.  'i' is used to count
+  the pixels after the mirror in the mirror distribution. So 'm+i' is the
   index of the mirrored distribution and mf=zf+(zf-a[m-i])=2*zf-a[m-i] is
-  the mirrored flux at this point. Having found `mf', we find the `j` such
-  that a[m+j] has the nearest flux to `mf`.
+  the mirrored flux at this point. Having found 'mf', we find the 'j' such
+  that a[m+j] has the nearest flux to 'mf'.
 
   The desired difference between the input CDF and the mirrored one
-  for each `i` is then simply: `j-i`.
-
-  Once `i` is incremented, `mf` will increase, so to find the new `j` we
-  don't need to begin looking from `j=0`. Remember that the array is
-  sorted, so the desired `j` is definitely larger than the previous
-  `j`. So, if we keep the previous `j` in `prevj` then, all we have to do
-  is to start incrementing `j` from `prevj`. This will really help in
-  speeding up the job :-D. Only for the first element, `prevj=0`. */
+  for each 'i' is then simply: 'j-i'.
+
+  Once 'i' is incremented, 'mf' will increase, so to find the new 'j' we
+  don't need to begin looking from 'j=0'. Remember that the array is
+  sorted, so the desired 'j' is definitely larger than the previous
+  'j'. So, if we keep the previous 'j' in 'prevj' then, all we have to do
+  is to start incrementing 'j' from 'prevj'. This will really help in
+  speeding up the job :-D. Only for the first element, 'prevj=0'. */
 #define MIRR_MAX_DIFF(IT) {                                             \
     IT *a=p->data->array, zf=a[m], mf=2*zf-a[m-i];                      \
                                                                         \
     /* When a[m+j]>mf, we have reached the last pixel to check. Now, */ \
     /* we just have to see which one of a[m+j-1] or a[m+j] is closer */ \
-    /* to `mf'. We then change `j` accordingly and break out of the  */ \
-    /* `j' loop. */                                                     \
+    /* to 'mf'. We then change 'j' accordingly and break out of the  */ \
+    /* 'j' loop. */                                                     \
     for(j=prevj;j<size-m;++j)                                           \
       if(a[m+j]>mf)                                                     \
         {                                                               \
@@ -741,7 +741,7 @@ mode_mirror_max_index_diff(struct statistics_mode_params 
*p, size_t m)
   /* Go over the mirrored points. */
   for(i=1; i<p->numcheck && i<=m && m+i<size ;i+=p->interval)
     {
-      /* Find `j': the index of the closest point in the original
+      /* Find 'j': the index of the closest point in the original
          distribution that has a value similar to the mirror
          distribution. */
       switch(p->data->type)
@@ -770,8 +770,8 @@ mode_mirror_max_index_diff(struct statistics_mode_params 
*p, size_t m)
          has been found. We want the mirrored distribution to be within the
          actual distribution, not beyond it, so the only acceptable results
          are when i<j. But we also have noise, so we can't simply use that
-         as the criterion, small `j's with `i>j' are acceptable. So, only
-         when `i>j+errordiff' the result is not acceptable! */
+         as the criterion, small 'j's with 'i>j' are acceptable. So, only
+         when 'i>j+errordiff' the result is not acceptable! */
       if(i>j+errordiff)
         {
           maxdiff = MODE_MIRROR_ABOVE;
@@ -792,7 +792,7 @@ mode_mirror_max_index_diff(struct statistics_mode_params 
*p, size_t m)
 
 
 /* Find the mode through the Golden-section search. It is assumed that
-   `mode_mirror_max_index_diff' has one minimum (within the statistical
+   'mode_mirror_max_index_diff' has one minimum (within the statistical
    errors) in the function. To find that minimum, the golden section search
    algorithm is going to used. Read the Wikipedia article for a very nice
    introduction.
@@ -801,8 +801,8 @@ mode_mirror_max_index_diff(struct statistics_mode_params 
*p, size_t m)
    interval and thus decreasing the interval until a certain tolerance is
    reached.
 
-   If the input interval is on points `a' and `b', then the middle point
-   (lets call it `c', where c>a and c<b) to test should be positioned such
+   If the input interval is on points 'a' and 'b', then the middle point
+   (lets call it 'c', where c>a and c<b) to test should be positioned such
    that (b-c)/(c-a)=MODE_GOLDEN_RATIO. Once we open up this relation, we
    can find c using:
 
@@ -856,7 +856,7 @@ mode_golden_section(struct statistics_mode_params *p)
   /* +++++++++++++ Start of addition to the golden section search.
 
      The mirrored distribution's cumulative frequency plot has be lower
-     than the actual's cfp. If it isn't, `di` will be MODE_MIRROR_ABOVE. In
+     than the actual's cfp. If it isn't, 'di' will be MODE_MIRROR_ABOVE. In
      this case, the normal golden section minimization is not going to give
      us what we want. So we have this modification. In such cases, we want
      the search to go to the lower interval. */
@@ -916,28 +916,28 @@ mode_golden_section(struct statistics_mode_params *p)
 
 /* Once the mode is found, we need to do a quality control. This quality
    control is the measure of its symmetricity. Let's assume the mode index
-   is at `m', since an index is just a count, from the Poisson
-   distribution, the error in `m' is sqrt(m).
+   is at 'm', since an index is just a count, from the Poisson
+   distribution, the error in 'm' is sqrt(m).
 
-   Now, let's take `b' to be the first point that the difference between
+   Now, let's take 'b' to be the first point that the difference between
    the cumulative distribution of the mirror and actual data deviate more
    than sqrt(m). For a scale parameter, lets assume that the index of 5% of
-   `m` is `a`. We could have taken the distribution minimum, but the
+   'm' is 'a'. We could have taken the distribution minimum, but the
    scatter in the minimum can be too high!
 
    Now, the "symmetricity" of the mode can be defined as: (b-m)/(m-a). For
    a completly symmetric mode, this should be 1. Note that the search for
-   `b` only goes to the 95% of the distribution.  */
+   'b' only goes to the 95% of the distribution.  */
 #define MODE_SYM(IT) {                                                  \
     IT *a=p->data->array, af=0, bf=0, mf=0, fi;                         \
                                                                         \
-    /* Set the values at the mirror and at `a' (see above). */          \
+    /* Set the values at the mirror and at 'a' (see above). */          \
     mf=a[m];                                                            \
     af=a[ gal_statistics_quantile_index(2*m+1, MODE_SYM_LOW_Q) ];       \
     if(mf<=af) return 0;                                                \
                                                                         \
     /* This loop is very similar to that of */                          \
-    /* `mode_mirror_max_index_diff'. It will find the index where the */\
+    /* 'mode_mirror_max_index_diff'. It will find the index where the */\
     /* difference between the two cumulative frequency plots exceeds */ \
     /* that of the error in the mirror index.*/                         \
     for(i=1; i<topi-m ;i+=1)                                            \
@@ -1012,7 +1012,7 @@ mode_symmetricity(struct statistics_mode_params *p, 
size_t m, void *b_val)
 
 
 
-/* Return the mode and related parameters in a float64 `gal_data_t' with
+/* Return the mode and related parameters in a float64 'gal_data_t' with
    the following elements in its array, the array:
 
       array[0]: mode
@@ -1022,13 +1022,13 @@ mode_symmetricity(struct statistics_mode_params *p, 
size_t m, void *b_val)
 
   The inputs are:
 
-    - `input' is the input dataset, it doesn't have to be sorted and can
+    - 'input' is the input dataset, it doesn't have to be sorted and can
       have blank values.
 
-    - `mirrordist' is the maximum distance after the mirror point to check
+    - 'mirrordist' is the maximum distance after the mirror point to check
       as a multiple of sigma.
 
-    - `inplace' is either 0 or 1. If it is 1 and the input array has blank
+    - 'inplace' is either 0 or 1. If it is 1 and the input array has blank
       values and is not sorted, then the removal of blank values and
       sorting will occur in-place (input will be modified): all blank
       elements in the input array will be removed and it will be sorted. */
@@ -1051,7 +1051,7 @@ gal_statistics_mode(gal_data_t *input, float mirrordist, 
int inplace)
   /* A small sanity check. */
   if(mirrordist<=0)
     error(EXIT_FAILURE, 0, "%s: %f not acceptable as a value to "
-          "`mirrordist'. Only positive values can be given to it",
+          "'mirrordist'. Only positive values can be given to it",
           __func__, mirrordist);
 
 
@@ -1060,7 +1060,7 @@ gal_statistics_mode(gal_data_t *input, float mirrordist, 
int inplace)
 
 
   /* It can happen that the whole array is blank. In such cases,
-     `p.data->size==0', so set all output elements to NaN and return. */
+     'p.data->size==0', so set all output elements to NaN and return. */
   oa=out->array;
   if(p.data->size==0) { oa[0]=oa[1]=oa[2]=oa[3]=NAN; return out; }
 
@@ -1092,7 +1092,7 @@ gal_statistics_mode(gal_data_t *input, float mirrordist, 
int inplace)
 
 
   /* Do the golden-section search iteration, read the mode value from the
-     input array and save it in the `tmptype' data structure that has the
+     input array and save it in the 'tmptype' data structure that has the
      same type as the input. */
   modeindex = mode_golden_section(&p);
   memcpy( tmptype->array,
@@ -1184,7 +1184,7 @@ statistics_make_mirror(gal_data_t *noblank_sorted, size_t 
index,
 
 
 /* Make a mirrored histogram and cumulative frequency plot with the mirror
-   distribution of the input with a value at `value'.
+   distribution of the input with a value at 'value'.
 
    The output is a linked list of data structures: the first is the bins
    with one bin at the mirror point, the second is the histogram with a
@@ -1339,7 +1339,7 @@ gal_statistics_is_sorted(gal_data_t *input, int 
updateflags)
 
         default:
           error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix "
-                "the problem. The value %d is not recognized for `out'",
+                "the problem. The value %d is not recognized for 'out'",
                 __func__, PACKAGE_BUGREPORT, out);
         }
     }
@@ -1351,7 +1351,7 @@ gal_statistics_is_sorted(gal_data_t *input, int 
updateflags)
 
 
 /* This function is ignorant to blank values, if you want to make sure
-   there is no blank values, you can call `gal_blank_remove' first. */
+   there is no blank values, you can call 'gal_blank_remove' first. */
 #define STATISTICS_SORT(QSORT_F) {                                      \
     qsort(input->array, input->size, gal_type_sizeof(input->type), QSORT_F); \
   }
@@ -1397,7 +1397,7 @@ gal_statistics_sort_increasing(gal_data_t *input)
 
 
 
-/* See explanations above `gal_statistics_sort_increasing'. */
+/* See explanations above 'gal_statistics_sort_increasing'. */
 void
 gal_statistics_sort_decreasing(gal_data_t *input)
 {
@@ -1441,12 +1441,12 @@ gal_statistics_sort_decreasing(gal_data_t *input)
 
 
 /* Return a dataset that doesn't have blank values and is sorted. If the
-   `inplace' value is set to 1, then the input array will be modified,
+   'inplace' value is set to 1, then the input array will be modified,
    otherwise, a new array will be allocated with the desired properties. So
-   if it is already sorted and has blank values, the `inplace' variable is
+   if it is already sorted and has blank values, the 'inplace' variable is
    irrelevant.
 
-   This function can also work on tiles, in that case, `inplace' is
+   This function can also work on tiles, in that case, 'inplace' is
    useless, because a tile doesn't own its dataset and the dataset is not
    contiguous. */
 gal_data_t *
@@ -1460,7 +1460,7 @@ gal_statistics_no_blank_sorted(gal_data_t *input, int 
inplace)
     {
       /* If this is a tile, then first we have to copy it into a contiguous
          piece of memory. After this step, we will only be dealing with
-         `contig' (for a contiguous patch of memory). */
+         'contig' (for a contiguous patch of memory). */
       if(input->block)
         {
           /* Copy the input into a contiguous patch of memory. */
@@ -1468,15 +1468,15 @@ gal_statistics_no_blank_sorted(gal_data_t *input, int 
inplace)
 
           /* When the data was a tile, we have already copied the array
              into a separate allocated space. So to avoid any further
-             copying, we will just set the `inplace' variable to 1. */
+             copying, we will just set the 'inplace' variable to 1. */
           inplace=1;
         }
       else contig=input;
 
 
       /* Make sure there are no blanks in the array that will be
-         used. After this step, we won't be dealing with `input' any more,
-         but with `noblank'. */
+         used. After this step, we won't be dealing with 'input' any more,
+         but with 'noblank'. */
       if( gal_blank_present(contig, 1) )
         {
           /* See if we should allocate a new dataset to remove blanks or if
@@ -1487,7 +1487,7 @@ gal_statistics_no_blank_sorted(gal_data_t *input, int 
inplace)
       else noblank=contig;
 
       /* Make sure the array is sorted. After this step, we won't be
-         dealing with `noblank' any more but with `sorted'. */
+         dealing with 'noblank' any more but with 'sorted'. */
       if(noblank->size)
         {
           if( gal_statistics_is_sorted(noblank, 1) )
@@ -1562,21 +1562,21 @@ gal_statistics_no_blank_sorted(gal_data_t *input, int 
inplace)
 
    Input arguments:
 
-     * The `input' set you want to apply the bins to. This is only
+     * The 'input' set you want to apply the bins to. This is only
        necessary if the range argument is not complete, see below. If
-       `range' has all the necessary information, you can pass a NULL
-       pointer for `input'.
+       'range' has all the necessary information, you can pass a NULL
+       pointer for 'input'.
 
-     * The `inrange' data structure keeps the desired range along each
+     * The 'inrange' data structure keeps the desired range along each
        dimension of the input data structure, it has to be in float32
        type. Note that if
 
          - If you want the full range of the dataset (in any dimensions,
-           then just set `range' to NULL and the range will be specified
+           then just set 'range' to NULL and the range will be specified
            from the minimum and maximum value of the dataset.
 
          - If there is one element for each dimension in range, then it is
-           viewed as a quantile (Q), and the range will be: `Q to 1-Q'.
+           viewed as a quantile (Q), and the range will be: 'Q to 1-Q'.
 
          - If there are two elements for each dimension in range, then they
            are assumed to be your desired minimum and maximum values. When
@@ -1585,7 +1585,7 @@ gal_statistics_no_blank_sorted(gal_data_t *input, int 
inplace)
 
      * The number of bins: must be larger than 0.
 
-     * `onebinstart' A desired value for onebinstart. Note that with this
+     * 'onebinstart' A desired value for onebinstart. Note that with this
         option, the bins won't start and end exactly on the given range
         values, it will be slightly shifted to accommodate this
         request.
@@ -1604,7 +1604,7 @@ gal_statistics_regular_bins(gal_data_t *input, gal_data_t 
*inrange,
 
   /* Some sanity checks. */
   if(numbins==0)
-    error(EXIT_FAILURE, 0, "%s: `numbins' cannot be given a value of 0",
+    error(EXIT_FAILURE, 0, "%s: 'numbins' cannot be given a value of 0",
           __func__);
   if(input->size==0)
     error(EXIT_FAILURE, 0, "%s: input's size is 0", __func__);
@@ -1650,7 +1650,7 @@ gal_statistics_regular_bins(gal_data_t *input, gal_data_t 
*inrange,
           else max=ra[1];
         }
 
-      /* Clean up: if `range' was allocated. */
+      /* Clean up: if 'range' was allocated. */
       if(range!=inrange) gal_data_free(range);
     }
   /* No range was given, find the minimum and maximum. */
@@ -1714,11 +1714,11 @@ gal_statistics_regular_bins(gal_data_t *input, 
gal_data_t *inrange,
 
 
 /* Make a histogram of all the elements in the given dataset with bin
-   values that are defined in the `inbins' structure (see
-   `gal_statistics_regular_bins'). `inbins' is not mandatory, if you pass a
+   values that are defined in the 'inbins' structure (see
+   'gal_statistics_regular_bins'). 'inbins' is not mandatory, if you pass a
    NULL pointer, the bins structure will be built within this function
-   based on the `numbins' input. As a result, when you have already defined
-   the bins, `numbins' is not used. */
+   based on the 'numbins' input. As a result, when you have already defined
+   the bins, 'numbins' is not used. */
 
 #define HISTOGRAM_TYPESET(IT) {                                         \
     IT *a=input->array, *af=a+input->size;                              \
@@ -1726,8 +1726,8 @@ gal_statistics_regular_bins(gal_data_t *input, gal_data_t 
*inrange,
       if(*a>=min && *a<=max)                                            \
         {                                                               \
           h_i=(*a-min)/binwidth;                                        \
-          /* When `*a' is the largest element (within floating point */ \
-          /* errors), `h_i' can be one element larger than the       */ \
+          /* When '*a' is the largest element (within floating point */ \
+          /* errors), 'h_i' can be one element larger than the       */ \
           /* number of bins. But since its in the dataset, we need   */ \
           /* to count it. So we'll put it in the last bin.           */ \
           ++h[ h_i - (h_i==hist->size ? 1 : 0) ];                       \
@@ -1749,7 +1749,7 @@ gal_statistics_histogram(gal_data_t *input, gal_data_t 
*bins, int normalize,
      either use the old implementation, or GSL's histogram
      functionality. */
   if(bins==NULL)
-    error(EXIT_FAILURE, 0, "%s: `bins' is NULL", __func__);
+    error(EXIT_FAILURE, 0, "%s: 'bins' is NULL", __func__);
   if(bins->status!=GAL_STATISTICS_BINS_REGULAR)
     error(EXIT_FAILURE, 0, "%s: the input bins are not regular. Currently "
           "it is only implemented for regular bins", __func__);
@@ -1757,9 +1757,9 @@ gal_statistics_histogram(gal_data_t *input, gal_data_t 
*bins, int normalize,
     error(EXIT_FAILURE, 0, "%s: input's size is 0", __func__);
 
 
-  /* Check if normalize and `maxone' are not called together. */
+  /* Check if normalize and 'maxone' are not called together. */
   if(normalize && maxone)
-    error(EXIT_FAILURE, 0, "%s: only one of `normalize' and `maxone' may "
+    error(EXIT_FAILURE, 0, "%s: only one of 'normalize' and 'maxone' may "
           "be given", __func__);
 
 
@@ -1853,14 +1853,14 @@ gal_statistics_histogram(gal_data_t *input, gal_data_t 
*bins, int normalize,
 
 
 /* Make a cumulative frequency plot (CFP) of all the elements in the given
-   dataset with bin values that are defined in the `bins' structure (see
-   `gal_statistics_regular_bins').
+   dataset with bin values that are defined in the 'bins' structure (see
+   'gal_statistics_regular_bins').
 
    The CFP is built from the histogram: in each bin, the value is the sum
    of all previous bins in the histogram. Thus, if you have already
    calculated the histogram before calling this function, you can pass it
-   onto this function as the data structure in `bins->next'. If
-   `bin->next!=NULL', then it is assumed to be the histogram. If it is
+   onto this function as the data structure in 'bins->next'. If
+   'bin->next!=NULL', then it is assumed to be the histogram. If it is
    NULL, then the histogram will be calculated internally and freed after
    the job is finished.
 
@@ -1988,9 +1988,9 @@ gal_statistics_cfp(gal_data_t *input, gal_data_t *bins, 
int normalize)
 
    Inputs:
 
-     - `multip': multiple of the standard deviation,
+     - 'multip': multiple of the standard deviation,
 
-     - `param' must be positive and determines the type of clipping:
+     - 'param' must be positive and determines the type of clipping:
 
          - param<1.0: interpretted as a tolerance level to stop clipping.
 
@@ -2052,23 +2052,23 @@ gal_statistics_sigma_clip(gal_data_t *input, float 
multip, float param,
 
   /* Some sanity checks. */
   if( multip<=0 )
-    error(EXIT_FAILURE, 0, "%s: `multip', must be greater than zero. The "
+    error(EXIT_FAILURE, 0, "%s: 'multip', must be greater than zero. The "
           "given value was %g", __func__, multip);
   if( param<=0 )
-    error(EXIT_FAILURE, 0, "%s: `param', must be greater than zero. The "
+    error(EXIT_FAILURE, 0, "%s: 'param', must be greater than zero. The "
           "given value was %g", __func__, param);
   if( param >= 1.0f && ceil(param) != param )
-    error(EXIT_FAILURE, 0, "%s: when `param' is larger than 1.0, it is "
+    error(EXIT_FAILURE, 0, "%s: when 'param' is larger than 1.0, it is "
           "interpretted as an absolute number of clips. So it must be an "
           "integer. However, your given value %g", __func__, param);
   if( (nbs->flag & GAL_DATA_FLAG_SORT_CH)==0 )
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix the "
-          "problem. `nbs->flag', doesn't have the `GAL_DATA_FLAG_SORT_CH' "
+          "problem. 'nbs->flag', doesn't have the 'GAL_DATA_FLAG_SORT_CH' "
           "bit activated", __func__, PACKAGE_BUGREPORT);
   if( (nbs->flag & GAL_DATA_FLAG_SORTED_I)==0
       && (nbs->flag & GAL_DATA_FLAG_SORTED_D)==0 )
     error(EXIT_FAILURE, 0, "%s: a bug! Please contact us at %s to fix the "
-          "problem. `nbs' isn't sorted", __func__, PACKAGE_BUGREPORT);
+          "problem. 'nbs' isn't sorted", __func__, PACKAGE_BUGREPORT);
 
 
   /* Allocate the necessary spaces. */
@@ -2128,7 +2128,7 @@ gal_statistics_sigma_clip(gal_data_t *input, float 
multip, float param,
       while(num<maxnum && size)
         {
           /* Find the average and Standard deviation, note that both
-             `start' and `size' will be different in the next round. */
+             'start' and 'size' will be different in the next round. */
           nbs->array = start;
           nbs->size = oldsize = size;
 
@@ -2158,13 +2158,13 @@ gal_statistics_sigma_clip(gal_data_t *input, float 
multip, float param,
                    num+1, size, *med, *mean, *std);
 
           /* If we are to work by tolerance, then check if we should jump
-             out of the loop. Normally, `oldstd' should be larger than std,
+             out of the loop. Normally, 'oldstd' should be larger than std,
              because the possible outliers have been removed. If it is not,
              it means that we have clipped too much and must stop anyway,
              so we don't need an absolute value on the difference!
 
              Note that when all the elements are identical after the clip,
-             `std' will be zero. In this case we shouldn't calculate the
+             'std' will be zero. In this case we shouldn't calculate the
              tolerance (because it will be infinity and thus lager than the
              requested tolerance level value).*/
           if( bytolerance && num>0 )
@@ -2207,7 +2207,7 @@ gal_statistics_sigma_clip(gal_data_t *input, float 
multip, float param,
           gal_data_free(median_d);
         }
 
-      /* If we were in tolerance mode and `num' and `maxnum' are equal (the
+      /* If we were in tolerance mode and 'num' and 'maxnum' are equal (the
          loop didn't stop by tolerance), so the outputs should be NaN. */
       out->status=num;
       if( size==0 || (bytolerance && num==maxnum) )
@@ -2413,10 +2413,10 @@ gal_statistics_outlier_flat_cfp(gal_data_t *input, 
size_t numprev,
 
   /* Sanity checks. */
   if(thresh<=0)
-    error(EXIT_FAILURE, 0, "%s: the value of `thresh' (%g) must be "
+    error(EXIT_FAILURE, 0, "%s: the value of 'thresh' (%g) must be "
           "positive", __func__, thresh);
   if(numprev==0)
-    error(EXIT_FAILURE, 0, "%s: `numprev' (%zu) cannot be zero", __func__,
+    error(EXIT_FAILURE, 0, "%s: 'numprev' (%zu) cannot be zero", __func__,
           numprev);
 
   /* Remove all blanks and sort the dataset. */
diff --git a/lib/table.c b/lib/table.c
index f7a0c1f..003e994 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -50,15 +50,15 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 /***************         Information about a table        ***************/
 /************************************************************************/
 /* Store the information of each column in a table (either as a text file
-   or as a FITS table) into an array of data structures with `numcols'
+   or as a FITS table) into an array of data structures with 'numcols'
    structures (one data structure for each column). The number of rows is
-   stored in `numrows'. The type of the table (e.g., ascii text file, or
-   FITS binary or ASCII table) will be put in `tableformat' (macros defined
-   in `gnuastro/table.h'.
+   stored in 'numrows'. The type of the table (e.g., ascii text file, or
+   FITS binary or ASCII table) will be put in 'tableformat' (macros defined
+   in 'gnuastro/table.h'.
 
    Note that other than the character strings (column name, units and
    comments), nothing in the data structure(s) will be allocated by this
-   function for the actual data (e.g., the `array' or `dsize' elements). */
+   function for the actual data (e.g., the 'array' or 'dsize' elements). */
 gal_data_t *
 gal_table_info(char *filename, char *hdu, gal_list_str_t *lines,
                size_t *numcols, size_t *numrows, int *tableformat)
@@ -173,7 +173,7 @@ table_regexerrorexit(int errcode, regex_t *compiled, char 
*input)
   (void) regerror(errcode, compiled, regexerrbuf, length);
 
   error(EXIT_FAILURE, 0, "%s: regular expression error: %s in value to "
-        "`--column' (`-c'): `%s'", __func__, regexerrbuf, input);
+        "'--column' ('-c'): '%s'", __func__, regexerrbuf, input);
 }
 
 
@@ -231,12 +231,12 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
         nummatch=0;
         len=strlen(tmp->v);
 
-        /* REGULAR EXPRESSION: the first and last characters are `/'. */
+        /* REGULAR EXPRESSION: the first and last characters are '/'. */
         if( tmp->v[0]=='/' && tmp->v[len-1]=='/' )
           {
             /* Remove the slashes, note that we don't want to change
-               `tmp->v' (because it should be freed later). So first we set
-               the last character to `\0', then define a new string from
+               'tmp->v' (because it should be freed later). So first we set
+               the last character to '\0', then define a new string from
                the first element. */
             tmp->v[len-1]='\0';
             str = tmp->v + 1;
@@ -271,7 +271,7 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
             /* With the regex structure "compile"d you can go through all
                the column names. Just note that column names are not
                mandatory in the FITS standard, so some (or all) columns
-               might not have names, if so `p->tname[i]' will be NULL. */
+               might not have names, if so 'p->tname[i]' will be NULL. */
             for(i=0;i<numcols;++i)
               {
                 strcheck=table_set_strcheck(&allcols[i], searchin);
@@ -285,7 +285,7 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
             /* Free the regex_t structure: */
             regfree(regex);
 
-            /* Put the `/' back into the input string. This is done because
+            /* Put the '/' back into the input string. This is done because
                after this function, the calling program might want to
                inform the user of their exact input string. */
             tmp->v[len-1]='/';
@@ -358,7 +358,7 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
            are done (and program is aborted) before this step. */
         if(nummatch==0)
           {
-            if( asprintf(&errorstring, "`%s' didn't match any of the "
+            if( asprintf(&errorstring, "'%s' didn't match any of the "
                          "column %ss.", tmp->v,
                          gal_tableintern_searchin_as_string(searchin))<0 )
               error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
@@ -366,7 +366,7 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
           }
 
 
-        /* Keep the value of `nummatch' if the user requested it. */
+        /* Keep the value of 'nummatch' if the user requested it. */
         if(colmatch) colmatch[colcount++]=nummatch;
       }
 
@@ -391,18 +391,18 @@ gal_table_list_of_indexs(gal_list_str_t *cols, gal_data_t 
*allcols,
 
 
 
-/* Read the specified columns in a table (named `filename') into a linked
-   list of data structures. If the file is FITS, then `hdu' will also be
-   used, otherwise, `hdu' is ignored. The information to search for columns
-   should be specified by the `cols' linked list as string values in each
+/* Read the specified columns in a table (named 'filename') into a linked
+   list of data structures. If the file is FITS, then 'hdu' will also be
+   used, otherwise, 'hdu' is ignored. The information to search for columns
+   should be specified by the 'cols' linked list as string values in each
    node of the list, the strings in each node can be a number, an exact
    match to a column name, or a regular expression (in GNU AWK format)
-   enclosed in `/ /'. The `searchin' value comes from the
-   `gal_table_where_to_search' enumerator and has to be one of its given
-   types. If `cols' is NULL, then this function will read the full table.
+   enclosed in '/ /'. The 'searchin' value comes from the
+   'gal_table_where_to_search' enumerator and has to be one of its given
+   types. If 'cols' is NULL, then this function will read the full table.
 
    The output is a linked list with the same order of the cols linked
-   list. Note that one column node in the `cols' list might give multiple
+   list. Note that one column node in the 'cols' list might give multiple
    columns, in this case, the order of output columns that correspond to
    that one input, are in order of the table (which column was read first).
    So the first requested column is the first popped data structure and so
@@ -431,11 +431,11 @@ gal_table_read(char *filename, char *hdu, gal_list_str_t 
*lines,
   /* Depending on the table format, read the columns into the output
      structure. Note that the functions here pop each index, read/store the
      desired column and pop the next, so after these functions, the output
-     linked list will have the opposite order of its input `indexll'
+     linked list will have the opposite order of its input 'indexll'
      list. So before calling any of them, we will first reverse the
-     `indexll' list, so the output data structure list will have the same
+     'indexll' list, so the output data structure list will have the same
      order as the input list of desired columns. Also note that after these
-     functions, the `indexll' will be all freed (each popped element is
+     functions, the 'indexll' will be all freed (each popped element is
      actually freed).*/
   gal_list_sizet_reverse(&indexll);
   switch(tableformat)
@@ -453,7 +453,7 @@ gal_table_read(char *filename, char *hdu, gal_list_str_t 
*lines,
 
     default:
       error(EXIT_FAILURE, 0, "%s: table format code %d not recognized for "
-            "`tableformat'", __func__, tableformat);
+            "'tableformat'", __func__, tableformat);
     }
 
   /* Clean up. */
@@ -489,7 +489,7 @@ gal_table_read(char *filename, char *hdu, gal_list_str_t 
*lines,
 /***************              Write a table               ***************/
 /************************************************************************/
 /* Write the basic information that is necessary by each program into the
-   comments field. Note that the `comments' has to be already sorted in the
+   comments field. Note that the 'comments' has to be already sorted in the
    proper order. */
 void
 gal_table_comments_add_intro(gal_list_str_t **comments, char *program_string,
@@ -503,9 +503,9 @@ gal_table_comments_add_intro(gal_list_str_t **comments, 
char *program_string,
   else      gitdescribe[0]='\0';
 
   /* Git version and time of program's starting, this will be the second
-     line. Note that ctime puts a `\n' at the end of its string, so we'll
-     have to remove that. Also, note that since we are allocating `msg', we
-     are setting the allocate flag of `gal_list_str_add' to 0. */
+     line. Note that ctime puts a '\n' at the end of its string, so we'll
+     have to remove that. Also, note that since we are allocating 'msg', we
+     are setting the allocate flag of 'gal_list_str_add' to 0. */
   if( asprintf(&tmp, "Created%s on %s", gitdescribe, ctime(rawtime))<0 )
     error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__);
   tmp[ strlen(tmp)-1 ]='\0';
@@ -523,8 +523,8 @@ gal_table_comments_add_intro(gal_list_str_t **comments, 
char *program_string,
 
 
 /* The input is a linked list of data structures and some comments. The
-   table will then be written into `filename' with a format that is
-   specified by `tableformat'. */
+   table will then be written into 'filename' with a format that is
+   specified by 'tableformat'. */
 void
 gal_table_write(gal_data_t *cols, gal_list_str_t *comments,
                 int tableformat, char *filename, char *extname,
diff --git a/lib/tableintern.c b/lib/tableintern.c
index fc7ab84..e0e10d0 100644
--- a/lib/tableintern.c
+++ b/lib/tableintern.c
@@ -67,7 +67,7 @@ gal_tableintern_error_col_selection(char *filename, char *hdu,
   /* Abort with with the proper error. */
   error(EXIT_FAILURE, 0, "%s: %s\n\nFor more information on selecting "
         "columns in Gnuastro, please run the following command (press "
-        "`SPACE' to go down and `q' to return to the command-line):\n\n"
+        "'SPACE' to go down and 'q' to return to the command-line):\n\n"
         "    $ info gnuastro \"Selecting table columns\"\n\n"
         "To define a better column selection criteria, you can see "
         "the list of column meta-data in this table, with the following "
@@ -135,8 +135,8 @@ gal_tableintern_format_as_string(uint8_t tableformat)
 
 
 
-/* In programs, the `searchin' variable is much more easier to format in as
-   a description than an integer (which is what `gal_table_read_cols'
+/* In programs, the 'searchin' variable is much more easier to format in as
+   a description than an integer (which is what 'gal_table_read_cols'
    needs). This function will check the string value and give the
    corresponding integer value.*/
 uint8_t
@@ -175,30 +175,30 @@ gal_tableintern_searchin_as_string(uint8_t searchin)
 
 
 
-/* For programs that output tables, the `--tableformat' option will be used
+/* For programs that output tables, the '--tableformat' option will be used
    to specify what format the output table should be in. When the output
    file is a FITS file, there are multiple formats, so to simplify the
    coding in each program, this function will do a sanity check on the
-   value given to the `--tableformat' parameter. */
+   value given to the '--tableformat' parameter. */
 void
 gal_tableintern_check_fits_format(char *filename, int tableformat)
 {
   if( filename && gal_fits_name_is_fits(filename) )
     {
-      /* When `--tableformat' was not given. */
+      /* When '--tableformat' was not given. */
       if(tableformat==GAL_TABLE_FORMAT_INVALID)
-        error(EXIT_FAILURE, 0, "`%s' (output file) is a FITS file but the "
+        error(EXIT_FAILURE, 0, "'%s' (output file) is a FITS file but the "
               "desired format of the FITS table has not been specified with "
-              "the `--tableformat' option. For FITS tables, this option can "
-              "take two values: `fits-ascii', or `fits-binary'", filename);
+              "the '--tableformat' option. For FITS tables, this option can "
+              "take two values: 'fits-ascii', or 'fits-binary'", filename);
 
-      /* When `--tableformat' didn't have the correct value. */
+      /* When '--tableformat' didn't have the correct value. */
       if( tableformat != GAL_TABLE_FORMAT_AFITS
           && tableformat != GAL_TABLE_FORMAT_BFITS )
-        error(EXIT_FAILURE, 0, "`%s' (output file) is a FITS file but "
+        error(EXIT_FAILURE, 0, "'%s' (output file) is a FITS file but "
               "is not a recognized FITS table format. For FITS tables, "
-              "`--tableformat' can take two values: `fits-ascii', or "
-              "`fits-binary'", filename);
+              "'--tableformat' can take two values: 'fits-ascii', or "
+              "'fits-binary'", filename);
     }
 }
 
@@ -226,11 +226,11 @@ gal_tableintern_check_fits_format(char *filename, int 
tableformat)
 /************************************************************************/
 /* Fill in/adjust the basic information necessary to print a column. This
    information can be used for printing a plain text file or for FITS ASCII
-   tables. The `fmt' and `lng' should point to pre-allocated arrays. The
-   best way is: `char fmt[2], lng[3];' in the same function calling this.
+   tables. The 'fmt' and 'lng' should point to pre-allocated arrays. The
+   best way is: 'char fmt[2], lng[3];' in the same function calling this.
 
    The width and precision, which are also necessary for printing, are
-   updated in the data structure's `disp_width' and `disp_precision'
+   updated in the data structure's 'disp_width' and 'disp_precision'
    elements. */
 void
 gal_tableintern_col_print_info(gal_data_t *col, int tableformat,
@@ -250,7 +250,7 @@ gal_tableintern_col_print_info(gal_data_t *col, int 
tableformat,
       break;
     default:
       error(EXIT_FAILURE, 0, "%s: is only for plain text or FITS ASCII "
-            "tables. The input `tableformat' code %d not recognized",
+            "tables. The input 'tableformat' code %d not recognized",
             __func__, tableformat);
     }
 
@@ -404,10 +404,10 @@ gal_tableintern_col_print_info(gal_data_t *col, int 
tableformat,
 
 
 
-/* Use the input `blank' string and the input column to put the blank value
+/* Use the input 'blank' string and the input column to put the blank value
    in the column's array. This function should later be generalized into a
    function to read a string into a given data type (see
-   `gal_data_string_to_array_elem'). It is only here temporarily. */
+   'gal_data_string_to_array_elem'). It is only here temporarily. */
 void
 gal_tableintern_read_blank(gal_data_t *col, char *blank)
 {
@@ -419,10 +419,10 @@ gal_tableintern_read_blank(gal_data_t *col, char *blank)
   /* Just for a sanity check, the ndim and array elements should be zero. */
   if(col->ndim || col->array)
     error(EXIT_FAILURE, 0, "%s: the number of dimensions, and the "
-          "`array' element of `col' must be zero", __func__);
+          "'array' element of 'col' must be zero", __func__);
 
   /* Read the blank value as the given type. If successful, then
-     `gal_data_string_to_type' will return 0. In that case, we need to
+     'gal_data_string_to_type' will return 0. In that case, we need to
      initialize the necessary paramters to read this data structure
      correctly. */
   if( !gal_type_from_string((void **)(&col->array), blank, col->type) )
diff --git a/lib/threads.c b/lib/threads.c
index 322c60e..5f09d06 100644
--- a/lib/threads.c
+++ b/lib/threads.c
@@ -85,11 +85,11 @@ pthread_barrier_init(pthread_barrier_t *b, 
pthread_barrierattr_t *attr,
 
 /* Suspend the calling thread (tell it to wait), until the limiting number
    of barriers is reached by the other threads. When the number isn't
-   reached yet (process goes into the `else'), then we use the
-   `pthread_cond_wait' function, which will wait until a broadcast is
-   announced by another thread that succeeds the `if'. After the thread no
-   longer needs the condition variable, we increment `b->condfinished' so
-   `pthread_barrier_destroy' can know if it should wait (sleep) or
+   reached yet (process goes into the 'else'), then we use the
+   'pthread_cond_wait' function, which will wait until a broadcast is
+   announced by another thread that succeeds the 'if'. After the thread no
+   longer needs the condition variable, we increment 'b->condfinished' so
+   'pthread_barrier_destroy' can know if it should wait (sleep) or
    continue.*/
 int
 pthread_barrier_wait(pthread_barrier_t *b)
@@ -107,7 +107,7 @@ pthread_barrier_wait(pthread_barrier_t *b)
     {
       /* Initially b->count is smaller than b->limit, otherwise control
          would never have reached here. However, when it get to
-         `pthread_cond_wait', this thread goes into a suspended period and
+         'pthread_cond_wait', this thread goes into a suspended period and
          is only awaken when a broad-cast is made. But we only want this
          thread to finish when b->count >= b->limit, so we have this while
          loop. */
@@ -178,11 +178,11 @@ gal_threads_number()
 
 
 
-/* We have `numactions` jobs and we want their indexs to be divided
-   between `numthreads` CPU threads. This function will give each index to
+/* We have 'numactions' jobs and we want their indexs to be divided
+   between 'numthreads' CPU threads. This function will give each index to
    a thread such that the maximum difference between the number of
    images for each thread is 1. The results will be saved in a 2D
-   array of `outthrdcols` columns and each row will finish with a
+   array of 'outthrdcols' columns and each row will finish with a
    (size_t) -1, which is larger than any possible index!. */
 void
 gal_threads_dist_in_threads(size_t numactions, size_t numthreads,
@@ -261,10 +261,10 @@ gal_threads_attr_barrier_init(pthread_attr_t *attr, 
pthread_barrier_t *b,
 /************     Run a function on multiple threads  **************/
 /*******************************************************************/
 /* Run a given function on the given tiles. The function has to be
-   link-able with your final executable and has to have only one `void *'
-   argument and return a `void *' value. To have access to
+   link-able with your final executable and has to have only one 'void *'
+   argument and return a 'void *' value. To have access to
    variables/parameters in the function, you have to define a structure and
-   pass its pointer as `caller_params'.
+   pass its pointer as 'caller_params'.
 
    Here is one simple example. At least two functions and one structure are
    necessary to use this function.
@@ -291,8 +291,8 @@ gal_threads_attr_barrier_init(pthread_attr_t *attr, 
pthread_barrier_t *b,
        {
 
            THE INDEX OF THE TARGET IS NOW AVAILABLE AS
-           `tprm->indexs[i]'. YOU CAN USE IT IN WHAT EVER MANNER YOU LIKE
-           ALONG WITH THE SET OF VARIABLES/ARRAYS in `prm'.
+           'tprm->indexs[i]'. YOU CAN USE IT IN WHAT EVER MANNER YOU LIKE
+           ALONG WITH THE SET OF VARIABLES/ARRAYS in 'prm'.
 
        }
 
@@ -342,7 +342,7 @@ gal_threads_spin_off(void *(*worker)(void *), void 
*caller_params,
 
   /* Sanity check. */
   if(numthreads==0)
-    error(EXIT_FAILURE, 0, "%s: the number of threads (`numthreads') "
+    error(EXIT_FAILURE, 0, "%s: the number of threads ('numthreads') "
           "cannot be zero", __func__);
 
   /* Allocate the array of parameters structure structures. */
@@ -361,7 +361,7 @@ gal_threads_spin_off(void *(*worker)(void *), void 
*caller_params,
   /* Do the job: when only one thread is necessary, there is no need to
      spin off one thread, just call the workerfunction directly (spinning
      off threads is expensive). This is for the generic thread spinner
-     function, not this simple function where `numthreads' is a
+     function, not this simple function where 'numthreads' is a
      constant. */
   if(numthreads==1)
     {
diff --git a/lib/tiff.c b/lib/tiff.c
index 5fed96a..621bbfd 100644
--- a/lib/tiff.c
+++ b/lib/tiff.c
@@ -92,8 +92,8 @@ gal_tiff_suffix_is_tiff(char *name)
 
 
 /* Users may define the TIFF directory to read as a string, in that case,
-   this function can be used to convert it to a `size_t' for use in
-   `gal_tiff_read'.  */
+   this function can be used to convert it to a 'size_t' for use in
+   'gal_tiff_read'.  */
 size_t
 gal_tiff_dir_string_read(char *string)
 {
@@ -104,7 +104,7 @@ gal_tiff_dir_string_read(char *string)
   errno=0;
   dir=strtol(string, &tailptr, 0);
   if(tailptr==string)
-    error(EXIT_FAILURE, 0, "%s: `%s' couldn't be read as an integer",
+    error(EXIT_FAILURE, 0, "%s: '%s' couldn't be read as an integer",
           __func__, string);
   if(errno)
     error(EXIT_FAILURE, errno, "%s: reading %s", __func__, string);
@@ -162,7 +162,7 @@ tiff_type_read(TIFF *tif, char *filename, size_t dir)
   tiff_read_tag(tif, TIFFTAG_BITSPERSAMPLE, &bitspersample, filename, dir);
 
   /* Read the formatting of each pixel. If no such keyword exists, use the
-     value of `SAMPLEFORMAT_UINT'. */
+     value of 'SAMPLEFORMAT_UINT'. */
   if( TIFFGetField(tif, TIFFTAG_SAMPLEFORMAT, &sampleformat) != 1 )
     sampleformat=SAMPLEFORMAT_UINT;
 
@@ -239,7 +239,7 @@ tiff_img_info(TIFF *tif, uint8_t *type, size_t *ndim, 
size_t *dsize,
   uint16_t u16;
   uint32_t u32;
 
-  /* Based on if `IMAGEDEPTH' is defined in the TIFF header, set the
+  /* Based on if 'IMAGEDEPTH' is defined in the TIFF header, set the
      dimensions. */
   if( TIFFGetField(tif, TIFFTAG_IMAGEDEPTH, &u32) )
     dsize[ d++ ]=u32;
@@ -266,7 +266,7 @@ tiff_img_info(TIFF *tif, uint8_t *type, size_t *ndim, 
size_t *dsize,
 
 
 
-/* Based on the `TIFFReadContigStripData' function of `tools/tiffinfo.c' of
+/* Based on the 'TIFFReadContigStripData' function of 'tools/tiffinfo.c' of
    Libtiff's source. */
 void
 tiff_read_contig_strip_data(TIFF *tif, char *filename, size_t dir,
@@ -299,8 +299,8 @@ tiff_read_contig_strip_data(TIFF *tif, char *filename, 
size_t dir,
               __func__, filename, dir);
 
       /* Copy the contents of the buffer to the output array. Note that
-         `ostart' is the byte count already, so the type is
-         irrelevant. Thus, we can read `out->array' as a `char *'
+         'ostart' is the byte count already, so the type is
+         irrelevant. Thus, we can read 'out->array' as a 'char *'
          pointer.*/
       memcpy( (char *)(out->array)+ostart, buf, nrow*scanline);
       ostart+=nrow*scanline;
@@ -314,7 +314,7 @@ tiff_read_contig_strip_data(TIFF *tif, char *filename, 
size_t dir,
 
 
 
-/* Based on the `TIFFReadSeparateStripData' function of `tools/tiffinfo.c'
+/* Based on the 'TIFFReadSeparateStripData' function of 'tools/tiffinfo.c'
    of Libtiff's source. */
 static void
 tiff_read_separate_strip_data(TIFF* tif, char *filename, size_t dir,
@@ -404,17 +404,17 @@ tiff_separate_channels_reverse(gal_data_t *out, size_t 
numch,
   /* Parse over the rows and write them in the output. */
   for(i=0;i<out->dsize[0];++i)
     {
-      /* `j' is the output row. */
+      /* 'j' is the output row. */
       j=out->dsize[0]-1-i;
 
-      /* `k' is the element in each row and `l' is the color/channel. */
+      /* 'k' is the element in each row and 'l' is the color/channel. */
       for(k=0;k<ch->dsize[1];++k)
         {
           /* Initialize the color/channel counter ocpy the elements. */
           l=0;
           for(tch=ch; tch!=NULL; tch=tch->next)
             {
-              /* Elements of the `j'th row into the `i'th. */
+              /* Elements of the 'j'th row into the 'i'th. */
               memcpy( (char *)(tch->array) + i*width  + k*so,
                       (char *)(out->array) + j*lwidth + k*numch*so + so*l,
                       so);
@@ -461,14 +461,14 @@ tiff_reverse_rows(gal_data_t *out)
       /* Go over the channel. */
       while(j>i)
         {
-          /* Copy the `i'th row into a temporary array. */
+          /* Copy the 'i'th row into a temporary array. */
           memcpy(tmp, (char *)(ch->array)+i*width, width);
 
-          /* Put the `j'th row into the `i'th row. */
+          /* Put the 'j'th row into the 'i'th row. */
           memcpy( (char *)(ch->array)+i*width, (char *)(ch->array)+j*width,
                   width );
 
-          /* Put the `tmp' row into `j'. */
+          /* Put the 'tmp' row into 'j'. */
           memcpy( (char *)(ch->array)+j*width, tmp, width);
 
           /* Increment the points. */
@@ -488,8 +488,8 @@ tiff_reverse_rows(gal_data_t *out)
 
 
 
-/* Read the data following the `TIFFReadData' of Libtiff's
-   `tools/tiffinfo.c' in the libtiff source code. */
+/* Read the data following the 'TIFFReadData' of Libtiff's
+   'tools/tiffinfo.c' in the libtiff source code. */
 static gal_data_t *
 tiff_img_read(TIFF *tif, char *filename, size_t dir, size_t minmapsize,
               int quietmmap)
@@ -522,7 +522,7 @@ tiff_img_read(TIFF *tif, char *filename, size_t dir, size_t 
minmapsize,
 
 
   /* The reading of the dataset depends on how it is organized, so first
-     we'll look into the `planarconfig' field. */
+     we'll look into the 'planarconfig' field. */
   if( TIFFIsTiled(tif) )
     {
       if(config==PLANARCONFIG_CONTIG)
@@ -579,7 +579,7 @@ gal_tiff_read(char *filename, size_t dir, size_t 
minmapsize, int quietmmap)
   /* Open the TIFF file. */
   tif=TIFFOpen(filename, "r");
   if(tif==NULL)
-    error(EXIT_FAILURE, 0, "%s: `%s' couldn't be opened for reading",
+    error(EXIT_FAILURE, 0, "%s: '%s' couldn't be opened for reading",
           __func__, filename);
 
   /* If anything other than the first directory (value of zero) is
@@ -594,7 +594,7 @@ gal_tiff_read(char *filename, size_t dir, size_t 
minmapsize, int quietmmap)
 
           /* Close the TIFF file and return. */
           TIFFClose(tif);
-          error(EXIT_FAILURE, 0, "%s: `%s' has %zu director%s/extension%s, "
+          error(EXIT_FAILURE, 0, "%s: '%s' has %zu director%s/extension%s, "
                 "and directories are counted from 0. You have asked for "
                 "directory %zu", __func__, filename, dircount,
                 dircount==1?"y":"ies", dircount==1?"":"s", dir);
diff --git a/lib/tile-internal.c b/lib/tile-internal.c
index a471a29..2bc9e7e 100644
--- a/lib/tile-internal.c
+++ b/lib/tile-internal.c
@@ -35,7 +35,7 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 #include <gnuastro-internal/tile-internal.h>
 
 
-/* The main working function for `threshold_no_outlier'. The main
+/* The main working function for 'threshold_no_outlier'. The main
    purpose/problem is this: when we have channels, the qthresh values for
    each channel should be treated independently. */
 static void
@@ -56,9 +56,9 @@ tileinternal_no_outlier_work(gal_data_t *first, gal_data_t 
*second,
 
   /* Correct the arrays (if necessary). IMPORTANT: The datasets are
      multi-dimensional. However, when estimating the quantile, their
-     dimensionality doesn't matter (only the `size' element is checked by
-     `gal_statistics_quantile', not `ndim' or `dsize'). So we just need to
-     correct `size' if channels are to be considered. */
+     dimensionality doesn't matter (only the 'size' element is checked by
+     'gal_statistics_quantile', not 'ndim' or `dsize'). So we just need to
+     correct 'size' if channels are to be considered. */
   if(start || tottilesinch!=first->size)
     {
       /* Keep the original values for re-setting later. */
@@ -92,7 +92,7 @@ tileinternal_no_outlier_work(gal_data_t *first, gal_data_t 
*second,
       o = *((float *)(outlier->array));
       for(i=0;i<first->size;++i)
         /* Just note that we have blank (NaN) values, so to avoid doing a
-           NaN check with `isnan', we will check if the value is below the
+           NaN check with 'isnan', we will check if the value is below the
            quantile, if it succeeds (isn't NaN and is below the quantile),
            then we'll put it's actual value, otherwise, a NaN. */
         arr1[i] = arr1[i]<=o ? arr1[i] : NAN;
@@ -170,7 +170,7 @@ gal_tileinternal_no_outlier(gal_data_t *first, gal_data_t 
*second,
 
   /* A small sanity check: */
   if(first->size!=tl->tottiles)
-    error(EXIT_FAILURE, 0, "%s: `first->size' and `tl->tottiles' must have "
+    error(EXIT_FAILURE, 0, "%s: 'first->size' and 'tl->tottiles' must have "
           "the same value, but they don't: %zu, %zu", __func__, first->size,
           tl->tottiles);
 
diff --git a/lib/tile.c b/lib/tile.c
index 537672b..39b5964 100644
--- a/lib/tile.c
+++ b/lib/tile.c
@@ -76,18 +76,18 @@ gal_tile_start_coord(gal_data_t *tile, size_t *start_coord)
 
 
 /* Put the starting and ending (end point is not inclusive) coordinates of
-   a tile into the `start_end' array. It is assumed that a space of
-   `2*tile->ndim' has been already allocated (static or dynamic) before
+   a tile into the 'start_end' array. It is assumed that a space of
+   '2*tile->ndim' has been already allocated (static or dynamic) before
    this function is called.
 
-   `rel_block' (or relative-to-block) is only relevant when the tile has an
+   'rel_block' (or relative-to-block) is only relevant when the tile has an
    intermediate tile between it and the allocated space (like a channel,
-   see `gal_tile_full_two_layers'). If it doesn't (`tile->block' points the
-   allocated dataset), then the value to `rel_block' is irrelevant.
+   see 'gal_tile_full_two_layers'). If it doesn't ('tile->block' points the
+   allocated dataset), then the value to 'rel_block' is irrelevant.
 
-   However, when `tile->block' is its self a larger block and `rel_block'
+   However, when 'tile->block' is its self a larger block and 'rel_block'
    is set to 0, then the starting and ending positions will be based on the
-   position within `tile->block', not the allocated space. */
+   position within 'tile->block', not the allocated space. */
 void
 gal_tile_start_end_coord(gal_data_t *tile, size_t *start_end, int rel_block)
 {
@@ -129,8 +129,8 @@ gal_tile_start_end_coord(gal_data_t *tile, size_t 
*start_end, int rel_block)
 
 
 /* Put the indexs of the first/start and last/end pixels (inclusive) in a
-   tile into the `start_end' array (that has two elements). It will then
-   return the pointer to the start of the tile in the `work' data
+   tile into the 'start_end' array (that has two elements). It will then
+   return the pointer to the start of the tile in the 'work' data
    structure. */
 void *
 gal_tile_start_end_ind_inclusive(gal_data_t *tile, gal_data_t *work,
@@ -144,8 +144,8 @@ gal_tile_start_end_ind_inclusive(gal_data_t *tile, 
gal_data_t *work,
                                              __func__, "end_coord");
 
 
-  /* The starting index can be found from the distance of the `tile->array'
-     pointer and `block->array' pointer. IMPORTANT: with the type of the
+  /* The starting index can be found from the distance of the 'tile->array'
+     pointer and 'block->array' pointer. IMPORTANT: with the type of the
      block array.  */
   start_end_inc[0]=gal_pointer_num_between(block->array, tile->array,
                                            block->type);
@@ -157,7 +157,7 @@ gal_tile_start_end_ind_inclusive(gal_data_t *tile, 
gal_data_t *work,
                               start_coord);
 
 
-  /* `end_coord' is one unit ahead of the last element in the tile in every
+  /* 'end_coord' is one unit ahead of the last element in the tile in every
      dimension. To have less potential for bugs, we will remove that extra
      value, so we get the coordinates of the last pixel in the tile
      (inclusive). We will finally, increment that value by one to get to
@@ -216,7 +216,7 @@ gal_tile_start_end_ind_inclusive(gal_data_t *tile, 
gal_data_t *work,
 /***********************************************************************/
 /* Construct a list of tile(s) given positional minimum(s) and maximum(s).
    The output is an allocated an allocated array that can later be freed
-   with `gal_data_array_free'. The minimum and maximums are assumed to be
+   with 'gal_data_array_free'. The minimum and maximums are assumed to be
    inclusive.
 
    The array keeping the minmium and maximum coordinates for each label
@@ -300,7 +300,7 @@ gal_tile_series_from_minmax(gal_data_t *block, size_t 
*minmax, size_t number)
 /***********************************************************************/
 /* When you are working on an array, it important to know the size of the
    allocated space in each dimension. This simple function will just follow
-   the block pointer and return the `dsize' element of lowest-level
+   the block pointer and return the 'dsize' element of lowest-level
    structure. */
 gal_data_t *
 gal_tile_block(gal_data_t *tile)
@@ -320,14 +320,14 @@ gal_tile_block(gal_data_t *tile)
    for higher dimensions can be alittle more complicated, So we will go
    over some examples. The notations below are:
 
-       `n'     number of dimensions (same in tile and block).
-       `t[]'   size of the tile in each dimension.
-       `b[]'   size of the allocated block in each dimension.
+       'n'     number of dimensions (same in tile and block).
+       't[]'   size of the tile in each dimension.
+       'b[]'   size of the allocated block in each dimension.
 
    It is just important to see the output of this function as an increment
    from the the last patch of contiguous memory associated with the
-   tile. So when the increment number is `t[n-1]' (the first 2D slice of
-   the tile has been parsed), simply incrementing by `b[n-2] * b[n-1]' will
+   tile. So when the increment number is 't[n-1]' (the first 2D slice of
+   the tile has been parsed), simply incrementing by 'b[n-2] * b[n-1]' will
    take us to the last row of
 
   num_increment      coord         increment
@@ -407,21 +407,21 @@ gal_tile_block_increment(gal_data_t *block, size_t *tsize,
    Arguments
    ---------
 
-     `tilevalues': This must be an array that has the same number of
-        elements as that in `tilesll' and in the same order that `tilesll'
+     'tilevalues': This must be an array that has the same number of
+        elements as that in 'tilesll' and in the same order that 'tilesll'
         elements are parsed (from first to last). As a result the
         dimensionality of this array is irrelevant. Note that unlike
-        `tiles', `tilevalues' must be an array.
+        'tiles', 'tilevalues' must be an array.
 
-     `tilesll': This will be parsed as a linked list (using the `next'
+     'tilesll': This will be parsed as a linked list (using the 'next'
         element). Internally, it might be stored as an array, but this
         function doesn't care! The position of the tile over its block will
-        be determined according to the `block' element and the pointer of
-        its `array' as fully described in `gnuastro/data.h'. This function
+        be determined according to the 'block' element and the pointer of
+        its 'array' as fully described in 'gnuastro/data.h'. This function
         will not pop/free the list, it will only parse it from start to
         end.
 
-     `initialize': Initialize the allocated space with blank values before
+     'initialize': Initialize the allocated space with blank values before
         writing in the constant values. This can be useful when the tiles
         don't cover the full allocated block. */
 gal_data_t *
@@ -436,8 +436,8 @@ gal_tile_block_write_const_value(gal_data_t *tilevalues, 
gal_data_t *tilesll,
   /* A small sanity check. */
   for(tile=tilesll; tile!=NULL; tile=tile->next) ++nt;
   if(nt!=nv)
-    error(EXIT_FAILURE, 0, "%s: the number of elements in `tilevalues' (%zu) "
-          "and `tilesll' (%zu) must be the same", __func__, nv, nt);
+    error(EXIT_FAILURE, 0, "%s: the number of elements in 'tilevalues' (%zu) "
+          "and 'tilesll' (%zu) must be the same", __func__, nv, nt);
 
   /* Allocate the output array. */
   tofill=gal_data_alloc(NULL, type, block->ndim, block->dsize, block->wcs,
@@ -445,7 +445,7 @@ gal_tile_block_write_const_value(gal_data_t *tilevalues, 
gal_data_t *tilesll,
                         tilevalues->name, tilevalues->unit,
                         tilevalues->comment);
 
-  /* If requested, initialize `tofill', otherwise it is assumed that the
+  /* If requested, initialize 'tofill', otherwise it is assumed that the
      full area of the output is covered by the tiles. */
   if(withblank || initialize) gal_blank_initialize(tofill);
   else
@@ -462,14 +462,14 @@ gal_tile_block_write_const_value(gal_data_t *tilevalues, 
gal_data_t *tilesll,
         }
     }
 
-  /* Go over the tiles and write the values in. Recall that `tofill' has
-     the same type as `tilevalues'. So we are using memcopy. */
+  /* Go over the tiles and write the values in. Recall that 'tofill' has
+     the same type as 'tilevalues'. So we are using memcopy. */
   tile_ind=0;
   for(tile=tilesll; tile!=NULL; tile=tile->next)
     {
-      /* Set the pointer to use as input. The `if(o)' statement is set
+      /* Set the pointer to use as input. The 'if(o)' statement is set
          because GCC 7.1.1 complained about the possiblity of the first
-         argument of `memcpy' being NULL. Recall that `o' is a pointer. */
+         argument of 'memcpy' being NULL. Recall that 'o' is a pointer. */
       in=gal_pointer_increment(tilevalues->array, tile_ind++, type);
       GAL_TILE_PARSE_OPERATE( tile, tofill, 1, withblank, {
           if(o) memcpy(o, in, gal_type_sizeof(type));
@@ -484,8 +484,8 @@ gal_tile_block_write_const_value(gal_data_t *tilevalues, 
gal_data_t *tilesll,
 
 
 /* Make a copy of the memory block and fill it with the index of each tile
-   in `tilesll' (counting from 0). The non-filled areas will have blank
-   values. The output dataset will have a type of `GAL_TYPE_INT32'. */
+   in 'tilesll' (counting from 0). The non-filled areas will have blank
+   values. The output dataset will have a type of 'GAL_TYPE_INT32'. */
 gal_data_t *
 gal_tile_block_check_tiles(gal_data_t *tilesll)
 {
@@ -530,7 +530,7 @@ gal_tile_block_relative_to_other(gal_data_t *tile, 
gal_data_t *other)
 
 
 
-/* To use within `gal_tile_full_blank_flag'. */
+/* To use within 'gal_tile_full_blank_flag'. */
 static void *
 tile_block_blank_flag(void *in_prm)
 {
@@ -599,7 +599,7 @@ gal_tile_block_blank_flag(gal_data_t *tile_ll, size_t 
numthreads)
         |           |           |           |           |       |
         ---------------------------------------------------------
 
-   The remainder of the scenario above will always be smaller than `tile
+   The remainder of the scenario above will always be smaller than 'tile
    size' (can be even 1-pixel wide). So, we will merge the first tile size
    with the remainder.  In this way, the size of the first tile will always
    be between between one and two times the size of the regular tile:
@@ -611,7 +611,7 @@ gal_tile_block_blank_flag(gal_data_t *tile_ll, size_t 
numthreads)
    When there is only a small remainder (for example one or two pixels),
    then this layout is fine. But when the remainder is significant compared
    to the regular tile size (like the example above), then it will make
-   more sense to cut the first tile into two halfs (`f-half' and `l-half')
+   more sense to cut the first tile into two halfs ('f-half' and 'l-half')
    and put them at the start and end of the full length:
 
 
@@ -656,7 +656,7 @@ gal_tile_full_regular_first(gal_data_t *parent, size_t 
*regular,
                   tsize[i]  = dsize[i]/regular[i] + 1 ;
 
                   /* If we only have one tile along the dimension, then
-                     `first[i]==dsize[i]'. In this case, the first and last
+                     'first[i]==dsize[i]'. In this case, the first and last
                      tiles are the same and must have the same size. */
                   last[i]   = ( first[i]==dsize[i]
                                 ? first[i]
@@ -689,41 +689,41 @@ gal_tile_full_regular_first(gal_data_t *parent, size_t 
*regular,
 
 
 /* Cover the full dataset with (mostly) identical tiles. The regular tile
-   size is determined from the `size' array. If the input data's size is
-   not an exact multiple of `size' for each dimension, then the tiles
+   size is determined from the 'size' array. If the input data's size is
+   not an exact multiple of 'size' for each dimension, then the tiles
    touching the edges in that dimension will have a different size to fully
    cover every element of the input. For a full description of tiling in
-   `gal_data_t', please see `data.h'.
+   'gal_data_t', please see 'data.h'.
 
    Inputs
    ------
 
-     `input' is the gal_data_t which you want to tile (only used for its
+     'input' is the gal_data_t which you want to tile (only used for its
         sizes).
 
-     `regular' is the size of the regular tiles along each of the input's
+     'regular' is the size of the regular tiles along each of the input's
         dimensions. So it must have the same number of elements as the
-        dimensions of `input'.
+        dimensions of 'input'.
 
-     `remainderfrac' is the significant fraction of the remainder space if
+     'remainderfrac' is the significant fraction of the remainder space if
         the width of the input isn't an exact multiple of the tile size
-        along a dimension, see `gal_tile_full_regular_first'.
+        along a dimension, see 'gal_tile_full_regular_first'.
 
-     `out' is the pointer to the array of data structures that is to keep
-        the tile parameters. If `*out==NULL', then the necessary space will
+     'out' is the pointer to the array of data structures that is to keep
+        the tile parameters. If '*out==NULL', then the necessary space will
         be allocated. If it is not NULL, then all the tile information will
-        be filled from the given element, see `multiple' for more.
+        be filled from the given element, see 'multiple' for more.
 
-     `multiple': When the `*out' array is to be allocated, allocate
-        `multiple' times the necessary space. This can be very useful when
-        you have several more identically sized `inputs', and you want all
+     'multiple': When the '*out' array is to be allocated, allocate
+        'multiple' times the necessary space. This can be very useful when
+        you have several more identically sized 'inputs', and you want all
         their tiles to be allocated (and thus indexed) together, even
-        though they have different `block' datasets (that then link to one
-        allocated space).  See the `gal_tile_full_two_layers' below.
+        though they have different 'block' datasets (that then link to one
+        allocated space).  See the 'gal_tile_full_two_layers' below.
 
-     `firsttsize': The size of the first tile along every dimension. This
-        is only different from the regular tile size when `regular' is not
-        an exact multiple of `input''s length along every dimension. This
+     'firsttsize': The size of the first tile along every dimension. This
+        is only different from the regular tile size when 'regular' is not
+        an exact multiple of 'input''s length along every dimension. This
         array is allocated internally by this function.
 
    Output
@@ -741,10 +741,10 @@ gal_tile_full_regular_first(gal_data_t *parent, size_t 
*regular,
      we need the following sizes. If the input array has no parent/block,
      then both these sizes are equal to it's own size:
 
-        1. block-size (or `bsize'), which is the size of the allocated
+        1. block-size (or 'bsize'), which is the size of the allocated
            block in each dimension.
 
-        2. parent-size (or `psize') which is the size of the parent in each
+        2. parent-size (or 'psize') which is the size of the parent in each
            dimension (we don't want to go out of the paren't range). */
 size_t *
 gal_tile_full(gal_data_t *input, size_t *regular,
@@ -777,7 +777,7 @@ gal_tile_full(gal_data_t *input, size_t *regular,
   else     *out = tiles = gal_data_array_calloc(numtiles*multiple);
 
 
-  /* It is possible that the `input' dataset is its-self a larger tile over
+  /* It is possible that the 'input' dataset is its-self a larger tile over
      a region of the allocated block. In that case, we need to account for
      the block's dimensions when calculating the position of this block. */
   if(input->block)
@@ -801,13 +801,13 @@ gal_tile_full(gal_data_t *input, size_t *regular,
       for(d=0;d<input->ndim;++d)
         {
           /* Convert the tile coordinates to pixel coordinates within
-             `input'. See the comments above `gal_tile_full_regular_first':
+             'input'. See the comments above 'gal_tile_full_regular_first':
              The first tile in every dimension can be different from the
              regular tile size. */
           coord[d] = tcoord[d] ? first[d] + (tcoord[d]-1)*regular[d] : 0;
 
-          /* When the `input' data structure (that is to be tiled here) was
-             itself a tile over a larger allocated array, a `start' array
+          /* When the 'input' data structure (that is to be tiled here) was
+             itself a tile over a larger allocated array, a 'start' array
              has been allocated to correct the coordinates so they refer to
              a physical position on the allocated block of memory. */
           if(start)
@@ -819,7 +819,7 @@ gal_tile_full(gal_data_t *input, size_t *regular,
       tind=gal_dimension_coord_to_index(block->ndim, block->dsize, coord);
 
       /* Now that we have the index of this tile's starting point compared
-         to the allocated block, put it in to the tile's `array'
+         to the allocated block, put it in to the tile's 'array'
          pointer. */
       tiles[i].array=gal_pointer_increment(block->array, tind, block->type);
 
@@ -832,9 +832,9 @@ gal_tile_full(gal_data_t *input, size_t *regular,
       for(d=0;d<input->ndim;++d)
         {
           /* The size of the first and last tiles can be different from the
-             majority of the `regular' tiles that have the same size. When
+             majority of the 'regular' tiles that have the same size. When
              a tile is on the edge in one of the dimensions, then its
-             `tcoord[d]' will be either 0 or the last. */
+             'tcoord[d]' will be either 0 or the last. */
           if( first[d] != regular[d]
               && ( tcoord[d]==0 || tcoord[d]==tsize[d]-1 ) )
             {
@@ -848,9 +848,9 @@ gal_tile_full(gal_data_t *input, size_t *regular,
           tiles[i].size *= tiles[i].dsize[d];
         }
 
-      /* Set the block structure for this tile to the `input', and set the
+      /* Set the block structure for this tile to the 'input', and set the
          next pointer as the next tile. Note that only when we are dealing
-         with the last tile should the `next' pointer be set to NULL.*/
+         with the last tile should the 'next' pointer be set to NULL.*/
       tiles[i].flag  = 0;
       tiles[i].block = input;
       tiles[i].next  = i==numtiles-1 ? NULL : &tiles[i+1];
@@ -869,17 +869,17 @@ gal_tile_full(gal_data_t *input, size_t *regular,
   free(tcoord);
   *firsttsize=first;
   if(start) free(start);
-  tsize[input->ndim]=-1; /* `tsize' had ndim+1 values, we will mark the  */
+  tsize[input->ndim]=-1; /* 'tsize' had ndim+1 values, we will mark the  */
   return tsize;          /* extra space with the largest possible value: */
-}                        /* -1, see `gal_tile_full_sanity_check'.        */
+}                        /* -1, see 'gal_tile_full_sanity_check'.        */
 
 
 
 
 
-/* Make sure that the input parameters (in `tl', short for two-layer) fit
+/* Make sure that the input parameters (in 'tl', short for two-layer) fit
    with the input dataset. The filename and HDU are only required for error
-   messages. Also, allocate and fill the `channelsize' array. */
+   messages. Also, allocate and fill the 'channelsize' array. */
 void
 gal_tile_full_sanity_check(char *filename, char *hdu, gal_data_t *input,
                            struct gal_tile_two_layer_params *tl)
@@ -892,7 +892,7 @@ gal_tile_full_sanity_check(char *filename, char *hdu, 
gal_data_t *input,
     {
       /* Not equal to zero. */
       if(tl->tilesize[i]==0)
-        error(EXIT_FAILURE, 0, "`--tilesize' must be larger than zero, "
+        error(EXIT_FAILURE, 0, "'--tilesize' must be larger than zero, "
               "the given value for dimension %zu was zero", ndim-i);
 
       /* If the tile size is larger than the dataset size in this
@@ -907,7 +907,7 @@ gal_tile_full_sanity_check(char *filename, char *hdu, 
gal_data_t *input,
      the dataset's dimensions). */
   if(i!=ndim)
     error(EXIT_FAILURE, 0, "%s (hdu: %s): has %zu dimensions, but only %zu "
-          "value(s) given for the tile size (`--tilesize' option).",
+          "value(s) given for the tile size ('--tilesize' option).",
           filename, hdu, ndim, i);
 
 
@@ -936,20 +936,20 @@ gal_tile_full_sanity_check(char *filename, char *hdu, 
gal_data_t *input,
          image. Note that the reported dimension must be in FITS format.*/
       if( input->dsize[i] < tl->numchannels[i] )
         error(EXIT_FAILURE, 0, "the number of channels in dimension %zu "
-              "(%zu) is more than the size of the `%s' (hdu: %s) in that "
+              "(%zu) is more than the size of the '%s' (hdu: %s) in that "
               "dimension", ndim-i, tl->numchannels[i], filename, hdu);
 
       /* Also check the tile size. */
       if( input->dsize[i] < tl->tilesize[i] )
         error(EXIT_FAILURE, 0, "the tile size in dimension %zu (%zu) is "
-              "more than the size of the `%s' (hdu: %su) in that dimension",
+              "more than the size of the '%s' (hdu: %su) in that dimension",
               ndim-i, tl->tilesize[i], filename, hdu);
 
       /* First check. */
       d=(double)input->dsize[i]/(double)(tl->numchannels[i]);
       if(ceil(d)!=d)
         error(EXIT_FAILURE, 0, "%zu (number of channels along dimension "
-              "%zu) is not exactly divisible by %zu (the length of `%s' "
+              "%zu) is not exactly divisible by %zu (the length of '%s' "
               "(hdu: %s) that dimension). The channels cover the input "
               "dataset, hence, they must be identical", tl->numchannels[i],
               ndim-i, input->dsize[i], filename, hdu);
@@ -966,10 +966,10 @@ gal_tile_full_sanity_check(char *filename, char *hdu, 
gal_data_t *input,
 /* A dataset can be tiled with two layers that are related:
 
       Channels: A tesselation of larger tile sizes that all have the same
-           size (`channel_size' must be an exact multiple of `input's size
+           size ('channel_size' must be an exact multiple of 'input's size
            along every dimension. In astronomy images, this can be seen as
            CCD amplifiers, that cover large parts of the image. If
-           `*channels!=NULL' then it is assumed to be already present and
+           '*channels!=NULL' then it is assumed to be already present and
            will not be allocated.
 
       Tiles: A combined tesselation of each channel with smaller
@@ -1006,9 +1006,9 @@ gal_tile_full_two_layers(gal_data_t *input,
   tl->tottilesinch = gal_dimension_total_size(ndim, tl->numtilesinch);
   for(i=1; i<tl->totchannels; ++i)
     {
-      /* Set the first tile in this channel. Then use it it fill the `next'
-         pointer of the previous channel's tiles. Note that `gal_tile_full'
-         set this `next' element to NULL. */
+      /* Set the first tile in this channel. Then use it it fill the 'next'
+         pointer of the previous channel's tiles. Note that 'gal_tile_full'
+         set this 'next' element to NULL. */
       t = tl->tiles + i * tl->tottilesinch;
       tl->tiles[ i * tl->tottilesinch - 1 ].next = t;
 
@@ -1039,7 +1039,7 @@ gal_tile_full_two_layers(gal_data_t *input,
 
    Make a permutation to allow the conversion of tile location in memory to
    its location in the full input dataset and put it in the input's
-   `permutation' element. If a permutation has already been defined for the
+   'permutation' element. If a permutation has already been defined for the
    tessellation, this function will not do anythin. If permutation won't be
    necessary, then this function will just return (the permutation must
    have been initialized to NULL). */
@@ -1265,7 +1265,7 @@ gal_tile_full_free_contents(struct 
gal_tile_two_layer_params *tl)
   if(tl->permutation)   free(tl->permutation);
   if(tl->firsttsize)    free(tl->firsttsize);
 
-  /* Free the arrays of `gal_data_t' for each tile and channel. */
+  /* Free the arrays of 'gal_data_t' for each tile and channel. */
   if(tl->tiles)    gal_data_array_free(tl->tiles,    tl->tottiles,    0);
   if(tl->channels) gal_data_array_free(tl->channels, tl->totchannels, 0);
 }
diff --git a/lib/timing.c b/lib/timing.c
index a0599a2..915220e 100644
--- a/lib/timing.c
+++ b/lib/timing.c
@@ -30,13 +30,13 @@ along with Gnuastro. If not, see 
<http://www.gnu.org/licenses/>.
 
 
 /* Micro-second based timer, which can be used to generate random numbers.
-   The type of `tv_sec' and `tv_usec' is `long int' (from the GNU C Library
+   The type of 'tv_sec' and 'tv_usec' is 'long int' (from the GNU C Library
    manual). But the expected type used by GSL's random number generator is
-   `unsigned long int'. Since the only random number generator that is
-   currently in Gnuastro is GSL's (and it asks for seeds of type `unsigned
-   long int'), this function will return in `unsigned long int'. Note that
-   `unsigned long' will be able to hold any positive `long' integer, which
-   is the case for `tv_sec' and `tv_usec': they are both positive, while
+   'unsigned long int'. Since the only random number generator that is
+   currently in Gnuastro is GSL's (and it asks for seeds of type 'unsigned
+   long int'), this function will return in 'unsigned long int'. Note that
+   'unsigned long' will be able to hold any positive 'long' integer, which
+   is the case for 'tv_sec' and 'tv_usec': they are both positive, while
    the opposite isn't true. */
 unsigned long int
 gal_timing_time_based_rng_seed()
diff --git a/lib/txt.c b/lib/txt.c
index bf53dd8..88d03d0 100644
--- a/lib/txt.c
+++ b/lib/txt.c
@@ -66,7 +66,7 @@ enum txt_formats_code
 
 
 
-/* Return one of the `txt_line_stat' constant values. */
+/* Return one of the 'txt_line_stat' constant values. */
 int
 gal_txt_line_stat(char *line)
 {
@@ -107,7 +107,7 @@ gal_txt_trim_space(char *str)
   /* If there was nothing in the string, return NULL. */
   if(*str=='\0') return NULL;
 
-  /* Remove the spaces at the end, and write a possibly new `\0'. */
+  /* Remove the spaces at the end, and write a possibly new '\0'. */
   end = str + strlen(str) - 1;
   while(end>str && isspace(*end)) --end;
   *(end+1)='\0';
@@ -121,7 +121,7 @@ gal_txt_trim_space(char *str)
 
 
 /* Each information comment should have a format like this (replace
-   `Column' with `Image' for 2D arrays):
+   'Column' with 'Image' for 2D arrays):
 
       # Column N: NAME [UNITS, TYPE, BLANK] COMMENT
 
@@ -131,17 +131,17 @@ gal_txt_trim_space(char *str)
   set. But if there are comments, then the brackets themselves are required
   to separate the name from the comments.
 
-  Any white space characters before or after the delimiters (`:', `[', `]',
-  `,') is ignored, but spaces within the values are kept. For example, in
-  the two following lines, NAME will be set to `col name' (even though
+  Any white space characters before or after the delimiters (':', '[', ']',
+  ',') is ignored, but spaces within the values are kept. For example, in
+  the two following lines, NAME will be set to 'col name' (even though
   there are extra spaces in the second line, The column unit will be
-  set to `col unit'.
+  set to 'col unit'.
 
       # Column 2: col name
       # Column 2 :  col name     [ col unit, type ] Column comments.
 
   When the column type is a string, the number of characters in the string
-  is also necessary, for example `str10'. Without an integer attached, the
+  is also necessary, for example 'str10'. Without an integer attached, the
   line will be ignored.
 
   In the case of an error or mis-match, the line will be ignored.
@@ -163,13 +163,13 @@ txt_info_from_comment(char *in_line, gal_data_t **datall, 
char *comm_start,
   char *number=NULL, *name=NULL, *comment=NULL;
   char *inbrackets=NULL, *unit=NULL, *typestr=NULL, *blank=NULL;
 
-  /* Make a copy of the input line if `inplace==0'. */
+  /* Make a copy of the input line if 'inplace==0'. */
   if(inplace) line=aline=in_line;
   else
     {
-      /* Because the `line' pointer will change, we need a pointer to the
+      /* Because the 'line' pointer will change, we need a pointer to the
          start of the originally allocated lines. This is the purpose of
-         `aline' (allocated-line). */
+         'aline' (allocated-line). */
       gal_checkset_allocate_copy(in_line, &aline);
       line=aline;
     }
@@ -178,7 +178,7 @@ txt_info_from_comment(char *in_line, gal_data_t **datall, 
char *comm_start,
   /* Only read this comment line if it follows the convention: */
   if( !strncmp(line, comm_start, len) )
     {
-      /* Set `name', `inbrackets', and `comment' in the first pass through
+      /* Set 'name', 'inbrackets', and 'comment' in the first pass through
          the line. */
       number=line+len;
       while(*line!='\0')
@@ -212,7 +212,7 @@ txt_info_from_comment(char *in_line, gal_data_t **datall, 
char *comm_start,
       if(*tailptr!='\0' || index<=0) return;
 
 
-      /* If there was no name (the line is just `# Column N:'), then ignore
+      /* If there was no name (the line is just '# Column N:'), then ignore
          the line. Relying on the column count from the first line is more
          robust and less prone to human error, for example typing a number
          larger than the total number of columns.  */
@@ -243,8 +243,8 @@ txt_info_from_comment(char *in_line, gal_data_t **datall, 
char *comm_start,
         }
 
 
-      /* If `typestr' was given, then check if this is a standard type. If
-         `typestr' wasn't specified, then the default double type code will
+      /* If 'typestr' was given, then check if this is a standard type. If
+         'typestr' wasn't specified, then the default double type code will
          be used (see the variable definitions above). If the given type
          isn't a standard type then ignore the line. Just note that if we
          are dealing with the string type, we have to pull out the number
@@ -270,7 +270,7 @@ txt_info_from_comment(char *in_line, gal_data_t **datall, 
char *comm_start,
       /* Add this column's information into the columns linked list. We
          will define the data structur's array to have zero dimensions (no
          array) by default. If there is a blank value its value will be put
-         into the array by `gal_table_read_blank'. To keep the name, unit,
+         into the array by 'gal_table_read_blank'. To keep the name, unit,
          and comment strings, trim the white space before and after each
          before using them here.  */
       gal_list_data_add_alloc(datall, NULL, type, 0, NULL, NULL, 0, -1, 1,
@@ -319,7 +319,7 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
   else
     {
       gal_checkset_allocate_copy(in_line, &line);
-      aline=line; /* We are going to change `line' during this function. */
+      aline=line; /* We are going to change 'line' during this function. */
     }
   end=line+strlen(line);
 
@@ -356,7 +356,7 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
 
 
       /* If there is information for this column, then check if it is a
-         string, and if so, don't use `strtok_r' (because it might have
+         string, and if so, don't use 'strtok_r' (because it might have
          delimiters). So manually go ahead in the line till you get to the
          start of the string, then increment the line until the end of the
          space set for the strings. */
@@ -372,9 +372,9 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
 
               /* If we haven't reached the end of the line, then set a NULL
                  character where the string ends, so we can use the
-                 token. VERY IMPORTANT: this should not be `<=end'. If the
+                 token. VERY IMPORTANT: this should not be '<=end'. If the
                  given width is larger than line, there is no problem, the
-                 `\0' of the line will also be used to end this last
+                 '\0' of the line will also be used to end this last
                  column.*/
               if(line<end)
                 {
@@ -401,7 +401,7 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
              no information, then set its status value to the column
              number. So, for a table, this should be done on every
              column. But for an image, this should only be done once (when
-             `datall' has not been defined yet, for example in the column
+             'datall' has not been defined yet, for example in the column
              information). */
           if( *datall==NULL || format==TXT_FORMAT_TABLE )
             {
@@ -413,16 +413,16 @@ txt_info_from_first_row(char *in_line, gal_data_t 
**datall, int format,
     }
 
 
-  /* When looking at a text table, `n' is the number of columns (elements
+  /* When looking at a text table, 'n' is the number of columns (elements
      in the linked list). But when looking at an image, it is the size of
      the second dimension. To unify things from this step forwards, we will
-     thus keep the value of `n' until this point in another variable (that
-     will be returned finally), and for an image, change `n' to 1. This is
+     thus keep the value of 'n' until this point in another variable (that
+     will be returned finally), and for an image, change 'n' to 1. This is
      necsesary in case the user has for example given two column
      information comments on an image plain text file.
 
-     Note that `n' counts from 1, so the total number of tokens is one less
-     than `n'.*/
+     Note that 'n' counts from 1, so the total number of tokens is one less
+     than 'n'.*/
   numtokens=n-1;
   if(format==TXT_FORMAT_IMAGE) n=1;
 
@@ -441,7 +441,7 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
               /* This column has to be removed/freed. But we have to make
                  some corrections before freeing it:
 
-                  - When `prev==NULL', then we still haven't got to the
+                  - When 'prev==NULL', then we still haven't got to the
                     first valid element yet and must free this one, but if
                     we do that, then the main pointer to the start of the
                     list will be lost (we will loose all connections with
@@ -449,7 +449,7 @@ txt_info_from_first_row(char *in_line, gal_data_t **datall, 
int format,
                     that to the next element.
 
                   - When there actually was a previous element
-                    (`prev!=NULL'), then we must correct it's next
+                    ('prev!=NULL'), then we must correct it's next
                     pointer. Otherwise we will break up the chain.*/
               if(prev) prev->next=col->next; else *datall=col->next;
               tmp=col->next;
@@ -509,14 +509,14 @@ txt_infoll_to_array(gal_data_t *datall, size_t *numdata)
           /* Pop the top element. */
           data=gal_list_data_pop(&datall);
 
-          /* The `status' value is the number of the column (counting from
+          /* The 'status' value is the number of the column (counting from
              1, not 0). */
           ind=data->status-1;
 
-          /* Put all the information from `data' into the respective part
+          /* Put all the information from 'data' into the respective part
              of the array. About the pointers, instead of having to
              allocate them again, we will just set them to NULL so
-             `gal_data_free' doesn't remove them.*/
+             'gal_data_free' doesn't remove them.*/
           dataarr[ind].name       = data->name;    data->name=NULL;
           dataarr[ind].unit       = data->unit;    data->unit=NULL;
           dataarr[ind].array      = data->array;   data->array=NULL;
@@ -589,12 +589,12 @@ txt_get_info(char *filename, gal_list_str_t *lines, int 
format,
   gal_data_t *datall=NULL;
   int test, firstlinedone=0;
   char *line, *format_err="empty", *comm_start;
-  size_t linelen=10; /* `linelen' will be increased by `getline'. */
+  size_t linelen=10; /* 'linelen' will be increased by 'getline'. */
 
-  /* `filename' and `lines' cannot both be non-NULL. */
+  /* 'filename' and 'lines' cannot both be non-NULL. */
   test = (filename!=NULL) + (lines!=NULL);
   if( test!=1 )
-    error(EXIT_FAILURE, 0, "%s: one of the `filename' and `lines' "
+    error(EXIT_FAILURE, 0, "%s: one of the 'filename' and 'lines' "
           "arguments must be NULL, but they are both %s", __func__,
           test==2 ? "non-NULL" : "NULL");
 
@@ -608,7 +608,7 @@ txt_get_info(char *filename, gal_list_str_t *lines, int 
format,
             __func__, format);
     }
 
-  /* Initialize the first `dsize' element. */
+  /* Initialize the first 'dsize' element. */
   dsize[0]=0;
 
   /* Parse the file or go over the lines. */
@@ -619,12 +619,12 @@ txt_get_info(char *filename, gal_list_str_t *lines, int 
format,
       fp=fopen(filename, "r");
       if(fp==NULL)
         error(EXIT_FAILURE, errno, "%s: couldn't open to read as a plain "
-              "text %s (from Gnuastro's `%s')", filename, format_err,
+              "text %s (from Gnuastro's '%s')", filename, format_err,
               __func__);
 
 
       /* Allocate the space necessary to keep each line as we parse
-         it. Note that `getline' is going to later `realloc' this space to
+         it. Note that 'getline' is going to later 'realloc' this space to
          fit the line length. */
       errno=0;
       line=malloc(linelen*sizeof *line);
@@ -789,7 +789,7 @@ txt_read_token(gal_data_t *data, gal_data_t *info, char 
*token,
 
       /* For the blank value of floating point types, we need to make
          sure it isn't a NaN, because a NaN value will fail on any
-         condition check (even `=='). If it isn't NaN, then we can
+         condition check (even '=='). If it isn't NaN, then we can
          compare the values. */
     case GAL_TYPE_FLOAT32:
       f[i]=strtod(token, &tailptr);
@@ -813,7 +813,7 @@ txt_read_token(gal_data_t *data, gal_data_t *info, char 
*token,
   /* If a number couldn't be read properly, then report an error. */
   if(data->type!=GAL_TYPE_STRING && *tailptr!='\0')
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "column %zu "
-                  "(`%s') couldn't be read as a `%s' number",
+                  "('%s') couldn't be read as a '%s' number",
                   colnum, token, gal_type_name(data->type, 1) );
 }
 
@@ -836,15 +836,15 @@ txt_fill(char *in_line, char **tokens, size_t maxcolnum, 
gal_data_t *info,
   else
     {
       gal_checkset_allocate_copy(in_line, &line);
-      aline=line; /* We are going to change `line' during this function. */
+      aline=line; /* We are going to change 'line' during this function. */
     }
   end=line+strlen(line);
 
-  /* See explanations in `txt_info_from_first_row'. */
+  /* See explanations in 'txt_info_from_first_row'. */
   if( end>line+2 && *(end-2)==13 ) *(end-2)='\0';
   else if( *(end-1)=='\n' )        *(end-1)='\0';
 
-  /* Start parsing the line. Note that `n' and `maxcolnum' start from
+  /* Start parsing the line. Note that 'n' and 'maxcolnum' start from
      one. */
   while(++n)
     {
@@ -854,8 +854,8 @@ txt_fill(char *in_line, char **tokens, size_t maxcolnum, 
gal_data_t *info,
       if(n>maxcolnum) break;
 
       /* Set the pointer to the start of this token/column. See
-         explanations in `txt_info_from_first_row'. Note that an image has
-         a single `info' element for the whole array, while a table has one
+         explanations in 'txt_info_from_first_row'. Note that an image has
+         a single 'info' element for the whole array, while a table has one
          for each column. */
       if( info[format==TXT_FORMAT_TABLE ? n-1 : 0].type == GAL_TYPE_STRING )
         {
@@ -872,7 +872,7 @@ txt_fill(char *in_line, char **tokens, size_t maxcolnum, 
gal_data_t *info,
         }
       else
         {
-          /* If we have reached the end of the line, then `strtok_r' will
+          /* If we have reached the end of the line, then 'strtok_r' will
              return a NULL pointer. */
           tokens[n]=strtok_r(n==1?line:NULL, GAL_TXT_DELIMITERS, &line);
           if(tokens[n]==NULL) {notenoughcols=1; break;}
@@ -884,7 +884,7 @@ txt_fill(char *in_line, char **tokens, size_t maxcolnum, 
gal_data_t *info,
     error_at_line(EXIT_FAILURE, 0, filename, lineno, "not enough columns in "
                   "this line. Previous (uncommented) lines in this file had "
                   "%zu columns, but this line has %zu columns", maxcolnum,
-                  n-1); /* This must be `n-1' (since n starts from 1). */
+                  n-1); /* This must be 'n-1' (since n starts from 1). */
 
   /* For a sanity check:
   printf("row: %zu: ", rowind+1);
@@ -894,7 +894,7 @@ txt_fill(char *in_line, char **tokens, size_t maxcolnum, 
gal_data_t *info,
 
   /* Read the desired tokens into the columns that need them. Note that
      when a blank value is defined for the column, the column's array
-     pointer (`info[col->status-1]') is not NULL and points to the blank
+     pointer ('info[col->status-1]') is not NULL and points to the blank
      value. For strings, this will actually be a string. */
   switch(out->ndim)
     {
@@ -936,22 +936,22 @@ txt_read(char *filename, gal_list_str_t *lines, size_t 
*dsize,
   gal_data_t *out=NULL;
   gal_list_sizet_t *ind;
   size_t one=1, maxcolnum=0, rowind=0, lineno=0, ndim;
-  size_t linelen=10;        /* `linelen' will be increased by `getline'. */
+  size_t linelen=10;        /* 'linelen' will be increased by 'getline'. */
 
-  /* `filename' and `lines' cannot both be non-NULL. */
+  /* 'filename' and 'lines' cannot both be non-NULL. */
   test = (filename!=NULL) + (lines!=NULL);
   if( test!=1 )
-    error(EXIT_FAILURE, 0, "%s: one of the `filename' and `lines' "
+    error(EXIT_FAILURE, 0, "%s: one of the 'filename' and 'lines' "
           "arguments must be NULL, but they are both %s", __func__,
           test==2 ? "non-NULL" : "NULL");
 
   /* Allocate the space necessary to keep a copy of each line as we parse
-     it. Note that `getline' is going to later `realloc' this space to fit
+     it. Note that 'getline' is going to later 'realloc' this space to fit
      the line length. */
   errno=0;
   line=malloc(linelen*sizeof *line);
   if(line==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `line'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'line'",
           __func__, linelen*sizeof *line);
 
   /* Allocate all the desired columns for output. We will be reading the
@@ -993,7 +993,7 @@ txt_read(char *filename, gal_list_str_t *lines, size_t 
*dsize,
     case TXT_FORMAT_IMAGE:
       if(info->next)
         error(EXIT_FAILURE, 0, "%s: currently reading only one image (2d "
-              "array) from a text file is possible, the `info' input has "
+              "array) from a text file is possible, the 'info' input has "
               "more than one element", __func__);
       ndim=2;
       maxcolnum=dsize[1];
@@ -1010,13 +1010,13 @@ txt_read(char *filename, gal_list_str_t *lines, size_t 
*dsize,
 
   /* Allocate the space to keep the pointers to each token in the
      line. This is done here to avoid having to allocate/free this array
-     for each line in `txt_fill_columns'. Note that the column numbers are
+     for each line in 'txt_fill_columns'. Note that the column numbers are
      counted from one (unlike indexes that are counted from zero), so we
-     need `maxcolnum+1' elements in the array of tokens.*/
+     need 'maxcolnum+1' elements in the array of tokens.*/
   errno=0;
   tokens=malloc((maxcolnum+1)*sizeof *tokens);
   if(tokens==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `tokens'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'tokens'",
           __func__, (maxcolnum+1)*sizeof *tokens);
 
   if(filename)
@@ -1112,13 +1112,13 @@ txt_stdin_has_contents(long timeout_microsec)
   tv.tv_sec  = 0;
   tv.tv_usec = timeout_microsec;
 
-  /* Initialize `fd_set'. */
+  /* Initialize 'fd_set'. */
   FD_ZERO(&fds);
 
   /* Set standard input (STDIN_FILENO is 0) as the FD that must be read. */
   FD_SET(STDIN_FILENO, &fds);
 
-  /* `select' takes the last file descriptor value + 1 in the fdset to
+  /* 'select' takes the last file descriptor value + 1 in the fdset to
      check, the fdset for reads, writes, and errors.  We are only passing
      in reads.  the last parameter is the timeout.  select will return if
      an FD is ready or the timeout has occurred. */
@@ -1137,22 +1137,22 @@ gal_txt_stdin_read(long timeout_microsec)
 {
   char *line;
   gal_list_str_t *out=NULL;
-  size_t lineno=0, linelen=10;/* `linelen' will be increased by `getline'. */
+  size_t lineno=0, linelen=10;/* 'linelen' will be increased by 'getline'. */
 
   /* If there is nothing  */
   if( txt_stdin_has_contents(timeout_microsec) )
     {
       /* Allocate the space necessary to keep a copy of each line as we
-         parse it. Note that `getline' is going to later `realloc' this
+         parse it. Note that 'getline' is going to later 'realloc' this
          space to fit the line length. */
       errno=0;
       line=malloc(linelen*sizeof *line);
       if(line==NULL)
-        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `line'",
+        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'line'",
               __func__, linelen*sizeof *line);
 
       /* Read the whole standard input. We are using getline because it can
-         deal with a `NULL' in the input, while also handing allocation
+         deal with a 'NULL' in the input, while also handing allocation
          issues while reading (allocating by line, not by a fixed buffer
          size). */
       while( getline(&line, &linelen, stdin) != -1 )
@@ -1260,7 +1260,7 @@ make_fmts_for_printf(gal_data_t *datall, int leftadjust, 
size_t *len)
 
       /* Print the result into the allocated string and add its length to
          the final length of the overall format statement. The space in the
-         end of `fmts[i*2]' is to ensure that the columns don't merge, even
+         end of 'fmts[i*2]' is to ensure that the columns don't merge, even
          if the printed string is larger than the expected width. */
       if(data->disp_precision > 0)
         *len += 1 + sprintf(fmts[i*FMTS_COLS], "%%%s%d.%d%s%s ",
@@ -1353,15 +1353,15 @@ txt_write_metadata(FILE *fp, gal_data_t *datall, char 
**fmts)
 
 
   /* When there are more than 9 columns, we don't want to have cases
-     like `# Column 1 :' (note the space between `1' and `:', this
+     like '# Column 1 :' (note the space between '1' and ':', this
      space won't exist for the 2 digit colum numbers).
 
      To do this, we are first allocating and printing a string long
-     enough to keep the final column's `N:'. Then, for each column, we
-     print only the number into the allocated space and put the `:' in
+     enough to keep the final column's 'N:'. Then, for each column, we
+     print only the number into the allocated space and put the ':' in
      manually immediately after the number. Note that the initial
-     `asprintf' put a `\0' in the allocated space, so we can safely
-     over-write the one that `sprintf' puts with a `:' for the columns
+     'asprintf' put a '\0' in the allocated space, so we can safely
+     over-write the one that 'sprintf' puts with a ':' for the columns
      that have the same number of digits as the final column. */
   i=0;
   if( asprintf(&nstr, "%zu:", num)<0 )
@@ -1369,7 +1369,7 @@ txt_write_metadata(FILE *fp, gal_data_t *datall, char 
**fmts)
   nlen=strlen(nstr);
   for(data=datall; data!=NULL; data=data->next)
     {
-      /* Print the number into the number string, then add the `:'
+      /* Print the number into the number string, then add the ':'
          immediately after the number. */
       sprintf(nstr, "%zu", i+1);
       for(j=1;j<nlen;++j)
diff --git a/lib/type.c b/lib/type.c
index 6069b09..2e9c6d4 100644
--- a/lib/type.c
+++ b/lib/type.c
@@ -57,7 +57,7 @@ gal_type_sizeof(uint8_t type)
 
       /* The parenthesis after sizeof is not a function, it is actually a
          type cast, so we have put a space between size of and the
-         parenthesis to highlight this. In C, `sizeof' is an operator, not
+         parenthesis to highlight this. In C, 'sizeof' is an operator, not
          a function.*/
     case GAL_TYPE_UINT8:     return sizeof (uint8_t);
     case GAL_TYPE_INT8:      return sizeof (int8_t);
@@ -70,25 +70,25 @@ gal_type_sizeof(uint8_t type)
 
     case GAL_TYPE_FLOAT32:
       if( sizeof (float) != 4 )
-        error(EXIT_FAILURE, 0, "%s: `float' is not 32 bits on this machine",
+        error(EXIT_FAILURE, 0, "%s: 'float' is not 32 bits on this machine",
               __func__);
       return sizeof (float);
 
     case GAL_TYPE_FLOAT64:
       if( sizeof (double) != 8 )
-        error(EXIT_FAILURE, 0, "%s: `double' is not 64 bits on this machine",
+        error(EXIT_FAILURE, 0, "%s: 'double' is not 64 bits on this machine",
               __func__);
       return sizeof (double);
 
     case GAL_TYPE_COMPLEX32:
       if( sizeof (float) != 4 )
-        error(EXIT_FAILURE, 0, "%s: `float' is not 32 bits on this machine",
+        error(EXIT_FAILURE, 0, "%s: 'float' is not 32 bits on this machine",
               __func__);
       return sizeof (gsl_complex_float);
 
     case GAL_TYPE_COMPLEX64:
       if( sizeof (double) != 8 )
-        error(EXIT_FAILURE, 0, "%s: `double` is not 64 bits on this machine",
+        error(EXIT_FAILURE, 0, "%s: 'double' is not 64 bits on this machine",
               __func__);
       return sizeof (gsl_complex);
 
@@ -237,7 +237,7 @@ gal_type_from_name(char *str)
 
 
 
-/* Put the minimum (or maximum for the `gal_data_type_max') value for the
+/* Put the minimum (or maximum for the 'gal_data_type_max') value for the
    type in the space (that must already be allocated before the call to
    this function) pointed to by in.  */
 void
@@ -351,8 +351,8 @@ gal_type_out(int first_type, int second_type)
 /*************************************************************
  **************         To/from string         ***************
  *************************************************************/
-/* Write the bit (0 or 1) contents of `in' into a string ready for
-   printing. `size' is used to determine the number of bytes to print. The
+/* Write the bit (0 or 1) contents of 'in' into a string ready for
+   printing. 'size' is used to determine the number of bytes to print. The
    output string will be dynamically allocated within this function. This
    can be useful for easy checking of bit flag values, for example in an
    expression like below:
@@ -384,8 +384,8 @@ gal_type_bit_string(void *in, size_t size)
 
 
 
-/* Write the contents of memory that `ptr' points to as a string of type
-   `type'.*/
+/* Write the contents of memory that 'ptr' points to as a string of type
+   'type'.*/
 #define TO_STRING(CTYPE, FMT) {                                         \
   if( asprintf(&str, FMT, *(CTYPE *)ptr)<0 )                            \
     error(EXIT_FAILURE, 0, "%s: asprintf allocation", __func__); }
@@ -442,18 +442,18 @@ gal_type_to_string(void *ptr, uint8_t type, int 
quote_if_str_has_space)
 
 
 /* Read a string as a given data type and put a the pointer to it in
-   *out. When the input `*out!=NULL', then it is assumed to be allocated
-   and the value will be simply put there. If `*out==NULL', then space will
+   *out. When the input '*out!=NULL', then it is assumed to be allocated
+   and the value will be simply put there. If '*out==NULL', then space will
    be allocated for the given type and the string's value (in the given
    type) will be stored there.
 
-   Note that when we are dealing with a string type, `*out' should be
-   interpretted as `char **' (one element in an array of pointers to
-   different strings). In other words, `out' should be `char ***'.
+   Note that when we are dealing with a string type, '*out' should be
+   interpretted as 'char **' (one element in an array of pointers to
+   different strings). In other words, 'out' should be 'char ***'.
 
    This function can be used to fill in arrays of numbers from strings (in
    an already allocated data structure), or add nodes to a linked list. For
-   an array, you have to pass the pointer to the `i'th element where you
+   an array, you have to pass the pointer to the 'i'th element where you
    want the value to be stored, for example &(array[i]).
 
    If parsing was successful, it will return a 0. If there was a problem,
@@ -487,7 +487,7 @@ gal_type_from_string(void **out, char *string, uint8_t type)
       break;
 
     /* String, just allocate and copy the string and keep its pointer in
-       the place `*out' points to (for strings, `*out' is `char **'). */
+       the place '*out' points to (for strings, '*out' is 'char **'). */
     case GAL_TYPE_STRING:
       gal_checkset_allocate_copy(string, value);
       break;
@@ -561,7 +561,7 @@ void *
 gal_type_string_to_number(char *string, uint8_t *type)
 {
   void *ptr, *out;
-  int fnz=-1, lnz=0;     /* `F'irst (or `L'ast) `N'on-`Z'ero. */
+  int fnz=-1, lnz=0;     /* 'F'irst (or 'L'ast) 'N'on-'Z'ero. */
   char *tailptr, *cp;
   uint8_t forcedfloat=0;
 
@@ -592,11 +592,11 @@ gal_type_string_to_number(char *string, uint8_t *type)
         {
           /* Note that the blank values are set to the maximum values in
              unsigned types. A blank value should be given as a blank
-             string to this function (`GAL_BLANK_STRING'). So, to avoid
+             string to this function ('GAL_BLANK_STRING'). So, to avoid
              confusing situations (for example when the user gives 255), if
              the value is equal to the given maximum of the given type,
              we'll assign it to a larger type. In other words, we won't be
-             using the `<=MAX', but `<MAX'. */
+             using the '<=MAX', but '<MAX'. */
           if     (d<UINT8_MAX)  { u8=d;  ptr=&u8;  *type=GAL_TYPE_UINT8;  }
           else if(d<UINT16_MAX) { u16=d; ptr=&u16; *type=GAL_TYPE_UINT16; }
           else if(d<UINT32_MAX) { u32=d; ptr=&u32; *type=GAL_TYPE_UINT32; }
@@ -617,13 +617,13 @@ gal_type_string_to_number(char *string, uint8_t *type)
          store the value as a double precision.
 
          Note that the number can have non-digit characters that we don't
-         want, like: `.', `e', `E', `,'. */
+         want, like: '.', 'e', 'E', ','. */
       for(cp=string;*cp!='\0';++cp)
         if(isdigit(*cp) && *cp!='0' && fnz==-1)
           fnz=cp-string;
 
-      /* In the previous loop, we went to the end of the string, so `cp'
-         now points to its `\0'. We just have to iterate backwards! */
+      /* In the previous loop, we went to the end of the string, so 'cp'
+         now points to its '\0'. We just have to iterate backwards! */
       for(;cp!=string;--cp)
         if(isdigit(*cp) && *cp!='0')
           {
diff --git a/lib/units.c b/lib/units.c
index eb672f1..4a67861 100644
--- a/lib/units.c
+++ b/lib/units.c
@@ -82,7 +82,7 @@ gal_units_extract_decimal(char *convert, const char 
*delimiter,
   /* Check if the number of elements parsed. */
   if (i != n)
     {
-      error (0, 0, "%s: input `%s' must contain %lu numbers, but has "
+      error (0, 0, "%s: input '%s' must contain %lu numbers, but has "
              "%lu numbers\n", __func__, convert, n, i);
       return 0;
     }
@@ -126,7 +126,7 @@ gal_units_ra_to_degree(char *convert)
       /* Check whether the first value is in within limits, and add it. */
       if(val[0]<0.0 || val[0]>24.0)
         {
-          error(0, 0, "%s: value of first decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of first decimal (%g) in '%s' should be "
                 "between 0 and 24", __func__, val[0], convert);
           return NAN;
         }
@@ -135,7 +135,7 @@ gal_units_ra_to_degree(char *convert)
       /* Check whether value of minutes is in within limits, and add it. */
       if(val[1]<0.0 || val[1]>60.0)
         {
-          error(0, 0, "%s: value of second decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of second decimal (%g) in '%s' should be "
                 "between 0 and 60", __func__, val[0], convert);
           return NAN;
         }
@@ -144,7 +144,7 @@ gal_units_ra_to_degree(char *convert)
       /* Check whether value of seconds is in within limits, and add it. */
       if(val[2]<0.0 || val[2]>60.0)
         {
-          error(0, 0, "%s: value of third decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of third decimal (%g) in '%s' should be "
                 "between 0 and 60", __func__, val[0], convert);
           return NAN;
         }
@@ -156,7 +156,7 @@ gal_units_ra_to_degree(char *convert)
     }
   else
     {
-      error(0, 0, "%s: input `%s' couldn't be parsed", __func__, convert);
+      error(0, 0, "%s: input '%s' couldn't be parsed", __func__, convert);
       return NAN;
     }
 
@@ -185,7 +185,7 @@ gal_units_dec_to_degree (char *convert)
       /* Check whether the first value is in within limits. */
       if(val[0]<-90.0 || val[0]>90.0)
         {
-          error(0, 0, "%s: value of first decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of first decimal (%g) in '%s' should be "
                 "between -90 and 90", __func__, val[0], convert);
           return NAN;
         }
@@ -201,7 +201,7 @@ gal_units_dec_to_degree (char *convert)
       /* Check whether value of arc-minutes is in within limits. */
       if(val[1]<0.0 || val[1]>60.0)
         {
-          error(0, 0, "%s: value of second decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of second decimal (%g) in '%s' should be "
                 "between 0 and 60", __func__, val[1], convert);
           return NAN;
         }
@@ -211,7 +211,7 @@ gal_units_dec_to_degree (char *convert)
       /* Check whether value of arc-seconds is in within limits */
       if (val[2] < 0.0 || val[2] > 60.0)
         {
-          error(0, 0, "%s: value of third decimal (%g) in `%s' should be "
+          error(0, 0, "%s: value of third decimal (%g) in '%s' should be "
                 "between 0 and 60", __func__, val[2], convert);
           return NAN;
         }
@@ -225,7 +225,7 @@ gal_units_dec_to_degree (char *convert)
     }
   else
     {
-      error(0, 0, "%s: input `%s' couldn't be parsed", __func__, convert);
+      error(0, 0, "%s: input '%s' couldn't be parsed", __func__, convert);
       return NAN;
     }
 
@@ -335,7 +335,7 @@ gal_units_degree_to_dec(double decimal)
       return NULL;
     }
 
-  /* If declination is negative, we set `sign' equal to -1. We multiply the
+  /* If declination is negative, we set 'sign' equal to -1. We multiply the
      decimal by to make sure it is positive. We then extract degrees,
      arc-minutes and arc-seconds from the decimal. Finally, we add a minus
      sign in beginning of string if input was negative. */
diff --git a/lib/wcs.c b/lib/wcs.c
index 4eea2ce..030ba83 100644
--- a/lib/wcs.c
+++ b/lib/wcs.c
@@ -154,11 +154,11 @@ gal_wcs_read_fitsptr(fitsfile *fptr, size_t hstartwcs, 
size_t hendwcs,
                       "THEIR PLACE (creating a wrong WCS in the output). "
                       "Please update the respective keywords of the input "
                       "to be numbers (see next line).\n\n"
-                      "WARNING: You can do this with Gnuastro's `astfits' "
-                      "program and the `--update' option. The minimal WCS "
-                      "keywords that need a numerical value are: `CRVAL1', "
-                      "`CRVAL2', `CRPIX1', `CRPIX2', `EQUINOX' and "
-                      "`CD%%_%%' (or `PC%%_%%', where the %% are integers), "
+                      "WARNING: You can do this with Gnuastro's 'astfits' "
+                      "program and the '--update' option. The minimal WCS "
+                      "keywords that need a numerical value are: 'CRVAL1', "
+                      "'CRVAL2', 'CRPIX1', 'CRPIX2', 'EQUINOX' and "
+                      "'CD%%_%%' (or 'PC%%_%%', where the %% are integers), "
                       "please see the FITS standard, and inspect your FITS "
                       "file to identify the full set of keywords that you "
                       "need correct (for example PV%%_%% keywords).\n\n");
@@ -206,9 +206,9 @@ gal_wcs_read_fitsptr(fitsfile *fptr, size_t hstartwcs, 
size_t hendwcs,
             /* A correctly useful WCS is present. When no PC matrix
                elements were present in the header, the default PC matrix
                (a unity matrix) is used. In this case WCSLIB doesn't set
-               `altlin' (and gives it a value of 0). In Gnuastro, later on,
+               'altlin' (and gives it a value of 0). In Gnuastro, later on,
                we might need to know the type of the matrix used, so in
-               such a case, we will set `altlin' to 1. */
+               such a case, we will set 'altlin' to 1. */
             if(wcs->altlin==0) wcs->altlin=1;
         }
     }
@@ -284,7 +284,7 @@ gal_wcs_copy(struct wcsprm *wcs)
       errno=0;
       out=malloc(sizeof *out);
       if(out==NULL)
-        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `out'",
+        error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'out'",
               __func__, sizeof *out);
 
       /* Initialize the allocated WCS structure. The WCSLIB manual says "On
@@ -308,7 +308,7 @@ gal_wcs_copy(struct wcsprm *wcs)
 
 
 /* Remove the algorithm part of CTYPE (anything after, and including, a
-   `-') if necessary. */
+   '-') if necessary. */
 static void
 wcs_ctype_noalgorithm(char *str)
 {
@@ -372,7 +372,7 @@ gal_wcs_remove_dimension(struct wcsprm *wcs, size_t fitsdim)
   for(i=0;i<naxis;++i)
     {
       /* The dimensions are in FITS order, but counting starts from 0, so
-         we'll have to subtract 1 from `fitsdim'. */
+         we'll have to subtract 1 from 'fitsdim'. */
       if(i>fitsdim-1)
         {
           /* 1-D arrays. */
@@ -429,17 +429,17 @@ gal_wcs_remove_dimension(struct wcsprm *wcs, size_t 
fitsdim)
   naxis = wcs->naxis -= 1;
 
 
-  /* The `TAN' algorithm needs two dimensions. So we need to remove it when
+  /* The 'TAN' algorithm needs two dimensions. So we need to remove it when
      it can cause confusion. */
   switch(naxis)
     {
-    /* The `TAN' algorithm cannot be used for any single-dimensional
+    /* The 'TAN' algorithm cannot be used for any single-dimensional
        dataset. So we'll have to remove it if it exists. */
     case 1:
       wcs_ctype_noalgorithm(wcs->ctype[0]);
       break;
 
-    /* For any other dimensionality, `TAN' should be kept only when exactly
+    /* For any other dimensionality, 'TAN' should be kept only when exactly
        two dimensions have it. */
     default:
 
@@ -529,7 +529,7 @@ gal_wcs_on_tile(gal_data_t *tile)
    final matrix irrespective of the type of storage in the WCS
    structure. Recall that the FITS standard has several methods to store
    the matrix, which is up to this function to account for and return the
-   final matrix. The output is an allocated DxD matrix where `D' is the
+   final matrix. The output is an allocated DxD matrix where 'D' is the
    number of dimensions. */
 double *
 gal_wcs_warp_matrix(struct wcsprm *wcs)
@@ -541,7 +541,7 @@ gal_wcs_warp_matrix(struct wcsprm *wcs)
   errno=0;
   out=malloc(size*sizeof *out);
   if(out==NULL)
-    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for `out'",
+    error(EXIT_FAILURE, errno, "%s: allocating %zu bytes for 'out'",
           __func__, size*sizeof *out);
 
   /* Fill in the array. */
@@ -574,7 +574,7 @@ gal_wcs_warp_matrix(struct wcsprm *wcs)
 
          Just note that the equations of the link above convert CROTAi to
          PC. But here we want the "final" matrix (after multiplication by
-         the `CDELT' values). So to speed things up, we won't bother
+         the 'CDELT' values). So to speed things up, we won't bother
          dividing and then multiplying by the same CDELT values in the
          off-diagonal elements. */
       crota2=wcs->crota[1];
@@ -595,17 +595,17 @@ gal_wcs_warp_matrix(struct wcsprm *wcs)
 
 
 
-/* According to the FITS standard, in the `PCi_j' WCS formalism, the matrix
-   elements m_{ij} are encoded in the `PCi_j' keywords and the scale
-   factors are encoded in the `CDELTi' keywords. There is also another
-   formalism (the `CDi_j' formalism) which merges the two into one
+/* According to the FITS standard, in the 'PCi_j' WCS formalism, the matrix
+   elements m_{ij} are encoded in the 'PCi_j' keywords and the scale
+   factors are encoded in the 'CDELTi' keywords. There is also another
+   formalism (the 'CDi_j' formalism) which merges the two into one
    matrix.
 
-   However, WCSLIB's internal operations are apparently done in the `PCi_j'
+   However, WCSLIB's internal operations are apparently done in the 'PCi_j'
    formalism. So its outputs are also all in that format by default. When
-   the input is a `CDi_j', WCSLIB will still read the image into the
-   `PCi_j' formalism and the `CDELTi's are set to 1. This function will
-   decompose the two matrices to give a reasonable `CDELTi' and `PCi_j' in
+   the input is a 'CDi_j', WCSLIB will still read the image into the
+   'PCi_j' formalism and the 'CDELTi's are set to 1. This function will
+   decompose the two matrices to give a reasonable 'CDELTi' and 'PCi_j' in
    such cases. */
 void
 gal_wcs_decompose_pc_cdelt(struct wcsprm *wcs)
@@ -643,13 +643,13 @@ gal_wcs_decompose_pc_cdelt(struct wcsprm *wcs)
       /* Clean up. */
       free(ps);
 
-      /* According to the `wcslib/wcs.h' header: "In particular, wcsset()
+      /* According to the 'wcslib/wcs.h' header: "In particular, wcsset()
          resets wcsprm::cdelt to unity if CDi_ja is present (and no
-         PCi_ja).". So apparently, when the input is a `CDi_j', it might
-         expect the `CDELTi' elements to be 1.0. But we have changed that
-         here, so we will correct the `altlin' element of the WCS structure
-         to make sure that WCSLIB only looks into the `PCi_j' and `CDELTi'
-         and makes no assumptioins about `CDELTi'. */
+         PCi_ja).". So apparently, when the input is a 'CDi_j', it might
+         expect the 'CDELTi' elements to be 1.0. But we have changed that
+         here, so we will correct the 'altlin' element of the WCS structure
+         to make sure that WCSLIB only looks into the 'PCi_j' and 'CDELTi'
+         and makes no assumptioins about 'CDELTi'. */
       wcs->altlin=1;
     }
 }
@@ -706,7 +706,7 @@ gal_wcs_pixel_scale(struct wcsprm *wcs)
 
 
   /* Write the full WCS rotation matrix into an array, irrespective of what
-     style it was stored in the wcsprm structure (`PCi_j' style or `CDi_j'
+     style it was stored in the wcsprm structure ('PCi_j' style or 'CDi_j'
      style). */
   a=gal_wcs_warp_matrix(wcs);
 
@@ -750,7 +750,7 @@ gal_wcs_pixel_scale(struct wcsprm *wcs)
       if(maxrow!=minrow && maxrow/minrow>1e5 && warning_printed==0)
         {
           fprintf(stderr, "\nWARNING: The input WCS matrix (possibly taken "
-                  "from the FITS header keywords starting with `CD' or `PC') "
+                  "from the FITS header keywords starting with 'CD' or 'PC') "
                   "contains values with very different scales (more than "
                   "10^5 different). This is probably due to floating point "
                   "errors. These values might bias the pixel scale (and "
@@ -758,14 +758,14 @@ gal_wcs_pixel_scale(struct wcsprm *wcs)
                   "You can see the respective matrix with one of the "
                   "following two commands (depending on how the FITS file "
                   "was written). Recall that if the desired extension/HDU "
-                  "isn't the default, you can choose it with the `--hdu' "
-                  "(or `-h') option before the `|' sign in these commands."
+                  "isn't the default, you can choose it with the '--hdu' "
+                  "(or '-h') option before the '|' sign in these commands."
                   "\n\n"
                   "    $ astfits file.fits -p | grep 'PC._.'\n"
                   "    $ astfits file.fits -p | grep 'CD._.'\n\n"
                   "You can delete the ones with obvious floating point "
                   "error values using the following command (assuming you "
-                  "want to delete `CD1_2' and `CD2_1'). Afterwards, you can "
+                  "want to delete 'CD1_2' and 'CD2_1'). Afterwards, you can "
                   "re-run your original command to remove this warning "
                   "message and possibly correct errors that it might have "
                   "caused.\n\n"
@@ -791,10 +791,10 @@ gal_wcs_pixel_scale(struct wcsprm *wcs)
   /* The raw pixel scale array produced from the singular value
      decomposition above is ordered based on values, not the input. So when
      the pixel scales in all the dimensions aren't the same (the units of
-     the dimensions differ), the order of the values in `pixelscale' will
+     the dimensions differ), the order of the values in 'pixelscale' will
      not necessarily correspond to the input's dimensions.
 
-     To correct the order, we can use the `V' matrix to find the original
+     To correct the order, we can use the 'V' matrix to find the original
      position of the pixel scale values and then use permutation to
      re-order it correspondingly. The column with the largest (absolute)
      value will be taken as the one to be used for each row. */
@@ -847,7 +847,7 @@ gal_wcs_pixel_area_arcsec2(struct wcsprm *wcs)
   if(wcs->naxis!=2) return NAN;
 
   /* Check if the units of the axis are degrees or not. Currently all FITS
-     images I have worked with use `deg' for degrees. If other alternatives
+     images I have worked with use 'deg' for degrees. If other alternatives
      exist, we can add corrections later. */
   if( strcmp("deg", wcs->cunit[0]) || strcmp("deg", wcs->cunit[1]) )
     return NAN;
@@ -905,7 +905,7 @@ wcs_convert_sanity_check_alloc(gal_data_t *coords, struct 
wcsprm *wcs,
 
       /* Check the type of the input. */
       if(tmp->type!=GAL_TYPE_FLOAT64)
-        error(EXIT_FAILURE, 0, "%s: input coordinates must have `float64' "
+        error(EXIT_FAILURE, 0, "%s: input coordinates must have 'float64' "
               "type", func);
 
       /* Make sure it has a single dimension. */
@@ -951,7 +951,7 @@ wcs_convert_sanity_check_alloc(gal_data_t *coords, struct 
wcsprm *wcs,
 
 
 /* In Gnuastro, each column (coordinate for WCS conversion) is treated as a
-   separate array in a `gal_data_t' that are linked through a linked
+   separate array in a 'gal_data_t' that are linked through a linked
    list. But in WCSLIB, the input is a single array (with multiple
    columns). This function will convert between the two. */
 static void
@@ -1005,8 +1005,8 @@ wcs_convert_prepare_out(gal_data_t *coords, struct wcsprm 
*wcs, int inplace)
 
 /* Convert world coordinates to image coordinates given the input WCS
    structure. The input must be a linked list of data structures of float64
-   (`double') type. The top element of the linked list must be the first
-   coordinate and etc. If `inplace' is non-zero, then the output will be
+   ('double') type. The top element of the linked list must be the first
+   coordinate and etc. If 'inplace' is non-zero, then the output will be
    written into the input's allocated space. */
 gal_data_t *
 gal_wcs_world_to_img(gal_data_t *coords, struct wcsprm *wcs, int inplace)
@@ -1069,7 +1069,7 @@ gal_wcs_world_to_img(gal_data_t *coords, struct wcsprm 
*wcs, int inplace)
 
 
 
-/* Similar to `gal_wcs_world_to_img'. */
+/* Similar to 'gal_wcs_world_to_img'. */
 gal_data_t *
 gal_wcs_img_to_world(gal_data_t *coords, struct wcsprm *wcs, int inplace)
 {
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6dd1e3d..1699c9f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -22,7 +22,7 @@
 
 
 
-## Translate conditions that came from `./configure' into variables that can
+## Translate conditions that came from './configure' into variables that can
 ## be used here. This includes the programs and teh dependencies of the
 ## checks.
 ##
@@ -33,11 +33,11 @@
 ## the order that their dependence is satisfied. But that is prone to
 ## errors and a lot of problem. The user also not want to build all the
 ## programs. Also, Make allows us to work with multiple threads (with
-## `-jN') and in that case, it is vital to define the dependencies.
+## '-jN') and in that case, it is vital to define the dependencies.
 ##
 ## The output of all the tests that should be used (is recognized by
 ## Automake and will not mess the system) is the name of the test file
-## appended by a `.log'. It contains the output of the program on standard
+## appended by a '.log'. It contains the output of the program on standard
 ## output and error. THIS IS IMPORTANT: So even if the program fails, the
 ## .log file is created. The check if the input for a test exists or not
 ## should be checked in the test that depends on it, it can't be done here
@@ -223,14 +223,14 @@ export check_with_program=$(MAYBE_CHECK_WITH_PROGRAM);
 # The Gnuastro library is checked by compiling programs and linking them
 # with the library. As described in the last paragraph of the "Scripts
 # based test suites" section of the Automake manual, all targets specified
-# by `check_PROGRAMS' are compiled prior to actually running the targets of
-# `TESTS'. So they do not need to be specified as any dependency, they will
-# be present when the `.sh' based tests are run.
-
-# The `gnuastro/config.h' (needed by Gnuastro's library) is built by
-# `../lib/Makefile.am' and is only meant for outside users (to be tested
-# here). Thus (unlike the programs, which use `config.h') we need to add
-# the top build directory to the include search directories (`-I').
+# by 'check_PROGRAMS' are compiled prior to actually running the targets of
+# 'TESTS'. So they do not need to be specified as any dependency, they will
+# be present when the '.sh' based tests are run.
+
+# The 'gnuastro/config.h' (needed by Gnuastro's library) is built by
+# '../lib/Makefile.am' and is only meant for outside users (to be tested
+# here). Thus (unlike the programs, which use 'config.h') we need to add
+# the top build directory to the include search directories ('-I').
 LDADD = -lgnuastro $(CONFIG_LDADD)
 AM_LDFLAGS = -L\$(top_builddir)/lib
 AM_CPPFLAGS = -I\$(top_srcdir)/lib -I\$(top_builddir)/lib
@@ -270,7 +270,7 @@ EXTRA_DIST = $(TESTS) during-dev.sh buildprog/simpleio.c 
crop/cat.txt     \
 
 
 
-# Files that must be cleaned with `make clean'.
+# Files that must be cleaned with 'make clean'.
 CLEANFILES = *.log *.txt *.jpg *.fits *.pdf *.eps simpleio
 
 
@@ -278,7 +278,7 @@ CLEANFILES = *.log *.txt *.jpg *.fits *.pdf *.eps simpleio
 
 
 # CLEANFILES is only for files, not directories. Therefore we are using
-# Automake's extending rules to clean the temporary `.gnuastro' directory
-# that was built by the `prepconf.sh' scripot. See "Extending Automake
+# Automake's extending rules to clean the temporary '.gnuastro' directory
+# that was built by the 'prepconf.sh' scripot. See "Extending Automake
 # rules", and the "What Gets Cleaned" sections of the Automake manual.
 clean-local:; rm -rf .gnuastro
diff --git a/tests/arithmetic/connected-components.sh 
b/tests/arithmetic/connected-components.sh
index 68e4682..13574f1 100755
--- a/tests/arithmetic/connected-components.sh
+++ b/tests/arithmetic/connected-components.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img 2 connected-components -hDETECTIONS   \
diff --git a/tests/arithmetic/onlynumbers.sh b/tests/arithmetic/onlynumbers.sh
index 76a412c..7837e54 100755
--- a/tests/arithmetic/onlynumbers.sh
+++ b/tests/arithmetic/onlynumbers.sh
@@ -46,7 +46,7 @@ if [ ! -f $execname ]; then echo "$execname not created."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname -1 3.45 x
diff --git a/tests/arithmetic/or.sh b/tests/arithmetic/or.sh
index 3e9bfbc..525b24c 100755
--- a/tests/arithmetic/or.sh
+++ b/tests/arithmetic/or.sh
@@ -1,4 +1,4 @@
-# Choose two detected regions with the `or' operator
+# Choose two detected regions with the 'or' operator
 #
 # See the Tests subsection of the manual for a complete explanation
 # (in the Installing gnuastro section).
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img 1 eq $img 3 eq or -gOBJECTS --output=or.fits
diff --git a/tests/arithmetic/snimage.sh b/tests/arithmetic/snimage.sh
index 17da7a0..e56528e 100755
--- a/tests/arithmetic/snimage.sh
+++ b/tests/arithmetic/snimage.sh
@@ -53,7 +53,7 @@ if [ ! -f $imgnc    ]; then echo "$imgnc does not exist."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $imgin $imgnc - $imgnc / --hdu=1 --hdu=SKY  \
diff --git a/tests/arithmetic/where.sh b/tests/arithmetic/where.sh
index e38c3e6..c2f15b6 100755
--- a/tests/arithmetic/where.sh
+++ b/tests/arithmetic/where.sh
@@ -1,4 +1,4 @@
-# Mask non-detected pixels in the image with the `where' operator.
+# Mask non-detected pixels in the image with the 'where' operator.
 #
 # See the Tests subsection of the manual for a complete explanation
 # (in the Installing gnuastro section).
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img $img 0 eq nan where -h1 -h2 
--output=where.fits
diff --git a/tests/buildprog/simpleio.sh b/tests/buildprog/simpleio.sh
index f797d65..fd4a882 100755
--- a/tests/buildprog/simpleio.sh
+++ b/tests/buildprog/simpleio.sh
@@ -53,13 +53,13 @@ if [ ! -f $source   ]; then echo "$source does not exist."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# We want to use the `libgnuastro.la' corresponding to this install, not
-# the one (that is possibly) installed (hence the use of `--la').
+# We want to use the 'libgnuastro.la' corresponding to this install, not
+# the one (that is possibly) installed (hence the use of '--la').
 #
-# Except for `gnuastro/config.h', all headers are installed in
-# `$topsrc/lib' and `gnuastro/config.h' is in "../lib/"
+# Except for 'gnuastro/config.h', all headers are installed in
+# '$topsrc/lib' and 'gnuastro/config.h' is in "../lib/"
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 echo "Test Environment"
diff --git a/tests/convertt/blankch.sh b/tests/convertt/blankch.sh
index e0a27cb..46b9c15 100755
--- a/tests/convertt/blankch.sh
+++ b/tests/convertt/blankch.sh
@@ -55,7 +55,7 @@ if [ "x$haslibjpeg" != "xyes" ];then echo "libjpeg not 
present.";  exit 77;fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname blank $img blank --output=blankch.jpg
diff --git a/tests/convertt/fitstojpeg.sh b/tests/convertt/fitstojpeg.sh
index d36798b..2a0c65e 100755
--- a/tests/convertt/fitstojpeg.sh
+++ b/tests/convertt/fitstojpeg.sh
@@ -55,7 +55,7 @@ if [ "x$haslibjpeg" != "xyes" ];then echo "libjpeg not 
present.";  exit 77;fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --invert --output=jpg
diff --git a/tests/convertt/fitstojpegcmyk.sh b/tests/convertt/fitstojpegcmyk.sh
index 24b9e59..46f34a2 100755
--- a/tests/convertt/fitstojpegcmyk.sh
+++ b/tests/convertt/fitstojpegcmyk.sh
@@ -54,7 +54,7 @@ if [ "x$haslibjpeg" != "xyes" ];then echo "libjpeg not 
present.";  exit 77;fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname blank blank blank $img --output=f2jcmyk.jpg
diff --git a/tests/convertt/fitstopdf.sh b/tests/convertt/fitstopdf.sh
index 666df6b..f1eca8b 100755
--- a/tests/convertt/fitstopdf.sh
+++ b/tests/convertt/fitstopdf.sh
@@ -57,7 +57,7 @@ fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --output=pdf --invert
diff --git a/tests/convertt/fitstotxt.sh b/tests/convertt/fitstotxt.sh
index 9029de4..2cc6c9a 100755
--- a/tests/convertt/fitstotxt.sh
+++ b/tests/convertt/fitstotxt.sh
@@ -49,7 +49,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --output=psf.txt
diff --git a/tests/convertt/jpegtofits.sh b/tests/convertt/jpegtofits.sh
index 499ca50..bec092d 100755
--- a/tests/convertt/jpegtofits.sh
+++ b/tests/convertt/jpegtofits.sh
@@ -55,7 +55,7 @@ if [ "x$haslibjpeg" != "xyes" ];then echo "libjpeg not 
present.";  exit 77;fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --output=fits
diff --git a/tests/convertt/jpegtotxt.sh b/tests/convertt/jpegtotxt.sh
index 3cf606a..48fcf4b 100755
--- a/tests/convertt/jpegtotxt.sh
+++ b/tests/convertt/jpegtotxt.sh
@@ -55,7 +55,7 @@ if [ "x$haslibjpeg" != "xyes" ];then echo "libjpeg not 
present.";  exit 77;fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --output=jpegtotxt.txt
diff --git a/tests/convolve/frequency.sh b/tests/convolve/frequency.sh
index b63bfef..9be7863 100755
--- a/tests/convolve/frequency.sh
+++ b/tests/convolve/frequency.sh
@@ -52,7 +52,7 @@ if [ ! -f $psf      ]; then echo "$psf does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --kernel=$psf --domain=frequency \
diff --git a/tests/convolve/spatial.sh b/tests/convolve/spatial.sh
index e1e82de..70c4684 100755
--- a/tests/convolve/spatial.sh
+++ b/tests/convolve/spatial.sh
@@ -52,7 +52,7 @@ if [ ! -f $psf      ]; then echo "$psf does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --kernel=$psf --domain=spatial   \
diff --git a/tests/cosmiccal/simpletest.sh b/tests/cosmiccal/simpletest.sh
index 4ed9a45..70d3be8 100755
--- a/tests/cosmiccal/simpletest.sh
+++ b/tests/cosmiccal/simpletest.sh
@@ -46,7 +46,7 @@ if [ ! -f $execname ]; then echo "$execname not created.";    
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname --redshift=2.5
diff --git a/tests/crop/imgcat.sh b/tests/crop/imgcat.sh
index e2c366f..76c0053 100755
--- a/tests/crop/imgcat.sh
+++ b/tests/crop/imgcat.sh
@@ -55,7 +55,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 cat=$topsrc/tests/$prog/cat.txt
diff --git a/tests/crop/imgcenter.sh b/tests/crop/imgcenter.sh
index 222be9d..2f13f54 100755
--- a/tests/crop/imgcenter.sh
+++ b/tests/crop/imgcenter.sh
@@ -55,7 +55,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --center=251,251 --mode=img --width=201 \
diff --git a/tests/crop/imgcenternoblank.sh b/tests/crop/imgcenternoblank.sh
index 00a8ee3..1a07612 100755
--- a/tests/crop/imgcenternoblank.sh
+++ b/tests/crop/imgcenternoblank.sh
@@ -56,7 +56,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --center=500,500 --noblank --numthreads=1 \
diff --git a/tests/crop/imgpolygon.sh b/tests/crop/imgpolygon.sh
index 10410db..b15536d 100755
--- a/tests/crop/imgpolygon.sh
+++ b/tests/crop/imgpolygon.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img $cat --mode=img --zeroisnotblank \
diff --git a/tests/crop/imgpolygonout.sh b/tests/crop/imgpolygonout.sh
index 722a4bf..a710251 100755
--- a/tests/crop/imgpolygonout.sh
+++ b/tests/crop/imgpolygonout.sh
@@ -55,7 +55,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img $cat --mode=img --zeroisnotblank     \
diff --git a/tests/crop/section.sh b/tests/crop/section.sh
index 6731b12..e1e841b 100755
--- a/tests/crop/section.sh
+++ b/tests/crop/section.sh
@@ -54,7 +54,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --section=-10:*+10,:250 --mode=img    \
diff --git a/tests/crop/wcscat.sh b/tests/crop/wcscat.sh
index a10f750..8a5ba35 100755
--- a/tests/crop/wcscat.sh
+++ b/tests/crop/wcscat.sh
@@ -56,7 +56,7 @@ done
 # enable multithreaded access to files, the tests pass. It is the
 # users choice to enable this feature.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 cat=$topsrc/tests/$prog/cat.txt
diff --git a/tests/crop/wcscenter.sh b/tests/crop/wcscenter.sh
index eaac723..ce1c8be 100755
--- a/tests/crop/wcscenter.sh
+++ b/tests/crop/wcscenter.sh
@@ -51,7 +51,7 @@ done
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --center=0.99917157,1.0008283       \
diff --git a/tests/crop/wcspolygon.sh b/tests/crop/wcspolygon.sh
index 6719f81..fa9894b 100755
--- a/tests/crop/wcspolygon.sh
+++ b/tests/crop/wcspolygon.sh
@@ -52,7 +52,7 @@ done
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --mode=wcs --zeroisnotblank   \
diff --git a/tests/during-dev.sh b/tests/during-dev.sh
index c5be359..65b9de9 100755
--- a/tests/during-dev.sh
+++ b/tests/during-dev.sh
@@ -16,11 +16,11 @@
 #      build directories) so if you need to make lots of temporary test
 #      files, there they won't get mixed up with non-output files.
 #
-# Combined with the `developer-build', this script can be used to greatly
+# Combined with the 'developer-build', this script can be used to greatly
 # simplify the development process. After running that script once, for
 # subsequent builds during your development, you can run this script from
-# the top source directory (by running `./tests/during-dev.sh', or giving
-# this to the `compile' command in Emacs). Note that you have to set the
+# the top source directory (by running './tests/during-dev.sh', or giving
+# this to the 'compile' command in Emacs). Note that you have to set the
 # first few variables (directories, utility name, arguments and options)
 # manually before each major development activity.
 #
@@ -34,7 +34,7 @@
 #     git checkout -- tests/during-dev.sh
 #
 # This file can also be used as a model to write a test for the work you
-# have done (to be checked with `make check'). Just copy and paste an
+# have done (to be checked with 'make check'). Just copy and paste an
 # existing test from the utility and replace the last few lines based on
 # this file.
 #
@@ -64,9 +64,9 @@
 # ====================
 
 # Set the basic test directories. If you are building over the source
-# directory, then set `builddir' to `./'. If you want the outputs to be in
-# the top source directory, set it to `./'. Since 'build' is the assumed
-# symbolic link in `developer-build', it is also assumed in the version
+# directory, then set 'builddir' to './'. If you want the outputs to be in
+# the top source directory, set it to './'. Since 'build' is the assumed
+# symbolic link in 'developer-build', it is also assumed in the version
 # controlled version of this script. Note, if your directory names have
 # space characters in them, quote the full value
 numjobs=8
@@ -104,7 +104,7 @@ if [ x"$utilname" = x ]; then echo "utilname is not set."; 
exit 1; fi
 if [ x"$builddir" = x ]; then echo "builddir is not set."; exit 1; fi
 
 
-# Make sure `utilname' doesn't start with `ast' (a common mistake).
+# Make sure 'utilname' doesn't start with 'ast' (a common mistake).
 astprefix="${utilname:0:3}"
 if [ x"$astprefix" = x"ast" ]; then
     echo "'utilname' must not start with 'ast'."; exit 1;
@@ -174,7 +174,7 @@ if make -j$numjobs -C "$builddir"; then
     fi
     cp $cfiles .gnuastro/
 
-    # Append `lastconfig' option to `gnuastro.conf', so the program doesn't
+    # Append 'lastconfig' option to 'gnuastro.conf', so the program doesn't
     # go into the system headers.
     echo ""               >> .gnuastro/gnuastro.conf
     echo " lastconfig 1"  >> .gnuastro/gnuastro.conf
diff --git a/tests/fits/copyhdu.sh b/tests/fits/copyhdu.sh
index d807092..e9b305a 100755
--- a/tests/fits/copyhdu.sh
+++ b/tests/fits/copyhdu.sh
@@ -53,7 +53,7 @@ if [ ! -f $img2     ]; then echo "$img2 does not exist.";  
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img2 --copy="Mock profiles" --output=$img1
diff --git a/tests/fits/delete.sh b/tests/fits/delete.sh
index 7f0517f..80a7a9b 100755
--- a/tests/fits/delete.sh
+++ b/tests/fits/delete.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --delete=ABSJUNK --delete=ABSJNK2
diff --git a/tests/fits/print.sh b/tests/fits/print.sh
index 44ce116..5a6d458 100755
--- a/tests/fits/print.sh
+++ b/tests/fits/print.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like 'Valgrind' or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img
diff --git a/tests/fits/update.sh b/tests/fits/update.sh
index 1b58482..774b8e1 100755
--- a/tests/fits/update.sh
+++ b/tests/fits/update.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --update=ABSJUNK,8.231,"An updated 
value.",s \
diff --git a/tests/fits/write.sh b/tests/fits/write.sh
index 3f96020..d5b4aba 100755
--- a/tests/fits/write.sh
+++ b/tests/fits/write.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 cp $img fitstest.fits
diff --git a/tests/lib/multithread.c b/tests/lib/multithread.c
index 1322480..d16474b 100644
--- a/tests/lib/multithread.c
+++ b/tests/lib/multithread.c
@@ -37,9 +37,9 @@ struct params
 
 
 /* This is the main worker function which will be called by the different
-   threads. `gal_threads_params' is defined in `gnuastro/threads.h' and
+   threads. 'gal_threads_params' is defined in 'gnuastro/threads.h' and
    contains the pointer to the paramter we want. Note that its input and
-   output must have `void *' types. */
+   output must have 'void *' types. */
 void *
 worker_on_thread(void *in_prm)
 {
@@ -77,8 +77,8 @@ worker_on_thread(void *in_prm)
 /* A simple program to open a FITS image, distributes its pixels between
    different threads and print the value of each pixel and the thread it
    was assigned to, this will test both the opening of a FITS file and also
-   the multi-threaded functions. After running `make check' you can see the
-   outputs in `tests/multithread.log'.
+   the multi-threaded functions. After running 'make check' you can see the
+   outputs in 'tests/multithread.log'.
 
    Please run the following command for an explanation on easily linking
    and compiling C programs that use Gnuastro's libraries (without having
diff --git a/tests/lib/multithread.sh b/tests/lib/multithread.sh
index bab5598..0352de4 100755
--- a/tests/lib/multithread.sh
+++ b/tests/lib/multithread.sh
@@ -50,7 +50,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi;
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname
diff --git a/tests/lib/versioncxx.sh b/tests/lib/versioncxx.sh
index b41ff8c..b82af8d 100755
--- a/tests/lib/versioncxx.sh
+++ b/tests/lib/versioncxx.sh
@@ -46,7 +46,7 @@ fi;
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname
diff --git a/tests/match/merged-cols.sh b/tests/match/merged-cols.sh
index c13c4ec..f76b438 100755
--- a/tests/match/merged-cols.sh
+++ b/tests/match/merged-cols.sh
@@ -51,7 +51,7 @@ if [ ! -f $execname ]; then echo "$execname not created."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat1 $cat2 --aperture=0.5 --ccol1=2,3   \
diff --git a/tests/match/positions.sh b/tests/match/positions.sh
index aa61e17..b986043 100755
--- a/tests/match/positions.sh
+++ b/tests/match/positions.sh
@@ -51,7 +51,7 @@ if [ ! -f $execname ]; then echo "$execname not created."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat1 $cat2 --aperture=0.5 --log --ccol1=2,3 \
diff --git a/tests/mkcatalog/aperturephot.sh b/tests/mkcatalog/aperturephot.sh
index 2ec456c..bc4b182 100755
--- a/tests/mkcatalog/aperturephot.sh
+++ b/tests/mkcatalog/aperturephot.sh
@@ -53,7 +53,7 @@ if [ ! -f $objimg   ]; then echo "$objimg does not exist";  
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $objimg --hdu=1 --valuesfile=$img       \
diff --git a/tests/mkcatalog/detections.sh b/tests/mkcatalog/detections.sh
index 35ad4b7..3c15bc0 100755
--- a/tests/mkcatalog/detections.sh
+++ b/tests/mkcatalog/detections.sh
@@ -53,7 +53,7 @@ if [ ! -f $base     ]; then echo "$base does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $labels -h1 --valuesfile=$base            \
diff --git a/tests/mkcatalog/objects-clumps.sh 
b/tests/mkcatalog/objects-clumps.sh
index cdcd665..1b99481 100755
--- a/tests/mkcatalog/objects-clumps.sh
+++ b/tests/mkcatalog/objects-clumps.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like 'Valgrind' or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --x --y --ra --dec --magnitude     \
diff --git a/tests/mknoise/addnoise.sh b/tests/mknoise/addnoise.sh
index 5073e91..969948d 100755
--- a/tests/mknoise/addnoise.sh
+++ b/tests/mknoise/addnoise.sh
@@ -58,7 +58,7 @@ if [ ! -f $img2     ]; then echo "$img2 does not exist.";    
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 export GSL_RNG_SEED=1
diff --git a/tests/mkprof/clearcanvas.sh b/tests/mkprof/clearcanvas.sh
index d62673f..faeed26 100755
--- a/tests/mkprof/clearcanvas.sh
+++ b/tests/mkprof/clearcanvas.sh
@@ -55,7 +55,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --background=$img --mforflatpix \
diff --git a/tests/mkprof/clearcanvas.txt b/tests/mkprof/clearcanvas.txt
index 4114e87..7644484 100644
--- a/tests/mkprof/clearcanvas.txt
+++ b/tests/mkprof/clearcanvas.txt
@@ -10,7 +10,7 @@
 # Column 10: Truncation radius [dist, f64]   Truncation radius to stop 
building profile
 #
 # Note that the positions and radii are multiplied by 5 compared to
-# `mkprofcat1.txt', because we are using the over-sampled image as a
+# 'mkprofcat1.txt', because we are using the over-sampled image as a
 # canvas.
 #
 # Copyright (C) 2015-2020, Free Software Foundation, Inc.
diff --git a/tests/mkprof/ellipticalmasks.sh b/tests/mkprof/ellipticalmasks.sh
index e15f43d..d4dec9b 100755
--- a/tests/mkprof/ellipticalmasks.sh
+++ b/tests/mkprof/ellipticalmasks.sh
@@ -55,7 +55,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --background=$img --mforflatpix --replace \
diff --git a/tests/mkprof/mosaic1.sh b/tests/mkprof/mosaic1.sh
index 0f0168d..3139fde 100755
--- a/tests/mkprof/mosaic1.sh
+++ b/tests/mkprof/mosaic1.sh
@@ -52,7 +52,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --mergedsize=100,100      \
diff --git a/tests/mkprof/mosaic2.sh b/tests/mkprof/mosaic2.sh
index af942ee..816f20f 100755
--- a/tests/mkprof/mosaic2.sh
+++ b/tests/mkprof/mosaic2.sh
@@ -57,7 +57,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --mergedsize=100,100 --crpix=-99,1 \
diff --git a/tests/mkprof/mosaic3.sh b/tests/mkprof/mosaic3.sh
index 157ced5..d59d830 100755
--- a/tests/mkprof/mosaic3.sh
+++ b/tests/mkprof/mosaic3.sh
@@ -54,7 +54,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --mergedsize=100,100 --crpix=1,-99
diff --git a/tests/mkprof/mosaic4.sh b/tests/mkprof/mosaic4.sh
index 895e063..5be6625 100755
--- a/tests/mkprof/mosaic4.sh
+++ b/tests/mkprof/mosaic4.sh
@@ -55,7 +55,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --mergedsize=100,100 --crpix=-99,-99
diff --git a/tests/mkprof/radeccat.sh b/tests/mkprof/radeccat.sh
index 80cc597..69eb39d 100755
--- a/tests/mkprof/radeccat.sh
+++ b/tests/mkprof/radeccat.sh
@@ -50,7 +50,7 @@ if [ ! -f $cat      ]; then echo "$cat does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $cat --ccol=RA --ccol=Dec --mode=wcs   \
diff --git a/tests/noisechisel/noisechisel.sh b/tests/noisechisel/noisechisel.sh
index 07bf44d..383983b 100755
--- a/tests/noisechisel/noisechisel.sh
+++ b/tests/noisechisel/noisechisel.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --tilesize=100,100 --snquant=0.999 \
diff --git a/tests/prepconf.sh b/tests/prepconf.sh
index 44713cd..5cf8c47 100755
--- a/tests/prepconf.sh
+++ b/tests/prepconf.sh
@@ -28,10 +28,10 @@
 # ----------------------------
 #
 # This directory will keep the default configuration files for all the
-# programs. If it already exists, delete it. `mkdir_p' is the equivalent to
-# GNU's `mkdir -p' which might not exist on some systems. It comes from
+# programs. If it already exists, delete it. 'mkdir_p' is the equivalent to
+# GNU's 'mkdir -p' which might not exist on some systems. It comes from
 # Autoconf's tests and is exported to the test shell scripts from the
-# `tests/Makefile.am' file.
+# 'tests/Makefile.am' file.
 $mkdir_p .gnuastro
 
 
@@ -44,7 +44,7 @@ $mkdir_p .gnuastro
 # Copy the common options while adding the following optios only for make
 # check.
 #
-#   - `lastconfig' will make sure that the program stop searching for
+#   - 'lastconfig' will make sure that the program stop searching for
 #     configuration files after this one.
 #
 #   - Log files are not necessary during tests, they are mainly used for
@@ -68,7 +68,7 @@ rm addedoptions.txt
 # Bring utility configuration files
 # ---------------------------------
 #
-# Each utility's configuration file is copied in the `tests' directory for
+# Each utility's configuration file is copied in the 'tests' directory for
 # easy readability. Note that some programs may need to build their
 # configuration files during compilation. Hence, their configuration files
 # are in the build directory, not the source directory.
diff --git a/tests/script/list-by-night.sh b/tests/script/list-by-night.sh
index 4c2df1a..73ef309 100755
--- a/tests/script/list-by-night.sh
+++ b/tests/script/list-by-night.sh
@@ -61,7 +61,7 @@ ln -sf $dep1name ast$dep1
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 #
diff --git a/tests/segment/segment.sh b/tests/segment/segment.sh
index 6f22bd4..89f9f8e 100755
--- a/tests/segment/segment.sh
+++ b/tests/segment/segment.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --tilesize=100,100 --snquant=0.99
diff --git a/tests/statistics/basicstats.sh b/tests/statistics/basicstats.sh
index aab4f75..9e96d43 100755
--- a/tests/statistics/basicstats.sh
+++ b/tests/statistics/basicstats.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img -g9500 -l11000 --numasciibins=65
diff --git a/tests/statistics/estimate_sky.sh b/tests/statistics/estimate_sky.sh
index a680c73..7ae98fe 100755
--- a/tests/statistics/estimate_sky.sh
+++ b/tests/statistics/estimate_sky.sh
@@ -56,7 +56,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # tessellation, estimation, interpolation and smoothing go nicely without
 # any errors.
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --sky --checksky
diff --git a/tests/statistics/from-stdin.sh b/tests/statistics/from-stdin.sh
index 2f1094c..d93a816 100755
--- a/tests/statistics/from-stdin.sh
+++ b/tests/statistics/from-stdin.sh
@@ -51,7 +51,7 @@ if [ ! -f $in       ]; then echo "$in does not exist.";    
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 cat $in | $check_with_program $execname
diff --git a/tests/table/fits-ascii-to-txt.sh b/tests/table/fits-ascii-to-txt.sh
index d27ea6a..bbe64b8 100755
--- a/tests/table/fits-ascii-to-txt.sh
+++ b/tests/table/fits-ascii-to-txt.sh
@@ -51,7 +51,7 @@ if [ ! -f $table    ]; then echo "$table doesn't exist.";  
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $table --output=from-ascii-table.txt
diff --git a/tests/table/fits-binary-to-txt.sh 
b/tests/table/fits-binary-to-txt.sh
index 32d1e46..db13a53 100755
--- a/tests/table/fits-binary-to-txt.sh
+++ b/tests/table/fits-binary-to-txt.sh
@@ -51,7 +51,7 @@ if [ ! -f $table    ]; then echo "$table doesn't exist.";  
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like 'Valgrind' or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $table --output=from-binary-table.txt
diff --git a/tests/table/table.txt b/tests/table/table.txt
index ddba56b..185ab07 100644
--- a/tests/table/table.txt
+++ b/tests/table/table.txt
@@ -27,8 +27,8 @@
 # 412 (data type conversion overflow) when the number cannot be
 # printed in the provided space (with full precision). So make sure
 # that the full-integer part of the number has less characters than
-# the `width - precision - 1' (when everything is default, you can get
-# these values from `lib/gnuastro/table.h').
+# the 'width - precision - 1' (when everything is default, you can get
+# these values from 'lib/gnuastro/table.h').
 
 # Copyright (C) 2015-2020, Free Software Foundation, Inc.
 #
diff --git a/tests/table/txt-to-fits-ascii.sh b/tests/table/txt-to-fits-ascii.sh
index baf54ae..38f7bc2 100755
--- a/tests/table/txt-to-fits-ascii.sh
+++ b/tests/table/txt-to-fits-ascii.sh
@@ -51,7 +51,7 @@ if [ ! -f $table    ]; then echo "$table doesn't exist.";  
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $table --output=ascii-table.fits   \
diff --git a/tests/table/txt-to-fits-binary.sh 
b/tests/table/txt-to-fits-binary.sh
index 9c2a171..f9a88d9 100755
--- a/tests/table/txt-to-fits-binary.sh
+++ b/tests/table/txt-to-fits-binary.sh
@@ -51,7 +51,7 @@ if [ ! -f $table    ]; then echo "$table does not exist."; 
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $table --output=binary-table.fits \
diff --git a/tests/warp/homographic.sh b/tests/warp/homographic.sh
index 1133873..cea85e6 100755
--- a/tests/warp/homographic.sh
+++ b/tests/warp/homographic.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --output=homographic.fits --coveredfrac=0.5 
\
diff --git a/tests/warp/warp_scale.sh b/tests/warp/warp_scale.sh
index 81046ca..58ecab6 100755
--- a/tests/warp/warp_scale.sh
+++ b/tests/warp/warp_scale.sh
@@ -51,7 +51,7 @@ if [ ! -f $img      ]; then echo "$img does not exist.";   
exit 77; fi
 # Actual test script
 # ==================
 #
-# `check_with_program' can be something like `Valgrind' or an empty
+# 'check_with_program' can be something like Valgrind or an empty
 # string. Such programs will execute the command if present and help in
 # debugging when the developer doesn't have access to the user's system.
 $check_with_program $execname $img --scale=1/5 --centeroncorner



reply via email to

[Prev in Thread] Current Thread [Next in Thread]